Accepting request 999760 from home:sbrabec:branches:util-linux-2.38

This submit performs a substantial bootstrap and project changes:
- Project prjconf needs "Prefer: libuuid1".
- Project needs to remove link packages util-linux-systemd and python3-libmount.
- Bootstrap packages should build with util-linux-mini. All other packages should build with util-linux.
Main changes:
- Changed packaging style from multi spec build to multibuild with
  python multi-flavor build (PED-1007).
- Update to version 2.38.1...
- Fix some rpmlintrc warnings and remove util-linux-rpmlintrc.

- Update to version 2.38:
  * first release with translated util-linux man-pages
  * mount: new options --mkdir as shortcut for X-mount.mkdir
  * mount, libmount: new mount options X-mount.subdir=
  * lsfd: new command
  * dmesg: new option --json to print kernel log in JSON format
  * libfdisk: improved to set correct CHS addresses in MBR
  * fstrim: ignores all /ect/fstab entries with X-fstrim.notrim
    (jsc#SLE-17942)
  * hardlink: now supports reflinks and new option --method=
  * hwclock: new command line options --param-get and --param-set
  * irqtop: new option --cpu-stat
  * libblkid: supports zoned disks for btrfs
  * lsblk: new options --noempty to ignore all devices with zero
    size, and --zoned to print information about zones

OBS-URL: https://build.opensuse.org/request/show/999760
OBS-URL: https://build.opensuse.org/package/show/Base:System/util-linux?expand=0&rev=472
This commit is contained in:
Jan Engelhardt 2022-09-01 18:34:07 +00:00 committed by Git OBS Bridge
parent 2b9a1985d8
commit 37fe7330c9
15 changed files with 873 additions and 14742 deletions

4
_multibuild Normal file
View File

@ -0,0 +1,4 @@
<multibuild>
<package>mini</package>
<package>python</package>
</multibuild>

View File

@ -1,54 +0,0 @@
From 89c7c6ea6ef12722eac31c18b8fa6fbcf429525b Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Wed, 20 Jul 2022 16:55:02 +0200
Subject: [PATCH] sulogin: fix includes
* support --enable-sulogin-emergency-mount on Linux only
* don't include unnecessary linux/magic.h
* don't include linux/fs.h, sys/mount.h should be enough, otherwise
define a fallback for MS_RELATIME
Reported-by: Andreas Schwab <schwab@suse.de>
Signed-off-by: Karel Zak <kzak@redhat.com>
---
configure.ac | 2 ++
login-utils/sulogin-consoles.c | 7 ++++---
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index 824e8bbd2..51deeecd4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2615,6 +2615,8 @@ AC_ARG_ENABLE([sulogin-emergency-mount],
)
AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
+ AS_IF([test "x$linux_os" = xyes], [ ],
+ [AC_MSG_ERROR([--enable-sulogin-emergency-mount selected for non-linux system])])
AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
[Should sulogin use an emergency mount of /dev and /proc?])
])
diff --git a/login-utils/sulogin-consoles.c b/login-utils/sulogin-consoles.c
index 9ae4b2eba..9ae525556 100644
--- a/login-utils/sulogin-consoles.c
+++ b/login-utils/sulogin-consoles.c
@@ -41,10 +41,11 @@
#include <fcntl.h>
#include <unistd.h>
-#ifdef USE_SULOGIN_EMERGENCY_MOUNT
+#if defined(USE_SULOGIN_EMERGENCY_MOUNT)
# include <sys/mount.h>
-# include <linux/fs.h>
-# include <linux/magic.h>
+# ifndef MS_RELATIME
+# define MS_RELATIME (1<<21)
+# endif
# ifndef MNT_DETACH
# define MNT_DETACH 2
# endif
--
2.37.1

View File

@ -1,37 +0,0 @@
#!/bin/sh
if test util-linux.spec -ot python3-libmount.spec ; then
echo "util-linux.spec is older than python3-libmount.spec. Please merge changes manually and call pre-checkin.sh again."
exit 1
fi
if test util-linux.changes -ot python3-libmount.changes ; then
echo "util-linux.changes is older than python3-libmount.changes. Please merge changes manually and call pre-checkin.sh again."
exit 1
fi
if test util-linux.spec -ot util-linux-systemd.spec ; then
echo "util-linux.spec is older than util-linux-systemd.spec. Please merge changes manually and call pre-checkin.sh again."
exit 1
fi
if test util-linux.changes -ot util-linux-systemd.changes ; then
echo "util-linux.changes is older than util-linux-systemd.changes. Please merge changes manually and call pre-checkin.sh again."
exit 1
fi
sed '
s/spec file for package util-linux/spec file for package python3-libmount/;
/^Name:/s/util-linux/python3-libmount/;
s/WARNING: After editing this file please/WARNING: Never edit this file!!! Edit util-linux.spec and/
' <util-linux.spec >python3-libmount.spec
sed '
s/spec file for package util-linux/spec file for package util-linux-systemd/;
/^Name:/s/util-linux/util-linux-systemd/;
s/WARNING: After editing this file please/WARNING: Never edit this file!!! Edit util-linux.spec and/
' <util-linux.spec >util-linux-systemd.spec
cp -a util-linux.changes python3-libmount.changes
cp -a util-linux.changes util-linux-systemd.changes
touch util-linux.spec util-linux.changes

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEsMZNFDAcxu+u32Dk5LcdXuw5woQFAmIKKY4ACgkQ5LcdXuw5
woRylw//WQuCmFUuO6rfi3lN4L6Vvxz7RoLo0YcreQC9n+Xfk6e0KGPO2tlyEmP1
NGp/YKqR194aWBdDaqzDxOAQ8V/MElTlLsO3MvKGpoDjyr4tsky3GYpZZ7uiKiLv
ZSD+fjA3pn4M0RCufyq3+/SKF7ui4HKMna7wUr5aPBiyxgae9SefxRSq4d0bH7Me
GEkDWU6y6mjzalAkVSb+4On/fQDe26hYRsvVmJpksivBpIkZXgNJSdT29axkfNo4
z4P6QNEc1YHFyV2jLb4lJJyTBLh9MeUF2H0MhWBcp3DXr8Cyonr473WtsowbMjQX
Xez6BR8Yag3o0oHXtov6osfR7A3JMQZXmI07eUTv7Sou32o9Nog1B26tHgLZ0ej8
i94mvy98fTla+h0gtvbHG9JJaQp68k32Ip9xcwlFPOGp256uOWnS3KNF4zO1unM3
E2jLHY2OKKMHhldvt2WmcwOeQTLWYrsv4VPsbJfdnsKRR4eUqm5EQIOdnYhSWxfC
4MZsenx5S9R/4ITU5cM1xU6BaVXgtNdL+LBJ+aBms6hf5rbgOaYrUr5gUQ9TWUWP
/EOY+48fGaIr1MDJo6OTiJuF7DG8kseJowfTjo8zK3ZrzXEJyfAZUwRzjuEyxu0+
kx7jhdkZCnQfAbTornWY/L8Fe/aDOchtaERgFOzCyyipJiDjwm8=
=jWac
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:634e6916ad913366c3536b6468e7844769549b99a7b2bf80314de78ab5655b83
size 6114232

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEsMZNFDAcxu+u32Dk5LcdXuw5woQFAmLrjp8ACgkQ5LcdXuw5
woTQgxAAgQWiFmOhNikEeRb2LoTlitzPCc7pFL1cEIIkkdQM6pihLU5hw5cPT+lW
HSQlmZNer4JkvytXuG6Wif54viTzujs6Jy9g29AtuItKF9Nb0li2hUi4sMqwEGj8
TzlvTZEIHYW71S3ttg6lrZTlufyw8gP8IFXG9gjkrNVPBllAjlr1O4EOwCSF/Gpl
7a+bsDqFPua7zD0QAGs8M4KxTCnTSM76I2xPrV/tNVXRLeL3MLMA8o8TWIfwkPfc
RGrVTPVsUsguu6Vh8dePgIN6llrm9kuVL90p4HzwTuAL2y6xsaI0VDhQX1Zzdg1p
FuI+sjkdhpaQtsqwiK8IaGaJMzzSolhQ7u3Ki7P9/86U1CK5l486QN431d6+Xmoo
Gv0DpTlDMtwAgto59Jfz7S2qhCnx0hLBA0t0EmYL7J4sFGS7TSHjgCnKAs3q7QjH
kYblZZVTPBzIpw1g2iGNWm4zTFo6Ua6v2miLSDxmZs7hEw73moVobQnzlqwUtquo
JmX/bDRPXCpF4P4Z1GMyh8H03gL5u8XuzvSJyW9mAZv9FxB8Fy1SA6GHG0cVSluJ
WpNDHSJSFBR4yiGB0/YC9LLt6jhEsgjsI4bs3PTOgbthUF2ruWa2zc95KIaZa2Jt
J9WFmGPpbHi9aGQA4o/KW9L5M3QDL79lPYLmrpiinKxkRpDcrs4=
=jkzH
-----END PGP SIGNATURE-----

3
util-linux-2.38.1.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:60492a19b44e6cf9a3ddff68325b333b8b52b6c59ce3ebd6a0ecaa4c5117e84f
size 7495904

View File

@ -1,14 +0,0 @@
addFilter("init-script-without-%stop_on_removal-preun /etc/init.d/raw")
addFilter("init-script-without-%restart_on_update-postun /etc/init.d/raw")
addFilter("incoherent-init-script-name raw")
addFilter("no-reload-entry /etc/init.d/raw")
# There is no egrep(1) used -> False positive
addFilter("deprecated-grep")
# Both pam configs for su and su-l are marked as noreplace
addFilter(".*W:.*files-duplicate.*/pam/su.*/pam.d/su-l.*")
# Useless warning as the /usr/bin variants are known
addFilter(".*W:.*permissions-symlink.*/bin/su.*")
addFilter(".*W:.*permissions-symlink.*/bin/umount.*")
addFilter(".*W:.*permissions-symlink.*/bin/mount.*")
# UGLY HACK: rpmlint falsely declares problems with files-attr-not-set
addFilter("W: files-attr-not-set")

View File

@ -1,223 +0,0 @@
From: Werner Fink <werner@suse.de>
Date: Fri, 30 Oct 2020 14:54:59 +0100
Subject: [PATCH] sulogin: ignore not existing console devices
and also not functional console devices. Redirect the error
messages to the appropiate console device.
---
login-utils/sulogin-consoles.h | 1 +
login-utils/sulogin.c | 97 +++++++++++++++++++++++++++++++++++-------
2 files changed, 82 insertions(+), 16 deletions(-)
Index: util-linux-2.37.2/login-utils/sulogin-consoles.h
===================================================================
--- util-linux-2.37.2.orig/login-utils/sulogin-consoles.h
+++ util-linux-2.37.2/login-utils/sulogin-consoles.h
@@ -40,6 +40,7 @@ struct console {
int fd, id;
#define CON_SERIAL 0x0001
#define CON_NOTTY 0x0002
+#define CON_EIO 0x0004
pid_t pid;
struct chardata cp;
struct termios tio;
Index: util-linux-2.37.2/login-utils/sulogin.c
===================================================================
--- util-linux-2.37.2.orig/login-utils/sulogin.c
+++ util-linux-2.37.2/login-utils/sulogin.c
@@ -52,6 +52,7 @@
#ifdef __linux__
# include <sys/kd.h>
# include <sys/param.h>
+# include <linux/serial.h>
#endif
#include "c.h"
@@ -106,6 +107,9 @@ static void tcinit(struct console *con)
int flags = 0, mode = 0;
struct termios *tio = &con->tio;
const int fd = con->fd;
+#if defined(TIOCGSERIAL)
+ struct serial_struct serinfo;
+#endif
#ifdef USE_PLYMOUTH_SUPPORT
struct termios lock;
int i = (plymouth_command(MAGIC_PING)) ? PLYMOUTH_TERMIOS_FLAGS_DELAY : 0;
@@ -125,27 +129,72 @@ static void tcinit(struct console *con)
}
memset(&lock, 0, sizeof(struct termios));
ioctl(fd, TIOCSLCKTRMIOS, &lock);
+ errno = 0;
#endif
+
+#if defined(TIOCGSERIAL)
+ if (ioctl(fd, TIOCGSERIAL, &serinfo) >= 0)
+ con->flags |= CON_SERIAL;
+ errno = 0;
+#else
+# if defined(KDGKBMODE)
+ if (ioctl(fd, KDGKBMODE, &mode) < 0)
+ con->flags |= CON_SERIAL;
errno = 0;
+# endif
+#endif
if (tcgetattr(fd, tio) < 0) {
- warn(_("tcgetattr failed"));
- con->flags |= CON_NOTTY;
- return;
+ int saveno = errno;
+#if defined(KDGKBMODE) || defined(TIOCGSERIAL)
+ if (con->flags & CON_SERIAL) { /* Try to recover this */
+
+# if defined(TIOCGSERIAL)
+ serinfo.flags |= ASYNC_SKIP_TEST; /* Skip test of UART */
+
+ if (ioctl(fd, TIOCSSERIAL, &serinfo) < 0)
+ goto tcgeterr;
+ if (ioctl(fd, TIOCSERCONFIG) < 0) /* Try to autoconfigure */
+ goto tcgeterr;
+ if (ioctl(fd, TIOCGSERIAL, &serinfo) < 0)
+ goto tcgeterr; /* Ouch */
+# endif
+ if (tcgetattr(fd, tio) < 0) /* Retry to get tty attributes */
+ saveno = errno;
+ }
+# if defined(TIOCGSERIAL)
+ tcgeterr:
+# endif
+ if (saveno)
+#endif
+ {
+ FILE *fcerr = fdopen(fd, "w");
+ if (fcerr) {
+ fprintf(fcerr, _("tcgetattr failed"));
+ fclose(fcerr);
+ }
+ warn(_("tcgetattr failed"));
+
+ con->flags &= ~CON_SERIAL;
+ if (saveno != EIO)
+ con->flags |= CON_NOTTY;
+ else
+ con->flags |= CON_EIO;
+
+ errno = 0;
+ return;
+ }
}
/* Handle lines other than virtual consoles here */
-#if defined(KDGKBMODE)
- if (ioctl(fd, KDGKBMODE, &mode) < 0)
+#if defined(KDGKBMODE) || defined(TIOCGSERIAL)
+ if (con->flags & CON_SERIAL)
#endif
{
speed_t ispeed, ospeed;
struct winsize ws;
errno = 0;
- /* this is a modem line */
- con->flags |= CON_SERIAL;
-
/* Flush input and output queues on modem lines */
tcflush(fd, TCIOFLUSH);
@@ -222,6 +271,8 @@ static void tcfinal(struct console *con)
struct termios *tio = &con->tio;
const int fd = con->fd;
+ if (con->flags & CON_EIO)
+ return;
if ((con->flags & CON_SERIAL) == 0) {
xsetenv("TERM", "linux", 1);
return;
@@ -559,12 +610,16 @@ err:
static void setup(struct console *con)
{
int fd = con->fd;
- const pid_t pid = getpid(), pgrp = getpgid(0), ppgrp =
- getpgid(getppid()), ttypgrp = tcgetpgrp(fd);
+ const pid_t pid = getpid(), pgrp = getpgid(0), ppgrp = getpgid(getppid());
+ pid_t ttypgrp;
if (con->flags & CON_NOTTY)
+ goto notty;
+ if (con->flags & CON_EIO)
return;
+ ttypgrp = tcgetpgrp(fd);
+
/*
* Only go through this trouble if the new
* tty doesn't fall in this process group.
@@ -587,6 +642,7 @@ static void setup(struct console *con)
ioctl(fd, TIOCSCTTY, (char *)1);
tcsetpgrp(fd, ppgrp);
}
+notty:
dup2(fd, STDIN_FILENO);
dup2(fd, STDOUT_FILENO);
dup2(fd, STDERR_FILENO);
@@ -616,15 +672,20 @@ static char *getpasswd(struct console *c
int eightbit;
const int fd = con->fd;
- if (con->flags & CON_NOTTY)
+ if (con->flags & CON_EIO)
goto out;
cp = &con->cp;
tty = con->tio;
+ tc = 0;
+ ret = pass;
+
ret = pass;
tty.c_iflag &= ~(IUCLC|IXON|IXOFF|IXANY);
tty.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL|TOSTOP|ISIG);
- tc = (tcsetattr(fd, TCSAFLUSH, &tty) == 0);
+
+ if ((con->flags & CON_NOTTY) == 0)
+ tc = (tcsetattr(fd, TCSAFLUSH, &tty) == 0);
sigemptyset(&sa.sa_mask);
sa.sa_handler = alrm_handler;
@@ -650,11 +711,12 @@ static char *getpasswd(struct console *c
}
ret = NULL;
switch (errno) {
- case 0:
case EIO:
+ con->flags |= CON_EIO;
case ESRCH:
case EINVAL:
case ENOENT:
+ case 0:
break;
default:
warn(_("cannot read %s"), con->tty);
@@ -976,10 +1038,13 @@ int main(int argc, char **argv)
con = list_entry(ptr, struct console, entry);
if (con->id >= CONMAX)
break;
+ if (con->flags & CON_EIO)
+ goto next;
switch ((con->pid = fork())) {
case 0:
mask_signal(SIGCHLD, SIG_DFL, NULL);
+ dup2(con->fd, STDERR_FILENO);
nofork:
setup(con);
while (1) {
@@ -1040,7 +1105,7 @@ int main(int argc, char **argv)
default:
break;
}
-
+ next:
ptr = ptr->next;
} while (ptr != &consoles);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,68 @@
-------------------------------------------------------------------
Mon Aug 29 02:41:41 UTC 2022 - Stanislav Brabec <sbrabec@suse.com>
- Update to version 2.38.1:
* column: fix buffer overflow when -l specified, fix greedy mode
on -l
* dmesg: fix --since and --until
* libmount: when moving a mount point, all sub mount entries in
utab should also be updated (bsc#1198731)
* libuuid: improve cache handling (bsc#1201959, PED-1150)
* lsblk: fix JSON output when without --bytes
* lsfd:fix crash triggered by an empty filter expression
* sulogin: fix includes (obsoletes linux-fs.patch)
* Many other fixes, improvements and code cleanup. For the
complete list see
https://www.kernel.org/pub/linux/utils/util-linux/v2.38/v2.38.1-ReleaseNotes
- Fix some rpmlintrc warnings and remove util-linux-rpmlintrc.
-------------------------------------------------------------------
Mon Aug 22 02:59:20 UTC 2022 - Stanislav Brabec <sbrabec@suse.com>
- Update to version 2.38:
* first release with translated util-linux man-pages
* mount: new options --mkdir as shortcut for X-mount.mkdir
* mount, libmount: new mount options X-mount.subdir=
* lsfd: new command
* dmesg: new option --json to print kernel log in JSON format
* libfdisk: improved to set correct CHS addresses in MBR
* fstrim: ignores all /ect/fstab entries with X-fstrim.notrim
(jsc#SLE-17942)
* hardlink: now supports reflinks and new option --method=
* hwclock: new command line options --param-get and --param-set
* irqtop: new option --cpu-stat
* libblkid: supports zoned disks for btrfs
* lsblk: new options --noempty to ignore all devices with zero
size, and --zoned to print information about zones
* mkswap: new option --quiet
* nsenter: new option --wdns to change working directory within
namespace
* rename: new options --all and --last to replace all or last
occurrences of expression rather than the first one
* su: now resets RLIMIT_AS, RLIMIT_{NICE,RTPRIO}, RLIMIT_FSIZE
and RLIMIT_NOFILE reourse limits.
* unshare: new options --map-users= and --map-groups= to map
block of group IDs; new option --map-auto to map the first
block of user IDs owned by the effective user from /etc/subuid
* wdctl: new options --setpregovernor to set pre-timeout governor
name, and --setpretimeout to set watchdog pre-timeout in
seconds
* Many other new features and fixes. For the complete list see
https://www.kernel.org/pub/linux/utils/util-linux/v2.38/v2.38-ReleaseNotes
- Changed packaging style from multi spec build to multibuild with
python multi-flavor build (PED-1007).
Advantages:
* Easily prevents bootstrap build loops.
* No artificial package splitting needed any more.
* Less complicated spec file.
* Can run full test suite.
* python*-libmount available for more python versions.
* Enable asciidoctor to build documentation.
* Enable support for libmagic.
* Turn technically incorrect Recommends to Requires.
- Fix rpmling warning by setting attr for clock.txt ghost file.
- Drop upstreamed util-linux-sulogin4bsc1175514.patch
-------------------------------------------------------------------
Tue Aug 9 07:51:17 UTC 2022 - Thorsten Kukuk <kukuk@suse.com>

File diff suppressed because it is too large Load Diff