Compare commits

..

36 commits

Author SHA1 Message Date
Python Maint
a0317f94b5 Rebuilt for Python 3.15.0b4 ABI change 2026-07-22 10:16:14 +02:00
Fedora Release Engineering
9213a0ec8f Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-17 08:18:23 +00:00
Karel Zak
d3c879ee06 upgrade to upstream release v2.42.2 2026-06-16 14:56:23 +02:00
Python Maint
e20697608b Rebuilt for Python 3.15 2026-06-03 17:43:18 +02:00
Karel Zak
62e94b8fcb revert util-linux-i18n noarch (rhbz#2453891) 2026-05-20 11:07:37 +02:00
Karel Zak
49c5ecdbfb make util-linux-i18n noarch (rhbz#2453891) 2026-05-20 10:28:46 +02:00
Karel Zak
ad160404f2 fix pam_lastlog2 patch to modify only Makefile.in 2026-05-19 13:49:26 +02:00
Karel Zak
f891325268 upgrade to upstream release v2.42.1
- fix pam_lastlog2 libpam linking (rhbz#2453457)
2026-05-19 13:29:13 +02:00
Karel Zak
da7125e4bb upgrade to upstream release v2.42 2026-04-02 14:26:48 +02:00
Fedora Release Engineering
196be3f2a1 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 19:43:43 +00:00
Nuo Cheng
47417a6e2e Update util-linux-su.pamd
fix variables not set in /etc/environment through command 'su --login'
2026-01-12 12:21:28 +01:00
Karel Zak
4737f2d702 enable BuildRequires for parsers 2026-01-12 12:15:47 +01:00
Karel Zak
06dbf9bb28 fix built on new gcc (bison based code and libblkid API) 2026-01-12 11:55:59 +01:00
Karel Zak
4bac19fd38 add completition bits blkpr lsfd 2025-12-15 16:53:44 +01:00
Karel Zak
df438c4170 upgrade to upstream release v2.41.3 2025-12-15 16:42:08 +01:00
Karel Zak
ab6d50b588 Merge #25 liblastlog2 uses /var/lib/lastlog 2025-12-02 15:55:21 +00:00
Karel Zak
9c226720cb backport upstream patches for GCC-15
- regenerate Fedora patches from the Git tree
2025-12-02 16:37:43 +01:00
Fxzx micah
7ef16d92f7 liblastlog2 uses /var/lib/lastlog
You can verify it through man pam_lastlog2.
2025-11-18 19:22:12 +00:00
Karel Zak
ba1905c6c7 upgrade to upstream release v2.41.2 2025-10-23 13:01:34 +02:00
Python Maint
9e2caeba0d Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 15:01:56 +02:00
Python Maint
5679a7db71 Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 15:21:47 +02:00
Karel Zak
b9ed3a9a74 use RPM macros for /var/lib and /run 2025-08-05 09:59:26 +02:00
Karel Zak
39c148ff89 add /var/lib/liblastlog to files list 2025-08-05 09:49:01 +02:00
Fedora Release Engineering
04d2b6b0ad Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 19:54:31 +00:00
Karel Zak
eeebe2875e Merge #24 tests: migrate from STI to TMT 2025-07-16 10:48:03 +00:00
Karel Zak
164a6760ec enable lastlog2-import.service 2025-07-15 14:24:23 +02:00
Lukáš Zaoral
0382798ff4
tests: migrate from STI to TMT
Related: https://fedoraproject.org/wiki/Changes/DisableSTI
2025-06-24 14:19:13 +02:00
Karel Zak
7d135acec2 Fix ldattach build on recent glibc headers. 2025-06-24 11:20:00 +02:00
Karel Zak
b309d832e2 Temporarily disable support for EROFS backing files. 2025-06-24 11:02:22 +02:00
Karel Zak
404f522557 remove obsolete patch 2025-06-24 10:45:43 +02:00
Karel Zak
bf8d5779df upgrade to upstream release v2.41.1
... https://www.kernel.org/pub/linux/utils/util-linux/v2.41/v2.41-ReleaseNotes
- add lastlog2 library and PAM module
- add new utils bits, coresched and lastlog2
2025-06-24 10:37:18 +02:00
Python Maint
8e9f6cee44 Rebuilt for Python 3.14 2025-06-09 12:44:41 +02:00
Miro Hrončok
0e7e2e7599 Revert to util-linux-2.40.4-7 to rebuild it for Python 3.14
The revert is needed because of https://bodhi.fedoraproject.org/updates/FEDORA-2025-dd6b6950ff failures.

This reverts commit e873a14a1d
2025-06-09 12:44:41 +02:00
Python Maint
ca46de6072 Rebuilt for Python 3.14 2025-06-02 20:26:03 +02:00
Karel Zak
67c133a8d4 add BuildRequires for lastlog2 2025-05-12 14:33:31 +02:00
Karel Zak
e873a14a1d upgrade to upstream release v2.41
... https://www.kernel.org/pub/linux/utils/util-linux/v2.41/v2.41-ReleaseNotes
- add lastlog2 library and PAM module
- add new utils bits, coresched and lastlog2
2025-05-12 14:16:44 +02:00
17 changed files with 123 additions and 369 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

7
.gitignore vendored
View file

@ -99,3 +99,10 @@
/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,20 +1,19 @@
From 1a2ec6f6dbb1c74694403ff5bcfcbd36830ff2a4 Mon Sep 17 00:00:00 2001
From a2357184ff3dc3beb001fcb12e1e4c0dcf8d0dbd 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 c8544f6a1..3de0398e9 100644
index 321f9d6ce..edc69fd9a 100644
--- a/login-utils/login.c
+++ b/login-utils/login.c
@@ -681,7 +681,7 @@ static void log_lastlog(struct login_context *cxt)
@@ -682,7 +682,7 @@ static void log_lastlog(struct login_context *cxt)
sa.sa_handler = SIG_IGN;
sigaction(SIGXFSZ, &sa, &oldsa_xfsz);
@ -24,5 +23,5 @@ index c8544f6a1..3de0398e9 100644
goto done;
offset = cxt->pwd->pw_uid * sizeof(ll);
--
2.52.0
2.51.1

View file

@ -1,17 +1,16 @@
From 84ee1e47e64fcabb83c39611d92a0496d086e0bb Mon Sep 17 00:00:00 2001
From 617a887a6ec7e433f6a9f4c60592ed38b12b9f18 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 de456c53e..ac28a9a50 100644
index 34ba11ca3..c91a077e1 100644
--- a/include/pathnames.h
+++ b/include/pathnames.h
@@ -41,7 +41,7 @@
@ -24,5 +23,5 @@ index de456c53e..ac28a9a50 100644
# define _PATH_NOLOGIN "/etc/nologin"
#endif
--
2.52.0
2.51.1

View file

@ -1,33 +0,0 @@
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

@ -1,58 +0,0 @@
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

@ -1,50 +0,0 @@
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

@ -1,137 +0,0 @@
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

@ -1,39 +0,0 @@
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

5
plans/ci.fmf Normal file
View file

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

View file

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

View file

@ -1,13 +0,0 @@
# 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

13
tests/various/main.fmf Normal file
View file

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

View file

@ -1,4 +1,5 @@
#%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

@ -1 +0,0 @@
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.40.4
Version: 2.42.2
# -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,6 +35,7 @@ BuildRequires: %{pypkg}-devel
BuildRequires: gcc
BuildRequires: rubygem-asciidoctor
BuildRequires: po4a
BuildRequires: sqlite-devel
%ifarch ppc64le
BuildRequires: librtas-devel
%endif
@ -43,7 +44,8 @@ BuildRequires: librtas-devel
#BuildRequires: autoconf
#BuildRequires: automake
#BuildRequires: libtool
#BuildRequires: bison
BuildRequires: bison
BuildRequires: flex
### Sources
Source0: https://www.kernel.org/pub/linux/utils/util-linux/v%{upstream_major}/util-linux-%{upstream_version}.tar.xz
@ -56,9 +58,6 @@ 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
@ -93,6 +92,7 @@ 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,20 +103,9 @@ Provides: /usr/sbin/runuser
Provides: /usr/sbin/sfdisk
%endif
# 151635 - login: use O_CREAT on lastlog
### Fedora specific patches
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
@ -219,6 +208,25 @@ 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
@ -339,7 +347,6 @@ export DAEMON_LDFLAGS="$SUID_LDFLAGS"
--disable-silent-rules \
--disable-bfs \
--disable-pg \
--disable-liblastlog2 \
--enable-chfn-chsh \
--enable-usrdir-path \
--enable-write \
@ -378,11 +385,10 @@ mkdir -p %{buildroot}%{_sysconfdir}/{pam.d,security/console.apps}
# install util-linux
%make_install
# 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
# And a dirs that the makefiles don't create
install -d %{buildroot}%{_rundir}/uuidd
install -d %{buildroot}%{_sharedstatedir}/libuuid
install -d %{buildroot}%{_sharedstatedir}/lastlog
# /etc/adjtime
install -m 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/adjtime
@ -444,7 +450,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}.a
rm -f %{buildroot}%{_libdir}/lib{uuid,blkid,mount,smartcols,fdisk,lastlog2}.a
# temporary remove to avoid conflicts with bash-completion pkg
rm -f %{buildroot}%{compldir}/{mount,umount}
@ -474,16 +480,26 @@ 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
@ -529,6 +545,7 @@ fi
%{_unitdir}/fstrim.*
%{_bindir}/bits
%{_bindir}/cal
%{_bindir}/chmem
%{_bindir}/choom
@ -536,18 +553,22 @@ 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
@ -580,6 +601,8 @@ fi
%{_bindir}/wdctl
%{_bindir}/whereis
%{_bindir}/write
%{_mandir}/man1/bits.1*
%{_mandir}/man1/cal.1*
%{_mandir}/man1/chfn.1*
%{_mandir}/man1/choom.1*
@ -588,12 +611,15 @@ 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*
@ -647,6 +673,7 @@ 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*
@ -694,17 +721,22 @@ 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
@ -719,17 +751,20 @@ 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
@ -894,11 +929,11 @@ fi
%{_mandir}/man8/uuidd.8*
%{_sbindir}/uuidd
%{_unitdir}/uuidd.*
%dir %attr(2775, uuidd, uuidd) /var/lib/libuuid
%dir %attr(2775, uuidd, uuidd) /run/uuidd
%dir %attr(2775, uuidd, uuidd) %{_sharedstatedir}/libuuid
%dir %attr(2775, uuidd, uuidd) %{_rundir}/uuidd
%{compldir}/uuidd
%{_tmpfilesdir}/uuidd-tmpfiles.conf
%{_sysusersdir}/uuidd.conf
%{_sysusersdir}/uuidd-sysusers.conf
%files -n libfdisk
@ -934,6 +969,32 @@ 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.*