From a0406c827869abb62b3180bf422be4d827b2e15e Mon Sep 17 00:00:00 2001 From: "Anthony G. Basile" Date: Tue, 28 Jun 2016 13:38:33 -0400 Subject: sys-process/procps: copy from tree --- sys-process/procps/Manifest | 4 + .../files/procps-3.3.10-pmap-unreadable.patch | 60 ++++++++++ .../procps/files/procps-3.3.10-tests-no-tty.patch | 122 +++++++++++++++++++++ .../files/procps-3.3.11-sysctl-manpage.patch | 32 ++++++ .../procps/files/procps-3.3.8-kill-neg-pid.patch | 46 ++++++++ .../procps-3.3.9-sysctl-load-config-files.patch | 14 +++ sys-process/procps/metadata.xml | 16 +++ sys-process/procps/procps-3.3.10-r1.ebuild | 67 +++++++++++ sys-process/procps/procps-3.3.11-r3.ebuild | 76 +++++++++++++ sys-process/procps/procps-3.3.9-r2.ebuild | 61 +++++++++++ 10 files changed, 498 insertions(+) create mode 100644 sys-process/procps/Manifest create mode 100644 sys-process/procps/files/procps-3.3.10-pmap-unreadable.patch create mode 100644 sys-process/procps/files/procps-3.3.10-tests-no-tty.patch create mode 100644 sys-process/procps/files/procps-3.3.11-sysctl-manpage.patch create mode 100644 sys-process/procps/files/procps-3.3.8-kill-neg-pid.patch create mode 100644 sys-process/procps/files/procps-3.3.9-sysctl-load-config-files.patch create mode 100644 sys-process/procps/metadata.xml create mode 100644 sys-process/procps/procps-3.3.10-r1.ebuild create mode 100644 sys-process/procps/procps-3.3.11-r3.ebuild create mode 100644 sys-process/procps/procps-3.3.9-r2.ebuild diff --git a/sys-process/procps/Manifest b/sys-process/procps/Manifest new file mode 100644 index 0000000..5f7395a --- /dev/null +++ b/sys-process/procps/Manifest @@ -0,0 +1,4 @@ +DIST procps-3.3.11-remove_Unix98_output_limits.patch 7582 SHA256 0801b971c630d2d68fe87da0b84842169df38cd88d3854da73b0e9bb45572d29 SHA512 8502264cba62475e3fc218dfde6c8ac375ccbf309843cec3000796e7455f41f287692aafd423f301b6c1a7e5f04c708fe30c2dd305ec3345b7a77b3443e35e55 WHIRLPOOL cbdba6dc94a4bec63f9fae8edc396aa5e59551a1606ed7dee56a65fad2e3d75ea5f391105806262f00103386c47434ec656b55bcefdd565313139355fa31ac61 +DIST procps-ng-3.3.10.tar.xz 657232 SHA256 1759229cd0d97da3d200d5599c4ea82726d61fae9c4b7d3edd52c544962791b7 SHA512 cbfa49e79a88a8e7066a9c316ef089f15fa825c5bfbc22ab8a83f53c6f367a7c586cef9c403e360d373d824c471533a15ddb11cd30c561650e6879fe687e7e4f WHIRLPOOL 723dd1c00578a7fa7e3ff47bed60283c30850cc8ae8069c704ba648792809a67c5944dbfd9b7b0159e0be83215b61e6b71b2d76e65b3619aed54223900ffed9b +DIST procps-ng-3.3.11.tar.xz 815920 SHA256 e9493169a2d2adc0bc045538707310c8e877b385e4e296143b62607d2bb044ed SHA512 8ab4770adeba4c7e3cf75bc189278cf7a162ece0f23b862e7f726faccee11bd4524aec622b895f3b4e0b272a739a327a01e91f48834feea513544f0515b250df WHIRLPOOL 1da50ec4e8be9d76086a1112b00eea0daa39a7e579e846b92c12fea23a8303a7287e2d32d41feae93aad7b138768852b004544731fff882236ee3bd9511154ff +DIST procps-ng-3.3.9.tar.xz 560812 SHA256 00f0cb0fadf968ddf605b0ef119846af07386629244d4f3da711a2cecf4e8663 SHA512 62c7270aa48b4346a3198f306d1cb8474f64650bfb67e8cc6c4d41923e50c31c95b3a0367a464823fb50a6137ec0c6352006292ac85b50caf730ec8ec35eb553 WHIRLPOOL dac97433a87badd40b46e3155bf0e30652ed2961a41bc8fca074357431301d250632215512ad752634c9c4f3273a1c75caba1ecf4f5a3c510bee155660dde166 diff --git a/sys-process/procps/files/procps-3.3.10-pmap-unreadable.patch b/sys-process/procps/files/procps-3.3.10-pmap-unreadable.patch new file mode 100644 index 0000000..6976748 --- /dev/null +++ b/sys-process/procps/files/procps-3.3.10-pmap-unreadable.patch @@ -0,0 +1,60 @@ +https://bugs.gentoo.org/404389 + +From 92071e963e6ff50f0e221dde286f3229267b2ff9 Mon Sep 17 00:00:00 2001 +From: Craig Small +Date: Sat, 24 Jan 2015 18:53:29 +1100 +Subject: [PATCH] pmap: print process even if smaps unreadable + +pmap would previously print the process name if +/proc/PID/smaps could be opened, even if subsequent +reads failed. This actually occurs with other users +PIDs. + +Kernel 3.18rc1 introduced a change where the file could +not been opened, meaning pmap -X 1 previously showed +the process name and nothing else but NOW shows nothing +make check failed because of this. + +This change prints the process name even before trying to open +the file, returning it to previous behaviour. +Thanks to Vincent Bernat for some analysis. + +References: + https://bugs.debian.org/775624 + https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=29a40ace841cba9b661711f042d1821cdc4ad47c + +Signed-off-by: Craig Small +--- + NEWS | 1 + + pmap.c | 8 ++++---- + 2 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/pmap.c b/pmap.c +index c83617c..17e0e30 100644 +--- a/pmap.c ++++ b/pmap.c +@@ -533,6 +533,10 @@ static int one_proc(proc_t * p) + */ + int maxcmd = 0xfffff; + ++ escape_command(cmdbuf, p, sizeof cmdbuf, &maxcmd, ++ ESC_ARGS | ESC_BRACKETS); ++ printf("%u: %s\n", p->tgid, cmdbuf); ++ + if (x_option || X_option || c_option) { + sprintf(buf, "/proc/%u/smaps", p->tgid); + if ((fp = fopen(buf, "r")) == NULL) +@@ -543,10 +547,6 @@ static int one_proc(proc_t * p) + return 1; + } + +- escape_command(cmdbuf, p, sizeof cmdbuf, &maxcmd, +- ESC_ARGS | ESC_BRACKETS); +- printf("%u: %s\n", p->tgid, cmdbuf); +- + if (X_option || c_option) { + print_extended_maps(fp); + return 0; +-- +2.4.0 + diff --git a/sys-process/procps/files/procps-3.3.10-tests-no-tty.patch b/sys-process/procps/files/procps-3.3.10-tests-no-tty.patch new file mode 100644 index 0000000..7a774e5 --- /dev/null +++ b/sys-process/procps/files/procps-3.3.10-tests-no-tty.patch @@ -0,0 +1,122 @@ +https://bugs.gentoo.org/461302 + +From 4050148a4533e8a79cef0d7dcd0c058d78c48a31 Mon Sep 17 00:00:00 2001 +From: Craig Small +Date: Sat, 9 May 2015 17:48:12 +1000 +Subject: [PATCH] Fix some sched and tty tests + +The ps sched test has been disabled. There are too many +odd build farms this fails in strange ways. + +Other odd build farms have no tty and so some tests check +for no tty and skip if not found. +--- + testsuite/config/unix.exp | 9 +++++++++ + testsuite/pgrep.test/pgrep.exp | 11 +++++++---- + testsuite/pkill.test/pkill.exp | 3 +-- + testsuite/ps.test/ps_output.exp | 2 -- + testsuite/ps.test/ps_sched_batch.exp | 16 +++++++++------- + 5 files changed, 26 insertions(+), 15 deletions(-) + +diff --git a/testsuite/config/unix.exp b/testsuite/config/unix.exp +index 522efb1..1318e9a 100644 +--- a/testsuite/config/unix.exp ++++ b/testsuite/config/unix.exp +@@ -146,3 +146,12 @@ proc kill_testproc { } { + kill_process $testproc2_pid + file delete $testproc_path + } ++ ++proc get_tty {} { ++ if { [catch { set raw_tty [ exec tty ] } msg]} { ++ warning "No TTY found" ++ return "" ++ } ++ regexp "/dev/(.+)" $raw_tty > tty ++ return $tty ++} +diff --git a/testsuite/pgrep.test/pgrep.exp b/testsuite/pgrep.test/pgrep.exp +index 152b6ec..1c6cec6 100644 +--- a/testsuite/pgrep.test/pgrep.exp ++++ b/testsuite/pgrep.test/pgrep.exp +@@ -9,8 +9,7 @@ set not_uid [ expr { $uid + 1 } ] + set gid [ exec id -g ] + set not_gid [ expr { $gid + 1 } ] + set ps "${topdir}ps/pscommand" +-set raw_tty [ exec tty ] +-regexp "/dev/(.+)" $raw_tty > tty ++set tty [ get_tty ] + + set test "pgprep with no arguments" + spawn $pgrep +@@ -80,8 +79,12 @@ spawn $pgrep -s 1 $testproc_comm + expect_blank "$test" + + set test "pgrep matches on tty" +-spawn $pgrep -t $tty $testproc_comm +-expect_pass "$test" "^$testproc1_pid\\s+$testproc2_pid\\s*$" ++if { $tty == "" } { ++ untested "$test" ++} else { ++ spawn $pgrep -t $tty $testproc_comm ++ expect_pass "$test" "^$testproc1_pid\\s+$testproc2_pid\\s*$" ++} + + set test "pgrep doesn't match with bogus tty" + spawn $pgrep -t glass $testproc_comm +diff --git a/testsuite/pkill.test/pkill.exp b/testsuite/pkill.test/pkill.exp +index 5eece7d..c583cbe 100644 +--- a/testsuite/pkill.test/pkill.exp ++++ b/testsuite/pkill.test/pkill.exp +@@ -9,8 +9,7 @@ set not_uid [ expr { $uid + 1 } ] + set gid [ exec id -g ] + set not_gid [ expr { $gid + 1 } ] + set ps "${topdir}ps/pscommand" +-set raw_tty [ exec tty ] +-regexp "/dev/(.+)" $raw_tty > tty ++set tty [ get_tty ] + + set test "pkill with no arguments" + spawn $pkill +diff --git a/testsuite/ps.test/ps_output.exp b/testsuite/ps.test/ps_output.exp +index 3a6f3d8..1b2c097 100644 +--- a/testsuite/ps.test/ps_output.exp ++++ b/testsuite/ps.test/ps_output.exp +@@ -9,8 +9,6 @@ set uid [ exec id -u ] + set not_uid [ expr { $uid + 1 } ] + set gid [ exec id -g ] + set not_gid [ expr { $gid + 1 } ] +-set raw_tty [ exec tty ] +-regexp "/dev/(.+)" $raw_tty > tty + + # All the fields + # Cannot do args,cmd,comm +diff --git a/testsuite/ps.test/ps_sched_batch.exp b/testsuite/ps.test/ps_sched_batch.exp +index e0c31ff..c58b9a2 100644 +--- a/testsuite/ps.test/ps_sched_batch.exp ++++ b/testsuite/ps.test/ps_sched_batch.exp +@@ -1,12 +1,14 @@ + # + # check the ps SCHED_BATCH scheduler policy output + # +-set ps "${topdir}ps/pscommand" +-set schedbatch "${topdir}testsuite/test-schedbatch" +- +-spawn $schedbatch 18 +- ++# This is too flaky on certain build systems to be ++# reliable - CS ++#set ps "${topdir}ps/pscommand" ++#set schedbatch "${topdir}testsuite/test-schedbatch" ++# ++#spawn $schedbatch 18 ++# + set test "ps SCHED_BATCH scheduler" +-spawn $ps --no-header -o comm,cls,nice -a +-expect_pass "$test" "\\s+test-schedbatch\\s+B\\s+18" ++#spawn $ps --no-header -o comm,cls,nice -a ++#expect_pass "$test" "\\s+test-schedbatch\\s+B\\s+18" + untested "$test" +-- +2.4.0 + diff --git a/sys-process/procps/files/procps-3.3.11-sysctl-manpage.patch b/sys-process/procps/files/procps-3.3.11-sysctl-manpage.patch new file mode 100644 index 0000000..3523aad --- /dev/null +++ b/sys-process/procps/files/procps-3.3.11-sysctl-manpage.patch @@ -0,0 +1,32 @@ +--- procps-ng-3.3.11-orig/sysctl.8 ++++ procps-ng-3.3.11/sysctl.8 +@@ -123,21 +123,21 @@ + \fB\-V\fR, \fB\-\-version\fR + Display version information and exit. + .SH EXAMPLES +-/sbin/sysctl \-a ++/usr/sbin/sysctl \-a + .br +-/sbin/sysctl \-n kernel.hostname ++/usr/sbin/sysctl \-n kernel.hostname + .br +-/sbin/sysctl \-w kernel.domainname="example.com" ++/usr/sbin/sysctl \-w kernel.domainname="example.com" + .br +-/sbin/sysctl \-p/etc/sysctl.conf ++/usr/sbin/sysctl \-p/etc/sysctl.conf + .br +-/sbin/sysctl \-a \-\-pattern forward ++/usr/sbin/sysctl \-a \-\-pattern forward + .br +-/sbin/sysctl \-a \-\-pattern forward$ ++/usr/sbin/sysctl \-a \-\-pattern forward$ + .br +-/sbin/sysctl \-a \-\-pattern 'net.ipv4.conf.(eth|wlan)0.arp' ++/usr/sbin/sysctl \-a \-\-pattern 'net.ipv4.conf.(eth|wlan)0.arp' + .br +-/sbin/sysctl \-\-system \-\-pattern '^net.ipv6' ++/usr/sbin/sysctl \-\-system \-\-pattern '^net.ipv6' + .SH DEPRECATED PARAMETERS + The + .B base_reachable_time diff --git a/sys-process/procps/files/procps-3.3.8-kill-neg-pid.patch b/sys-process/procps/files/procps-3.3.8-kill-neg-pid.patch new file mode 100644 index 0000000..0039748 --- /dev/null +++ b/sys-process/procps/files/procps-3.3.8-kill-neg-pid.patch @@ -0,0 +1,46 @@ +From 396cbc4cf36166217d877e2ff7e0a290758b0bc2 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Thu, 27 Jun 2013 18:37:17 -0400 +Subject: [PATCH] kill: fix -PID handling + +Commit 19b6f48990b02aeca211b480625b95b2033c1017 tried to fix -PID +handling, but the new logic ends up skipping over the arg. This is +because getopt increments optind after it processed the -PID (even +though it was an unknown option). We need to decrement it by one +so the loop at the end of the code will process it for us. + +I also fixed some whitespace errors in that same commit. + +URL: http://code.google.com/p/chromium/issues/detail?id=255209 +Signed-off-by: Mike Frysinger +--- + skill.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/skill.c b/skill.c +index fb57305..074c5d7 100644 +--- a/skill.c ++++ b/skill.c +@@ -390,7 +390,7 @@ static void __attribute__ ((__noreturn__)) + else + sigopt++; + +- opterr=0; /* suppress errors on -123 */ ++ opterr = 0; /* suppress errors on -123 */ + while (loop == 1 && (i = getopt_long(argc, argv, "l::Ls:hV", longopts, NULL)) != -1) + switch (i) { + case 'l': +@@ -423,7 +423,9 @@ static void __attribute__ ((__noreturn__)) + xwarnx(_("invalid argument %c"), optopt); + kill_usage(stderr); + } +- loop=0; ++ /* We need to back off by one since getopt() ate the -PID */ ++ --optind; ++ loop = 0; + break; + default: + kill_usage(stderr); +-- +1.8.2.1 + diff --git a/sys-process/procps/files/procps-3.3.9-sysctl-load-config-files.patch b/sys-process/procps/files/procps-3.3.9-sysctl-load-config-files.patch new file mode 100644 index 0000000..c6b0a4a --- /dev/null +++ b/sys-process/procps/files/procps-3.3.9-sysctl-load-config-files.patch @@ -0,0 +1,14 @@ +http://bugs.gentoo.org/520314 +http://gitorious.org/procps/procps/commit/7f6efed9bb85d1e212e06985ea3e06720f6ca949 + +--- sysctl.c ++++ sysctl.c +@@ -640,7 +640,7 @@ + } + + +- if (stat(DEFAULT_PRELOAD, &ts) < 0 && S_ISREG(ts.st_mode)) { ++ if (stat(DEFAULT_PRELOAD, &ts) == 0 && S_ISREG(ts.st_mode)) { + if (!Quiet) + printf(_("* Applying %s ...\n"), DEFAULT_PRELOAD); + rc |= Preload(DEFAULT_PRELOAD); diff --git a/sys-process/procps/metadata.xml b/sys-process/procps/metadata.xml new file mode 100644 index 0000000..a21aac9 --- /dev/null +++ b/sys-process/procps/metadata.xml @@ -0,0 +1,16 @@ + + + + + base-system@gentoo.org + Gentoo Base System + + + Build the kill program + Enables new startup defaults of top. Keeps old defaults if disabled + Build programs that use ncurses: top, slabtop, watch + + + procps + + diff --git a/sys-process/procps/procps-3.3.10-r1.ebuild b/sys-process/procps/procps-3.3.10-r1.ebuild new file mode 100644 index 0000000..f254f34 --- /dev/null +++ b/sys-process/procps/procps-3.3.10-r1.ebuild @@ -0,0 +1,67 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +inherit eutils toolchain-funcs + +DESCRIPTION="standard informational utilities and process-handling tools" +# http://packages.debian.org/sid/procps +HOMEPAGE="http://procps.sourceforge.net/ https://gitlab.com/procps-ng/procps" +# SRC_URI="mirror://debian/pool/main/p/${PN}/${PN}_${PV}.orig.tar.xz" +#FEDORA_HASH="0980646fa25e0be58f7afb6b98f79d74" +#SRC_URI="http://pkgs.fedoraproject.org/repo/pkgs/${PN}-ng/${PN}-ng-${PV}.tar.xz/${FEDORA_HASH}/${PN}-ng-${PV}.tar.xz" +SRC_URI="https://dev.gentoo.org/~polynomial-c/${PN}-ng-${PV}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~ia64-linux ~x86-linux" +IUSE="+ncurses modern-top nls selinux static-libs systemd test unicode" + +RDEPEND="!=sys-libs/ncurses-5.7-r7:=[unicode?] ) + selinux? ( sys-libs/libselinux ) + systemd? ( >=sys-apps/systemd-209 )" +DEPEND="${RDEPEND} + ncurses? ( virtual/pkgconfig ) + systemd? ( virtual/pkgconfig ) + test? ( dev-util/dejagnu )" + +S=${WORKDIR}/${PN}-ng-${PV} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-3.3.8-kill-neg-pid.patch # http://crbug.com/255209 + epatch "${FILESDIR}"/${P}-pmap-unreadable.patch #404389 + epatch "${FILESDIR}"/${P}-tests-no-tty.patch #461302 + sed -i -e 's:systemd-login:systemd:' configure || die #501306 +} + +src_configure() { + econf \ + --exec-prefix="${EPREFIX}" \ + --docdir='$(datarootdir)'/doc/${PF} \ + $(use_enable modern-top) \ + $(use_with ncurses) \ + $(use_enable nls) \ + $(use_enable selinux libselinux) \ + $(use_enable static-libs static) \ + $(use_with systemd) \ + $(use_enable unicode watch8bit) +} + +src_test() { + emake check