iotop: add new package
authorJohn Audia <redacted>
Fri, 28 Feb 2025 20:23:07 +0000 (15:23 -0500)
committerHannu Nyman <redacted>
Sun, 8 Jun 2025 19:52:00 +0000 (22:52 +0300)
Iotop identifies processes that use high amount of input/output requests
on your machine. It is similar to the well known top utility, but
instead of showing you what consumes CPU the most, it lists processes by
their IO usage. Inspired by iotop Python script from Guillaume
Chazarain, rewritten in C by Vyacheslav Trushkin and improved by Boian
Bonev so it runs without Python at all.

Note that only targets that have KERNEL_TASKSTATS enabled will be able
to build this package.

Build system: x86/64
Build-tested: bcm27xx/bcm2712
Run-tested: bcm27xx/bcm2712

Signed-off-by: John Audia <redacted>
admin/iotop/Makefile [new file with mode: 0644]

diff --git a/admin/iotop/Makefile b/admin/iotop/Makefile
new file mode 100644 (file)
index 0000000..292402a
--- /dev/null
@@ -0,0 +1,45 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=iotop
+PKG_VERSION:=1.30
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/Tomas-M/iotop/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=862e3d3d0263e4171aa9c5aaed2dd7d76ca746afa58ecbb6eca002717e9fa240
+
+PKG_LICENSE:=GPL-2.0-or-later
+PKG_LICENSE_FILES:=LICENSE
+PKG_CPE_ID=cpe:/a:iotop:iotop
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/iotop
+  SECTION:=admin
+  CATEGORY:=Administration
+  TITLE:=A top utility for IO
+  DEPENDS:=+libncurses @KERNEL_TASKSTATS
+  URL:=https://github.com/Tomas-M/iotop
+  PKG_MAINTAINER:=John Audia <therealgraysky@proton.me>
+endef
+
+define Package/iotop/description
+  Iotop identifies processes that use high amount of input/output
+  requests on your machine. It is similar to the well known top utility
+  but instead of showing you what consumes CPU the most, it lists
+  processes by their IO usage.
+endef
+
+define Build/Compile
+       $(MAKE) -C "$(PKG_BUILD_DIR)" \
+               CC="$(TARGET_CC)" \
+               CFLAGS="$(TARGET_CFLAGS)" \
+               LDFLAGS="$(TARGET_LDFLAGS)"
+endef
+
+define Package/iotop/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/iotop $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,iotop))
git clone https://git.99rst.org/PROJECT