diff options
author | bill-auger <mr.j.spam.me@gmail.com> | 2024-04-23 10:16:01 -0400 |
---|---|---|
committer | bill-auger <mr.j.spam.me@gmail.com> | 2024-04-24 03:33:04 -0400 |
commit | acea4d39fd039d21393eb3bc15f43860a03c09e3 (patch) | |
tree | 929b8e5f492ac18f6fa56036a7dedf903c565555 | |
parent | ab26932c9efd44faee23cc52d48624cd8b0a5521 (diff) |
procps-ng: upgrade to v4.0.4
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, <ime); + 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----- + +mQINBE3Mr20BEACryQO8IVg0LeiorBOH5eDORRvthyCslwv5OCqui0r1vg8jXuy4 +dRA68UIkVnoLO83i3CcjAyqyn20FO7lg55HySDJWcVD7ltVbrBIv7aDxJqOx2jrt +p66Lk8Ct5ZltBV1nGjNCx3VquMugoGUBtB1ym8zY5NH92LtveSY+bgjPyo9P3Rhl +BzRkd3JehCw97+ELbNqKAxZq6Ku/Oq6E23IQH8h91wzWJ5jMlDdyCXLDxWyXLvjp +2XIbiE2qsRE+/abZNR1Oij3Q7mzY3HJ+AatBzb0JXe87A9Ud19o9IfnlMr8v8SS1 +5YE991/9gqqbOsyKJ97kzoFaiea9QSiZzPj+4jCIdM6+jN7F0ToyNZl31GCIcPXc +NEHDBO9c812V2Nc++G6H2aUDAqfTnzQbXhvVI3aqSmvYNh/eBXX/QyYLAhv4qxQL +V4bDuU+JD1a3rqgA+kAhBMsXbDti373wKT5fjpiZsqVXfGhisJmUVLevFaAz8rUA +tCgrIiA9YlMnXqPNZtdoblF/71U46weLTjiLp14Yl8FLnhWV+vK+kwlkZJ/Uv93O +4M7HVRNAG49th8vzKPStMZNwxvg/OyqBxKYvinlDMUzKpVXTxNJICbv2Gg69hrn7 +XvgyBxUFZ5CQWKoJm2FoGtwuG1wVTM8F6h7EHA96Lp/UnP9GipUbf47MWQARAQAB +tB9DcmFpZyBTbWFsbCA8Y3NtYWxsQGRlYmlhbi5vcmc+iQJXBBMBCgBBAhsDAh4B +AheAAhkBBQsJCAcDBRUKCQgLBRYCAwEAFiEEXS+zILgl2TkE0gUZOTj5a99Q/qUF +Al/WggcFCRXMOZoACgkQOTj5a99Q/qXjEBAAp/qqutelV6c28I2V3F1nyBPLbIiE +tK4xUH0M2lkVcrD4Y6LyzGM0CEkGyToaH5SQDHIQf1YiJmszuQ+FBiLkFACXgp7V +dF0k/zvAYsIlePjXk27MTbzQZNZ0eAcc9lz7KQUj6mp18Od/PgboYK1g25tcxR4o +MsWgQC8ZEfj7ngwmiN87mA3CENfve3GVPzYjp3u1G1plIHz+Bk2dHvcY3yfK7yC8 +QWXE5DHRyB5MGTnYLs21CxqRrLQDy9FDSEKIuGN248O4MlsnvtmFSMqiYoCkzkQ6 +/eeHzAcbljOHpgYCDwRQOX0Dgyy0JbiKxJn+lZSgkbLJrnCCeAuSEUs+WzAkTo6w +M9uBpG5uEFfSl0Hebe//g0ydGelQ43edPV9FO7BPnZXMmSviqgekSyEa15n6wG/8 +NStPdVyF0gc77ptuGswc7k89b2jSM8fNlDKTqjaMonSR8lrkravwMZflH0AKuypq +WZbL59zb05XoQO7bBQcHtitJZBnF6Fz22cQJmbR87olr2WapvJwRim3lMo95Yr10 +zP43oLraD3pVpDwoUGCXja43WIazxFnoiNcujNJD6NuMTJweAzITobdtmzYFNSRm +rnjCVdtvy/Kt2pxVIk9TqEP7byHZQhGZIxYhGXdFxBjuh1twORs35h5P9hmtsb45 +jsNuPHMg2g4LvOi0IUNyYWlnIFNtYWxsIDxjc21hbGxAZHJvcGJlYXIueHl6PokC +VAQTAQoAPgIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgBYhBF0vsyC4Jdk5BNIF +GTk4+WvfUP6lBQJf1oIRBQkVzDmaAAoJEDk4+WvfUP6lz+UP/jmzLH546JXn/qEW +jSedk5/sO3GA++SL6823JbYv904cV68pjx24Zt8UzQAmZwr/SWsaKaWfFaExQ88b +MswtZD3XxKJima02KLw9OfijBeNmE+QY0y/wEaLievWIPIIuDZm7RythAnIRC3QF +QPD/fkFnsnZaVd74VrxK3ylb83T6aW0S5RBoHze56CszKocBYKjNvgrU/HSEKsBy +aqwNROtvriNIy1bpTUs8gInhnvnk3UtE2E/z94dAtQETaBLqNzSyDuvikIA+L6Nh +lYtgt1FutHfwTx5dVcGsN/5nix38Zf4PM6WmniUGxArudMhF8z1hJ8JhIwwFdOsC +m+8XXp4CughkOI4bVMEe9ElWiRmd6ed1sukqKvru1/9XYJ165ilWq8z+W8+Lppiz +4UFJrxlQIY7eGyA5aYEvMpj28NF6x0HGgeXzjEyVhc5qwajypAhJloKSekgNxGOI +ColGbncq2mDFoD4SMY9koPpHp+9QEd6GSOlpMPVYp0WG+V+yDWwJSiJWiPb4gEIP +PfT9wNL90hksf8HMO60t9zmqY4zz6WvBLW55Fa7VqNqSrSjgZhS51j+5pp+zHMcU +XZEbLGBtoSBcOgI2XyoyiBjZj8A7RhLENeWxOP7Ereg9Pn4ahQ/efVRAFHPUyfwZ +y4Lm3sgZQlzzh13phCA6pssfp1jltB9DcmFpZyBTbWFsbCA8Y3NtYWxsQGVuYy5j +b20uYXU+iQJUBBMBCgA+AhsDAh4BAheABQsJCAcDBRUKCQgLBRYCAwEAFiEEXS+z +ILgl2TkE0gUZOTj5a99Q/qUFAl/WghEFCRXMOZoACgkQOTj5a99Q/qVdTBAAg4ro +5fGLMO/gs/leS+qW1wRLQiLPauEY6kvMgaD2Y9xJvKHSJuADIyf8AOnCOGCiS7FN +gjVZNIXnl10w3+2V6HY2y1aBbfYRe81/iUAkDJ7C4pa9LbQJPf5jbY18OFnctSye +yTUTgggLEBk0hXJVBJCJGqVdITsbZX+FKx9SjxqpRNh9A6qPpZUEwANCXeGiUEhC +9/Ok1asJArZIgWV1B4Z8DAwqZi6Z4blEAiHRDp0W0jYRzQstgq2nIz3tslWd4fef +PK3JvwYVzjPU8LoAUujR0RoguuXEG0UzO5P1fQP8t2JsSljuepEa/5LEAXQNBVM5 +cef7lXTDYRNUKJqKY5LhVs3thNiPTJEMfTFCC7kn/0zY7TgH9pffLcTfPLS78Ujy +lJ0ebIHwdidWF3+Jey3dSJJMZrXGoyZejvZ6r7lBdNZd3hx8gHUBCUj0MPnB1f3m +HuX0csR7GuOLfursuxWnu7MSuNmBCaOAKM67W1TZrkaiHeSoUGv8yK2qMTJsRC+w +FTbS/h4goRZUYGo95iU5xReZgKjIVo92zaS2LJrhUn6ecvVSzNF5Szilx4LJEmgj +WlnExxJ2Psrfyx36asJ8feCcUNgMpt2MiqoPcqDgThnGRuMaEh+tayxouK1YUliz +IGYorflXmYhbaKWZLYRw0PsQVEUIlUXqG0f6/bm0KUNyYWlnIFNtYWxsIDxjc21h +bGxAc21hbGwuZHJvcGJlYXIuaWQuYXU+iQJKBDABCgA0FiEEXS+zILgl2TkE0gUZ +OTj5a99Q/qUFAl8eDJ8WHSBubyBsb25nZXIgdXNlIGRvbWFpbgAKCRA5OPlr31D+ +pczFD/9gxnowsnfGSVOasubXbot+OMazrpvIYr09SiwgyDwGOR9PiplMNUXFGIfN +tz18bwl0fS+f17rFd1vPZBAqV8aQFyecasVfbHO0QQ+tlBdMEd1Ww0xX4qu9Uj3C +8o4rl6R01/Uy+wZ9oJRC5SzRkyTrD708LQj2qNK4LYd0uCD7r1ASgte4Yp6UanGu +PAkCK2dU/cksFF5FBsNfmispztvHfYS9dwJEfY70cSe4lGx7GbAsTI9Y0I+M5lhx +8NPKTmnDCIhwCX8naaW2dY+6+oYKF0g8MsQ98atvch7u+x1tqRKaanTrKAV5dWkd +ekFsEbqgPdqc5W5/zGcVtNEdLIl6V7RW8l8gbTT+1wgN7Jd4M2ciOC+6RqjQ2Rry +nXXHgUS2c8aBvnE197V5OSactQ3MCtsE3b+ZjLdnESTywdZRJBtS1JBi19O+GS2A +Oip776nMs8Ou9drXW7R3nx2Qgse1IbbNj/JBsdbTBLLwQbnCpJ2Vo06w4Chud8JL ++/rFwURCZzdaPRk/4H3e+qSRInVTSYKeFETAqzLckRhmnhGCivqgyd2DRsyEHhOm +8iibyRlJogRgY9Gv5s18D6dA5W7esoK/ABcJnQ5++63R5Fot/GWz+FL+Z/ehIfCX +T+ixhY3vU4KFm8HopGj51cfU0T5Nisp3jd4oUq4yfsGaiT5RRA== +=kFPF +-----END PGP PUBLIC KEY BLOCK----- |