[arch-commits] Commit in procps-ng/repos (4 files)

Bartłomiej Piotrowski bpiotrowski at archlinux.org
Fri May 22 12:44:06 UTC 2020


    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 <bpiotrowski at archlinux.org>
+# Contributor: Gaetan Bisson <bisson at archlinux.org>
+# Contributor: Eric Bélanger <eric at 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 <csmall at 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
+}



More information about the arch-commits mailing list