From 2886910346d7173dbced1a28fbd8795daf743b66 Mon Sep 17 00:00:00 2001 From: David P Date: Thu, 13 Jan 2022 17:00:22 -0300 Subject: updpkg: nonsystemd/util-linux 2.37.2-5.nonsystemd1 Signed-off-by: David P --- ...solve-tty-name-even-if-stdin-is-specified.patch | 104 +++++++++++++++++++++ nonsystemd/util-linux/PKGBUILD | 98 +++++++++---------- nonsystemd/util-linux/pam-common | 10 +- nonsystemd/util-linux/pam-login | 1 + nonsystemd/util-linux/pam-runuser | 4 +- nonsystemd/util-linux/pam-su | 13 +-- 6 files changed, 169 insertions(+), 61 deletions(-) create mode 100644 nonsystemd/util-linux/0001-agetty-resolve-tty-name-even-if-stdin-is-specified.patch (limited to 'nonsystemd') 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 +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 +Signed-off-by: Karel Zak +--- + 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. -# Maintainer (Arch): Tom Gundersen -# Maintainer (Arch): Dave Reisner -# Contributor (Arch): judd +# Maintainer (Artix): Tom Gundersen +# Maintainer (Artix): Dave Reisner +# Contributor (Artix): judd 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 -- cgit v1.2.3