Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
Zbigniew Jędrzejewski-Szmek | 67e0742bad | |
Karel Zak | 73e880a882 |
|
@ -80,13 +80,3 @@
|
|||
/util-linux-2.36.tar.xz
|
||||
/util-linux-2.36.1.tar.xz
|
||||
/util-linux-2.36.2.tar.xz
|
||||
/util-linux-2.37-rc2.tar.xz
|
||||
/util-linux-2.37.tar.xz
|
||||
/util-linux-2.37.2.tar.xz
|
||||
/util-linux-2.38-rc1.tar.xz
|
||||
/util-linux-2.38-rc3.tar.xz
|
||||
/util-linux-2.38.tar.xz
|
||||
/util-linux-2.38.1.tar.xz
|
||||
/util-linux-2.39-rc1.tar.xz
|
||||
/util-linux-2.39-rc2.tar.xz
|
||||
/util-linux-2.39-rc3.tar.xz
|
||||
|
|
|
@ -0,0 +1,396 @@
|
|||
From 57898c3a7ee8fc5933cddd4526bb3980bef85a02 Mon Sep 17 00:00:00 2001
|
||||
From: Karel Zak <kzak@redhat.com>
|
||||
Date: Tue, 1 Sep 2020 10:15:14 +0200
|
||||
Subject: [PATCH] libmount: remove read-mountinfo workaround
|
||||
|
||||
This workaround has been introduced by
|
||||
http://github.com/karelzak/util-linux/commit/e4925f591c1bfb83719418b56b952830d15b77eb
|
||||
|
||||
And originally requested by https://github.com/systemd/systemd/issues/10872
|
||||
|
||||
It seems we do not need it anymore as the problem should be fixed in kernel since 5.8
|
||||
(kernel commit 9f6c61f96f2d97cbb5f7fa85607bc398f843ff0f).
|
||||
|
||||
Note that the libmount solution is very expensive as it repeats read()
|
||||
many times (until we get consistent result) if kernel is busy with
|
||||
mount table modification. This behaviour makes events management in
|
||||
systemd (or other places) pretty difficult as read mountinfo takes
|
||||
time on busy systems.
|
||||
|
||||
Addresses: https://github.com/systemd/systemd/pull/16537
|
||||
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||
---
|
||||
configure.ac | 1 -
|
||||
libmount/src/mountP.h | 2 -
|
||||
libmount/src/tab_parse.c | 87 ++++----------------
|
||||
libmount/src/utils.c | 166 ---------------------------------------
|
||||
4 files changed, 15 insertions(+), 241 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 2d178f3af..1e31ca3e2 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -504,7 +504,6 @@ AC_CHECK_FUNCS([ \
|
||||
err \
|
||||
errx \
|
||||
explicit_bzero \
|
||||
- fmemopen \
|
||||
fsync \
|
||||
utimensat \
|
||||
getdomainname \
|
||||
diff --git a/libmount/src/mountP.h b/libmount/src/mountP.h
|
||||
index d8ba0abad..ee97c6b4a 100644
|
||||
--- a/libmount/src/mountP.h
|
||||
+++ b/libmount/src/mountP.h
|
||||
@@ -98,7 +98,6 @@ extern int mnt_valid_tagname(const char *tagname);
|
||||
extern int append_string(char **a, const char *b);
|
||||
|
||||
extern const char *mnt_statfs_get_fstype(struct statfs *vfs);
|
||||
-extern int is_procfs_fd(int fd);
|
||||
extern int is_file_empty(const char *name);
|
||||
|
||||
extern int mnt_is_readonly(const char *path)
|
||||
@@ -124,7 +123,6 @@ extern void mnt_free_filesystems(char **filesystems);
|
||||
extern char *mnt_get_kernel_cmdline_option(const char *name);
|
||||
extern int mnt_stat_mountpoint(const char *target, struct stat *st);
|
||||
extern int mnt_lstat_mountpoint(const char *target, struct stat *st);
|
||||
-extern FILE *mnt_get_procfs_memstream(int fd, char **membuf);
|
||||
|
||||
/* tab.c */
|
||||
extern int is_mountinfo(struct libmnt_table *tb);
|
||||
diff --git a/libmount/src/tab_parse.c b/libmount/src/tab_parse.c
|
||||
index 329987bcb..ac12dce54 100644
|
||||
--- a/libmount/src/tab_parse.c
|
||||
+++ b/libmount/src/tab_parse.c
|
||||
@@ -694,7 +694,15 @@ static int kernel_fs_postparse(struct libmnt_table *tb,
|
||||
return rc;
|
||||
}
|
||||
|
||||
-static int __table_parse_stream(struct libmnt_table *tb, FILE *f, const char *filename)
|
||||
+/**
|
||||
+ * mnt_table_parse_stream:
|
||||
+ * @tb: tab pointer
|
||||
+ * @f: file stream
|
||||
+ * @filename: filename used for debug and error messages
|
||||
+ *
|
||||
+ * Returns: 0 on success, negative number in case of error.
|
||||
+ */
|
||||
+int mnt_table_parse_stream(struct libmnt_table *tb, FILE *f, const char *filename)
|
||||
{
|
||||
int rc = -1;
|
||||
int flags = 0;
|
||||
@@ -773,40 +781,6 @@ err:
|
||||
return rc;
|
||||
}
|
||||
|
||||
-/**
|
||||
- * mnt_table_parse_stream:
|
||||
- * @tb: tab pointer
|
||||
- * @f: file stream
|
||||
- * @filename: filename used for debug and error messages
|
||||
- *
|
||||
- * Returns: 0 on success, negative number in case of error.
|
||||
- */
|
||||
-int mnt_table_parse_stream(struct libmnt_table *tb, FILE *f, const char *filename)
|
||||
-{
|
||||
- int fd, rc;
|
||||
- FILE *memf = NULL;
|
||||
- char *membuf = NULL;
|
||||
-
|
||||
- /*
|
||||
- * For /proc/#/{mountinfo,mount} we read all file to memory and use it
|
||||
- * as memory stream. For more details see mnt_read_procfs_file().
|
||||
- */
|
||||
- if ((fd = fileno(f)) >= 0
|
||||
- && (tb->fmt == MNT_FMT_GUESS ||
|
||||
- tb->fmt == MNT_FMT_MOUNTINFO ||
|
||||
- tb->fmt == MNT_FMT_MTAB)
|
||||
- && is_procfs_fd(fd)
|
||||
- && (memf = mnt_get_procfs_memstream(fd, &membuf))) {
|
||||
-
|
||||
- rc = __table_parse_stream(tb, memf, filename);
|
||||
- fclose(memf);
|
||||
- free(membuf);
|
||||
- } else
|
||||
- rc = __table_parse_stream(tb, f, filename);
|
||||
-
|
||||
- return rc;
|
||||
-}
|
||||
-
|
||||
/**
|
||||
* mnt_table_parse_file:
|
||||
* @tb: tab pointer
|
||||
@@ -822,49 +796,18 @@ int mnt_table_parse_stream(struct libmnt_table *tb, FILE *f, const char *filenam
|
||||
int mnt_table_parse_file(struct libmnt_table *tb, const char *filename)
|
||||
{
|
||||
FILE *f;
|
||||
- int rc, fd = -1;
|
||||
+ int rc;
|
||||
|
||||
if (!filename || !tb)
|
||||
return -EINVAL;
|
||||
|
||||
- /*
|
||||
- * Try to use read()+poll() to realiably read all
|
||||
- * /proc/#/{mount,mountinfo} file to memory
|
||||
- */
|
||||
- if (tb->fmt != MNT_FMT_SWAPS
|
||||
- && strncmp(filename, "/proc/", 6) == 0) {
|
||||
-
|
||||
- FILE *memf;
|
||||
- char *membuf = NULL;
|
||||
-
|
||||
- fd = open(filename, O_RDONLY|O_CLOEXEC);
|
||||
- if (fd < 0) {
|
||||
- rc = -errno;
|
||||
- goto done;
|
||||
- }
|
||||
- memf = mnt_get_procfs_memstream(fd, &membuf);
|
||||
- if (memf) {
|
||||
- rc = __table_parse_stream(tb, memf, filename);
|
||||
-
|
||||
- fclose(memf);
|
||||
- free(membuf);
|
||||
- close(fd);
|
||||
- goto done;
|
||||
- }
|
||||
- /* else fallback to fopen/fdopen() */
|
||||
- }
|
||||
-
|
||||
- if (fd >= 0)
|
||||
- f = fdopen(fd, "r" UL_CLOEXECSTR);
|
||||
- else
|
||||
- f = fopen(filename, "r" UL_CLOEXECSTR);
|
||||
-
|
||||
+ f = fopen(filename, "r" UL_CLOEXECSTR);
|
||||
if (f) {
|
||||
- rc = __table_parse_stream(tb, f, filename);
|
||||
+ rc = mnt_table_parse_stream(tb, f, filename);
|
||||
fclose(f);
|
||||
} else
|
||||
rc = -errno;
|
||||
-done:
|
||||
+
|
||||
DBG(TAB, ul_debugobj(tb, "parsing done [filename=%s, rc=%d]", filename, rc));
|
||||
return rc;
|
||||
}
|
||||
@@ -921,7 +864,7 @@ static int __mnt_table_parse_dir(struct libmnt_table *tb, const char *dirname)
|
||||
|
||||
f = fopen_at(dd, d->d_name, O_RDONLY|O_CLOEXEC, "r" UL_CLOEXECSTR);
|
||||
if (f) {
|
||||
- __table_parse_stream(tb, f, d->d_name);
|
||||
+ mnt_table_parse_stream(tb, f, d->d_name);
|
||||
fclose(f);
|
||||
}
|
||||
}
|
||||
@@ -962,7 +905,7 @@ static int __mnt_table_parse_dir(struct libmnt_table *tb, const char *dirname)
|
||||
f = fopen_at(dirfd(dir), d->d_name,
|
||||
O_RDONLY|O_CLOEXEC, "r" UL_CLOEXECSTR);
|
||||
if (f) {
|
||||
- __table_parse_stream(tb, f, d->d_name);
|
||||
+ mnt_table_parse_stream(tb, f, d->d_name);
|
||||
fclose(f);
|
||||
}
|
||||
}
|
||||
diff --git a/libmount/src/utils.c b/libmount/src/utils.c
|
||||
index 92829ebb0..40b45f11d 100644
|
||||
--- a/libmount/src/utils.c
|
||||
+++ b/libmount/src/utils.c
|
||||
@@ -19,7 +19,6 @@
|
||||
#include <fcntl.h>
|
||||
#include <pwd.h>
|
||||
#include <grp.h>
|
||||
-#include <poll.h>
|
||||
#include <blkid.h>
|
||||
|
||||
#include "strutils.h"
|
||||
@@ -448,13 +447,6 @@ const char *mnt_statfs_get_fstype(struct statfs *vfs)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
-int is_procfs_fd(int fd)
|
||||
-{
|
||||
- struct statfs sfs;
|
||||
-
|
||||
- return fstatfs(fd, &sfs) == 0 && sfs.f_type == STATFS_PROC_MAGIC;
|
||||
-}
|
||||
-
|
||||
/**
|
||||
* mnt_match_fstype:
|
||||
* @type: filesystem type
|
||||
@@ -1174,164 +1166,7 @@ done:
|
||||
return 1;
|
||||
}
|
||||
|
||||
-#if defined(HAVE_FMEMOPEN) || defined(TEST_PROGRAM)
|
||||
-
|
||||
-/*
|
||||
- * This function tries to minimize possible races when we read
|
||||
- * /proc/#/{mountinfo,mount} files.
|
||||
- *
|
||||
- * The idea is to minimize number of read()s and check by poll() that during
|
||||
- * the read the mount table has not been modified. If yes, than re-read it
|
||||
- * (with some limitations to avoid never ending loop).
|
||||
- *
|
||||
- * Returns: <0 error, 0 success, 1 too many attempts
|
||||
- */
|
||||
-static int read_procfs_file(int fd, char **buf, size_t *bufsiz)
|
||||
-{
|
||||
- size_t bufmax = 0;
|
||||
- int rc = 0, tries = 0, ninters = 0;
|
||||
- char *bufptr = NULL;
|
||||
-
|
||||
- assert(buf);
|
||||
- assert(bufsiz);
|
||||
-
|
||||
- *bufsiz = 0;
|
||||
- *buf = NULL;
|
||||
-
|
||||
- do {
|
||||
- ssize_t ret;
|
||||
-
|
||||
- if (!bufptr || bufmax == *bufsiz) {
|
||||
- char *tmp;
|
||||
-
|
||||
- bufmax = bufmax ? bufmax * 2 : (16 * 1024);
|
||||
- tmp = realloc(*buf, bufmax);
|
||||
- if (!tmp)
|
||||
- break;
|
||||
- *buf = tmp;
|
||||
- bufptr = tmp + *bufsiz;
|
||||
- }
|
||||
-
|
||||
- errno = 0;
|
||||
- ret = read(fd, bufptr, bufmax - *bufsiz);
|
||||
-
|
||||
- if (ret < 0) {
|
||||
- /* error */
|
||||
- if ((errno == EAGAIN || errno == EINTR) && (ninters++ < 5)) {
|
||||
- xusleep(200000);
|
||||
- continue;
|
||||
- }
|
||||
- break;
|
||||
-
|
||||
- } if (ret > 0) {
|
||||
- /* success -- verify no event during read */
|
||||
- struct pollfd fds[] = {
|
||||
- { .fd = fd, .events = POLLPRI }
|
||||
- };
|
||||
-
|
||||
- rc = poll(fds, 1, 0);
|
||||
- if (rc < 0)
|
||||
- break; /* poll() error */
|
||||
- if (rc > 0) {
|
||||
- /* event -- read all again */
|
||||
- if (lseek(fd, 0, SEEK_SET) != 0)
|
||||
- break;
|
||||
- *bufsiz = 0;
|
||||
- bufptr = *buf;
|
||||
- tries++;
|
||||
-
|
||||
- if (tries > 10)
|
||||
- /* busy system? -- wait */
|
||||
- xusleep(10000);
|
||||
- continue;
|
||||
- }
|
||||
-
|
||||
- /* successful read() without active poll() */
|
||||
- (*bufsiz) += (size_t) ret;
|
||||
- bufptr += ret;
|
||||
- tries = ninters = 0;
|
||||
- } else {
|
||||
- /* end-of-file */
|
||||
- goto success;
|
||||
- }
|
||||
- } while (tries <= 100);
|
||||
-
|
||||
- rc = errno ? -errno : 1;
|
||||
- free(*buf);
|
||||
- return rc;
|
||||
-
|
||||
-success:
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
-/*
|
||||
- * Create FILE stream for data from read_procfs_file()
|
||||
- */
|
||||
-FILE *mnt_get_procfs_memstream(int fd, char **membuf)
|
||||
-{
|
||||
- size_t sz = 0;
|
||||
- off_t cur;
|
||||
-
|
||||
- *membuf = NULL;
|
||||
-
|
||||
- /* in case of error, rewind to the original position */
|
||||
- cur = lseek(fd, 0, SEEK_CUR);
|
||||
-
|
||||
- if (read_procfs_file(fd, membuf, &sz) == 0 && sz > 0) {
|
||||
- FILE *memf = fmemopen(*membuf, sz, "r");
|
||||
- if (memf)
|
||||
- return memf; /* success */
|
||||
-
|
||||
- free(*membuf);
|
||||
- *membuf = NULL;
|
||||
- }
|
||||
-
|
||||
- /* error */
|
||||
- if (cur != (off_t) -1)
|
||||
- lseek(fd, cur, SEEK_SET);
|
||||
- return NULL;
|
||||
-}
|
||||
-#else
|
||||
-FILE *mnt_get_procfs_memstream(int fd __attribute((__unused__)),
|
||||
- char **membuf __attribute((__unused__)))
|
||||
-{
|
||||
- return NULL;
|
||||
-}
|
||||
-#endif /* HAVE_FMEMOPEN */
|
||||
-
|
||||
-
|
||||
#ifdef TEST_PROGRAM
|
||||
-static int test_proc_read(struct libmnt_test *ts, int argc, char *argv[])
|
||||
-{
|
||||
- char *buf = NULL;
|
||||
- char *filename = argv[1];
|
||||
- size_t bufsiz = 0;
|
||||
- int rc = 0, fd = open(filename, O_RDONLY);
|
||||
-
|
||||
- if (fd <= 0) {
|
||||
- warn("%s: cannot open", filename);
|
||||
- return -errno;
|
||||
- }
|
||||
-
|
||||
- rc = read_procfs_file(fd, &buf, &bufsiz);
|
||||
- close(fd);
|
||||
-
|
||||
- switch (rc) {
|
||||
- case 0:
|
||||
- fwrite(buf, 1, bufsiz, stdout);
|
||||
- free(buf);
|
||||
- break;
|
||||
- case 1:
|
||||
- warnx("too many attempts");
|
||||
- break;
|
||||
- default:
|
||||
- warn("%s: cannot read", filename);
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
- return rc;
|
||||
-}
|
||||
-
|
||||
static int test_match_fstype(struct libmnt_test *ts, int argc, char *argv[])
|
||||
{
|
||||
char *type = argv[1];
|
||||
@@ -1513,7 +1348,6 @@ int main(int argc, char *argv[])
|
||||
{ "--guess-root", test_guess_root, "[<maj:min>]" },
|
||||
{ "--mkdir", test_mkdir, "<path>" },
|
||||
{ "--statfs-type", test_statfs_type, "<path>" },
|
||||
- { "--read-procfs", test_proc_read, "<path>" },
|
||||
|
||||
{ NULL }
|
||||
};
|
||||
--
|
||||
2.25.4
|
||||
|
2
sources
2
sources
|
@ -1 +1 @@
|
|||
SHA512 (util-linux-2.39-rc3.tar.xz) = 8a93d32a5ceb38d50a4b2c8bfa48bcab7ec9b758c89b5a1a4f7fd74558dce37385bd7ea203345148d4389de4ea60ec42058f9d7889a8075d3e616773d085427e
|
||||
SHA512 (util-linux-2.36.2.tar.xz) = 6ab141f44ca4cb6b600081f10eae17e15d23abd122a37eb3ac6c845513a6a4396dc9dcff30b3032de80116ddde50e27dfbc86f92708c1051f84f0c919194664b
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
#
|
||||
# Enter raw device bindings here.
|
||||
#
|
||||
# An example would be:
|
||||
# ACTION=="add", KERNEL=="sda", RUN+="/usr/bin/raw /dev/raw/raw1 %N"
|
||||
# to bind /dev/raw/raw1 to /dev/sda, or
|
||||
# ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/usr/bin/raw /dev/raw/raw2 %M %m"
|
||||
# to bind /dev/raw/raw2 to the device with major 8, minor 1.
|
488
util-linux.spec
488
util-linux.spec
|
@ -1,19 +1,19 @@
|
|||
### Header
|
||||
Summary: Collection of basic system utilities
|
||||
Summary: A collection of basic system utilities
|
||||
Name: util-linux
|
||||
Version: 2.39
|
||||
Release: 0.5%{?dist}
|
||||
Version: 2.36.2
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain
|
||||
URL: https://en.wikipedia.org/wiki/Util-linux
|
||||
URL: http://en.wikipedia.org/wiki/Util-linux
|
||||
|
||||
### Macros
|
||||
%global upstream_version %{version}-rc3
|
||||
%global upstream_major %(eval echo %{version} | sed -e 's/\([[:digit:]]*\)\.\([[:digit:]]*\)\.[[:digit:]]*$/\1.\2/')
|
||||
%define upstream_version %{version}
|
||||
%define upstream_major %(eval echo %{version} | %{__sed} -e 's/\([[:digit:]]*\)\.\([[:digit:]]*\)\.[[:digit:]]*$/\1.\2/')
|
||||
|
||||
%global compldir %{_datadir}/bash-completion/completions/
|
||||
%define compldir %{_datadir}/bash-completion/completions/
|
||||
|
||||
%global pypkg python3
|
||||
%global pyver 3
|
||||
%define pypkg python3
|
||||
%define pyver 3
|
||||
|
||||
### Dependencies
|
||||
BuildRequires: make
|
||||
|
@ -26,29 +26,32 @@ BuildRequires: pam-devel
|
|||
BuildRequires: zlib-devel
|
||||
BuildRequires: popt-devel
|
||||
BuildRequires: libutempter-devel
|
||||
BuildRequires: systemd-devel
|
||||
Buildrequires: systemd-devel
|
||||
BuildRequires: systemd
|
||||
BuildRequires: libuser-devel
|
||||
Buildrequires: libuser-devel
|
||||
BuildRequires: libcap-ng-devel
|
||||
BuildRequires: %{pypkg}-devel
|
||||
BuildRequires: pcre2-devel
|
||||
BuildRequires: gcc
|
||||
BuildRequires: rubygem-asciidoctor
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: libtool
|
||||
%ifarch ppc64le
|
||||
BuildRequires: librtas-devel
|
||||
%endif
|
||||
|
||||
# enable if make changes to build-system
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: libtool
|
||||
BuildRequires: bison
|
||||
#BuildRequires: autoconf
|
||||
#BuildRequires: automake
|
||||
#BuildRequires: libtool
|
||||
#BuildRequires: bison
|
||||
|
||||
### Sources
|
||||
Source0: https://www.kernel.org/pub/linux/utils/util-linux/v%{upstream_major}/util-linux-%{upstream_version}.tar.xz
|
||||
Source0: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v%{upstream_major}/util-linux-%{upstream_version}.tar.xz
|
||||
Source1: util-linux-login.pamd
|
||||
Source2: util-linux-remote.pamd
|
||||
Source3: util-linux-chsh-chfn.pamd
|
||||
Source4: uuidd-tmpfiles.conf
|
||||
Source4: util-linux-60-raw.rules
|
||||
Source5: adjtime
|
||||
Source12: util-linux-su.pamd
|
||||
Source13: util-linux-su-l.pamd
|
||||
|
@ -66,15 +69,28 @@ Provides: eject = 2.1.6
|
|||
# rfkill has been merged into util-linux v2.31
|
||||
Obsoletes: rfkill <= 0.5
|
||||
Provides: rfkill = 0.5
|
||||
# hardlink has been merged into util-linux v2.34
|
||||
Obsoletes: hardlink <= 1:1.3-9
|
||||
Provides: hardlink = 1:1.3-9
|
||||
# sulogin, utmpdump merged into util-linux v2.22;
|
||||
# last, lastb merged into util-linux v2.24
|
||||
Conflicts: sysvinit-tools < 2.88-14
|
||||
# old versions of e2fsprogs contain fsck, uuidgen
|
||||
Conflicts: e2fsprogs < 1.41.8-5
|
||||
# rename from util-linux-ng back to util-linux
|
||||
Obsoletes: util-linux-ng < 2.19
|
||||
Provides: util-linux-ng = %{version}-%{release}
|
||||
Conflicts: filesystem < 3
|
||||
Provides: /sbin/nologin
|
||||
Provides: /bin/dmesg
|
||||
Provides: /bin/kill
|
||||
Provides: /bin/more
|
||||
Provides: /bin/mount
|
||||
Provides: /bin/umount
|
||||
Provides: /sbin/blkid
|
||||
Provides: /sbin/blockdev
|
||||
Provides: /sbin/findfs
|
||||
Provides: /sbin/fsck
|
||||
Provides: /sbin/nologin
|
||||
|
||||
Requires(post): coreutils
|
||||
Requires: pam >= 1.1.3-7, /etc/pam.d/system-auth
|
||||
|
@ -84,51 +100,27 @@ Requires: libblkid = %{version}-%{release}
|
|||
Requires: libmount = %{version}-%{release}
|
||||
Requires: libsmartcols = %{version}-%{release}
|
||||
Requires: libfdisk = %{version}-%{release}
|
||||
Requires: util-linux-core = %{version}-%{release}
|
||||
|
||||
### Ready for upstream?
|
||||
###
|
||||
# 151635 - makeing /var/log/lastlog
|
||||
Patch0: login-lastlog-create.patch
|
||||
# https://github.com/karelzak/util-linux/commit/57898c3a7ee8fc5933cddd4526bb3980bef85a02
|
||||
# The workaround is unnecessary on Fedora with kernel >= 5.8.
|
||||
Patch1: libmount-remove-read-mountinfo-workaround.patch
|
||||
# Add `/run/motd.d` to the hardcoded MOTD_FILE
|
||||
# https://github.com/coreos/console-login-helper-messages/issues/60
|
||||
Patch1: login-default-motd-file.patch
|
||||
Patch2: login-default-motd-file.patch
|
||||
|
||||
%description
|
||||
The util-linux package contains a large variety of low-level system
|
||||
utilities that are necessary for a Linux system to function. Among
|
||||
others, util-linux contains the fdisk configuration tool and the login
|
||||
others, Util-linux contains the fdisk configuration tool and the login
|
||||
program.
|
||||
|
||||
|
||||
%package -n util-linux-core
|
||||
Summary: The most essential utilities from the util-linux suite
|
||||
License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain
|
||||
Provides: /bin/dmesg
|
||||
Provides: /bin/kill
|
||||
Provides: /bin/more
|
||||
Provides: /bin/mount
|
||||
Provides: /bin/umount
|
||||
Provides: /sbin/blkid
|
||||
Provides: /sbin/blockdev
|
||||
Provides: /sbin/fsck
|
||||
# hardlink has been merged into util-linux v2.34
|
||||
Obsoletes: hardlink <= 1:1.3-9
|
||||
Provides: hardlink = 1:1.3-9
|
||||
Requires: libuuid = %{version}-%{release}
|
||||
Requires: libblkid = %{version}-%{release}
|
||||
Requires: libmount = %{version}-%{release}
|
||||
Requires: libsmartcols = %{version}-%{release}
|
||||
# old versions of e2fsprogs contain fsck, uuidgen
|
||||
Conflicts: e2fsprogs < 1.41.8-5
|
||||
|
||||
%description -n util-linux-core
|
||||
This is a very basic set of Linux utilities that is necessary on
|
||||
minimal installations.
|
||||
|
||||
|
||||
%package -n libfdisk
|
||||
Summary: Partitioning library for fdisk-like programs
|
||||
Summary: Partitioning library for fdisk-like programs.
|
||||
License: LGPLv2+
|
||||
|
||||
%description -n libfdisk
|
||||
|
@ -136,9 +128,9 @@ This is library for fdisk-like programs, part of util-linux.
|
|||
|
||||
|
||||
%package -n libfdisk-devel
|
||||
Summary: Partitioning library for fdisk-like programs
|
||||
Summary: Partitioning library for fdisk-like programs.
|
||||
License: LGPLv2+
|
||||
Requires: libfdisk%{?_isa} = %{version}-%{release}
|
||||
Requires: libfdisk = %{version}-%{release}
|
||||
Requires: pkgconfig
|
||||
|
||||
%description -n libfdisk-devel
|
||||
|
@ -147,7 +139,7 @@ part of util-linux.
|
|||
|
||||
|
||||
%package -n libsmartcols
|
||||
Summary: Formatting library for ls-like programs
|
||||
Summary: Formatting library for ls-like programs.
|
||||
License: LGPLv2+
|
||||
|
||||
%description -n libsmartcols
|
||||
|
@ -155,9 +147,9 @@ This is library for ls-like terminal programs, part of util-linux.
|
|||
|
||||
|
||||
%package -n libsmartcols-devel
|
||||
Summary: Formatting library for ls-like programs
|
||||
Summary: Formatting library for ls-like programs.
|
||||
License: LGPLv2+
|
||||
Requires: libsmartcols%{?_isa} = %{version}-%{release}
|
||||
Requires: libsmartcols = %{version}-%{release}
|
||||
Requires: pkgconfig
|
||||
|
||||
%description -n libsmartcols-devel
|
||||
|
@ -168,8 +160,8 @@ part of util-linux.
|
|||
%package -n libmount
|
||||
Summary: Device mounting library
|
||||
License: LGPLv2+
|
||||
Requires: libblkid%{?_isa} = %{version}-%{release}
|
||||
Requires: libuuid%{?_isa} = %{version}-%{release}
|
||||
Requires: libblkid = %{version}-%{release}
|
||||
Requires: libuuid = %{version}-%{release}
|
||||
Conflicts: filesystem < 3
|
||||
|
||||
%description -n libmount
|
||||
|
@ -179,7 +171,7 @@ This is the device mounting library, part of util-linux.
|
|||
%package -n libmount-devel
|
||||
Summary: Device mounting library
|
||||
License: LGPLv2+
|
||||
Requires: libmount%{?_isa} = %{version}-%{release}
|
||||
Requires: libmount = %{version}-%{release}
|
||||
Requires: pkgconfig
|
||||
|
||||
%description -n libmount-devel
|
||||
|
@ -190,8 +182,9 @@ part of util-linux.
|
|||
%package -n libblkid
|
||||
Summary: Block device ID library
|
||||
License: LGPLv2+
|
||||
Requires: libuuid%{?_isa} = %{version}-%{release}
|
||||
Requires: libuuid = %{version}-%{release}
|
||||
Conflicts: filesystem < 3
|
||||
Requires(post): coreutils
|
||||
|
||||
%description -n libblkid
|
||||
This is block device identification library, part of util-linux.
|
||||
|
@ -200,7 +193,7 @@ This is block device identification library, part of util-linux.
|
|||
%package -n libblkid-devel
|
||||
Summary: Block device ID library
|
||||
License: LGPLv2+
|
||||
Requires: libblkid%{?_isa} = %{version}-%{release}
|
||||
Requires: libblkid = %{version}-%{release}
|
||||
Requires: pkgconfig
|
||||
|
||||
%description -n libblkid-devel
|
||||
|
@ -228,7 +221,7 @@ See also the "uuid" package, which is a separate implementation.
|
|||
%package -n libuuid-devel
|
||||
Summary: Universally unique ID library
|
||||
License: BSD
|
||||
Requires: libuuid%{?_isa} = %{version}-%{release}
|
||||
Requires: libuuid = %{version}-%{release}
|
||||
Requires: pkgconfig
|
||||
|
||||
%description -n libuuid-devel
|
||||
|
@ -262,7 +255,7 @@ SMP systems.
|
|||
|
||||
%package -n %{pypkg}-libmount
|
||||
Summary: Python bindings for the libmount library
|
||||
Requires: libmount%{?_isa} = %{version}-%{release}
|
||||
Requires: libmount = %{version}-%{release}
|
||||
License: LGPLv2+
|
||||
|
||||
%description -n %{pypkg}-libmount
|
||||
|
@ -273,12 +266,12 @@ mountinfo, etc) and mount filesystems.
|
|||
|
||||
|
||||
%package -n util-linux-user
|
||||
Summary: util-linux utilities based on libuser
|
||||
Summary: libuser based util-linux utilities
|
||||
Requires: util-linux = %{version}-%{release}
|
||||
License: GPLv2
|
||||
|
||||
%description -n util-linux-user
|
||||
chfn and chsh utilities with dependence on libuser.
|
||||
chfn and chsh utilities with dependence on libuser
|
||||
|
||||
|
||||
%prep
|
||||
|
@ -287,10 +280,6 @@ chfn and chsh utilities with dependence on libuser.
|
|||
%build
|
||||
unset LINGUAS || :
|
||||
|
||||
# enable only when make a change to the build-system
|
||||
#./autogen.sh
|
||||
|
||||
|
||||
export CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 $RPM_OPT_FLAGS"
|
||||
export SUID_CFLAGS="-fpie"
|
||||
export SUID_LDFLAGS="-pie -Wl,-z,relro -Wl,-z,now"
|
||||
|
@ -304,10 +293,8 @@ export DAEMON_LDFLAGS="$SUID_LDFLAGS"
|
|||
--enable-chfn-chsh \
|
||||
--enable-usrdir-path \
|
||||
--enable-write \
|
||||
--disable-raw \
|
||||
--enable-raw \
|
||||
--enable-hardlink \
|
||||
--enable-fdformat \
|
||||
--enable-asciidoc \
|
||||
--with-python=%{pyver} \
|
||||
--with-systemd \
|
||||
--with-udev \
|
||||
|
@ -331,17 +318,32 @@ make check
|
|||
|
||||
|
||||
%install
|
||||
rm -rf ${RPM_BUILD_ROOT}
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_bindir}
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man{1,6,8,5}
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_sbindir}
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/{pam.d,security/console.apps}
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_tmpfilesdir}/tmpfiles.d
|
||||
mkdir -p ${RPM_BUILD_ROOT}/var/log
|
||||
touch ${RPM_BUILD_ROOT}/var/log/lastlog
|
||||
chmod 0644 ${RPM_BUILD_ROOT}/var/log/lastlog
|
||||
|
||||
# install util-linux
|
||||
%make_install
|
||||
|
||||
# raw
|
||||
echo '.so man8/raw.8' > $RPM_BUILD_ROOT%{_mandir}/man8/rawdevices.8
|
||||
{
|
||||
# see RH bugzilla #216664
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/lib/udev/rules.d
|
||||
pushd ${RPM_BUILD_ROOT}%{_prefix}/lib/udev/rules.d
|
||||
install -m 644 %{SOURCE4} ./60-raw.rules
|
||||
popd
|
||||
}
|
||||
|
||||
# sbin -> bin
|
||||
mv ${RPM_BUILD_ROOT}%{_sbindir}/raw ${RPM_BUILD_ROOT}%{_bindir}/raw
|
||||
|
||||
# And a dirs uuidd needs that the makefiles don't create
|
||||
install -m 644 %{SOURCE4} ${RPM_BUILD_ROOT}%{_tmpfilesdir}/uuidd.conf
|
||||
install -d ${RPM_BUILD_ROOT}/run/uuidd
|
||||
install -d ${RPM_BUILD_ROOT}/var/lib/libuuid
|
||||
|
||||
|
@ -401,9 +403,9 @@ done
|
|||
%endif
|
||||
|
||||
# we install getopt-*.{bash,tcsh} by doc directive
|
||||
#chmod 644 misc-utils/getopt-*.{bash,tcsh}
|
||||
#rm -f ${RPM_BUILD_ROOT}%{_datadir}/doc/util-linux/getopt/*
|
||||
#rmdir ${RPM_BUILD_ROOT}%{_datadir}/doc/util-linux/getopt
|
||||
chmod 644 misc-utils/getopt-*.{bash,tcsh}
|
||||
rm -f ${RPM_BUILD_ROOT}%{_datadir}/doc/util-linux/getopt/*
|
||||
rmdir ${RPM_BUILD_ROOT}%{_datadir}/doc/util-linux/getopt
|
||||
|
||||
ln -sf ../proc/self/mounts %{buildroot}/etc/mtab
|
||||
|
||||
|
@ -428,6 +430,37 @@ find $RPM_BUILD_ROOT%{_mandir}/man8 -regextype posix-egrep \
|
|||
-regex ".*(linux32|linux64|s390|s390x|i386|ppc|ppc64|ppc32|sparc|sparc64|sparc32|sparc32bash|mips|mips64|mips32|ia64|x86_64|uname26)\.8.*" \
|
||||
-printf "%{_mandir}/man8/%f*\n" >> %{name}.files
|
||||
|
||||
%post
|
||||
# only for minimal buildroots without /var/log
|
||||
[ -d /var/log ] || mkdir -p /var/log
|
||||
touch /var/log/lastlog
|
||||
chown root:root /var/log/lastlog
|
||||
chmod 0644 /var/log/lastlog
|
||||
# Fix the file context, do not use restorecon
|
||||
if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
|
||||
SECXT=$( /usr/sbin/matchpathcon -n /var/log/lastlog 2> /dev/null )
|
||||
if [ -n "$SECXT" ]; then
|
||||
# Selinux enabled, but without policy? It's true for buildroots
|
||||
# without selinux stuff on host machine with enabled selinux.
|
||||
# We don't want to use any RPM dependence on selinux policy for
|
||||
# matchpathcon(2). SELinux policy should be optional.
|
||||
/usr/bin/chcon "$SECXT" /var/log/lastlog >/dev/null 2>&1 || :
|
||||
fi
|
||||
fi
|
||||
if [ ! -L /etc/mtab ]; then
|
||||
ln -sf ../proc/self/mounts /etc/mtab || :
|
||||
fi
|
||||
|
||||
%post -n libblkid
|
||||
### Move blkid cache to /run
|
||||
[ -d /run/blkid ] || mkdir -p /run/blkid
|
||||
for I in /etc/blkid.tab /etc/blkid.tab.old \
|
||||
/etc/blkid/blkid.tab /etc/blkid/blkid.tab.old; do
|
||||
|
||||
if [ -f "$I" ]; then
|
||||
mv "$I" /run/blkid/ || :
|
||||
fi
|
||||
done
|
||||
|
||||
%pre -n uuidd
|
||||
getent group uuidd >/dev/null || groupadd -r uuidd
|
||||
|
@ -462,6 +495,7 @@ fi
|
|||
%files -f %{name}.files
|
||||
%doc README NEWS AUTHORS
|
||||
%doc Documentation/deprecated.txt
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license Documentation/licenses/*
|
||||
%doc misc-utils/getopt-*.{bash,tcsh}
|
||||
|
||||
|
@ -471,36 +505,51 @@ fi
|
|||
%config(noreplace) %{_sysconfdir}/pam.d/su-l
|
||||
%config(noreplace) %{_sysconfdir}/pam.d/runuser
|
||||
%config(noreplace) %{_sysconfdir}/pam.d/runuser-l
|
||||
%config(noreplace) %{_prefix}/lib/udev/rules.d/60-raw.rules
|
||||
|
||||
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/adjtime
|
||||
|
||||
%attr(4755,root,root) %{_bindir}/mount
|
||||
%attr(4755,root,root) %{_bindir}/umount
|
||||
%attr(4755,root,root) %{_bindir}/su
|
||||
%attr(755,root,root) %{_bindir}/login
|
||||
%attr(2755,root,tty) %{_bindir}/write
|
||||
|
||||
%ghost %attr(0644,root,root) %verify(not md5 size mtime) /var/log/lastlog
|
||||
%ghost %verify(not md5 size mtime) %config(noreplace,missingok) /etc/mtab
|
||||
|
||||
%{_unitdir}/fstrim.*
|
||||
|
||||
%{_bindir}/cal
|
||||
%{_bindir}/chmem
|
||||
%{_bindir}/choom
|
||||
%{_bindir}/chrt
|
||||
%{_bindir}/col
|
||||
%{_bindir}/colcrt
|
||||
%{_bindir}/colrm
|
||||
%{_bindir}/column
|
||||
%{_bindir}/dmesg
|
||||
%{_bindir}/eject
|
||||
%{_bindir}/fallocate
|
||||
%{_bindir}/fincore
|
||||
%{_bindir}/fadvise
|
||||
%{_bindir}/findmnt
|
||||
%{_bindir}/flock
|
||||
%{_bindir}/getopt
|
||||
%{_bindir}/hardlink
|
||||
%{_bindir}/hexdump
|
||||
%{_bindir}/ionice
|
||||
%{_bindir}/ipcmk
|
||||
%{_bindir}/ipcrm
|
||||
%{_bindir}/ipcs
|
||||
%{_bindir}/irqtop
|
||||
%{_bindir}/isosize
|
||||
%{_bindir}/kill
|
||||
%{_bindir}/last
|
||||
%{_bindir}/lastb
|
||||
%{_bindir}/logger
|
||||
%{_bindir}/look
|
||||
%{_bindir}/lsblk
|
||||
%{_bindir}/lscpu
|
||||
%{_bindir}/lsfd
|
||||
%{_bindir}/lsipc
|
||||
%{_bindir}/lsirq
|
||||
%{_bindir}/lslocks
|
||||
|
@ -509,98 +558,125 @@ fi
|
|||
%{_bindir}/lsns
|
||||
%{_bindir}/mcookie
|
||||
%{_bindir}/mesg
|
||||
%{_bindir}/more
|
||||
%{_bindir}/mountpoint
|
||||
%{_bindir}/namei
|
||||
%{_bindir}/pipesz
|
||||
%{_bindir}/nsenter
|
||||
%{_bindir}/prlimit
|
||||
%{_bindir}/raw
|
||||
%{_bindir}/rename
|
||||
%{_bindir}/renice
|
||||
%{_bindir}/rev
|
||||
%{_bindir}/script
|
||||
%{_bindir}/scriptlive
|
||||
%{_bindir}/scriptreplay
|
||||
%{_bindir}/setarch
|
||||
%{_bindir}/setpriv
|
||||
%{_bindir}/setsid
|
||||
%{_bindir}/setterm
|
||||
%{_bindir}/uclampset
|
||||
%{_bindir}/taskset
|
||||
%{_bindir}/ul
|
||||
%{_bindir}/unshare
|
||||
%{_bindir}/utmpdump
|
||||
%{_bindir}/uuidgen
|
||||
%{_bindir}/uuidparse
|
||||
%{_bindir}/waitpid
|
||||
%{_bindir}/wall
|
||||
%{_bindir}/wdctl
|
||||
%{_bindir}/whereis
|
||||
%{_mandir}/man1/cal.1*
|
||||
%{_mandir}/man1/choom.1*
|
||||
%{_mandir}/man1/chrt.1*
|
||||
%{_mandir}/man1/col.1*
|
||||
%{_mandir}/man1/colcrt.1*
|
||||
%{_mandir}/man1/colrm.1*
|
||||
%{_mandir}/man1/column.1*
|
||||
%{_mandir}/man1/dmesg.1*
|
||||
%{_mandir}/man1/eject.1*
|
||||
%{_mandir}/man1/fadvise.1.*
|
||||
%{_mandir}/man1/fallocate.1*
|
||||
%{_mandir}/man1/fincore.1*
|
||||
%{_mandir}/man1/flock.1*
|
||||
%{_mandir}/man1/getopt.1*
|
||||
%{_mandir}/man1/hardlink.1*
|
||||
%{_mandir}/man1/hexdump.1*
|
||||
%{_mandir}/man1/ionice.1*
|
||||
%{_mandir}/man1/ipcmk.1*
|
||||
%{_mandir}/man1/ipcrm.1*
|
||||
%{_mandir}/man1/ipcs.1*
|
||||
%{_mandir}/man1/irqtop.1*
|
||||
%{_mandir}/man1/kill.1*
|
||||
%{_mandir}/man1/last.1*
|
||||
%{_mandir}/man1/lastb.1*
|
||||
%{_mandir}/man1/logger.1*
|
||||
%{_mandir}/man1/login.1*
|
||||
%{_mandir}/man1/look.1*
|
||||
%{_mandir}/man1/lscpu.1*
|
||||
%{_mandir}/man1/lsfd.1*
|
||||
%{_mandir}/man1/lsipc.1*
|
||||
%{_mandir}/man1/lsirq.1*
|
||||
%{_mandir}/man1/lslogins.1*
|
||||
%{_mandir}/man1/lsmem.1*
|
||||
%{_mandir}/man1/mcookie.1*
|
||||
%{_mandir}/man1/mesg.1*
|
||||
%{_mandir}/man1/more.1*
|
||||
%{_mandir}/man1/mountpoint.1*
|
||||
%{_mandir}/man1/namei.1*
|
||||
%{_mandir}/man1/pipesz.1.*
|
||||
%{_mandir}/man1/nsenter.1*
|
||||
%{_mandir}/man1/prlimit.1*
|
||||
%{_mandir}/man1/rename.1*
|
||||
%{_mandir}/man1/renice.1*
|
||||
%{_mandir}/man1/rev.1*
|
||||
%{_mandir}/man1/runuser.1*
|
||||
%{_mandir}/man1/script.1*
|
||||
%{_mandir}/man1/scriptlive.1*
|
||||
%{_mandir}/man1/scriptreplay.1*
|
||||
%{_mandir}/man1/setpriv.1*
|
||||
%{_mandir}/man1/setsid.1*
|
||||
%{_mandir}/man1/setterm.1*
|
||||
%{_mandir}/man1/su.1*
|
||||
%{_mandir}/man1/uclampset.1.*
|
||||
%{_mandir}/man1/taskset.1*
|
||||
%{_mandir}/man1/ul.1*
|
||||
%{_mandir}/man1/unshare.1*
|
||||
%{_mandir}/man1/utmpdump.1.gz
|
||||
%{_mandir}/man1/uuidgen.1*
|
||||
%{_mandir}/man1/uuidparse.1*
|
||||
%{_mandir}/man1/waitpid.1.*
|
||||
%{_mandir}/man1/wall.1*
|
||||
%{_mandir}/man1/whereis.1*
|
||||
%{_mandir}/man1/write.1*
|
||||
%{_mandir}/man5/fstab.5*
|
||||
%{_mandir}/man5/terminal-colors.d.5*
|
||||
%{_mandir}/man8/addpart.8*
|
||||
%{_mandir}/man8/agetty.8*
|
||||
%{_mandir}/man8/blkdiscard.8*
|
||||
%{_mandir}/man8/blkpr.8.*
|
||||
%{_mandir}/man8/blkid.8*
|
||||
%{_mandir}/man8/blkzone.8*
|
||||
%{_mandir}/man8/blockdev.8*
|
||||
%{_mandir}/man8/chcpu.8*
|
||||
%{_mandir}/man8/chmem.8*
|
||||
%{_mandir}/man8/ctrlaltdel.8*
|
||||
%{_mandir}/man8/delpart.8*
|
||||
%{_mandir}/man8/fdisk.8*
|
||||
%{_mandir}/man8/findfs.8*
|
||||
%{_mandir}/man8/findmnt.8*
|
||||
%{_mandir}/man8/fsck.8*
|
||||
%{_mandir}/man8/fsck.cramfs.8*
|
||||
%{_mandir}/man8/fsck.minix.8*
|
||||
%{_mandir}/man8/fsfreeze.8*
|
||||
%{_mandir}/man8/fstrim.8*
|
||||
%{_mandir}/man8/isosize.8*
|
||||
%{_mandir}/man8/ldattach.8*
|
||||
%{_mandir}/man8/losetup.8*
|
||||
%{_mandir}/man8/lsblk.8*
|
||||
%{_mandir}/man8/lslocks.8*
|
||||
%{_mandir}/man8/lsns.8*
|
||||
%{_mandir}/man8/mkfs.8*
|
||||
%{_mandir}/man8/mkfs.cramfs.8*
|
||||
%{_mandir}/man8/mkfs.minix.8*
|
||||
%{_mandir}/man8/mkswap.8*
|
||||
%{_mandir}/man8/mount.8*
|
||||
%{_mandir}/man8/nologin.8*
|
||||
%{_mandir}/man8/partx.8*
|
||||
%{_mandir}/man8/pivot_root.8*
|
||||
%{_mandir}/man8/raw.8*
|
||||
%{_mandir}/man8/rawdevices.8*
|
||||
%{_mandir}/man8/readprofile.8*
|
||||
%{_mandir}/man8/resizepart.8*
|
||||
%{_mandir}/man8/rfkill.8*
|
||||
|
@ -608,27 +684,37 @@ fi
|
|||
%{_mandir}/man8/setarch.8*
|
||||
%{_mandir}/man8/sulogin.8.gz
|
||||
%{_mandir}/man8/swaplabel.8*
|
||||
%{_mandir}/man8/swapoff.8*
|
||||
%{_mandir}/man8/swapon.8*
|
||||
%{_mandir}/man8/switch_root.8*
|
||||
%{_mandir}/man8/umount.8*
|
||||
%{_mandir}/man8/wdctl.8.gz
|
||||
%{_mandir}/man8/wipefs.8*
|
||||
%{_mandir}/man8/zramctl.8*
|
||||
%{_sbindir}/addpart
|
||||
%{_sbindir}/agetty
|
||||
%{_sbindir}/blkdiscard
|
||||
%{_sbindir}/blkpr
|
||||
%{_sbindir}/blkid
|
||||
%{_sbindir}/blkzone
|
||||
%{_sbindir}/blockdev
|
||||
%{_sbindir}/chcpu
|
||||
%{_sbindir}/ctrlaltdel
|
||||
%{_sbindir}/delpart
|
||||
%{_sbindir}/fdisk
|
||||
%{_sbindir}/findfs
|
||||
%{_sbindir}/fsck
|
||||
%{_sbindir}/fsck.cramfs
|
||||
%{_sbindir}/fsck.minix
|
||||
%{_sbindir}/fsfreeze
|
||||
%{_sbindir}/fstrim
|
||||
%{_sbindir}/ldattach
|
||||
%{_sbindir}/losetup
|
||||
%{_sbindir}/mkfs
|
||||
%{_sbindir}/mkfs.cramfs
|
||||
%{_sbindir}/mkfs.minix
|
||||
%{_sbindir}/mkswap
|
||||
%{_sbindir}/nologin
|
||||
%{_sbindir}/partx
|
||||
%{_sbindir}/pivot_root
|
||||
%{_sbindir}/readprofile
|
||||
%{_sbindir}/resizepart
|
||||
|
@ -637,38 +723,53 @@ fi
|
|||
%{_sbindir}/runuser
|
||||
%{_sbindir}/sulogin
|
||||
%{_sbindir}/swaplabel
|
||||
%{_sbindir}/swapoff
|
||||
%{_sbindir}/swapon
|
||||
%{_sbindir}/switch_root
|
||||
%{_sbindir}/wipefs
|
||||
%{_sbindir}/zramctl
|
||||
|
||||
%{compldir}/addpart
|
||||
%{compldir}/blkdiscard
|
||||
%{compldir}/blkid
|
||||
%{compldir}/blkzone
|
||||
%{compldir}/blockdev
|
||||
%{compldir}/cal
|
||||
%{compldir}/chcpu
|
||||
%{compldir}/chmem
|
||||
%{compldir}/chrt
|
||||
%{compldir}/col
|
||||
%{compldir}/colcrt
|
||||
%{compldir}/colrm
|
||||
%{compldir}/column
|
||||
%{compldir}/ctrlaltdel
|
||||
%{compldir}/delpart
|
||||
%{compldir}/dmesg
|
||||
%{compldir}/eject
|
||||
%{compldir}/fallocate
|
||||
%{compldir}/fdisk
|
||||
%{compldir}/fincore
|
||||
%{compldir}/findfs
|
||||
%{compldir}/findmnt
|
||||
%{compldir}/flock
|
||||
%{compldir}/fsck
|
||||
%{compldir}/fsck.cramfs
|
||||
%{compldir}/fsck.minix
|
||||
%{compldir}/fsfreeze
|
||||
%{compldir}/fstrim
|
||||
%{compldir}/getopt
|
||||
%{compldir}/hexdump
|
||||
%{compldir}/ionice
|
||||
%{compldir}/ipcmk
|
||||
%{compldir}/ipcrm
|
||||
%{compldir}/ipcs
|
||||
%{compldir}/irqtop
|
||||
%{compldir}/isosize
|
||||
%{compldir}/last
|
||||
%{compldir}/lastb
|
||||
%{compldir}/ldattach
|
||||
%{compldir}/logger
|
||||
%{compldir}/look
|
||||
%{compldir}/losetup
|
||||
%{compldir}/lsblk
|
||||
%{compldir}/lscpu
|
||||
%{compldir}/lsipc
|
||||
|
@ -682,12 +783,18 @@ fi
|
|||
%{compldir}/mkfs
|
||||
%{compldir}/mkfs.cramfs
|
||||
%{compldir}/mkfs.minix
|
||||
%{compldir}/mkswap
|
||||
%{compldir}/more
|
||||
%{compldir}/mountpoint
|
||||
%{compldir}/namei
|
||||
%{compldir}/pipesz
|
||||
%{compldir}/nsenter
|
||||
%{compldir}/partx
|
||||
%{compldir}/pivot_root
|
||||
%{compldir}/prlimit
|
||||
%{compldir}/raw
|
||||
%{compldir}/readprofile
|
||||
%{compldir}/rename
|
||||
%{compldir}/renice
|
||||
%{compldir}/resizepart
|
||||
%{compldir}/rev
|
||||
%{compldir}/rfkill
|
||||
|
@ -698,11 +805,15 @@ fi
|
|||
%{compldir}/scriptreplay
|
||||
%{compldir}/setarch
|
||||
%{compldir}/setpriv
|
||||
%{compldir}/setsid
|
||||
%{compldir}/setterm
|
||||
%{compldir}/su
|
||||
%{compldir}/swaplabel
|
||||
%{compldir}/uclampset
|
||||
%{compldir}/swapoff
|
||||
%{compldir}/swapon
|
||||
%{compldir}/taskset
|
||||
%{compldir}/ul
|
||||
%{compldir}/unshare
|
||||
%{compldir}/utmpdump
|
||||
%{compldir}/uuidgen
|
||||
%{compldir}/uuidparse
|
||||
|
@ -713,6 +824,7 @@ fi
|
|||
%{compldir}/write
|
||||
%{compldir}/zramctl
|
||||
|
||||
|
||||
%ifnarch s390 s390x
|
||||
%{_sbindir}/clock
|
||||
%{_sbindir}/fdformat
|
||||
|
@ -739,95 +851,6 @@ fi
|
|||
%endif
|
||||
|
||||
|
||||
%files -n util-linux-core
|
||||
%attr(4755,root,root) %{_bindir}/mount
|
||||
%attr(4755,root,root) %{_bindir}/umount
|
||||
%{_bindir}/chrt
|
||||
%{_bindir}/dmesg
|
||||
%{_bindir}/findmnt
|
||||
%{_bindir}/flock
|
||||
%{_bindir}/hardlink
|
||||
%{_bindir}/ionice
|
||||
%{_bindir}/ipcmk
|
||||
%{_bindir}/ipcrm
|
||||
%{_bindir}/ipcs
|
||||
%{_bindir}/kill
|
||||
%{_bindir}/logger
|
||||
%{_bindir}/more
|
||||
%{_bindir}/mountpoint
|
||||
%{_bindir}/nsenter
|
||||
%{_bindir}/renice
|
||||
%{_bindir}/setsid
|
||||
%{_bindir}/taskset
|
||||
%{_bindir}/unshare
|
||||
%{compldir}/blkid
|
||||
%{compldir}/blockdev
|
||||
%{compldir}/chrt
|
||||
%{compldir}/dmesg
|
||||
%{compldir}/findmnt
|
||||
%{compldir}/flock
|
||||
%{compldir}/hardlink
|
||||
%{compldir}/fsck
|
||||
%{compldir}/ionice
|
||||
%{compldir}/ipcmk
|
||||
%{compldir}/ipcrm
|
||||
%{compldir}/ipcs
|
||||
%{compldir}/logger
|
||||
%{compldir}/losetup
|
||||
%{compldir}/mkswap
|
||||
%{compldir}/more
|
||||
%{compldir}/mountpoint
|
||||
%{compldir}/nsenter
|
||||
%{compldir}/partx
|
||||
%{compldir}/renice
|
||||
%{compldir}/setsid
|
||||
%{compldir}/swapoff
|
||||
%{compldir}/swapon
|
||||
%{compldir}/taskset
|
||||
%{compldir}/unshare
|
||||
%{_mandir}/man1/chrt.1*
|
||||
%{_mandir}/man1/dmesg.1*
|
||||
%{_mandir}/man1/flock.1*
|
||||
%{_mandir}/man1/hardlink.1*
|
||||
%{_mandir}/man1/ionice.1*
|
||||
%{_mandir}/man1/ipcmk.1*
|
||||
%{_mandir}/man1/ipcrm.1*
|
||||
%{_mandir}/man1/ipcs.1*
|
||||
%{_mandir}/man1/kill.1*
|
||||
%{_mandir}/man1/logger.1*
|
||||
%{_mandir}/man1/more.1*
|
||||
%{_mandir}/man1/mountpoint.1*
|
||||
%{_mandir}/man1/nsenter.1*
|
||||
%{_mandir}/man1/renice.1*
|
||||
%{_mandir}/man1/setsid.1*
|
||||
%{_mandir}/man1/taskset.1*
|
||||
%{_mandir}/man1/unshare.1*
|
||||
%{_mandir}/man8/agetty.8*
|
||||
%{_mandir}/man8/blkid.8*
|
||||
%{_mandir}/man8/blockdev.8*
|
||||
%{_mandir}/man8/findmnt.8*
|
||||
%{_mandir}/man8/fsck.8*
|
||||
%{_mandir}/man8/losetup.8*
|
||||
%{_mandir}/man8/mkswap.8*
|
||||
%{_mandir}/man8/mount.8*
|
||||
%{_mandir}/man8/partx.8*
|
||||
%{_mandir}/man8/swapoff.8*
|
||||
%{_mandir}/man8/swapon.8*
|
||||
%{_mandir}/man8/switch_root.8*
|
||||
%{_mandir}/man8/umount.8*
|
||||
%{_sbindir}/agetty
|
||||
%{_sbindir}/blkid
|
||||
%{_sbindir}/blockdev
|
||||
%{_sbindir}/fsck
|
||||
%{_sbindir}/losetup
|
||||
%{_sbindir}/mkswap
|
||||
%{_sbindir}/partx
|
||||
%{_sbindir}/swapoff
|
||||
%{_sbindir}/swapon
|
||||
%{_sbindir}/switch_root
|
||||
/etc/mtab
|
||||
|
||||
|
||||
%files -n util-linux-user
|
||||
%config(noreplace) %{_sysconfdir}/pam.d/chfn
|
||||
%config(noreplace) %{_sysconfdir}/pam.d/chsh
|
||||
|
@ -840,6 +863,7 @@ fi
|
|||
|
||||
|
||||
%files -n uuidd
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license Documentation/licenses/COPYING.GPL-2.0-or-later
|
||||
%{_mandir}/man8/uuidd.8*
|
||||
%{_sbindir}/uuidd
|
||||
|
@ -847,10 +871,10 @@ fi
|
|||
%dir %attr(2775, uuidd, uuidd) /var/lib/libuuid
|
||||
%dir %attr(2775, uuidd, uuidd) /run/uuidd
|
||||
%{compldir}/uuidd
|
||||
%{_tmpfilesdir}/uuidd.conf
|
||||
|
||||
|
||||
%files -n libfdisk
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license Documentation/licenses/COPYING.LGPL-2.1-or-later libfdisk/COPYING
|
||||
%{_libdir}/libfdisk.so.*
|
||||
|
||||
|
@ -861,6 +885,7 @@ fi
|
|||
|
||||
|
||||
%files -n libsmartcols
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license Documentation/licenses/COPYING.LGPL-2.1-or-later libsmartcols/COPYING
|
||||
%{_libdir}/libsmartcols.so.*
|
||||
|
||||
|
@ -871,6 +896,7 @@ fi
|
|||
|
||||
|
||||
%files -n libmount
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license Documentation/licenses/COPYING.LGPL-2.1-or-later libmount/COPYING
|
||||
%{_libdir}/libmount.so.*
|
||||
|
||||
|
@ -893,6 +919,7 @@ fi
|
|||
|
||||
|
||||
%files -n libuuid
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license Documentation/licenses/COPYING.BSD-3-Clause libuuid/COPYING
|
||||
%{_libdir}/libuuid.so.*
|
||||
|
||||
|
@ -914,110 +941,11 @@ fi
|
|||
%{_libdir}/pkgconfig/uuid.pc
|
||||
|
||||
%files -n %{pypkg}-libmount
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license Documentation/licenses/COPYING.LGPL-2.1-or-later libmount/COPYING
|
||||
%{_libdir}/python*/site-packages/libmount/
|
||||
|
||||
%changelog
|
||||
* Wed Apr 19 2023 Karel Zak <kzak@redhat.com> - 2.39-0.5
|
||||
- upgrade to v2.39-rc3 (fixes XFS and rw/ro issues)
|
||||
|
||||
* Wed Apr 5 2023 Karel Zak <kzak@redhat.com> - 2.39-0.4
|
||||
- fix #2180593 (superblock reconfiguration libmount issue)
|
||||
|
||||
* Tue Apr 4 2023 Karel Zak <kzak@redhat.com> - 2.39-0.3
|
||||
- fix spec file
|
||||
|
||||
* Tue Apr 4 2023 Karel Zak <kzak@redhat.com> - 2.39-0.2
|
||||
- upgrade to v2.39-rc2
|
||||
|
||||
* Mon Mar 20 2023 Karel Zak <kzak@redhat.com> - 2.39-0.1
|
||||
- upgrade to v2.39-rc1
|
||||
https://kernel.org/pub/linux/utils/util-linux/v2.39/v2.39-ReleaseNotes
|
||||
|
||||
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.38.1-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Sat Dec 17 2022 Florian Weimer <fweimer@redhat.com> - 2.38.1-3
|
||||
- Backport upstream patch to fix C99 issue in kill
|
||||
|
||||
* Mon Aug 22 2022 Karel Zak <kzak@redhat.com> - 2.38.1-2
|
||||
- improve tmpfiles.d use in spec file
|
||||
|
||||
* Thu Aug 4 2022 Karel Zak <kzak@redhat.com> - 2.38.1-1
|
||||
- upgrade to v2.38.1
|
||||
https://kernel.org/pub/linux/utils/util-linux/v2.38/v2.38.1-ReleaseNotes
|
||||
|
||||
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.38-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 2.38-4
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
* Wed Apr 13 2022 Karel Zak <kzak@redhat.com> - 2.38-3
|
||||
- fix spec file changelog order
|
||||
|
||||
* Wed Mar 30 2022 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.38-2
|
||||
- simplify creation of /etc/mtab symlink
|
||||
|
||||
* Wed Mar 30 2022 Karel Zak <kzak@redhat.com> - 2.38-1
|
||||
- upgrade to v2.38
|
||||
- don't (re)generate build-system
|
||||
- modernize spec file style (thanks to Zbigniew)
|
||||
|
||||
* Thu Mar 17 2022 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.38-0.5
|
||||
- Drop very old upgrade scriptlet for libblkid
|
||||
|
||||
* Wed Mar 16 2022 Karel Zak <kzak@redhat.com> - 2.38-0.4
|
||||
- upgrade to v2.38-rc3
|
||||
https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.38/v2.38-ReleaseNotes
|
||||
|
||||
* Wed Feb 2 2022 Karel Zak <kzak@redhat.com> - 2.38-0.3
|
||||
- add /usr/lib/tmpfiles.d/uuidd.conf (based on #2047952)
|
||||
|
||||
* Wed Feb 2 2022 Karel Zak <kzak@redhat.com> - 2.38-0.2
|
||||
- release ownership of /var/log/lastlog
|
||||
|
||||
* Mon Jan 31 2022 Karel Zak <kzak@redhat.com> - 2.38-0.1
|
||||
- upgrade to v2.38-rc1
|
||||
|
||||
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.37.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Tue Aug 17 2021 Karel Zak <kzak@redhat.com> - 2.37.2-1
|
||||
* upgrade to v2.37.2
|
||||
|
||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.37-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Wed Jul 14 2021 Karel Zak <kzak@redhat.com> - 2.37-5
|
||||
- remove unused util-linux-60-raw.rules
|
||||
|
||||
* Wed Jul 14 2021 Karel Zak <kzak@redhat.com> - 2.37-4
|
||||
- disable raw(8) - no more supported since Linux v5.14 (commit 03e4922f1c81fc2ed3a87b4f91a8d3aafc7e093)
|
||||
- remove dependence on deprecated pcre2posix.h
|
||||
- fix #1981729 - close_range() 3rd argument
|
||||
|
||||
* Wed Jun 16 2021 Richard W.M. Jones <rjones@redhat.com> - 2.37-3
|
||||
- Rebuild for updated pcre2
|
||||
|
||||
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.37-2
|
||||
- Rebuilt for Python 3.10
|
||||
|
||||
* Tue Jun 1 2021 Karel Zak <kzak@redhat.com> - 2.37-1
|
||||
- upgrade to v2.37
|
||||
- introduce util-linux-core subpackage
|
||||
|
||||
* Fri May 14 2021 Karel Zak <kzak@redhat.com> - 2.37-0.1
|
||||
- upgrade to v2.37-rc2
|
||||
https://kernel.org/pub/linux/utils/util-linux/v2.37/v2.37-ReleaseNotes
|
||||
|
||||
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.36.2-3
|
||||
- Rebuilt for updated systemd-rpm-macros
|
||||
See https://pagure.io/fesco/issue/2583.
|
||||
|
||||
* Tue Mar 2 2021 Karel Zak <kzak@redhat.com> - 2.36.2-2
|
||||
- spec file cleanup https://src.fedoraproject.org/rpms/util-linux/pull-request/9
|
||||
|
||||
* Fri Feb 12 2021 Karel Zak <kzak@redhat.com> - 2.36.2-1
|
||||
- upgrade to stable upstream 2.36.2
|
||||
https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.36/v2.36.2-ReleaseNotes
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
d /run/uuidd 2775 uuidd uuidd
|
Loading…
Reference in New Issue