summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid P <megver83@parabola.nu>2022-01-13 17:00:22 -0300
committerDavid P <megver83@parabola.nu>2022-01-13 17:00:22 -0300
commit2886910346d7173dbced1a28fbd8795daf743b66 (patch)
tree224e84cd3f5e1e5ce6bf175ccfd0e6995ecc6c44
parentee824af98353f2a28798b094efe22954b8f28bd5 (diff)
updpkg: nonsystemd/util-linux 2.37.2-5.nonsystemd1
Signed-off-by: David P <megver83@parabola.nu>
-rw-r--r--nonsystemd/util-linux/0001-agetty-resolve-tty-name-even-if-stdin-is-specified.patch104
-rw-r--r--nonsystemd/util-linux/PKGBUILD98
-rw-r--r--nonsystemd/util-linux/pam-common10
-rw-r--r--nonsystemd/util-linux/pam-login1
-rw-r--r--nonsystemd/util-linux/pam-runuser4
-rw-r--r--nonsystemd/util-linux/pam-su13
6 files changed, 169 insertions, 61 deletions
diff --git a/nonsystemd/util-linux/0001-agetty-resolve-tty-name-even-if-stdin-is-specified.patch b/nonsystemd/util-linux/0001-agetty-resolve-tty-name-even-if-stdin-is-specified.patch
new file mode 100644
index 000000000..4f317b034
--- /dev/null
+++ b/nonsystemd/util-linux/0001-agetty-resolve-tty-name-even-if-stdin-is-specified.patch
@@ -0,0 +1,104 @@
+From 47831cc02ac0d71c335caecef1753f4c8861277c Mon Sep 17 00:00:00 2001
+From: tamz <totemz@protonmail.com>
+Date: Thu, 6 Jan 2022 11:56:58 +0100
+Subject: [PATCH 1/1] agetty: resolve tty name even if stdin is specified
+
+[kzak@redhat.com: - use "const" for options->tty (and friends)
+ as expected by get_terminal_name()]
+
+Addresses: https://github.com/util-linux/util-linux/issues/1546
+Signed-off-by: tamz <totemz@protonmail.com>
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+ term-utils/agetty.c | 26 ++++++++++++++++++--------
+ 1 file changed, 18 insertions(+), 8 deletions(-)
+
+diff --git a/term-utils/agetty.c b/term-utils/agetty.c
+index 55d373461..22850786d 100644
+--- a/term-utils/agetty.c
++++ b/term-utils/agetty.c
+@@ -190,8 +190,8 @@ struct options {
+ char *chroot; /* Chroot before the login */
+ char *login; /* login program */
+ char *logopt; /* options for login program */
+- char *tty; /* name of tty */
+- char *vcline; /* line of virtual console */
++ const char *tty; /* name of tty */
++ const char *vcline; /* line of virtual console */
+ char *term; /* terminal type */
+ char *initstring; /* modem init string */
+ char *issue; /* alternative issue file or directory */
+@@ -203,6 +203,7 @@ struct options {
+ int numspeed; /* number of baud rates to try */
+ int clocal; /* CLOCAL_MODE_* */
+ int kbmode; /* Keyboard mode if virtual console */
++ int tty_is_stdin; /* is the tty the standard input stream */
+ speed_t speeds[MAX_SPEED]; /* baud rates to be tried */
+ };
+
+@@ -319,7 +320,7 @@ static void init_special_char(char* arg, struct options *op);
+ static void parse_args(int argc, char **argv, struct options *op);
+ static void parse_speeds(struct options *op, char *arg);
+ static void update_utmp(struct options *op);
+-static void open_tty(char *tty, struct termios *tp, struct options *op);
++static void open_tty(const char *tty, struct termios *tp, struct options *op);
+ static void termio_init(struct options *op, struct termios *tp);
+ static void reset_vc(const struct options *op, struct termios *tp, int canon);
+ static void auto_baud(struct termios *tp);
+@@ -922,6 +923,15 @@ static void parse_args(int argc, char **argv, struct options *op)
+ }
+ }
+
++ /* resolve the tty path in case it was provided as stdin */
++ if (strcmp(op->tty, "-") == 0) {
++ op->tty_is_stdin = 1;
++ int fd = get_terminal_name(NULL, &op->tty, NULL);
++ if (fd < 0) {
++ log_warn(_("could not get terminal name: %d"), fd);
++ }
++ }
++
+ /* On virtual console remember the line which is used for */
+ if (strncmp(op->tty, "tty", 3) == 0 &&
+ strspn(op->tty + 3, "0123456789") == strlen(op->tty+3))
+@@ -962,8 +972,8 @@ static void update_utmp(struct options *op)
+ time_t t;
+ pid_t pid = getpid();
+ pid_t sid = getsid(0);
+- char *vcline = op->vcline;
+- char *line = op->tty;
++ const char *vcline = op->vcline;
++ const char *line = op->tty;
+ struct utmpx *utp;
+
+ /*
+@@ -1002,7 +1012,7 @@ static void update_utmp(struct options *op)
+ str2memcpy(ut.ut_id, vcline, sizeof(ut.ut_id));
+ else {
+ size_t len = strlen(line);
+- char * ptr;
++ const char * ptr;
+ if (len >= sizeof(ut.ut_id))
+ ptr = line + len - sizeof(ut.ut_id);
+ else
+@@ -1030,7 +1040,7 @@ static void update_utmp(struct options *op)
+ #endif /* SYSV_STYLE */
+
+ /* Set up tty as stdin, stdout & stderr. */
+-static void open_tty(char *tty, struct termios *tp, struct options *op)
++static void open_tty(const char *tty, struct termios *tp, struct options *op)
+ {
+ const pid_t pid = getpid();
+ int closed = 0;
+@@ -1040,7 +1050,7 @@ static void open_tty(char *tty, struct termios *tp, struct options *op)
+
+ /* Set up new standard input, unless we are given an already opened port. */
+
+- if (strcmp(tty, "-") != 0) {
++ if (!op->tty_is_stdin) {
+ char buf[PATH_MAX+1];
+ struct group *gr = NULL;
+ struct stat st;
+--
+2.34.1
+
diff --git a/nonsystemd/util-linux/PKGBUILD b/nonsystemd/util-linux/PKGBUILD
index 6d55b3fb1..a61fb0d00 100644
--- a/nonsystemd/util-linux/PKGBUILD
+++ b/nonsystemd/util-linux/PKGBUILD
@@ -1,42 +1,46 @@
# Maintainer: David P. <megver83@parabola.nu>
-# Maintainer (Arch): Tom Gundersen <teg@jklm.no>
-# Maintainer (Arch): Dave Reisner <dreisner@archlinux.org>
-# Contributor (Arch): judd <jvinet@zeroflux.org>
+# Maintainer (Artix): Tom Gundersen <teg@jklm.no>
+# Maintainer (Artix): Dave Reisner <dreisner@archlinux.org>
+# Contributor (Artix): judd <jvinet@zeroflux.org>
pkgbase=util-linux
pkgname=(util-linux util-linux-libs)
-_pkgmajor=2.36
-pkgver=${_pkgmajor}
-pkgrel=4
+_pkgmajor=2.37
+_realver=${_pkgmajor}.2
+pkgver=${_realver/-/}
+pkgrel=5
pkgrel+=.nonsystemd1
pkgdesc='Miscellaneous system utilities for Linux'
url='https://github.com/karelzak/util-linux'
-arch=('x86_64' 'i686' 'armv7h')
-makedepends=('udev' 'python' 'libcap-ng' 'libxcrypt')
+arch=('x86_64')
+arch+=('i686' 'armv7h')
+makedepends=('asciidoctor' 'libcap-ng' 'libxcrypt' 'python' 'udev')
license=('GPL2')
options=('strip')
validpgpkeys=('B0C64D14301CC6EFAEDF60E4E4B71D5EEC39C284') # Karel Zak
-source=("https://www.kernel.org/pub/linux/utils/util-linux/v$_pkgmajor/$pkgbase-$pkgver.tar."{xz,sign}
+source=("https://www.kernel.org/pub/linux/utils/util-linux/v${_pkgmajor}/${pkgbase}-${_realver}.tar."{xz,sign}
+ '0001-agetty-resolve-tty-name-even-if-stdin-is-specified.patch'
pam-{login,common,runuser,su}
'util-linux.sysusers'
'60-rfkill.rules')
-sha256sums=('9e4b1c67eb13b9b67feb32ae1dc0d50e08ce9e5d82e1cccd0ee771ad2fa9e0b1'
+sha256sums=('6a0764c1aae7fb607ef8a6dd2c0f6c47d5e5fd27aa08820abaad9ec14e28e9d9'
'SKIP'
- '993a3096c2b113e6800f2abbd5d4233ebf1a97eef423990d3187d665d3490b92'
- 'fc6807842f92e9d3f792d6b64a0d5aad87995a279153ab228b1b2a64d9f32f20'
- '95b7cdc4cba17494d7b87f37f8d0937ec54c55de0e3ce9d9ab05ad5cc76bf935'
- '51eac9c2a2f51ad3982bba35de9aac5510f1eeff432d2d63c6362e45d620afc0'
+ '53395b7e434b32e6fee25f1b6fa59330ab72c1a2f99a17c3d3fd92473379fd9a'
+ '99cd77f21ee44a0c5e57b0f3670f711a00496f198fc5704d7e44f5d817c81a0f'
+ '57e057758944f4557762c6def939410c04ca5803cbdd2bfa2153ce47ffe7a4af'
+ '48d6fba767631e3dd3620cf02a71a74c5d65a525d4c4ce4b5a0b7d9f41ebfea1'
+ 'b28f31fcafa401b0eb26bc0c710002acc4f7718f97af45b0d444e4af6dfb15a8'
'10b0505351263a099163c0d928132706e501dd0a008dac2835b052167b14abe3'
'7423aaaa09fee7f47baa83df9ea6fef525ff9aec395c8cbd9fe848ceb2643f37')
-build() {
- cd "$pkgbase-$pkgver"
+prepare() {
+ cd "${pkgbase}-${_realver}"
+
+ patch -Np1 < ../0001-agetty-resolve-tty-name-even-if-stdin-is-specified.patch
+}
- # We ship Debian's hardlink in package 'hardlink', Fedora's hardlink was
- # merged in util-linux. For now we disable the latter, but let's dicuss
- # the details:
- # https://bugs.archlinux.org/task/62896
- # https://github.com/karelzak/util-linux/issues/808
+build() {
+ cd "${pkgbase}-${_realver}"
./configure \
--prefix=/usr \
@@ -52,20 +56,18 @@ build() {
--enable-chfn-chsh \
--enable-write \
--enable-mesg \
- --disable-hardlink \
- --with-systemd=no \
- --with-systemdsystemunitdir=no \
- --with-python=3
+ --without-systemd \
+ --with-python=3
make
}
package_util-linux() {
- conflicts=('rfkill')
- provides=('rfkill')
- replaces=('rfkill')
- depends=('pam' 'shadow' 'coreutils'
- 'libudev.so' 'libcap-ng' 'libxcrypt' 'libcrypt.so' 'util-linux-libs'
+ conflicts=('rfkill' 'hardlink')
+ provides=('rfkill' 'hardlink')
+ replaces=('rfkill' 'hardlink')
+ depends=('pam' 'shadow' 'coreutils' 'libudev' 'libudev.so'
+ 'libcap-ng' 'libxcrypt' 'libcrypt.so' 'util-linux-libs'
'libmagic.so' 'libncursesw.so' 'libreadline.so')
optdepends=('python: python bindings to libmount'
'words: default dictionary for look')
@@ -77,37 +79,37 @@ package_util-linux() {
etc/pam.d/su
etc/pam.d/su-l)
- cd "$pkgbase-$pkgver"
+ cd "${pkgbase}-${_realver}"
- make DESTDIR="$pkgdir" install
+ make DESTDIR="${pkgdir}" install
# setuid chfn and chsh
- chmod 4755 "$pkgdir"/usr/bin/{newgrp,ch{sh,fn}}
+ chmod 4755 "${pkgdir}"/usr/bin/{newgrp,ch{sh,fn}}
# install PAM files for login-utils
- install -Dm0644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chfn"
- install -m0644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chsh"
- install -m0644 "$srcdir/pam-login" "$pkgdir/etc/pam.d/login"
- install -m0644 "$srcdir/pam-runuser" "$pkgdir/etc/pam.d/runuser"
- install -m0644 "$srcdir/pam-runuser" "$pkgdir/etc/pam.d/runuser-l"
- install -m0644 "$srcdir/pam-su" "$pkgdir/etc/pam.d/su"
- install -m0644 "$srcdir/pam-su" "$pkgdir/etc/pam.d/su-l"
+ install -Dm0644 "${srcdir}/pam-common" "${pkgdir}/etc/pam.d/chfn"
+ install -m0644 "${srcdir}/pam-common" "${pkgdir}/etc/pam.d/chsh"
+ install -m0644 "${srcdir}/pam-login" "${pkgdir}/etc/pam.d/login"
+ install -m0644 "${srcdir}/pam-runuser" "${pkgdir}/etc/pam.d/runuser"
+ install -m0644 "${srcdir}/pam-runuser" "${pkgdir}/etc/pam.d/runuser-l"
+ install -m0644 "${srcdir}/pam-su" "${pkgdir}/etc/pam.d/su"
+ install -m0644 "${srcdir}/pam-su" "${pkgdir}/etc/pam.d/su-l"
# adjust for usrmove
# TODO(dreisner): fix configure.ac upstream so that this isn't needed
- cd "$pkgdir"
+ cd "${pkgdir}"
mv usr/sbin/* usr/bin
rmdir usr/sbin
### runtime libs are shipped as part of util-linux-libs
- rm "$pkgdir"/usr/lib/lib*.{a,so}*
+ rm "${pkgdir}"/usr/lib/lib*.{a,so}*
- ### install opensysusers
- install -Dm0644 "$srcdir/util-linux.sysusers" \
- "$pkgdir/usr/lib/sysusers.d/util-linux.conf"
+ ### install sysusers
+ install -Dm0644 "${srcdir}/util-linux.sysusers" \
+ "${pkgdir}/usr/lib/sysusers.d/util-linux.conf"
- install -Dm0644 "$srcdir/60-rfkill.rules" \
- "$pkgdir/usr/lib/udev/rules.d/60-rfkill.rules"
+ install -Dm0644 "${srcdir}/60-rfkill.rules" \
+ "${pkgdir}/usr/lib/udev/rules.d/60-rfkill.rules"
}
package_util-linux-libs() {
@@ -116,5 +118,5 @@ package_util-linux-libs() {
conflicts=('libutil-linux')
replaces=('libutil-linux')
- make -C "$pkgbase-$pkgver" DESTDIR="$pkgdir" install-usrlib_execLTLIBRARIES
+ make -C "${pkgbase}-${_realver}" DESTDIR="${pkgdir}" install-usrlib_execLTLIBRARIES
}
diff --git a/nonsystemd/util-linux/pam-common b/nonsystemd/util-linux/pam-common
index a7bf8a4a5..066186e3c 100644
--- a/nonsystemd/util-linux/pam-common
+++ b/nonsystemd/util-linux/pam-common
@@ -1,6 +1,6 @@
#%PAM-1.0
-auth sufficient pam_rootok.so
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so
-password required pam_permit.so
+auth sufficient pam_rootok.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+password required pam_permit.so
diff --git a/nonsystemd/util-linux/pam-login b/nonsystemd/util-linux/pam-login
index 1960d9497..2dac6ab61 100644
--- a/nonsystemd/util-linux/pam-login
+++ b/nonsystemd/util-linux/pam-login
@@ -5,3 +5,4 @@ auth requisite pam_nologin.so
auth include system-local-login
account include system-local-login
session include system-local-login
+password include system-local-login
diff --git a/nonsystemd/util-linux/pam-runuser b/nonsystemd/util-linux/pam-runuser
index d5b1ea353..26b59d51c 100644
--- a/nonsystemd/util-linux/pam-runuser
+++ b/nonsystemd/util-linux/pam-runuser
@@ -1,4 +1,4 @@
#%PAM-1.0
-auth sufficient pam_rootok.so
-session include system-login
+auth sufficient pam_rootok.so
+session include system-login
diff --git a/nonsystemd/util-linux/pam-su b/nonsystemd/util-linux/pam-su
index cf15f40f1..4f17caeae 100644
--- a/nonsystemd/util-linux/pam-su
+++ b/nonsystemd/util-linux/pam-su
@@ -1,9 +1,10 @@
#%PAM-1.0
-auth sufficient pam_rootok.so
+auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
-#auth sufficient pam_wheel.so trust use_uid
+#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
-#auth required pam_wheel.so use_uid
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so
+#auth required pam_wheel.so use_uid
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+password include system-auth