summaryrefslogtreecommitdiff
path: root/sys-process/procps
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /sys-process/procps
reinit the tree, so we can have metadata
Diffstat (limited to 'sys-process/procps')
-rw-r--r--sys-process/procps/Manifest11
-rw-r--r--sys-process/procps/files/procps-3.3.11-sysctl-manpage.patch32
-rw-r--r--sys-process/procps/files/procps-3.3.12-elogind.patch265
-rw-r--r--sys-process/procps/files/procps-3.3.12-proc-tests.patch47
-rw-r--r--sys-process/procps/files/procps-3.3.12-strtod_nol_err.patch110
-rw-r--r--sys-process/procps/files/procps-3.3.8-kill-neg-pid.patch46
-rw-r--r--sys-process/procps/metadata.xml17
-rw-r--r--sys-process/procps/procps-3.3.12-r1.ebuild91
-rw-r--r--sys-process/procps/procps-3.3.12.ebuild78
9 files changed, 697 insertions, 0 deletions
diff --git a/sys-process/procps/Manifest b/sys-process/procps/Manifest
new file mode 100644
index 000000000000..2b9677eb29d3
--- /dev/null
+++ b/sys-process/procps/Manifest
@@ -0,0 +1,11 @@
+AUX procps-3.3.11-sysctl-manpage.patch 941 SHA256 1582675083410838e844e0f4f5b2da5835bb9653aadba42bea0b0f7002dc13d4 SHA512 df8b233bde879fa675742baf8b38d43dd7c306fe52013ace715dff02c126d8c5ea12bd93087da10f5e722294eef59577b264309cbdc6f9f3727fa7111c5db313 WHIRLPOOL dce1e4758eac97eee568acfaeb324b980c7786ffe021ee542b5495c1807e35549c45af03c897a5063f8d8f48395189c29ab014b82ee0961bf792d3ff6e739c8e
+AUX procps-3.3.12-elogind.patch 8365 SHA256 6e5a2da7d9601a435c91d985e631015242b9a6763967f73ae4215b50b2f8dfea SHA512 090f523c1b06e60cb82e4b73a29fa192b164923315dcba0d1511e454ee06d0616ba4a2c3b2b5a62048fb289ff4ae81c36920c77177cce09ceda06be019efa271 WHIRLPOOL 92c487a35d9e5342a9cde0f025e8a72c47ad61e5b7abcfeefbb918862c676604e0c023d46087d3c6458e7e4ea2f3c05558ba7483c5a5d638cf80bc8fb70baa3b
+AUX procps-3.3.12-proc-tests.patch 1835 SHA256 a5e2be31c76f03be1ffe9c751286a617f94ede14173626e36bef793dcadec821 SHA512 ecc94717366a314ac4bba550b84472555f7b217be2174b68778d3364e16586ab9c21756d2041e2ac9d1449856fcd6aa691d8bd1a8558b4653d068dc1d59c2c71 WHIRLPOOL a698f3cdfcbcd9ea797febe92f6f185b424cc81d98aca6a734aafaf398901ac8b83a6be00d90dc727c23a7a39f6f8e344414fd1f8897826a4d5e9417e998291f
+AUX procps-3.3.12-strtod_nol_err.patch 3328 SHA256 37e5343596b99c609c3b64f763ad6b9c18d67ef1f3be9386b46fc9520055d21c SHA512 00618dcf62dd2c054060eb9cef223ab8d7d93a53649fc8d0cc8251d5763e98deca97433d0017f0118dcce9d4c920ccf0a60998865efb569544e1fa47cb1c11b3 WHIRLPOOL 6f5a6e2f1ebf137df3e71da4410b076323a119691bafd834a9d9e82e1939f53455f7d65a91c99a3bc362edee13fc19f5a9cb772858c807078b6451a4ba33172f
+AUX procps-3.3.8-kill-neg-pid.patch 1446 SHA256 847c21f6619c7aa0f2847726a17595f986ec2fe0f361d95e17812639abe32a79 SHA512 3ed4e83d81f7dd574ff68bbcae9ad9f8649a39d46a17de5fd4297f215d8f70cd28e415b1d3c7b5142e7719343af28f4b393061a60eb012caece81dfe5ff6c271 WHIRLPOOL cf452118312e60a0bab7a4ec87bed9a9d2f5fb8bb563769a0430f11c72348e5be79bdfc031f67f4e97e0bf9b32f6ccd1ac590f392c95ee935b77b857ce1b1739
+DIST procps-ng-3.3.12.tar.xz 845484 SHA256 6ed65ab86318f37904e8f9014415a098bec5bc53653e5d9ab404f95ca5e1a7d4 SHA512 ea816740ff72cc53d99b5d2e78a511b627ea5b295e0efff67605c56d1ab075abc6b0e2da3df4facbfe903fc9d679e892d351b6884a966d37c6f4bfd9141a924b WHIRLPOOL f6ff034c09224fb819cdadc0fc6e456a5e11bffa298a7d005a1089378a6bf19c464bb09d278618daecebcd02228d831efbe4d65a4f9f850f83c9dd030a3ab98b
+EBUILD procps-3.3.12-r1.ebuild 2337 SHA256 aae91fcaafd02224db329e978a3151784f84641bcfa86960a344196e1b8395f3 SHA512 254401e697cc8017988ab42b3a89dc1986205e09145f9e03ca7a1e5c6114bbfe6edc8ebc3df1d4a6067ba61e4abcb07b191493ebe44b78124d369d8b613be09b WHIRLPOOL 9860db8d3c69e0043cfb5eb3b06ea8a859ee82f32db3eb2bd3b64e920075e87f164a3d491158792be3d9534c5cb0101feb002d3c6e8a0bf9b31811074deb4e1d
+EBUILD procps-3.3.12.ebuild 1984 SHA256 73e63ee47e31fb6f03033ba6be5c03ee17f4ce79ab9cd028a7069049e42839c4 SHA512 ebdf9a402bf2682892fc8b2628da524fd85d7fc1c0593b6c4e4e742743bcedfc643d2076863e863a35cbb894bd8d37a0771c58f1eaeb6447a367ad5f445cf5db WHIRLPOOL fae16c7eac05745db7b8a874ff73c76b3216ea1e2da480041786bb53d937443d806235969f10da8e2e73952c9910240adf70ad868683df432cd3df2512ac1886
+MISC ChangeLog 10811 SHA256 0654dbe31870fb28689a46ec945e44de4b797411d9f14ddc7e05a8fbe67e7d1e SHA512 df628cdafa0dc59bd606eaf21f7f6a7ffe1abca9c3f3cead560276e820afe233d7a8cbce64c8c7997569f7f3f76575206f767b11df14d738da10ec822ebf0d7f WHIRLPOOL 03b6eaf01e53ef5557fd655a83426d5b27d84a0abbca6b98020389476f82e1167aa3d93ec8fe68199f5a413fce80c50bf13076f050737b36200700040b3d42f6
+MISC ChangeLog-2015 35845 SHA256 f4d801d61ca12a455950cfdded1b86257b5bfa68a7d23586d4ae5a7ee23cffcc SHA512 0206dd361fd68c3e16aee9998d4950928add17d47f7159c5cd75cab0aba614f88d4c44a9d9187e6aed33ffff5b57fcf5c918ef3caf4822f6fe51f1435d95710a WHIRLPOOL d84586d47079ec30f5569da1925e2aafc1e54d279e6561ebaf2bb1d010725bc695c859ff78dd9731c40f04d51dd2a6e590e389022c5219dd97a3d2ee5293e5c5
+MISC metadata.xml 653 SHA256 5a5addeac4cb1a4b0d29a9d812901c3f7de204aeac638422b3e770b1501fdc4b SHA512 d98bc7ed5e5437134c30db0a2ecbe4f430143aad2b91775e128fe735ddc39801e8d8fe62905cabbd8a41c4d07698110605b74056296282a74ac7622a09272703 WHIRLPOOL 353a06c6172e142f3e6e68537a8b9c2edd15303c31103cc622a531878a4584dd7fa3cb844ea12294f038fdc9450fe36c5548cfd0d20773f8494dadb122d0e9a0
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 000000000000..3523aad4ba46
--- /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.12-elogind.patch b/sys-process/procps/files/procps-3.3.12-elogind.patch
new file mode 100644
index 000000000000..07c165310ce4
--- /dev/null
+++ b/sys-process/procps/files/procps-3.3.12-elogind.patch
@@ -0,0 +1,265 @@
+--- procps-ng-3.3.12/configure 2016-07-10 07:32:09.862265237 +0200
++++ procps-ng-3.3.12/configure 2016-07-10 07:32:09.862265237 +0200
+@@ -650,6 +650,10 @@
+ BUILD_KILL_TRUE
+ BUILD_PIDOF_FALSE
+ BUILD_PIDOF_TRUE
++WITH_ELOGIND_FALSE
++WITH_ELOGIND_TRUE
++ELOGIND_LIBS
++ELOGIND_CFLAGS
+ WITH_SYSTEMD_FALSE
+ WITH_SYSTEMD_TRUE
+ SYSTEMD_LIBS
+@@ -815,6 +819,7 @@
+ enable_libselinux
+ with_ncurses
+ with_systemd
++with_elogind
+ enable_pidof
+ enable_kill
+ enable_skill
+@@ -845,7 +850,9 @@
+ NCURSESW_CFLAGS
+ NCURSESW_LIBS
+ SYSTEMD_CFLAGS
+-SYSTEMD_LIBS'
++SYSTEMD_LIBS
++ELOGIND_CFLAGS
++ELOGIND_LIBS'
+
+
+ # Initialize some variables set by options.
+@@ -1521,6 +1528,7 @@
+ --without-libintl-prefix don't search for libintl in includedir and libdir
+ --without-ncurses build only applications not needing ncurses
+ --with-systemd enable systemd support
++ --with-elogind enable elogind support
+
+ Some influential environment variables:
+ CC C compiler command
+@@ -1550,6 +1558,10 @@
+ C compiler flags for SYSTEMD, overriding pkg-config
+ SYSTEMD_LIBS
+ linker flags for SYSTEMD, overriding pkg-config
++ ELOGIND_CFLAGS
++ C compiler flags for ELOGIND, overriding pkg-config
++ ELOGIND_LIBS
++ linker flags for ELOGIND, overriding pkg-config
+
+ Use these variables to override the choices made by `configure' or to help
+ it to find libraries and programs with nonstandard names/locations.
+@@ -17295,6 +17307,127 @@
+ fi
+
+
++
++# Check whether --with-elogind was given.
++if test "${with_elogind+set}" = set; then :
++ withval=$with_elogind;
++else
++ with_elogind=no
++
++fi
++
++# Do not allow elogind if systemd is wanted and found
++if test "x$with_systemd" != "xno"; then :
++ with_elogind=no
++fi
++
++if test "x$with_elogind" != "xno"; then :
++
++
++pkg_failed=no
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libelogind" >&5
++$as_echo_n "checking for libelogind... " >&6; }
++
++if test -n "$ELOGIND_CFLAGS"; then
++ pkg_cv_ELOGIND_CFLAGS="$ELOGIND_CFLAGS"
++ elif test -n "$PKG_CONFIG"; then
++ if test -n "$PKG_CONFIG" && \
++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libelogind\""; } >&5
++ ($PKG_CONFIG --exists --print-errors "libelogind") 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; then
++ pkg_cv_ELOGIND_CFLAGS=`$PKG_CONFIG --cflags "libelogind" 2>/dev/null`
++ test "x$?" != "x0" && pkg_failed=yes
++else
++ pkg_failed=yes
++fi
++ else
++ pkg_failed=untried
++fi
++if test -n "$ELOGIND_LIBS"; then
++ pkg_cv_ELOGIND_LIBS="$ELOGIND_LIBS"
++ elif test -n "$PKG_CONFIG"; then
++ if test -n "$PKG_CONFIG" && \
++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libelogind\""; } >&5
++ ($PKG_CONFIG --exists --print-errors "libelogind") 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; then
++ pkg_cv_ELOGIND_LIBS=`$PKG_CONFIG --libs "libelogind" 2>/dev/null`
++ test "x$?" != "x0" && pkg_failed=yes
++else
++ pkg_failed=yes
++fi
++ else
++ pkg_failed=untried
++fi
++
++
++
++if test $pkg_failed = yes; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++
++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
++ _pkg_short_errors_supported=yes
++else
++ _pkg_short_errors_supported=no
++fi
++ if test $_pkg_short_errors_supported = yes; then
++ ELOGIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libelogind" 2>&1`
++ else
++ ELOGIND_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libelogind" 2>&1`
++ fi
++ # Put the nasty error message in config.log where it belongs
++ echo "$ELOGIND_PKG_ERRORS" >&5
++
++ as_fn_error $? "Package requirements (libelogind) were not met:
++
++$ELOGIND_PKG_ERRORS
++
++Consider adjusting the PKG_CONFIG_PATH environment variable if you
++installed software in a non-standard prefix.
++
++Alternatively, you may set the environment variables ELOGIND_CFLAGS
++and ELOGIND_LIBS to avoid the need to call pkg-config.
++See the pkg-config man page for more details." "$LINENO" 5
++elif test $pkg_failed = untried; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
++is in your PATH or set the PKG_CONFIG environment variable to the full
++path to pkg-config.
++
++Alternatively, you may set the environment variables ELOGIND_CFLAGS
++and ELOGIND_LIBS to avoid the need to call pkg-config.
++See the pkg-config man page for more details.
++
++To get pkg-config, see <http://pkg-config.freedesktop.org/>.
++See \`config.log' for more details" "$LINENO" 5; }
++else
++ ELOGIND_CFLAGS=$pkg_cv_ELOGIND_CFLAGS
++ ELOGIND_LIBS=$pkg_cv_ELOGIND_LIBS
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++
++fi
++
++$as_echo "#define WITH_ELOGIND 1" >>confdefs.h
++
++
++fi
++ if test x$with_elogind != xno; then
++ WITH_ELOGIND_TRUE=
++ WITH_ELOGIND_FALSE='#'
++else
++ WITH_ELOGIND_TRUE='#'
++ WITH_ELOGIND_FALSE=
++fi
++
++
+ # AC_ARG_ENABLEs
+ # Check whether --enable-pidof was given.
+ if test "${enable_pidof+set}" = set; then :
+@@ -17712,6 +17845,10 @@
+ as_fn_error $? "conditional \"WITH_SYSTEMD\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
++if test -z "${WITH_ELOGIND_TRUE}" && test -z "${WITH_ELOGIND_FALSE}"; then
++ as_fn_error $? "conditional \"WITH_ELOGIND\" was never defined.
++Usually this means the macro was only invoked conditionally." "$LINENO" 5
++fi
+ if test -z "${BUILD_PIDOF_TRUE}" && test -z "${BUILD_PIDOF_FALSE}"; then
+ as_fn_error $? "conditional \"BUILD_PIDOF\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+--- procps-ng-3.3.12/configure.ac 2016-07-09 23:49:25.817307031 +0200
++++ procps-ng-3.3.12/configure.ac 2016-07-09 23:49:25.817307031 +0200
+@@ -155,6 +155,19 @@
+ ])
+ AM_CONDITIONAL([WITH_SYSTEMD], [test x$with_systemd != xno])
+
++AC_ARG_WITH([elogind],
++ [AS_HELP_STRING([--with-elogind], [enable elogind support])],
++ [], [with_elogind=no]
++)
++# Do not allow elogind if systemd is wanted and found
++AS_IF([test "x$with_systemd" != "xno"], [with_elogind=no])
++
++AS_IF([test "x$with_elogind" != "xno"], [
++ PKG_CHECK_MODULES([ELOGIND], [libelogind])
++ AC_DEFINE(WITH_ELOGIND, 1, [enable elogind support])
++])
++AM_CONDITIONAL([WITH_ELOGIND], [test x$with_elogind != xno])
++
+ # AC_ARG_ENABLEs
+ AC_ARG_ENABLE([pidof],
+ AS_HELP_STRING([--disable-pidof], [do not build pidof]),
+--- procps-ng-3.3.12/Makefile.am 2016-07-10 00:40:44.235121270 +0200
++++ procps-ng-3.3.12/Makefile.am 2016-07-10 00:40:44.235121270 +0200
+@@ -155,6 +155,10 @@
+ proc_libprocps_la_LIBADD += @SYSTEMD_LIBS@
+ endif
+
++if WITH_ELOGIND
++proc_libprocps_la_LIBADD += @ELOGIND_LIBS@
++endif
++
+ proc_libprocps_la_LDFLAGS = \
+ -version-info $(LIBprocps_CURRENT):$(LIBprocps_REVISION):$(LIBprocps_AGE) \
+ -no-undefined \
+--- procps-ng-3.3.12/Makefile.in 2016-07-10 07:32:11.170237828 +0200
++++ procps-ng-3.3.12/Makefile.in 2016-07-10 07:32:11.170237828 +0200
+@@ -126,6 +126,7 @@
+ @BUILD_SKILL_FALSE@ snice.1
+
+ @WITH_SYSTEMD_TRUE@am__append_14 = @SYSTEMD_LIBS@
++@WITH_ELOGIND_TRUE@am__append_15 = @ELOGIND_LIBS@
+ TESTS = lib/test_strtod_nol$(EXEEXT)
+ check_PROGRAMS = $(am__EXEEXT_5)
+ noinst_PROGRAMS = lib/test_strutils$(EXEEXT) \
+@@ -688,6 +689,8 @@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
++ELOGIND_CFLAGS = @ELOGIND_CFLAGS@
++ELOGIND_LIBS = @ELOGIND_LIBS@
+ EXEEXT = @EXEEXT@
+ FGREP = @FGREP@
+ GMSGFMT = @GMSGFMT@
+--- procps-ng-3.3.12/proc/readproc.c 2016-07-09 23:49:25.825306872 +0200
++++ procps-ng-3.3.12/proc/readproc.c 2016-07-09 23:49:25.825306872 +0200
+@@ -40,6 +40,9 @@
+ #ifdef WITH_SYSTEMD
+ #include <systemd/sd-login.h>
+ #endif
++#ifdef WITH_ELOGIND
++#include <elogind/sd-login.h>
++#endif
+
+ // sometimes it's easier to do this manually, w/o gcc helping
+ #ifdef PROF
+@@ -518,7 +521,7 @@
+ }
+
+ static void sd2proc(proc_t *restrict p) {
+-#ifdef WITH_SYSTEMD
++#if defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)
+ char buf[64];
+ uid_t uid;
+
diff --git a/sys-process/procps/files/procps-3.3.12-proc-tests.patch b/sys-process/procps/files/procps-3.3.12-proc-tests.patch
new file mode 100644
index 000000000000..9549252dd485
--- /dev/null
+++ b/sys-process/procps/files/procps-3.3.12-proc-tests.patch
@@ -0,0 +1,47 @@
+https://bugs.gentoo.org/583036
+http://www.freelists.org/post/procps/Patch-Test-suite-fails-if-procpidsmaps-is-absent,1
+
+From: tobbs@opentrash.com
+To: procps@freelists.org
+Date: Sun, 11 Sep 2016 15:01:29 +0200
+Subject: [procps] [Patch] Test suite fails if /proc/<pid>/smaps is absent
+Message-Id: <20160911130129.9A8B3322A81@astra4649.startdedicated.de>
+
+Summary: Some Linux systems do not have /proc/<pid>/smaps, hence the test
+suite fails. Attached a patch to skip tests in that case it.
+
+When pmap is called with either -c, -x, or -x it tries to read
+/proc/<pid>/smaps (pmap.c, l. 540). If not present it exits.
+The file /proc/<pid>/smaps exits on Linux systems only if the kernel is
+compiled with the option CONFIG_PROC_PAGE_MONITOR (see man page proc(5)).
+
+In the test suite some tests check the output of pmap -X et al, but they
+fail if /proc/<pid>/smaps is not present, because pmap does not produce
+their expected output.
+
+Attached a patch which checks if /proc/<pid>/smaps exits, if not it
+skipps the test related to it.
+
+Note: It is unclear what the 'expected' behaviour/output of pmap should
+be if the file /proc/<pid>/smaps is not present. Maybe add an additional
+test to check the return code if /proc/<pid>/smaps is absent.
+
+--- a/testsuite/pmap.test/pmap.exp
++++ b/testsuite/pmap.test/pmap.exp
+@@ -45,6 +45,11 @@
+ spawn $pmap -qd $mypid
+ expect_table $test $pmap_procname $pmap_device_items "\$"
+
++if { [ file readable "/proc/self/smaps" ] == 0 } {
++ unsupported "Skipping test which require pmap to access /proc/<pid>/smaps, because kernel seems to be compiled without CONFIG_PROC_PAGE_MONITOR."
++
++} else {
++
+ set test "pmap extended output"
+ spawn $pmap -x $mypid
+ expect_table $test $pmap_ext_header $pmap_ext_items $pmap_ext_footer
+@@ -66,3 +71,4 @@
+ spawn $pmap -XX 1
+ expect_pass $test "$pmap_initname\$"
+
++}
diff --git a/sys-process/procps/files/procps-3.3.12-strtod_nol_err.patch b/sys-process/procps/files/procps-3.3.12-strtod_nol_err.patch
new file mode 100644
index 000000000000..1a298c87f700
--- /dev/null
+++ b/sys-process/procps/files/procps-3.3.12-strtod_nol_err.patch
@@ -0,0 +1,110 @@
+From 4ed44ab58e27a9a09902b9c5b49df484842b6c9a Mon Sep 17 00:00:00 2001
+From: Dr. Werner Fink <werner@suse.de>
+Date: Wed, 13 Jul 2016 20:08:51 +1000
+Subject: [PATCH] misc: fix strtod_nol_err tests
+
+A better way of implementing the string to double
+conversion and a better way of testing it.
+
+Signed-off-by: Craig Small <csmall@enc.com.au>
+---
+diff --git a/include/strutils.h b/include/strutils.h
+index 85a6192..a5a15c9 100644
+--- a/include/strutils.h
++++ b/include/strutils.h
+@@ -7,6 +7,6 @@
+
+ extern long strtol_or_err(const char *str, const char *errmesg);
+ extern double strtod_or_err(const char *str, const char *errmesg);
+-double strtod_nol_or_err(char *str, const char *errmesg);
++extern double strtod_nol_or_err(char *str, const char *errmesg);
+
+ #endif
+diff --git a/lib/strutils.c b/lib/strutils.c
+index e5245db..e0632c4 100644
+--- a/lib/strutils.c
++++ b/lib/strutils.c
+@@ -20,6 +20,8 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
++#include <float.h>
++#include <math.h>
+ #include <stdlib.h>
+ #include <ctype.h>
+
+@@ -71,9 +73,9 @@ double strtod_or_err(const char *str, const char *errmesg)
+ */
+ double strtod_nol_or_err(char *str, const char *errmesg)
+ {
+- double num;
++ long double num;
+ const char *cp, *radix;
+- double mult;
++ long double mult;
+ int negative = 0;
+
+ if (str != NULL && *str != '\0') {
+@@ -95,29 +97,29 @@ double strtod_nol_or_err(char *str, const char *errmesg)
+ mult=0.1;
+ while(isdigit(*radix)) {
+ radix++;
+- mult *= 10;
++ mult *= 10.0;
+ }
+ while(isdigit(*cp)) {
+- num += (*cp - '0') * mult;
+- mult /= 10;
++ num += (long double)(*cp - '0') * mult;
++ mult /= 10.0;
+ cp++;
+ }
+ /* got the integers */
+ if (*cp == '\0')
+- return (negative?-num:num);
++ return (double)(negative?-num:num);
+ if (*cp != '.' && *cp != ',')
+ error(EXIT_FAILURE, EINVAL, "%s: '%s'", errmesg, str);
+
+ cp++;
+ mult = 0.1;
+ while(isdigit(*cp)) {
+- num += (*cp - '0') * mult;
+- mult /= 10;
++ num += (long double)(*cp - '0') * mult;
++ mult /= 10.0;
+ cp++;
+ }
+ if (*cp == '\0')
+- return (negative?-num:num);
++ return (double)(negative?-num:num);
+ }
+ error(EXIT_FAILURE, errno, "%s: '%s'", errmesg, str);
+- return 0;
++ return (double)0;
+ }
+diff --git a/lib/test_strtod_nol.c b/lib/test_strtod_nol.c
+index 0be798c..736768a 100644
+--- a/lib/test_strtod_nol.c
++++ b/lib/test_strtod_nol.c
+@@ -1,4 +1,5 @@
+-
++#include <float.h>
++#include <math.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include "strutils.h"
+@@ -33,8 +34,8 @@ int main(int argc, char *argv[])
+ double val;
+
+ for(i=0; tests[i].string != NULL; i++) {
+- if(strtod_nol_or_err(tests[i].string, "Cannot parse number") !=
+- tests[i].result) {
++ val = strtod_nol_or_err(tests[i].string, "Cannot parse number");
++ if(fabs(tests[i].result - val) > DBL_EPSILON) {
+ fprintf(stderr, "FAIL: strtod_nol_or_err(\"%s\") != %f\n",
+ tests[i].string, tests[i].result);
+ return EXIT_FAILURE;
+--
+libgit2 0.24.0
+
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 000000000000..00397480ca3b
--- /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 <vapier@gentoo.org>
+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 <vapier@gentoo.org>
+---
+ 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/metadata.xml b/sys-process/procps/metadata.xml
new file mode 100644
index 000000000000..263e639ef30e
--- /dev/null
+++ b/sys-process/procps/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<use>
+ <flag name="elogind">Use <pkg>sys-auth/elogind</pkg> for session tracking.</flag>
+ <flag name="kill">Build the kill program</flag>
+ <flag name="modern-top">Enables new startup defaults of top. Keeps old defaults if disabled</flag>
+ <flag name="ncurses">Build programs that use ncurses: top, slabtop, watch</flag>
+</use>
+<upstream>
+ <remote-id type="sourceforge">procps</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-process/procps/procps-3.3.12-r1.ebuild b/sys-process/procps/procps-3.3.12-r1.ebuild
new file mode 100644
index 000000000000..4fc6035472f3
--- /dev/null
+++ b/sys-process/procps/procps-3.3.12-r1.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit epatch toolchain-funcs flag-o-matic
+
+DESCRIPTION="standard informational utilities and process-handling tools"
+HOMEPAGE="http://procps-ng.sourceforge.net/ https://gitlab.com/procps-ng/procps"
+SRC_URI="mirror://sourceforge/${PN}-ng/${PN}-ng-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0/5" # libprocps.so
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="elogind +kill modern-top +ncurses nls selinux static-libs systemd test unicode"
+
+COMMON_DEPEND="
+ elogind? ( sys-auth/elogind )
+ ncurses? ( >=sys-libs/ncurses-5.7-r7:=[unicode?] )
+ selinux? ( sys-libs/libselinux )
+ systemd? ( sys-apps/systemd )
+"
+DEPEND="${COMMON_DEPEND}
+ elogind? ( virtual/pkgconfig )
+ ncurses? ( virtual/pkgconfig )
+ systemd? ( virtual/pkgconfig )
+ test? ( dev-util/dejagnu )"
+RDEPEND="
+ ${COMMON_DEPEND}
+ kill? (
+ !sys-apps/coreutils[kill]
+ !sys-apps/util-linux[kill]
+ )
+ !<sys-apps/sysvinit-2.88-r6
+"
+
+S="${WORKDIR}/${PN}-ng-${PV}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.3.8-kill-neg-pid.patch # http://crbug.com/255209
+ "${FILESDIR}"/${PN}-3.3.11-sysctl-manpage.patch # 565304
+ "${FILESDIR}"/${PN}-3.3.12-proc-tests.patch # 583036
+
+ # Upstream fixes
+ "${FILESDIR}"/${P}-strtod_nol_err.patch
+)
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+
+ # Requires special handling or autoreconf gets triggered which we don't
+ # want to happen in a base-system package.
+ EPATCH_OPTS="-Z" \
+ epatch "${FILESDIR}"/${PN}-3.3.12-elogind.patch # 599504
+
+ epatch_user
+}
+
+src_configure() {
+ # http://www.freelists.org/post/procps/PATCH-enable-transparent-large-file-support
+ append-lfs-flags #471102
+ econf \
+ --docdir='$(datarootdir)'/doc/${PF} \
+ $(use_with elogind) \
+ $(use_enable kill) \
+ $(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 </dev/null #461302
+}
+
+src_install() {
+ default
+ #dodoc sysctl.conf
+
+ dodir /bin
+ mv "${ED}"/usr/bin/ps "${ED}"/bin/ || die
+ if use kill; then
+ mv "${ED}"/usr/bin/kill "${ED}"/bin/ || die
+ fi
+
+ gen_usr_ldscript -a procps
+ find "${D}" -name '*.la' -delete || die
+}
diff --git a/sys-process/procps/procps-3.3.12.ebuild b/sys-process/procps/procps-3.3.12.ebuild
new file mode 100644
index 000000000000..57528f8ba618
--- /dev/null
+++ b/sys-process/procps/procps-3.3.12.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils toolchain-funcs flag-o-matic
+
+DESCRIPTION="standard informational utilities and process-handling tools"
+HOMEPAGE="http://procps-ng.sourceforge.net/ https://gitlab.com/procps-ng/procps"
+SRC_URI="mirror://sourceforge/${PN}-ng/${PN}-ng-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0/5" # libprocps.so
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux"
+IUSE="+kill +ncurses modern-top nls selinux static-libs systemd test unicode"
+
+RDEPEND="ncurses? ( >=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 )"
+RDEPEND+="
+ kill? (
+ !sys-apps/coreutils[kill]
+ !sys-apps/util-linux[kill]
+ )
+ !<sys-apps/sysvinit-2.88-r6"
+
+S="${WORKDIR}/${PN}-ng-${PV}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.3.8-kill-neg-pid.patch # http://crbug.com/255209
+ "${FILESDIR}"/${PN}-3.3.11-sysctl-manpage.patch # 565304
+ "${FILESDIR}"/${PN}-3.3.12-proc-tests.patch #583036
+
+ # Upstream fixes
+ "${FILESDIR}"/${P}-strtod_nol_err.patch
+)
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+ epatch_user
+}
+
+src_configure() {
+ # http://www.freelists.org/post/procps/PATCH-enable-transparent-large-file-support
+ append-lfs-flags #471102
+ econf \
+ --docdir='$(datarootdir)'/doc/${PF} \
+ $(use_enable kill) \
+ $(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 </dev/null #461302
+}
+
+src_install() {
+ default
+ #dodoc sysctl.conf
+
+ dodir /bin
+ mv "${ED}"/usr/bin/ps "${ED}"/bin/ || die
+ if use kill; then
+ mv "${ED}"/usr/bin/kill "${ED}"/bin/ || die
+ fi
+
+ gen_usr_ldscript -a procps
+ prune_libtool_files
+}