Date: Friday, May 22, 2020 @ 12:42:21 Author: bpiotrowski Revision: 387422
archrelease: copy trunk to testing-x86_64 Added: procps-ng/repos/testing-x86_64/ procps-ng/repos/testing-x86_64/PKGBUILD (from rev 387421, procps-ng/trunk/PKGBUILD) procps-ng/repos/testing-x86_64/fs66093.patch (from rev 387421, procps-ng/trunk/fs66093.patch) procps-ng/repos/testing-x86_64/install (from rev 387421, procps-ng/trunk/install) ---------------+ PKGBUILD | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ fs66093.patch | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ install | 14 +++++++++++++ 3 files changed, 126 insertions(+) Copied: procps-ng/repos/testing-x86_64/PKGBUILD (from rev 387421, procps-ng/trunk/PKGBUILD) =================================================================== --- testing-x86_64/PKGBUILD (rev 0) +++ testing-x86_64/PKGBUILD 2020-05-22 12:42:21 UTC (rev 387422) @@ -0,0 +1,52 @@ +# Maintainer: Bartłomiej Piotrowski <bpiotrow...@archlinux.org> +# Contributor: Gaetan Bisson <bis...@archlinux.org> +# Contributor: Eric Bélanger <e...@archlinux.org> + +pkgname=procps-ng +pkgver=3.3.16 +pkgrel=2 +pkgdesc='Utilities for monitoring your system and its processes' +url='https://gitlab.com/procps-ng/procps' +license=(GPL LGPL) +arch=(x86_64) +depends=(ncurses systemd-libs) +makedepends=(systemd) +conflicts=(procps sysvinit-tools) +provides=(procps sysvinit-tools) +replaces=(procps sysvinit-tools) +install=install +source=(https://downloads.sourceforge.net/project/$pkgname/Production/${pkgname}-${pkgver}.tar.xz + fs66093.patch) +sha256sums=('925eacd65dedcf9c98eb94e8978bbfb63f5de37294cc1047d81462ed477a20af' + '48eb1f6e1b84d9dfec27556771c05f6a02880aefbe774a3db71bee0c35228992') + +prepare() { + cd $pkgname-$pkgver + sed 's:<ncursesw/:<:g' -i watch.c + + # pgrep: check sanity of SC_ARG_MAX + # https://bugs.archlinux.org/task/66093 + patch -p1 -i ../fs66093.patch +} + +build() { + cd $pkgname-$pkgver + ./configure \ + --prefix=/usr \ + --exec-prefix=/ \ + --sysconfdir=/etc \ + --libdir=/usr/lib \ + --bindir=/usr/bin \ + --sbindir=/usr/bin \ + --enable-watch8bit \ + --with-systemd \ + --disable-modern-top \ + --disable-kill + + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install +} Copied: procps-ng/repos/testing-x86_64/fs66093.patch (from rev 387421, procps-ng/trunk/fs66093.patch) =================================================================== --- testing-x86_64/fs66093.patch (rev 0) +++ testing-x86_64/fs66093.patch 2020-05-22 12:42:21 UTC (rev 387422) @@ -0,0 +1,60 @@ +From bb96fc42956c9ed926a1b958ab715f8b4a663dec Mon Sep 17 00:00:00 2001 +From: Craig Small <csm...@dropbear.xyz> +Date: Sun, 5 Jan 2020 15:05:55 +1100 +Subject: [PATCH] pgrep: check sanity of SC_ARG_MAX + +A kernel change means we cannot trust what sysconf(SC_ARG_MAX) +returns. We clamp it so its more than 4096 and less than 128*1024 +which is what findutils does. + +References: + procps-ng/procps#152 + https://git.savannah.gnu.org/cgit/findutils.git/tree/lib/buildcmd.c#n535 + https://lwn.net/Articles/727862/ +--- + pgrep.c | 22 +++++++++++++++++++++- + 1 file changed, 21 insertions(+), 1 deletion(-) + +diff --git a/pgrep.c b/pgrep.c +index 01563db..bde7448 100644 +--- a/pgrep.c ++++ b/pgrep.c +@@ -485,6 +485,26 @@ static regex_t * do_regcomp (void) + return preg; + } + ++/* ++ * SC_ARG_MAX used to return the maximum size a command line can be ++ * however changes to the kernel mean this can be bigger than we can ++ * alloc. Clamp it to 128kB like xargs and friends do ++ * Should also not be smaller than POSIX_ARG_MAX which is 4096 ++ */ ++static size_t get_arg_max(void) ++{ ++#define MIN_ARG_SIZE 4096u ++#define MAX_ARG_SIZE (128u * 1024u) ++ ++ size_t val = sysconf(_SC_ARG_MAX); ++ ++ if (val < MIN_ARG_SIZE) ++ val = MIN_ARG_SIZE; ++ if (val > MAX_ARG_SIZE) ++ val = MAX_ARG_SIZE; ++ ++ return val; ++} + static struct el * select_procs (int *num) + { + PROCTAB *ptp; +@@ -497,7 +517,7 @@ static struct el * select_procs (int *num) + regex_t *preg; + pid_t myself = getpid(); + struct el *list = NULL; +- long cmdlen = sysconf(_SC_ARG_MAX) * sizeof(char); ++ long cmdlen = get_arg_max() * sizeof(char); + char *cmdline = xmalloc(cmdlen); + char *cmdsearch = xmalloc(cmdlen); + char *cmdoutput = xmalloc(cmdlen); +-- +2.26.2 + Copied: procps-ng/repos/testing-x86_64/install (from rev 387421, procps-ng/trunk/install) =================================================================== --- testing-x86_64/install (rev 0) +++ testing-x86_64/install 2020-05-22 12:42:21 UTC (rev 387422) @@ -0,0 +1,14 @@ +post_upgrade() { + if [[ $(vercmp $2 3.3.8-3) = -1 ]]; then + cat <<EOF + +==> The file /etc/sysctl.conf has been removed from this +==> package, as all its settings are now kernel defaults. + +==> If you had customized it, you need to rename it as +==> /etc/sysctl.d/99-sysctl.conf since from version 207 on +==> systemd only applies settings from /etc/sysctl.d/* . + +EOF + fi +}