Signed-off-by: Gergely Kiss <mail.gery@gmail.com> Tested-by: Gergely Kiss <mail.gery@gmail.com>lilik-openwrt-22.03
@ -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)) |
@ -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) | |||
@ -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 |
@ -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"); |