aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorGergely Kiss <mail.gery@gmail.com>2014-12-14 23:34:26 +0100
committerSteven Barth <steven@midlink.org>2014-12-16 08:39:13 +0100
commit76ba0ac87a811bf8954009be9daf4aa7644a8ebc (patch)
treea23eddeed08244482a518ad6394f01d54e459c28 /utils
parent5e2f77242aaaa138b9380419ed06a526b6849270 (diff)
procps: import version 3.2.8 of the procps utilities
Signed-off-by: Gergely Kiss <mail.gery@gmail.com> Tested-by: Gergely Kiss <mail.gery@gmail.com>
Diffstat (limited to 'utils')
-rw-r--r--utils/procps/Makefile86
-rw-r--r--utils/procps/patches/010-make_fix.patch11
-rw-r--r--utils/procps/patches/020_hz_fix.patch41
-rw-r--r--utils/procps/patches/030-fix-string-problems.patch11
4 files changed, 149 insertions, 0 deletions
diff --git a/utils/procps/Makefile b/utils/procps/Makefile
new file mode 100644
index 000000000..25d1ddbc8
--- /dev/null
+++ b/utils/procps/Makefile
@@ -0,0 +1,86 @@
+#
+# Copyright (C) 2006-2014 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=procps
+PKG_VERSION:=3.2.8
+PKG_RELEASE:=1
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=COPYING COPYING.LIB
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://procps.sourceforge.net
+PKG_MD5SUM:=9532714b6846013ca9898984ba4cd7e0
+
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+PROCPS_APPLETS := \
+ ps free pgrep pkill pmap pwdx skill w \
+ slabtop snice tload top vmstat watch
+
+define Package/procps/Default
+ SECTION:=utils
+ CATEGORY:=Utilities
+ DEPENDS:=+libncurses
+ TITLE:=proc utilities
+ URL:=http://procps.sourceforge.net/
+ MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+endef
+
+define Package/procps
+ $(call Package/procps/Default)
+ MENU:=1
+endef
+
+define Package/procps/description
+ procps is the package that has a bunch of small useful utilities that give
+ information about processes using the /proc filesystem. The package
+ includes the programs ps, top, vmstat, w, kill, free, slabtop, and skill.
+endef
+
+define GenPlugin
+ define Package/$(1)
+ $(call Package/procps/Default)
+ DEPENDS:=procps
+ TITLE:=Applet $(2) from the procps package
+ DEFAULT:=y
+ endef
+
+ define Package/$(1)/description
+ Installs the applet $(2).
+ endef
+endef
+
+$(foreach a,$(PROCPS_APPLETS),$(eval $(call GenPlugin,procps-$(a),$(a))))
+
+MAKE_FLAGS += \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ CPPFLAGS="$(TARGET_CPPFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS)" \
+
+define Package/procps/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/proc/libproc-$(PKG_VERSION).so $(1)/usr/lib/
+endef
+
+AUXDIR_ps := "ps/"
+
+define BuildPlugin
+ define Package/$(1)/install
+ $(INSTALL_DIR) $$(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(AUXDIR_$(2))$(2) $$(1)/usr/bin/
+ endef
+
+ $$(eval $$(call BuildPackage,$(1)))
+endef
+
+$(foreach a,$(PROCPS_APPLETS),$(eval $(call BuildPlugin,procps-$(a),$(a))))
+$(eval $(call BuildPackage,procps))
diff --git a/utils/procps/patches/010-make_fix.patch b/utils/procps/patches/010-make_fix.patch
new file mode 100644
index 000000000..74b1d3cc6
--- /dev/null
+++ b/utils/procps/patches/010-make_fix.patch
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -174,7 +174,7 @@ INSTALL := $(BINFILES) $(MANFILES)
+ # want this rule first, use := on ALL, and ALL not filled in yet
+ all: do_all
+
+--include */module.mk
++-include proc/module.mk ps/module.mk
+
+ do_all: $(ALL)
+
diff --git a/utils/procps/patches/020_hz_fix.patch b/utils/procps/patches/020_hz_fix.patch
new file mode 100644
index 000000000..1954453a4
--- /dev/null
+++ b/utils/procps/patches/020_hz_fix.patch
@@ -0,0 +1,41 @@
+--- a/proc/sysinfo.c
++++ b/proc/sysinfo.c
+@@ -209,7 +209,12 @@ static int check_for_privs(void){
+ return !!rc;
+ }
+
++#if __GNUC__ < 4 || __GNUC_MINOR__ < 3
+ static void init_libproc(void) __attribute__((constructor));
++#else
++static void init_libproc(void) __attribute__((constructor(200)));
++#endif
++
+ static void init_libproc(void){
+ have_privs = check_for_privs();
+ // ought to count CPUs in /proc/stat instead of relying
+--- a/proc/version.c
++++ b/proc/version.c
+@@ -33,7 +33,12 @@ void display_version(void) {
+
+ int linux_version_code;
+
++#if __GNUC__ < 4 || __GNUC_MINOR__ < 3
+ static void init_Linux_version(void) __attribute__((constructor));
++#else
++static void init_Linux_version(void) __attribute__((constructor(100)));
++#endif
++
+ static void init_Linux_version(void) {
+ static struct utsname uts;
+ int x = 0, y = 0, z = 0; /* cleared in case sscanf() < 3 */
+--- a/proc/module.mk
++++ b/proc/module.mk
+@@ -76,7 +76,7 @@ proc/$(ANAME): $(LIBOBJ)
+
+ #proc/$(SONAME): proc/library.map
+ proc/$(SONAME): $(LIBOBJ)
+- $(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -shared -Wl,-soname,$(SONAME) -Wl,--version-script=proc/library.map -o $@ $^ -lc
++ $(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -shared -Wl,-soname,$(SONAME) -Wl,--version-script=proc/library.map -o $@ $(sort $^) -lc
+
+
+ # AUTOMATIC DEPENDENCY GENERATION -- GCC AND GNUMAKE DEPENDENT
diff --git a/utils/procps/patches/030-fix-string-problems.patch b/utils/procps/patches/030-fix-string-problems.patch
new file mode 100644
index 000000000..de3756bb4
--- /dev/null
+++ b/utils/procps/patches/030-fix-string-problems.patch
@@ -0,0 +1,11 @@
+--- a/proc/sig.c
++++ b/proc/sig.c
+@@ -214,7 +214,7 @@ void pretty_print_signals(void){
+ while(++i <= number_of_signals){
+ int n;
+ n = printf("%2d %s", i, signal_number_to_name(i));
+- if(i%7) printf(" \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + n);
++ if(i%7) printf("%s", " \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + n);
+ else printf("\n");
+ }
+ if((i-1)%7) printf("\n");