summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbill-auger <mr.j.spam.me@gmail.com>2024-04-23 10:16:01 -0400
committerbill-auger <mr.j.spam.me@gmail.com>2024-04-24 03:33:04 -0400
commitacea4d39fd039d21393eb3bc15f43860a03c09e3 (patch)
tree929b8e5f492ac18f6fa56036a7dedf903c565555
parentab26932c9efd44faee23cc52d48624cd8b0a5521 (diff)
procps-ng: upgrade to v4.0.4
-rw-r--r--nonsystemd/procps-ng/0001-build-sys-Add-systemd-elogind-to-w.patch43
-rw-r--r--nonsystemd/procps-ng/0002-ps-Don-t-crash-when-using-short-option.patch176
-rw-r--r--nonsystemd/procps-ng/PKGBUILD50
-rw-r--r--nonsystemd/procps-ng/keys/pgp/5D2FB320B825D93904D205193938F96BDF50FEA5.asc68
4 files changed, 318 insertions, 19 deletions
diff --git a/nonsystemd/procps-ng/0001-build-sys-Add-systemd-elogind-to-w.patch b/nonsystemd/procps-ng/0001-build-sys-Add-systemd-elogind-to-w.patch
new file mode 100644
index 000000000..ed02b5a09
--- /dev/null
+++ b/nonsystemd/procps-ng/0001-build-sys-Add-systemd-elogind-to-w.patch
@@ -0,0 +1,43 @@
+From ca004d4657d5e8b468a4552ede429be53193a3a9 Mon Sep 17 00:00:00 2001
+From: Craig Small <csmall@dropbear.xyz>
+Date: Thu, 31 Aug 2023 22:24:23 +1000
+Subject: build-sys: Add systemd/elogind to w
+
+Depending on the compiler flags, w needs to be explictly linked
+to libsystemd or elogind even though libproc2 is linked to it.
+
+Signed-off-by: Craig Small <csmall@dropbear.xyz>
+---
+ Makefile.am | 7 +++++++
+ NEWS | 3 +++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index f70c8fb1..ddfc0141 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -149,6 +149,13 @@ endif
+
+ dist_man_MANS += man/w.1
+ src_w_SOURCES = src/w.c local/fileutils.c
++src_w_LDADD = $(LDADD)
++if WITH_SYSTEMD
++src_w_LDADD += @SYSTEMD_LIBS@
++endif
++if WITH_ELOGIND
++src_w_LDADD += @ELOGIND_LIBS@
++endif
+ else
+ EXTRA_DIST += man/w.1
+ endif
+diff --git a/NEWS b/NEWS
+index 3f2158d4..4ad9f74e 100644
+--- a/NEWS
++++ b/NEWS
+@@ -1,3 +1,6 @@
++procps-ng-NEXT
++---------------
++
+ procps-ng-4.0.4
+ ---------------
+ * library (API & ABI unchanged)
diff --git a/nonsystemd/procps-ng/0002-ps-Don-t-crash-when-using-short-option.patch b/nonsystemd/procps-ng/0002-ps-Don-t-crash-when-using-short-option.patch
new file mode 100644
index 000000000..5bfa0d65d
--- /dev/null
+++ b/nonsystemd/procps-ng/0002-ps-Don-t-crash-when-using-short-option.patch
@@ -0,0 +1,176 @@
+From 79042e07fab9956135a21b1df7a69d1fbde7ef79 Mon Sep 17 00:00:00 2001
+From: Craig Small <csmall@dropbear.xyz>
+Date: Tue, 12 Sep 2023 16:59:18 +1000
+Subject: [PATCH] ps: Don't crash when using short option
+
+ps would crash with the -si or -sf options with systemd enabled.
+The issue was the utmp wasn't filled in, the long option checked, the
+short option did not.
+
+Refactored the showinfo() function so instead of a branch with duplicate
+prints for the items in both long and short we just branch on the items
+for long output.
+
+Also, made the function prototypes not dependendent on systemd enabled,
+it was too messy that way and passing a char* NULL is not really going
+to hurt anything.
+
+References:
+ #301
+
+Signed-off-by: Craig Small <csmall@dropbear.xyz>
+---
+ NEWS | 1 +
+ src/w.c | 61 ++++++++++++++++++++-------------------------------------
+ 2 files changed, 22 insertions(+), 40 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index 4ad9f74e..883f9139 100644
+--- a/NEWS
++++ b/NEWS
+@@ -1,5 +1,6 @@
+ procps-ng-NEXT
+ ---------------
++ * w: Don't segfault with -s option issue #301
+
+ procps-ng-4.0.4
+ ---------------
+diff --git a/src/w.c b/src/w.c
+index fd6e75f7..e2d754b5 100644
+--- a/src/w.c
++++ b/src/w.c
+@@ -207,9 +207,7 @@ static void print_display_or_interface(const char *restrict host, int len, int r
+
+ /* This routine prints either the hostname or the IP address of the remote */
+ static void print_from(
+-#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ const char *session,
+-#endif
+ const utmp_t *restrict const u, const int ip_addresses, const int fromlen) {
+ #if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ if (session) {
+@@ -508,11 +506,10 @@ static int find_best_proc(
+ #undef PIDS_GETSTR
+ }
+
++
+ static void showinfo(
+-#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ const char *session, const char *name,
+-#endif
+- utmp_t * u, int formtype, int maxcmd, int from,
++ utmp_t * u, const int longform, int maxcmd, int from,
+ const int userlen, const int fromlen, const int ip_addresses,
+ const int pids)
+ {
+@@ -575,25 +572,20 @@ static void showinfo(
+ /* force NUL term for printf */
+ uname[UT_NAMESIZE] = '\0';
+
+- if (formtype) {
+- printf("%-*.*s%-9.8s", userlen + 1, userlen, uname, tty + 5);
++ printf("%-*.*s%-9.8s", userlen + 1, userlen, uname, tty + 5);
++ if (from)
++ print_from(session, NULL, ip_addresses, fromlen);
++
++ /* login time */
++ if (longform) {
+ #if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ if (session) {
+ uint64_t ltime;
+
+- if (from)
+- print_from(session, NULL, ip_addresses, fromlen);
+-
+ sd_session_get_start_time(session, &ltime);
+ print_logintime(ltime/((uint64_t) 1000000ULL), stdout);
+ } else {
+ #endif
+- if (from)
+- print_from(
+-#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+- NULL,
+-#endif
+- u, ip_addresses, fromlen);
+
+ #ifdef HAVE_UTMPX_H
+ print_logintime(u->ut_tv.tv_sec, stdout);
+@@ -603,11 +595,16 @@ static void showinfo(
+ #if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ }
+ #endif
+- if (u && *u->ut_line == ':')
+- /* idle unknown for xdm logins */
+- printf(" ?xdm? ");
+- else
+- print_time_ival7(idletime(tty), 0, stdout);
++ }
++ /* idle */
++ if (u && *u->ut_line == ':')
++ /* idle unknown for xdm logins */
++ printf(" ?xdm? ");
++ else
++ print_time_ival7(idletime(tty), 0, stdout);
++
++ /* jpcpu/pcpu */
++ if (longform) {
+ print_time_ival7(jcpu / hertz, (jcpu % hertz) * (100. / hertz),
+ stdout);
+ if (pcpu > 0)
+@@ -616,20 +613,8 @@ static void showinfo(
+ stdout);
+ else
+ printf(" ? ");
+- } else {
+- printf("%-*.*s%-9.8s", userlen + 1, userlen, uname, tty + 5);
+- if (from)
+- print_from(
+-#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+- NULL,
+-#endif
+- u, ip_addresses, fromlen);
+- if (u && *u->ut_line == ':')
+- /* idle unknown for xdm logins */
+- printf(" ?xdm? ");
+- else
+- print_time_ival7(idletime(tty), 0, stdout);
+ }
++ /* what */
+ if (pids) {
+ pid_t ut_pid = -1;
+ if (u)
+@@ -798,9 +783,9 @@ int main(int argc, char **argv)
+ * headers. Try to keep alignment intact. */
+ printf(_("%-*s TTY "), userlen, _("USER"));
+ if (from)
+- printf("%-*s", fromlen - 1, _("FROM"));
++ printf("%-*s", fromlen, _("FROM"));
+ if (longform)
+- printf(_(" LOGIN@ IDLE JCPU PCPU WHAT\n"));
++ printf(_(" LOGIN@ IDLE JCPU PCPU WHAT\n"));
+ else
+ printf(_(" IDLE WHAT\n"));
+ }
+@@ -857,9 +842,7 @@ int main(int argc, char **argv)
+ continue;
+ if (!strncmp(u->ut_user, user, UT_NAMESIZE))
+ showinfo(
+-#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ NULL, NULL,
+-#endif
+ u, longform, maxcmd, from, userlen,
+ fromlen, ip_addresses, pids);
+ }
+@@ -876,9 +859,7 @@ int main(int argc, char **argv)
+ continue;
+ if (*u->ut_user)
+ showinfo(
+-#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ NULL, NULL,
+-#endif
+ u, longform, maxcmd, from, userlen,
+ fromlen, ip_addresses, pids);
+ }
+--
+GitLab
+
diff --git a/nonsystemd/procps-ng/PKGBUILD b/nonsystemd/procps-ng/PKGBUILD
index 57958c8b3..496550f02 100644
--- a/nonsystemd/procps-ng/PKGBUILD
+++ b/nonsystemd/procps-ng/PKGBUILD
@@ -1,43 +1,55 @@
# Maintainer (arch): Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Contributor: Christian Hesse <eworm@archlinux.org>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Eric Bélanger <eric@archlinux.org>
# Maintainer: Parabola Hackers <dev@lists.parabola.nu>
+# Contributor: bill-auger <bill-auger@programmer.net>
+
+
+# parabola changes and rationale:
+# - require nonsystemd providers of 'systemd' 'libsystemd'
pkgname=procps-ng
-pkgver=3.3.17
-pkgrel=1
-pkgrel+=.parabola1
+pkgver=4.0.4
+pkgrel=3
+pkgrel+=.nonsystemd1
pkgdesc='Utilities for monitoring your system and its processes'
url='https://gitlab.com/procps-ng/procps'
license=(GPL LGPL)
arch=(x86_64)
arch+=(armv7h i686 ppc64le)
depends=(glibc ncurses libncursesw.so systemd-libs)
-depends=( ${depends[*]/systemd-libs/libsystemd})
+depends=( ${depends[*]/systemd-libs/libsystemd} )
makedepends=(systemd)
conflicts=(procps sysvinit-tools)
-provides=(procps sysvinit-tools libprocps.so)
+provides=(procps sysvinit-tools libproc2.so)
replaces=(procps sysvinit-tools)
options=('!emptydirs')
-source=(https://downloads.sourceforge.net/project/$pkgname/Production/${pkgname}-${pkgver}.tar.xz{,.asc})
-sha256sums=('4518b3e7aafd34ec07d0063d250fd474999b20b200218c3ae56f5d2113f141b4'
- 'SKIP')
-b2sums=('43aa1a21d4f0725b1c02457f343cf1fc66bc1771b25c6eaf689c9775c190e90545bfac1729f027abc4d3d13de37ffac4828554b5b25e12bcf6af9540de1695f3'
- 'SKIP')
-validpgpkeys=(
- '5D3DF0F538B327C0AA7A77A2022166C0FF3C84E3' # Craig Small <csmall@debian.org>
- '5D2FB320B825D93904D205193938F96BDF50FEA5' # Craig Small <csmall@debian.org>
-)
+validpgpkeys=('5D2FB320B825D93904D205193938F96BDF50FEA5') # Craig Small <csmall@debian.org>
+source=(https://downloads.sourceforge.net/project/$pkgname/Production/${pkgname}-${pkgver}.tar.xz{,.asc}
+ 0001-build-sys-Add-systemd-elogind-to-w.patch
+ 0002-ps-Don-t-crash-when-using-short-option.patch)
+sha256sums=('22870d6feb2478adb617ce4f09a787addaf2d260c5a8aa7b17d889a962c5e42e'
+ 'SKIP'
+ '77ed82ad684c71319704080a09c7d65efa1b06db4f35b240de7c30fef4caafc5'
+ '2331953f1c859b4973b2f99fbc84495b03a2d5e584370da66adbd45cbbf7825a')
+b2sums=('63b972666ef9e92042be96739ffa15c787d0346b2d3ffcb0d240b0a4e999dc90024b2c5b058df683dd9d2c436ceb812abd0b115cc877a6ca1023988b86de443f'
+ 'SKIP'
+ '021b64fac3b48175ec67d180fc294c674088ece483f0ab358c2cfbdbd519ac6dea13274a66624beda79b00c0c770441e7f8369f3a75a90f7cafd469508a81e16'
+ '74a40306c3a1c09d1ad26ae34157803e48e95906febcd4730ac27221e5c6184b9fe1eb7ade77e2da193d4c3491d719b1a1b01f75424722a63602f914aa9db9a8')
prepare() {
- cd procps-$pkgver
- sed 's:<ncursesw/:<:g' -i watch.c
+ cd procps-ng-$pkgver
+ sed 's:<ncursesw/:<:g' -i src/watch.c
+ patch -Np1 < ../0001-build-sys-Add-systemd-elogind-to-w.patch
+ patch -Np1 < ../0002-ps-Don-t-crash-when-using-short-option.patch
+ autoreconf -fi
}
build() {
- cd procps-$pkgver
+ cd procps-ng-$pkgver
./configure \
--prefix=/usr \
--exec-prefix=/ \
@@ -46,7 +58,7 @@ build() {
--bindir=/usr/bin \
--sbindir=/usr/bin \
--enable-watch8bit \
- --with-systemd \
+ --with-elogind \
--disable-modern-top \
--disable-kill
@@ -54,6 +66,6 @@ build() {
}
package() {
- cd procps-$pkgver
+ cd procps-ng-$pkgver
make DESTDIR="$pkgdir" install
}
diff --git a/nonsystemd/procps-ng/keys/pgp/5D2FB320B825D93904D205193938F96BDF50FEA5.asc b/nonsystemd/procps-ng/keys/pgp/5D2FB320B825D93904D205193938F96BDF50FEA5.asc
new file mode 100644
index 000000000..8df4b578e
--- /dev/null
+++ b/nonsystemd/procps-ng/keys/pgp/5D2FB320B825D93904D205193938F96BDF50FEA5.asc
@@ -0,0 +1,68 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=kFPF
+-----END PGP PUBLIC KEY BLOCK-----