diff options
author | Lars Wendler <polynomial-c@gentoo.org> | 2017-05-30 16:09:46 +0200 |
---|---|---|
committer | Lars Wendler <polynomial-c@gentoo.org> | 2017-05-30 16:22:24 +0200 |
commit | 2d8d7761ed767b800e70f68268674b472ba60030 (patch) | |
tree | 8a7351643b590511ec94c17400a555fc88d03aa6 /sys-process | |
parent | games-rpg/manaplus: Removed old. (diff) | |
download | gentoo-2d8d7761ed767b800e70f68268674b472ba60030.tar.gz gentoo-2d8d7761ed767b800e70f68268674b472ba60030.tar.bz2 gentoo-2d8d7761ed767b800e70f68268674b472ba60030.zip |
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
Diffstat (limited to 'sys-process')
-rw-r--r-- | sys-process/procps/files/procps-3.3.12-elogind.patch | 265 | ||||
-rw-r--r-- | sys-process/procps/metadata.xml | 1 | ||||
-rw-r--r-- | sys-process/procps/procps-3.3.12-r1.ebuild | 91 |
3 files changed, 357 insertions, 0 deletions
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/metadata.xml b/sys-process/procps/metadata.xml index a21aac9eb21d..263e639ef30e 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 000000000000..997abda25df7 --- /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 +} |