commit:     2d8d7761ed767b800e70f68268674b472ba60030
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Tue May 30 14:09:46 2017 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Tue May 30 14:22:24 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2d8d7761

sys-process/procps: Revbump to add elogind support (bug #599504).

Thanks to Sven Eden for providing the procps patch and to asturm for
providing the initial ebuild patch.

Package-Manager: Portage-2.3.6, Repoman-2.3.2

 .../procps/files/procps-3.3.12-elogind.patch       | 265 +++++++++++++++++++++
 sys-process/procps/metadata.xml                    |   1 +
 sys-process/procps/procps-3.3.12-r1.ebuild         |  91 +++++++
 3 files changed, 357 insertions(+)

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 00000000000..07c165310ce
--- /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/metadata.xml b/sys-process/procps/metadata.xml
index a21aac9eb21..263e639ef30 100644
--- a/sys-process/procps/metadata.xml
+++ b/sys-process/procps/metadata.xml
@@ -6,6 +6,7 @@
        <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>

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 00000000000..997abda25df
--- /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.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} \
+               --sbindir="${EPREFIX}/sbin" \
+               $(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
+}

Reply via email to