diff --git a/DEVELOPERS b/DEVELOPERS index 292b919137..c54b6b5c09 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -965,6 +965,9 @@ N: Filip Skoneczny F: board/sinovoip/m1-plus F: configs/bananapi_m1_plus_defconfig +N: Florian Fainelli +F: package/cpulimit/ + N: Floris Bos F: package/ipmitool/ F: package/odhcploc/ diff --git a/package/Config.in b/package/Config.in index befeadc27b..8892134133 100644 --- a/package/Config.in +++ b/package/Config.in @@ -2522,6 +2522,7 @@ menu "System tools" source "package/circus/Config.in" source "package/containerd/Config.in" source "package/coreutils/Config.in" + source "package/cpulimit/Config.in" source "package/cpuload/Config.in" source "package/daemon/Config.in" source "package/dc3dd/Config.in" diff --git a/package/cpulimit/0001-Fix-crash-and-compiler-warnings.patch b/package/cpulimit/0001-Fix-crash-and-compiler-warnings.patch new file mode 100644 index 0000000000..cb170b440b --- /dev/null +++ b/package/cpulimit/0001-Fix-crash-and-compiler-warnings.patch @@ -0,0 +1,57 @@ +From d1f42082590bed42cbf6ef1bf37e936df1afbf6b Mon Sep 17 00:00:00 2001 +From: Tobias Tangemann +Date: Thu, 9 Jul 2015 23:51:07 +0200 +Subject: [PATCH] Fix crash (and compiler warnings) + +[Upstream: https://github.com/opsengine/cpulimit/pull/48] +Signed-off-by: Florian Fainelli +--- + src/cpulimit.c | 2 +- + src/process_group.c | 4 ++++ + tests/process_iterator_test.c | 2 +- + 3 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/cpulimit.c b/src/cpulimit.c +index 50eabeacf214..42d7ca280738 100644 +--- a/src/cpulimit.c ++++ b/src/cpulimit.c +@@ -43,7 +43,7 @@ + #include + #include + +-#ifdef __APPLE__ || __FREEBSD__ ++#if defined(__APPLE__) || defined(__FREEBSD__) + #include + #endif + +diff --git a/src/process_group.c b/src/process_group.c +index 06d73a6f3541..c9e148cd1b60 100644 +--- a/src/process_group.c ++++ b/src/process_group.c +@@ -25,6 +25,10 @@ + #include + #include + ++#if defined(__APPLE__) || defined(__FREEBSD__) ++#include ++#endif ++ + #include + + #include "process_iterator.h" +diff --git a/tests/process_iterator_test.c b/tests/process_iterator_test.c +index 16151967eb24..1bfc167ba895 100644 +--- a/tests/process_iterator_test.c ++++ b/tests/process_iterator_test.c +@@ -28,7 +28,7 @@ + #include + #include + +-#ifdef __APPLE__ || __FREEBSD__ ++#if defined(__APPLE__) || defined(__FREEBSD__) + #include + #endif + +-- +2.25.1 + diff --git a/package/cpulimit/0002-Remove-sys-sysctl.h-and-add-missing-libgen.h-include.patch b/package/cpulimit/0002-Remove-sys-sysctl.h-and-add-missing-libgen.h-include.patch new file mode 100644 index 0000000000..fa32e3ede2 --- /dev/null +++ b/package/cpulimit/0002-Remove-sys-sysctl.h-and-add-missing-libgen.h-include.patch @@ -0,0 +1,42 @@ +From 4c1e021037550c437c7da3a276b95b5bf79e967e Mon Sep 17 00:00:00 2001 +From: Portia +Date: Sun, 1 May 2022 12:43:35 +1000 +Subject: [PATCH] Remove sys/sysctl.h and add missing libgen.h include + +- sys/sysctl.h has been deprecated and should be removed +- Adds missing libgen.h include when calling basename() + +Signed-off-by: Florian Fainelli +[Upstream: https://github.com/opsengine/cpulimit/pull/109] +--- + src/cpulimit.c | 1 - + src/process_group.c | 1 + + 2 files changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/cpulimit.c b/src/cpulimit.c +index 50eabeacf214..5b0ec4978f02 100644 +--- a/src/cpulimit.c ++++ b/src/cpulimit.c +@@ -38,7 +38,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff --git a/src/process_group.c b/src/process_group.c +index 06d73a6f3541..d4f6fab3385c 100644 +--- a/src/process_group.c ++++ b/src/process_group.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + #include + +-- +2.25.1 + diff --git a/package/cpulimit/Config.in b/package/cpulimit/Config.in new file mode 100644 index 0000000000..6ff24f8381 --- /dev/null +++ b/package/cpulimit/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_CPULIMIT + bool "cpulimit" + depends on BR2_USE_MMU # fork() + help + Cpulimit is a tool which limits the CPU usage of a process + (expressed in percentage, not in CPU time) + + https://github.com/opsengine/cpulimit diff --git a/package/cpulimit/cpulimit.hash b/package/cpulimit/cpulimit.hash new file mode 100644 index 0000000000..c6ef4b2e69 --- /dev/null +++ b/package/cpulimit/cpulimit.hash @@ -0,0 +1,3 @@ +# sha256sum locally computed: +sha256 64312f9ac569ddcadb615593cd002c94b76e93a0d4625d3ce1abb49e08e2c2da cpulimit-0.2.tar.gz +sha256 920489ca9da706d842870701155e70a101315ba0783cff39765d7e15e0916a4a LICENSE diff --git a/package/cpulimit/cpulimit.mk b/package/cpulimit/cpulimit.mk new file mode 100644 index 0000000000..a864685a84 --- /dev/null +++ b/package/cpulimit/cpulimit.mk @@ -0,0 +1,23 @@ +################################################################################ +# +# cpulimit +# +################################################################################ + +CPULIMIT_VERSION = 0.2 +CPULIMIT_SITE = $(call github,opsengine,cpulimit,v$(CPULIMIT_VERSION)) +CPULIMIT_LICENSE = GPL-2.0+ +CPULIMIT_LICENSE_FILES = LICENSE + +define CPULIMIT_BUILD_CMDS + $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ + CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" \ + LDLIBS="$(TARGET_LDFLAGS)" +endef + +define CPULIMIT_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/src/cpulimit \ + $(TARGET_DIR)/usr/bin/cpulimit +endef + +$(eval $(generic-package))