Atop is an ASCII full-screen performance monitor for Linux.
- install only the basic functionality (command line tool atop).
- add patch to fix musl build by removing unused include of termio.h.
Patch was accepted upstream.
Support for extra functionality can be added by follow-up patches:
- init scripts (sysv and systemd) to autostart logging the system
activity.
- process accounting (needs counterpart enabled in the kernel).
Signed-off-by: Ricardo Martincoski <ricardo.martincoski@datacom.ind.br>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
menu "System tools"
source "package/acl/Config.in"
source "package/android-tools/Config.in"
+ source "package/atop/Config.in"
source "package/attr/Config.in"
source "package/audit/Config.in"
source "package/bootutils/Config.in"
--- /dev/null
+remove unused include of termio.h
+
+This header is not provided by musl, leading to build failures.
+
+Patch status: accepted upstream.
+
+Signed-off-by: Ricardo Martincoski <ricardo.martincoski@datacom.ind.br>
+---
+diff -purN atop-2.2-3.orig/showgeneric.c atop-2.2-3/showgeneric.c
+--- atop-2.2-3.orig/showgeneric.c 2016-07-19 22:07:43.275324499 -0300
++++ atop-2.2-3/showgeneric.c 2016-07-19 22:08:16.171453283 -0300
+@@ -268,7 +268,6 @@ static const char rcsid[] = "$Id: showge
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <string.h>
+-#include <termio.h>
+ #include <unistd.h>
+ #include <stdarg.h>
+ #include <curses.h>
+diff -purN atop-2.2-3.orig/showlinux.c atop-2.2-3/showlinux.c
+--- atop-2.2-3.orig/showlinux.c 2016-07-19 22:07:43.275324499 -0300
++++ atop-2.2-3/showlinux.c 2016-07-19 22:08:20.979472459 -0300
+@@ -274,7 +274,6 @@ static const char rcsid[] = "$Id: showli
+ #include <string.h>
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <termio.h>
+ #include <unistd.h>
+ #include <stdarg.h>
+ #include <curses.h>
+diff -purN atop-2.2-3.orig/showprocs.c atop-2.2-3/showprocs.c
+--- atop-2.2-3.orig/showprocs.c 2016-07-19 22:07:43.275324499 -0300
++++ atop-2.2-3/showprocs.c 2016-07-19 22:08:25.083488900 -0300
+@@ -94,7 +94,6 @@ static const char rcsid[] = "$Id: showpr
+ #include <string.h>
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <termio.h>
+ #include <unistd.h>
+ #include <stdarg.h>
+ #include <curses.h>
+diff -purN atop-2.2-3.orig/showsys.c atop-2.2-3/showsys.c
+--- atop-2.2-3.orig/showsys.c 2016-07-19 22:07:43.275324499 -0300
++++ atop-2.2-3/showsys.c 2016-07-19 22:08:29.099505047 -0300
+@@ -80,7 +80,6 @@ static const char rcsid[] = "XXXXXX";
+ #include <string.h>
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <termio.h>
+ #include <unistd.h>
+ #include <stdarg.h>
+ #include <curses.h>
--- /dev/null
+config BR2_PACKAGE_ATOP
+ bool "atop"
+ depends on BR2_USE_MMU # fork()
+ select BR2_PACKAGE_NCURSES
+ select BR2_PACKAGE_ZLIB
+ help
+ Atop is an ASCII full-screen performance monitor for Linux
+ that is capable of reporting the activity of all processes
+ (even if processes have finished during the interval), daily
+ logging of system and process activity for long-term analysis,
+ highlighting overloaded system resources by using colors, etc.
+ At regular intervals, it shows system-level activity related
+ to the CPU, memory, swap, disks (including LVM) and network
+ layers, and for every process (and thread) it shows e.g. the
+ CPU utilization, memory growth, disk utilization, priority,
+ username, state, and exit code.
+
+ http://www.atoptool.nl
--- /dev/null
+# Locally computed:
+sha256 c785b8a2355be28b3de6b58a8ea4c4fcab8fadeaa57a99afeb03c66fac8e055d atop-2.2-3.tar.gz
--- /dev/null
+################################################################################
+#
+# atop
+#
+################################################################################
+
+ATOP_VERSION = 2.2-3
+ATOP_SITE = http://www.atoptool.nl/download
+ATOP_LICENSE = GPLv2+
+ATOP_LICENSE_FILES = COPYING
+ATOP_DEPENDENCIES = ncurses zlib
+
+define ATOP_BUILD_CMDS
+ $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
+endef
+
+define ATOP_INSTALL_TARGET_CMDS
+ $(INSTALL) -D -m 0755 $(@D)/atop $(TARGET_DIR)/usr/bin/atop
+endef
+
+$(eval $(generic-package))