Compare commits

..

3 commits

Author SHA1 Message Date
Karel Zak
ac7d4ef0e2 agetty: fix stdin conversion to tty name [BZ#2326710] 2026-01-28 11:54:02 +01:00
Karel Zak
a957d6ce9e wall: Always use utmp as a fallback [BZ#2283049]
- clean up the patches section in the spec file
- re-sync patches with Git

(see https://github.com/karelzak/util-linux-work/tree/fedora/f42)
2026-01-27 10:27:25 +01:00
Karel Zak
33bdaab085 fix setpwnam() buffer use [CVE-2025-14104]
- libblkid: use snprintf() instead of sprintf()
2025-12-15 18:05:02 +01:00
17 changed files with 369 additions and 123 deletions

View file

@ -1 +0,0 @@
1

7
.gitignore vendored
View file

@ -99,10 +99,3 @@
/util-linux-2.40.1.tar.xz
/util-linux-2.40.2.tar.xz
/util-linux-2.40.4.tar.xz
/util-linux-2.41.tar.xz
/util-linux-2.41.1.tar.xz
/util-linux-2.41.2.tar.xz
/util-linux-2.41.3.tar.xz
/util-linux-2.42.tar.xz
/util-linux-2.42.1.tar.xz
/util-linux-2.42.2.tar.xz

View file

@ -1,19 +1,20 @@
From a2357184ff3dc3beb001fcb12e1e4c0dcf8d0dbd Mon Sep 17 00:00:00 2001
From 1a2ec6f6dbb1c74694403ff5bcfcbd36830ff2a4 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Tue, 2 Dec 2025 16:15:44 +0100
Subject: login: use O_CREAT on lastlog
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=151635
Signed-off-by: Karel Zak <kzak@redhat.com>
(cherry picked from commit 85902de01452198bc15199f5e5c147df31b38212)
---
login-utils/login.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/login-utils/login.c b/login-utils/login.c
index 321f9d6ce..edc69fd9a 100644
index c8544f6a1..3de0398e9 100644
--- a/login-utils/login.c
+++ b/login-utils/login.c
@@ -682,7 +682,7 @@ static void log_lastlog(struct login_context *cxt)
@@ -681,7 +681,7 @@ static void log_lastlog(struct login_context *cxt)
sa.sa_handler = SIG_IGN;
sigaction(SIGXFSZ, &sa, &oldsa_xfsz);
@ -23,5 +24,5 @@ index 321f9d6ce..edc69fd9a 100644
goto done;
offset = cxt->pwd->pw_uid * sizeof(ll);
--
2.51.1
2.52.0

View file

@ -1,16 +1,17 @@
From 617a887a6ec7e433f6a9f4c60592ed38b12b9f18 Mon Sep 17 00:00:00 2001
From 84ee1e47e64fcabb83c39611d92a0496d086e0bb Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Tue, 2 Dec 2025 16:17:55 +0100
Subject: login: add /run/motd.d` to the hardcoded MOTD_FILE
Addresses: https://github.com/coreos/console-login-helper-messages/issues/60
Signed-off-by: Karel Zak <kzak@redhat.com>
(cherry picked from commit c8e1485a02c031926eb4ae0fc1e2ce380584be98)
---
include/pathnames.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/pathnames.h b/include/pathnames.h
index 34ba11ca3..c91a077e1 100644
index de456c53e..ac28a9a50 100644
--- a/include/pathnames.h
+++ b/include/pathnames.h
@@ -41,7 +41,7 @@
@ -23,5 +24,5 @@ index 34ba11ca3..c91a077e1 100644
# define _PATH_NOLOGIN "/etc/nologin"
#endif
--
2.51.1
2.52.0

View file

@ -0,0 +1,33 @@
From fa9260ab4d778c4c9958fd5a10644abf41ae6583 Mon Sep 17 00:00:00 2001
From: Eric Sandeen <sandeen@redhat.com>
Date: Fri, 24 Jan 2025 08:37:12 -0600
Subject: blkid: allow up to 64k erofs block sizes
Today, mkfs.erofs defaults to page size for block size, but blkid
does not recognize this. Increase the limit to 64k.
Reviewed-by: Gao Xiang <xiang@kernel.org>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
---
libblkid/src/superblocks/erofs.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libblkid/src/superblocks/erofs.c b/libblkid/src/superblocks/erofs.c
index 05822460b..57fd80220 100644
--- a/libblkid/src/superblocks/erofs.c
+++ b/libblkid/src/superblocks/erofs.c
@@ -73,8 +73,8 @@ static int probe_erofs(blkid_probe pr, const struct blkid_idmag *mag)
if (!sb)
return errno ? -errno : BLKID_PROBE_NONE;
- /* EROFS is restricted to 4KiB block size */
- if (sb->blkszbits > 31 || (1U << sb->blkszbits) > 4096)
+ /* block size must be between 512 and 64k */
+ if (sb->blkszbits < 9 || sb->blkszbits > 16)
return BLKID_PROBE_NONE;
if (!erofs_verify_checksum(pr, mag, sb))
--
2.52.0

View file

@ -0,0 +1,58 @@
From 83a413885e608296db220c009b2b1d015bb61e9c Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Mon, 6 Oct 2025 15:04:24 +0200
Subject: libblkid: use snprintf() instead of sprintf()
Replace sprintf() calls with snprintf() to ensure proper bounds
checking when formatting strings.
In encode.c, the check now validates snprintf() return value instead
of pre-checking buffer size, providing more robust error handling.
In probe.c, snprintf() is used with proper size calculation based on
remaining buffer space.
Signed-off-by: Karel Zak <kzak@redhat.com>
(cherry picked from commit 041380f4ca7244df624bf7efdb5e27fdd3144175)
(cherry picked from commit 917917253e60b0ba485cf6a27a2f993aa43e1eea)
---
libblkid/src/encode.c | 6 ++++--
libblkid/src/probe.c | 4 ++--
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/libblkid/src/encode.c b/libblkid/src/encode.c
index 8213873ee..4b83f6690 100644
--- a/libblkid/src/encode.c
+++ b/libblkid/src/encode.c
@@ -191,9 +191,11 @@ int blkid_encode_string(const char *str, char *str_enc, size_t len)
j += seqlen;
i += (seqlen-1);
} else if (str[i] == '\\' || !is_whitelisted(str[i], NULL)) {
- if (len-j < 4)
+ int rc;
+
+ rc = snprintf(&str_enc[j], len-j, "\\x%02x", (unsigned char) str[i]);
+ if (rc != 4)
goto err;
- sprintf(&str_enc[j], "\\x%02x", (unsigned char) str[i]);
j += 4;
} else {
if (len-j < 1)
diff --git a/libblkid/src/probe.c b/libblkid/src/probe.c
index 7c561cf44..1f1031fda 100644
--- a/libblkid/src/probe.c
+++ b/libblkid/src/probe.c
@@ -1978,8 +1978,8 @@ static void blkid_probe_log_csum_mismatch(blkid_probe pr, size_t n, const void *
int hex_size = min(sizeof(csum_hex), n * 2);
for (int i = 0; i < hex_size; i+=2) {
- sprintf(&csum_hex[i], "%02X", ((const unsigned char *) csum)[i / 2]);
- sprintf(&expected_hex[i], "%02X", ((const unsigned char *) expected)[i / 2]);
+ snprintf(&csum_hex[i], sizeof(csum_hex) - i, "%02X", ((const unsigned char *) csum)[i / 2]);
+ snprintf(&expected_hex[i], sizeof(expected_hex) - i, "%02X", ((const unsigned char *) expected)[i / 2]);
}
ul_debug(
--
2.52.0

View file

@ -0,0 +1,50 @@
From 4d3bc36c528e8833e47cbd5b12063056ef9c0122 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Mon, 8 Dec 2025 13:36:41 +0100
Subject: login-utils: fix setpwnam() buffer use [CVE-2025-14104]
This issue has been originally fixed in the master branch, but
unfortunately was not backported to stable/v2.41 yet.
References: aaa9e718c88d6916b003da7ebcfe38a3c88df8e6
References: 9a36d77012c4c771f8d51eba46b6e62c29bf572a
Signed-off-by: Karel Zak <kzak@redhat.com>
(cherry picked from commit 9753e6ad9705104c3b05713f79ad6732cc4c7b30)
---
login-utils/setpwnam.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/login-utils/setpwnam.c b/login-utils/setpwnam.c
index 3e3c1abde..7778e98f7 100644
--- a/login-utils/setpwnam.c
+++ b/login-utils/setpwnam.c
@@ -99,7 +99,8 @@ int setpwnam(struct passwd *pwd, const char *prefix)
goto fail;
namelen = strlen(pwd->pw_name);
-
+ if (namelen > buflen)
+ buflen += namelen;
linebuf = malloc(buflen);
if (!linebuf)
goto fail;
@@ -126,10 +127,12 @@ int setpwnam(struct passwd *pwd, const char *prefix)
}
/* Is this the username we were sent to change? */
- if (!found && linebuf[namelen] == ':' &&
- !strncmp(linebuf, pwd->pw_name, namelen)) {
- /* Yes! So go forth in the name of the Lord and
- * change it! */
+ if (!found &&
+ strncmp(linebuf, pwd->pw_name, namelen) == 0 &&
+ strlen(linebuf) > namelen &&
+ linebuf[namelen] == ':') {
+ /* Yes! But this time lets not walk past the end of the buffer
+ * in the name of the Lord, SUID, or anything else. */
if (putpwent(pwd, fp) < 0)
goto fail;
found = 1;
--
2.52.0

View file

@ -0,0 +1,137 @@
From 0a856e72df9b6c37497e4e394841d893754b0fa8 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Mon, 3 Jun 2024 14:32:18 +0200
Subject: wall: always use utmp as fallback
Wall(1) can be compiled with systemd support to read the names of ttys
from the systemd session list. However, this may not work on all systems.
In case of failure, the best option is to use the traditional
utmp method as a fallback.
This commit uses strv (string vector) to collect tty names from both
sources (systemd and utmp) and then sends a message to all ttys.
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=2283049
Signed-off-by: Karel Zak <kzak@redhat.com>
(cherry picked from commit 0af497c6688b53a3a176176bfbcdca821bd856ec)
---
term-utils/wall.c | 57 ++++++++++++++++++++++++++++++++---------------
1 file changed, 39 insertions(+), 18 deletions(-)
diff --git a/term-utils/wall.c b/term-utils/wall.c
index 125fde438..22c3918bb 100644
--- a/term-utils/wall.c
+++ b/term-utils/wall.c
@@ -78,6 +78,7 @@
#include "closestream.h"
#include "timeutils.h"
#include "pwdutils.h"
+#include "strv.h"
#define TERM_WIDTH 79
#define WRITE_TIME_OUT 300 /* in seconds */
@@ -190,19 +191,30 @@ static int is_gr_member(const char *login, const struct group_workspace *buf)
return 0;
}
+static int has_tty(char **ttys, char *name)
+{
+ char **str;
+
+ STRV_FOREACH(str, ttys) {
+ if (strcmp(*str, name) == 0)
+ return 1;
+ }
+
+ return 0;
+}
+
int main(int argc, char **argv)
{
int ch;
struct iovec iov;
struct utmpx *utmpptr;
- char *p;
char line[sizeof(utmpptr->ut_line) + 1];
int print_banner = TRUE;
struct group_workspace *group_buf = NULL;
char *mbuf, *fname = NULL;
size_t mbufsize;
unsigned timeout = WRITE_TIME_OUT;
- char **mvec = NULL;
+ char **mvec = NULL, **ttys = NULL, **str;
int mvecsz = 0;
static const struct option longopts[] = {
@@ -265,30 +277,30 @@ int main(int argc, char **argv)
int sessions;
sessions = sd_get_sessions(&sessions_list);
- if (sessions < 0)
- errx(EXIT_FAILURE, _("error getting sessions: %s"),
- strerror(-sessions));
+ if (sessions < 0) {
+ warnx(_("error getting sessions: %s"), strerror(-sessions));
+ goto utmp;
+ }
for (int i = 0; i < sessions; i++) {
char *name, *tty;
int r;
- if ((r = sd_session_get_username(sessions_list[i], &name)) < 0)
- errx(EXIT_FAILURE, _("get user name failed: %s"), strerror (-r));
-
- if (!(group_buf && !is_gr_member(name, group_buf))) {
- if (sd_session_get_tty(sessions_list[i], &tty) >= 0) {
- if ((p = ttymsg(&iov, 1, tty, timeout)) != NULL)
- warnx("%s", p);
-
- free(tty);
- }
+ if ((r = sd_session_get_username(sessions_list[i], &name)) < 0) {
+ warnx(_("get user name failed: %s"), strerror (-r));
+ goto utmp;
}
+ if (!(group_buf && !is_gr_member(name, group_buf))
+ && sd_session_get_tty(sessions_list[i], &tty) >= 0
+ && strv_consume(&ttys, tty) < 0)
+ err(EXIT_FAILURE, _("failed to allocate lines list"));
+
free(name);
free(sessions_list[i]);
}
free(sessions_list);
- } else
+ }
+utmp:
#endif
{
while ((utmpptr = getutxent())) {
@@ -310,12 +322,21 @@ int main(int argc, char **argv)
continue;
mem2strcpy(line, utmpptr->ut_line, sizeof(utmpptr->ut_line), sizeof(line));
- if ((p = ttymsg(&iov, 1, line, timeout)) != NULL)
- warnx("%s", p);
+ if (has_tty(ttys, line))
+ continue;
+ if (strv_extend(&ttys, line) < 0)
+ err(EXIT_FAILURE, _("failed to allocate lines list"));
}
endutxent();
}
+ STRV_FOREACH(str, ttys) {
+ char *er = ttymsg(&iov, 1, *str, timeout);
+ if (er)
+ warnx("%s", er);
+ }
+
+ strv_free(ttys);
free(mbuf);
free_group_workspace(group_buf);
exit(EXIT_SUCCESS);
--
2.52.0

View file

@ -0,0 +1,39 @@
From 5bb099a5d86a26dcac5d32b1c75e6d9f84b298bf Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Mon, 24 Feb 2025 13:37:04 +0100
Subject: agetty: fix stdin conversion to tty name
Addresses: https://github.com/util-linux/util-linux/issues/3304
Signed-off-by: Karel Zak <kzak@redhat.com>
(cherry picked from commit bd6c104f931329ce6fbc5a1250c8c80a1d8223ee)
(cherry picked from commit c69353a5e03779b4840f260ba52a7d2bb7b8943c)
---
term-utils/agetty.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/term-utils/agetty.c b/term-utils/agetty.c
index a3823137d..34a39a51b 100644
--- a/term-utils/agetty.c
+++ b/term-utils/agetty.c
@@ -928,11 +928,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) {
+ int fd;
+ const char *name = op->tty;
+
op->tty_is_stdin = 1;
- int fd = get_terminal_name(NULL, &op->tty, NULL);
- if (fd < 0) {
+ fd = get_terminal_name(NULL, &name, NULL);
+ if (fd >= 0)
+ op->tty = name; /* set real device name */
+ else
log_warn(_("could not get terminal name: %d"), fd);
- }
}
/* On virtual console remember the line which is used for */
--
2.52.0

View file

@ -1,5 +0,0 @@
summary: Basic smoke test
discover:
how: fmf
execute:
how: tmt

View file

@ -1 +1 @@
SHA512 (util-linux-2.42.2.tar.xz) = 7415add0be2930654e322830808dde03ff6d511bd357f0679e6b6287a13ca79fe58ce4ac05edef86b76fb381b3a36ca2da9d3c31b5dc0a1d889c203156a57277
SHA512 (util-linux-2.40.4.tar.xz) = 0024955056ba7b4c54040a917f9919f49692e57ba6d42d17a6c29c1eefe88bf48b1214a545072b71c468829a63a8f15237f49733e9127c134e11126d1e435124

13
tests/tests.yml Normal file
View file

@ -0,0 +1,13 @@
# Test which run in classic and docker environemnt
- hosts: localhost
tags:
- classic
- container
- atomic
roles:
- role: standard-test-beakerlib
tests:
- various
required_packages:
- util-linux
- util-linux-user

View file

@ -1,13 +0,0 @@
summary: This test groups small sanity and regression tests for util-linux
description: ''
contact: Miroslav Vadkerti <mvadkert@redhat.com>
component:
- util-linux
test: ./runtest.sh
framework: beakerlib
recommend:
- util-linux
- util-linux-user
duration: 10m
extra-summary: /CoreOS/util-linux/Sanity/various
extra-task: /CoreOS/util-linux/Sanity/various

View file

@ -27,6 +27,7 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
#. /usr/bin/rhts-environment.sh || exit 1
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="util-linux"

View file

@ -1,5 +1,4 @@
#%PAM-1.0
auth required pam_env.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

View file

@ -0,0 +1 @@
u uuidd - "UUID generator helper daemon" /var/lib/libuuid

View file

@ -1,7 +1,7 @@
### Header
Summary: Collection of basic system utilities
Name: util-linux
Version: 2.42.2
Version: 2.40.4
# -p -e rc1
Release: %autorelease
License: GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-2.1-or-later AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause-UC AND LicenseRef-Fedora-Public-Domain
@ -35,7 +35,6 @@ BuildRequires: %{pypkg}-devel
BuildRequires: gcc
BuildRequires: rubygem-asciidoctor
BuildRequires: po4a
BuildRequires: sqlite-devel
%ifarch ppc64le
BuildRequires: librtas-devel
%endif
@ -44,8 +43,7 @@ BuildRequires: librtas-devel
#BuildRequires: autoconf
#BuildRequires: automake
#BuildRequires: libtool
BuildRequires: bison
BuildRequires: flex
#BuildRequires: bison
### Sources
Source0: https://www.kernel.org/pub/linux/utils/util-linux/v%{upstream_major}/util-linux-%{upstream_version}.tar.xz
@ -58,6 +56,9 @@ Source13: util-linux-su-l.pamd
Source14: util-linux-runuser.pamd
Source15: util-linux-runuser-l.pamd
# temporary, will be in upstream >= v2.41
Source16: util-linux-uuidd-sysusers.conf
### Obsoletes & Conflicts & Provides
Conflicts: initscripts < 9.79-4
Conflicts: bash-completion < 1:2.1-1
@ -92,7 +93,6 @@ Requires: libblkid = %{version}-%{release}
Requires: libmount = %{version}-%{release}
Requires: libsmartcols = %{version}-%{release}
Requires: libfdisk = %{version}-%{release}
Requires: liblastlog2 = %{version}-%{release}
Requires: util-linux-core = %{version}-%{release}
%if "%{_sbindir}" == "%{_bindir}"
@ -103,9 +103,20 @@ Provides: /usr/sbin/runuser
Provides: /usr/sbin/sfdisk
%endif
### Fedora specific patches
# 151635 - login: use O_CREAT on lastlog
Patch0: 0000-login-use-O_CREAT-on-lastlog.patch
# login: add /run/motd.d` to the hardcoded MOTD_FILE
Patch1: 0001-login-add-run-motd.d-to-the-hardcoded-MOTD_FILE.patch
# blkid: allow up to 64k erofs block sizes
Patch2: 0002-blkid-allow-up-to-64k-erofs-block-sizes.patch
# libblkid: use snprintf() instead of sprintf()
Patch3: 0003-libblkid-use-snprintf-instead-of-sprintf.patch
# login-utils: fix setpwnam() buffer use [CVE-2025-14104]
Patch4: 0004-login-utils-fix-setpwnam-buffer-use-CVE-2025-14104.patch
# wall: always use utmp as fallback
Patch5: 0005-wall-always-use-utmp-as-fallback.patch
%description
The util-linux package contains a large variety of low-level system
@ -208,25 +219,6 @@ This is the device mounting development library and headers,
part of util-linux.
%package -n liblastlog2
Summary: lastlog database library and PAM module
License: BSD-2-Clause
%description -n liblastlog2
This is the lastlog database library and PAM module, part of util-linux.
%package -n liblastlog2-devel
Summary: lastlog database library
License: BSD-2-Clause
Requires: liblastlog2%{?_isa} = %{version}-%{release}
Requires: pkgconfig
%description -n liblastlog2-devel
This is the lastlog database development library and headers,
part of util-linux.
%package -n libblkid
Summary: Block device ID library
License: LGPL-2.1-or-later
@ -347,6 +339,7 @@ export DAEMON_LDFLAGS="$SUID_LDFLAGS"
--disable-silent-rules \
--disable-bfs \
--disable-pg \
--disable-liblastlog2 \
--enable-chfn-chsh \
--enable-usrdir-path \
--enable-write \
@ -385,10 +378,11 @@ mkdir -p %{buildroot}%{_sysconfdir}/{pam.d,security/console.apps}
# install util-linux
%make_install
# And a dirs that the makefiles don't create
install -d %{buildroot}%{_rundir}/uuidd
install -d %{buildroot}%{_sharedstatedir}/libuuid
install -d %{buildroot}%{_sharedstatedir}/lastlog
# And a dirs uuidd needs that the makefiles don't create
install -d %{buildroot}/run/uuidd
install -d %{buildroot}/var/lib/libuuid
install -m 644 -D %{SOURCE16} %{buildroot}%{_sysusersdir}/uuidd.conf
# /etc/adjtime
install -m 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/adjtime
@ -450,7 +444,7 @@ rm -f %{buildroot}/sbin/sfdisk \
ln -sf ../proc/self/mounts %{buildroot}/etc/mtab
# remove static libs
rm -f %{buildroot}%{_libdir}/lib{uuid,blkid,mount,smartcols,fdisk,lastlog2}.a
rm -f %{buildroot}%{_libdir}/lib{uuid,blkid,mount,smartcols,fdisk}.a
# temporary remove to avoid conflicts with bash-completion pkg
rm -f %{buildroot}%{compldir}/{mount,umount}
@ -480,26 +474,16 @@ find %{buildroot}%{_mandir}/man8 -regextype posix-egrep \
mv -v %{buildroot}/usr/sbin/* %{buildroot}/usr/bin/
%endif
%post
%systemd_post fstrim.{service,timer}
%post -n liblastlog2
%systemd_post lastlog2-import.service
%preun
%systemd_preun fstrim.{service,timer}
%postun
%systemd_postun_with_restart fstrim.timer
%systemd_postun fstrim.service
%postun -n liblastlog2
%systemd_postun lastlog2-import.service
# Please, keep uuidd running after installation! Note that systemd_post is
# "systemctl preset" and it enable/disable service only.
%post -n uuidd
@ -545,7 +529,6 @@ fi
%{_unitdir}/fstrim.*
%{_bindir}/bits
%{_bindir}/cal
%{_bindir}/chmem
%{_bindir}/choom
@ -553,22 +536,18 @@ fi
%{_bindir}/colcrt
%{_bindir}/colrm
%{_bindir}/column
%{_bindir}/copyfilerange
%{_bindir}/coresched
%{_bindir}/eject
%{_bindir}/enosys
%{_bindir}/exch
%{_bindir}/fallocate
%{_bindir}/fincore
%{_bindir}/fadvise
%{_bindir}/getino
%{_bindir}/getopt
%{_bindir}/hexdump
%{_bindir}/irqtop
%{_bindir}/isosize
%{_bindir}/last
%{_bindir}/lastb
%{_bindir}/lastlog2
%{_bindir}/look
%{_bindir}/lsblk
%{_bindir}/lscpu
@ -601,8 +580,6 @@ fi
%{_bindir}/wdctl
%{_bindir}/whereis
%{_bindir}/write
%{_mandir}/man1/bits.1*
%{_mandir}/man1/cal.1*
%{_mandir}/man1/chfn.1*
%{_mandir}/man1/choom.1*
@ -611,15 +588,12 @@ fi
%{_mandir}/man1/colcrt.1*
%{_mandir}/man1/colrm.1*
%{_mandir}/man1/column.1*
%{_mandir}/man1/copyfilerange.1*
%{_mandir}/man1/coresched.1.*
%{_mandir}/man1/eject.1*
%{_mandir}/man1/enosys.1*
%{_mandir}/man1/exch.1*
%{_mandir}/man1/fadvise.1*
%{_mandir}/man1/fallocate.1*
%{_mandir}/man1/fincore.1*
%{_mandir}/man1/getino.1*
%{_mandir}/man1/getopt.1*
%{_mandir}/man1/hexdump.1*
%{_mandir}/man1/irqtop.1*
@ -673,7 +647,6 @@ fi
%{_mandir}/man8/fsfreeze.8*
%{_mandir}/man8/fstrim.8*
%{_mandir}/man8/isosize.8*
%{_mandir}/man8/lastlog2.8*
%{_mandir}/man8/ldattach.8*
%{_mandir}/man8/lsblk.8*
%{_mandir}/man8/lslocks.8*
@ -721,22 +694,17 @@ fi
%{_sbindir}/zramctl
%{compldir}/addpart
%{compldir}/bits
%{compldir}/blkdiscard
%{compldir}/blkpr
%{compldir}/blkzone
%{compldir}/cal
%{compldir}/chcpu
%{compldir}/chfn
%{compldir}/chmem
%{compldir}/choom
%{compldir}/chsh
%{compldir}/col
%{compldir}/colcrt
%{compldir}/colrm
%{compldir}/column
%{compldir}/copyfilerange
%{compldir}/coresched
%{compldir}/ctrlaltdel
%{compldir}/delpart
%{compldir}/eject
@ -751,20 +719,17 @@ fi
%{compldir}/fsck.minix
%{compldir}/fsfreeze
%{compldir}/fstrim
%{compldir}/getino
%{compldir}/getopt
%{compldir}/hexdump
%{compldir}/irqtop
%{compldir}/isosize
%{compldir}/last
%{compldir}/lastb
%{compldir}/lastlog2
%{compldir}/ldattach
%{compldir}/look
%{compldir}/lsblk
%{compldir}/lscpu
%{compldir}/lsclocks
%{compldir}/lsfd
%{compldir}/lsipc
%{compldir}/lsirq
%{compldir}/lslocks
@ -929,11 +894,11 @@ fi
%{_mandir}/man8/uuidd.8*
%{_sbindir}/uuidd
%{_unitdir}/uuidd.*
%dir %attr(2775, uuidd, uuidd) %{_sharedstatedir}/libuuid
%dir %attr(2775, uuidd, uuidd) %{_rundir}/uuidd
%dir %attr(2775, uuidd, uuidd) /var/lib/libuuid
%dir %attr(2775, uuidd, uuidd) /run/uuidd
%{compldir}/uuidd
%{_tmpfilesdir}/uuidd-tmpfiles.conf
%{_sysusersdir}/uuidd-sysusers.conf
%{_sysusersdir}/uuidd.conf
%files -n libfdisk
@ -969,32 +934,6 @@ fi
%{_libdir}/pkgconfig/mount.pc
%files -n liblastlog2
%license Documentation/licenses/COPYING.BSD-2-Clause
%dir %{_sharedstatedir}/lastlog
%{_libdir}/liblastlog2.so.*
%{_pam_moduledir}/pam_lastlog2.so
%{_tmpfilesdir}/lastlog2-tmpfiles.conf
%{_unitdir}/lastlog2*
%{_mandir}/man8/pam_lastlog2.8*
%files -n liblastlog2-devel
%license Documentation/licenses/COPYING.BSD-2-Clause
%{_libdir}/liblastlog2.so
%{_includedir}/liblastlog2
%{_libdir}/pkgconfig/lastlog2.pc
%{_mandir}/man3/lastlog2.3.*
%{_mandir}/man3/ll2_import_lastlog.3*
%{_mandir}/man3/ll2_new_context.3*
%{_mandir}/man3/ll2_read_all.3*
%{_mandir}/man3/ll2_read_entry.3*
%{_mandir}/man3/ll2_remove_entry.3*
%{_mandir}/man3/ll2_rename_user.3*
%{_mandir}/man3/ll2_unref_context.3*
%{_mandir}/man3/ll2_update_login_time.3*
%{_mandir}/man3/ll2_write_entry.3*
%files -n libblkid
%license Documentation/licenses/COPYING.LGPL-2.1-or-later
%{_libdir}/libblkid.so.*