From fe1ca80462d1e8873ba358f07cd17de0d4ed429d Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Apr 23 2020 23:16:11 +0000 Subject: import util-linux-2.32.1-22.el8 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c1ca66e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/util-linux-2.32.1.tar.xz diff --git a/.util-linux.metadata b/.util-linux.metadata new file mode 100644 index 0000000..abf5b09 --- /dev/null +++ b/.util-linux.metadata @@ -0,0 +1 @@ +de9271fb93fb651d21c027e2efb0cf0ac80f2e9a SOURCES/util-linux-2.32.1.tar.xz diff --git a/SOURCES/0000-login-create-var-log-lastlog.patch b/SOURCES/0000-login-create-var-log-lastlog.patch new file mode 100644 index 0000000..debe2db --- /dev/null +++ b/SOURCES/0000-login-create-var-log-lastlog.patch @@ -0,0 +1,26 @@ +From 2d57cb2d64ba4757dcfd9d0e7ed4873cae8a6fcd Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Mon, 20 Jun 2016 11:09:02 +0200 +Subject: [PATCH 0/6] login: create /var/log/lastlog + +Addresses: http://bugzilla.redhat.com/show_bug.cgi?id=151635 +--- + 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 09ee8f8ea..8c9e43292 100644 +--- a/login-utils/login.c ++++ b/login-utils/login.c +@@ -506,7 +506,7 @@ static void log_lastlog(struct login_context *cxt) + sa.sa_handler = SIG_IGN; + sigaction(SIGXFSZ, &sa, &oldsa_xfsz); + +- fd = open(_PATH_LASTLOG, O_RDWR, 0); ++ fd = open(_PATH_LASTLOG, O_RDWR | O_CREAT, 0); + if (fd < 0) + goto done; + +-- +2.14.4 + diff --git a/SOURCES/0001-libblkid-Check-for-a-secondary-LUKS2-header.patch b/SOURCES/0001-libblkid-Check-for-a-secondary-LUKS2-header.patch new file mode 100644 index 0000000..07477ef --- /dev/null +++ b/SOURCES/0001-libblkid-Check-for-a-secondary-LUKS2-header.patch @@ -0,0 +1,123 @@ +From 768b91ef6f68661462494bed800505064eb97bc8 Mon Sep 17 00:00:00 2001 +From: Milan Broz +Date: Wed, 11 Jul 2018 12:34:39 +0200 +Subject: [PATCH 1/6] libblkid: Check for a secondary LUKS2 header. + +This patch adds search for a secondary LUKS2 header, +if the primary one is corrupted. + +This patch is primarily needed for wipefs that should wipe +both signatures (otherwise LUKS2 header recovery can use +secondary header and revert wipefs action). + +Signed-off-by: Milan Broz +Upstream: http://github.com/karelzak/util-linux/commit/8bee1a220db8effbe5a75ba9bc68840e019ea89a +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1595882 +--- + libblkid/src/superblocks/luks.c | 60 ++++++++++++++++++++++++++++++++--------- + 1 file changed, 47 insertions(+), 13 deletions(-) + +diff --git a/libblkid/src/superblocks/luks.c b/libblkid/src/superblocks/luks.c +index bc3d7f558..67d7cfcc5 100644 +--- a/libblkid/src/superblocks/luks.c ++++ b/libblkid/src/superblocks/luks.c +@@ -1,5 +1,6 @@ + /* + * Copyright (C) 2008 Karel Zak ++ * Copyright (C) 2018 Milan Broz + * + * Inspired by libvolume_id by + * Kay Sievers +@@ -29,6 +30,15 @@ + #define LUKS2_CHECKSUM_ALG_L 32 + #define LUKS2_CHECKSUM_L 64 + ++#define LUKS_MAGIC "LUKS\xba\xbe" ++#define LUKS_MAGIC_2 "SKUL\xba\xbe" ++ ++/* Offsets for secondary header (for scan if primary header is corrupted). */ ++#define LUKS2_HDR2_OFFSETS { 0x04000, 0x008000, 0x010000, 0x020000, \ ++ 0x40000, 0x080000, 0x100000, 0x200000, 0x400000 } ++ ++static const uint64_t secondary_offsets[] = LUKS2_HDR2_OFFSETS; ++ + struct luks_phdr { + uint8_t magic[LUKS_MAGIC_L]; + uint16_t version; +@@ -59,18 +69,16 @@ struct luks2_phdr { + /* Padding to 4k, then JSON area */ + } __attribute__ ((packed)); + +-static int probe_luks(blkid_probe pr, const struct blkid_idmag *mag) ++static int luks_attributes(blkid_probe pr, struct luks2_phdr *header, uint64_t offset) + { +- struct luks_phdr *header_v1; +- struct luks2_phdr *header; + int version; ++ struct luks_phdr *header_v1; + +- header = blkid_probe_get_sb(pr, mag, struct luks2_phdr); +- if (header == NULL) +- return errno ? -errno : 1; ++ if (blkid_probe_set_magic(pr, offset, LUKS_MAGIC_L, (unsigned char *) &header->magic)) ++ return BLKID_PROBE_NONE; + + version = be16_to_cpu(header->version); +- blkid_probe_sprintf_version(pr, "%u", be16_to_cpu(header->version)); ++ blkid_probe_sprintf_version(pr, "%u", version); + + if (version == 1) { + header_v1 = (struct luks_phdr *)header; +@@ -84,7 +92,37 @@ static int probe_luks(blkid_probe pr, const struct blkid_idmag *mag) + blkid_probe_set_id_label(pr, "SUBSYSTEM", + (unsigned char *) header->subsystem, LUKS2_LABEL_L); + } +- return 0; ++ ++ return BLKID_PROBE_OK; ++} ++ ++static int probe_luks(blkid_probe pr, const struct blkid_idmag *mag __attribute__((__unused__))) ++{ ++ struct luks2_phdr *header; ++ size_t i; ++ ++ header = (struct luks2_phdr *) blkid_probe_get_buffer(pr, 0, sizeof(struct luks2_phdr)); ++ if (!header) ++ return errno ? -errno : BLKID_PROBE_NONE; ++ ++ if (!memcmp(header->magic, LUKS_MAGIC, LUKS_MAGIC_L)) { ++ /* LUKS primary header was found. */ ++ return luks_attributes(pr, header, 0); ++ } else { ++ /* No primary header, scan for known offsets of LUKS2 secondary header. */ ++ for (i = 0; i < ARRAY_SIZE(secondary_offsets); i++) { ++ header = (struct luks2_phdr *) blkid_probe_get_buffer(pr, ++ secondary_offsets[i], sizeof(struct luks2_phdr)); ++ ++ if (!header) ++ return errno ? -errno : BLKID_PROBE_NONE; ++ ++ if (!memcmp(header->magic, LUKS_MAGIC_2, LUKS_MAGIC_L)) ++ return luks_attributes(pr, header, secondary_offsets[i]); ++ } ++ } ++ ++ return BLKID_PROBE_NONE; + } + + const struct blkid_idinfo luks_idinfo = +@@ -92,9 +130,5 @@ const struct blkid_idinfo luks_idinfo = + .name = "crypto_LUKS", + .usage = BLKID_USAGE_CRYPTO, + .probefunc = probe_luks, +- .magics = +- { +- { .magic = "LUKS\xba\xbe", .len = 6 }, +- { NULL } +- } ++ .magics = BLKID_NONE_MAGIC + }; +-- +2.14.4 + diff --git a/SOURCES/0002-losetup-keep-f-and-devname-mutually-exclusive.patch b/SOURCES/0002-losetup-keep-f-and-devname-mutually-exclusive.patch new file mode 100644 index 0000000..824595b --- /dev/null +++ b/SOURCES/0002-losetup-keep-f-and-devname-mutually-exclusive.patch @@ -0,0 +1,40 @@ +From 315960fa9a89248e9d56682c1915567d38fef431 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Thu, 7 Jun 2018 12:05:08 +0200 +Subject: [PATCH 2/6] losetup: keep -f and mutually exclusive + +losetup tries to blindly use specified device as well as search for +the first free device, the result is: + + # losetup /dev/loop1 -f /tmp/tfile_loop1 + losetup: /dev/loop1: failed to set up loop device: Invalid argument + +fixed version: + + # losetup /dev/loop10 -f img + losetup: unexpected arguments + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1614364 +Upstream: http://github.com/karelzak/util-linux/commit/c3f5a0f1d47dbc47f6d21da232d4eb1cfb7905db +Signed-off-by: Karel Zak +--- + sys-utils/losetup.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/sys-utils/losetup.c b/sys-utils/losetup.c +index 9c479c02d..e80ceacce 100644 +--- a/sys-utils/losetup.c ++++ b/sys-utils/losetup.c +@@ -749,6 +749,9 @@ int main(int argc, char **argv) + */ + act = A_CREATE; + file = argv[optind++]; ++ ++ if (optind < argc) ++ errx(EXIT_FAILURE, _("unexpected arguments")); + } + + if (list && !act && optind == argc) +-- +2.14.4 + diff --git a/SOURCES/0003-mount-add-ext4-to-some-places-to-the-man-page.patch b/SOURCES/0003-mount-add-ext4-to-some-places-to-the-man-page.patch new file mode 100644 index 0000000..4cd8bee --- /dev/null +++ b/SOURCES/0003-mount-add-ext4-to-some-places-to-the-man-page.patch @@ -0,0 +1,55 @@ +From 4859f218a3be0ae90908fc0ddbef498a784e9b24 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Fri, 10 Aug 2018 16:27:41 +0200 +Subject: [PATCH 3/6] mount: add ext4 to some places to the man page + +Upstream: http://github.com/karelzak/util-linux/commit/d901e4275f7c1899518bab3b34424c90af8dc35e +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1614852 +--- + sys-utils/mount.8 | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/sys-utils/mount.8 b/sys-utils/mount.8 +index 562ecb187..1cc792979 100644 +--- a/sys-utils/mount.8 ++++ b/sys-utils/mount.8 +@@ -880,7 +880,7 @@ output for extN filesystems). + The following options apply to any filesystem that is being + mounted (but not every filesystem actually honors them \(en e.g.\&, the + .B sync +-option today has an effect only for ext2, ext3, fat, vfat and ufs): ++option today has an effect only for ext2, ext3, ext4, fat, vfat and ufs): + + .TP + .B async +@@ -916,7 +916,8 @@ The + .B context= + option is useful when mounting filesystems that do not support + extended attributes, such as a floppy or hard disk formatted with VFAT, or +-systems that are not normally running under SELinux, such as an ext3 formatted ++systems that are not normally running under SELinux, such as an ext3 or ext4 formatted ++ + disk from a non-SELinux workstation. You can also use + .B context= + on filesystems you do not trust, such as a floppy. It also helps in compatibility with +@@ -2314,7 +2315,7 @@ not specified or the filesystem is known for libblkid, for example: + .sp + .B "mount /tmp/disk.img /mnt" + .sp +-.B "mount \-t ext3 /tmp/disk.img /mnt" ++.B "mount \-t ext4 /tmp/disk.img /mnt" + .sp + .RE + This type of mount knows about three options, namely +@@ -2462,7 +2463,7 @@ It is possible for a corrupted filesystem to cause a crash. + .PP + Some Linux filesystems don't support + .BR "\-o sync " nor " \-o dirsync" +-(the ext2, ext3, fat and vfat filesystems ++(the ext2, ext3, ext4, fat and vfat filesystems + .I do + support synchronous updates (a la BSD) when mounted with the + .B sync +-- +2.14.4 + diff --git a/SOURCES/0004-logger-add-S-to-the-man-page.patch b/SOURCES/0004-logger-add-S-to-the-man-page.patch new file mode 100644 index 0000000..5d19e66 --- /dev/null +++ b/SOURCES/0004-logger-add-S-to-the-man-page.patch @@ -0,0 +1,29 @@ +From 56b9e31e6b9864bba07a25d2244ca0006eed5bb5 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Fri, 10 Aug 2018 16:55:14 +0200 +Subject: [PATCH 4/6] logger: add -S to the man page + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1614843 +Upstream: http://github.com/karelzak/util-linux/commit/1f6583930b1061c5e79e09a9f2e80caaf9eeb405 +Reported-by: Radka Skvarilova +Signed-off-by: Karel Zak +--- + misc-utils/logger.1 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/misc-utils/logger.1 b/misc-utils/logger.1 +index f121c4dc9..f9655978d 100644 +--- a/misc-utils/logger.1 ++++ b/misc-utils/logger.1 +@@ -224,7 +224,7 @@ produces: + .fi + .IP + .TP +-.BR \-\-size " \fIsize ++.BR \-S , " -\-size " \fIsize + Sets the maximum permitted message size to \fIsize\fR. The default + is 1KiB characters, which is the limit traditionally used and specified + in RFC 3164. With RFC 5424, this limit has become flexible. A good assumption +-- +2.14.4 + diff --git a/SOURCES/0005-lslogins-add-info-about-single-user-output-mode.patch b/SOURCES/0005-lslogins-add-info-about-single-user-output-mode.patch new file mode 100644 index 0000000..9fed222 --- /dev/null +++ b/SOURCES/0005-lslogins-add-info-about-single-user-output-mode.patch @@ -0,0 +1,76 @@ +From e73085fe74356df96b0e694c906f22f9c71a56c7 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Mon, 13 Aug 2018 13:49:26 +0200 +Subject: [PATCH 5/6] lslogins: add info about single-user output mode + +The supported command line synopsis is also + + lslogins foo + +and it provides different output than + + lslogins -l foo + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1614967 +Signed-off-by: Karel Zak +--- + login-utils/lslogins.1 | 11 ++++++++++- + login-utils/lslogins.c | 2 +- + 2 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/login-utils/lslogins.1 b/login-utils/lslogins.1 +index bd6955f82..effd42790 100644 +--- a/login-utils/lslogins.1 ++++ b/login-utils/lslogins.1 +@@ -9,10 +9,17 @@ lslogins \- display information about known users in the system + .RB [ \-s | \-u [ =\fIUID ]] + .RB [ \-g " \fIgroups\fR]" + .RB [ \-l " \fIlogins\fR]" ++.RB [\fIusername\fR] + .SH DESCRIPTION + .PP + Examine the wtmp and btmp logs, /etc/shadow (if necessary) and /etc/passwd + and output the desired data. ++ ++The optional argument \fIusername\fR forces ++.BR lslogins ++to print all available details about the specified user only. In this case the ++output format is different than in case of \fB\-l\fR or \fB\-g\fR. ++ + .PP + The default action is to list info about all the users in the system. + .SH OPTIONS +@@ -39,7 +46,8 @@ Show information about supplementary groups. + .TP + \fB\-g\fR, \fB\-\-groups\fR=\fIgroups\fR + Only show data of users belonging to \fIgroups\fR. More than one group +-may be specified; the list has to be comma-separated. ++may be specified; the list has to be comma-separated. The unknown group ++names are ignored. + + Note that relation between user and group may be invisible for primary group if + the user is not explicitly specify as group member (e.g. in /etc/group). If the +@@ -55,6 +63,7 @@ Display data containing information about the users' last login sessions. + \fB\-l\fR, \fB\-\-logins\fR=\fIlogins\fR + Only show data of users with a login specified in \fIlogins\fR (user names or user + IDS). More than one login may be specified; the list has to be comma-separated. ++The unknown login names are ignored. + .TP + \fB\-n\fR, \fB\-\-newline\fR + Display each piece of information on a separate line. +diff --git a/login-utils/lslogins.c b/login-utils/lslogins.c +index 169962b72..501778e54 100644 +--- a/login-utils/lslogins.c ++++ b/login-utils/lslogins.c +@@ -1293,7 +1293,7 @@ static void __attribute__((__noreturn__)) usage(void) + size_t i; + + fputs(USAGE_HEADER, out); +- fprintf(out, _(" %s [options]\n"), program_invocation_short_name); ++ fprintf(out, _(" %s [options] []\n"), program_invocation_short_name); + + fputs(USAGE_SEPARATOR, out); + fputs(_("Display information about known users in the system.\n"), out); +-- +2.14.4 + diff --git a/SOURCES/0006-lslogins-return-1-on-lslogins-nonexisting.patch b/SOURCES/0006-lslogins-return-1-on-lslogins-nonexisting.patch new file mode 100644 index 0000000..6a665f6 --- /dev/null +++ b/SOURCES/0006-lslogins-return-1-on-lslogins-nonexisting.patch @@ -0,0 +1,105 @@ +From 0aa9097f9ecee3688b8659d7f7414f5fb26e147a Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Mon, 13 Aug 2018 14:16:28 +0200 +Subject: [PATCH 6/6] lslogins: return 1 on "lslogins nonexisting" + +The default behavior for -l and -g is to silently ignore unknown login +names, but this is very confusing when you explicitly specify just one +login name. + +Note that the current implementation also prints empty "Last log" for +nonexisting user. It seems ugly. + + # lslogins nonexisting + + Last logs: + +new version: + + # lslogins nonexisting + lt-lslogins: cannot found 'nonexisting' + # echo $? + 1 + +The -l and -g behaviour has not been changed. + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1614967 +Signed-off-by: Karel Zak +--- + login-utils/lslogins.1 | 3 ++- + login-utils/lslogins.c | 16 +++++++++++++--- + 2 files changed, 15 insertions(+), 4 deletions(-) + +diff --git a/login-utils/lslogins.1 b/login-utils/lslogins.1 +index effd42790..c831739d9 100644 +--- a/login-utils/lslogins.1 ++++ b/login-utils/lslogins.1 +@@ -18,7 +18,8 @@ and output the desired data. + The optional argument \fIusername\fR forces + .BR lslogins + to print all available details about the specified user only. In this case the +-output format is different than in case of \fB\-l\fR or \fB\-g\fR. ++output format is different than in case of \fB\-l\fR or \fB\-g\fR and unknown ++is \fIusername\fR reported as an error. + + .PP + The default action is to list info about all the users in the system. +diff --git a/login-utils/lslogins.c b/login-utils/lslogins.c +index 501778e54..6f804aa35 100644 +--- a/login-utils/lslogins.c ++++ b/login-utils/lslogins.c +@@ -266,6 +266,7 @@ struct lslogins_control { + const char *journal_path; + + unsigned int selinux_enabled : 1, ++ fail_on_unknown : 1, /* fail if user does not exist */ + ulist_on : 1, + noheadings : 1, + notrunc : 1; +@@ -653,6 +654,7 @@ static struct lslogins_user *get_user_info(struct lslogins_control *ctl, const c + uid_t uid; + errno = 0; + ++ errno = 0; + pwd = username ? getpwnam(username) : getpwent(); + if (!pwd) + return NULL; +@@ -675,6 +677,7 @@ static struct lslogins_user *get_user_info(struct lslogins_control *ctl, const c + return NULL; + } + ++ errno = 0; + grp = getgrgid(pwd->pw_gid); + if (!grp) + return NULL; +@@ -965,10 +968,16 @@ static int create_usertree(struct lslogins_control *ctl) + + if (ctl->ulist_on) { + for (n = 0; n < ctl->ulsiz; n++) { +- if (get_user(ctl, &user, ctl->ulist[n])) ++ int rc = get_user(ctl, &user, ctl->ulist[n]); ++ ++ if (ctl->fail_on_unknown && !user) { ++ warnx(_("cannot found '%s'"), ctl->ulist[n]); ++ return -1; ++ } ++ if (rc || !user) + continue; +- if (user) /* otherwise an invalid user name has probably been given */ +- tsearch(user, &ctl->usertree, cmp_uid); ++ ++ tsearch(user, &ctl->usertree, cmp_uid); + } + } else { + while ((user = get_next_user(ctl))) +@@ -1518,6 +1527,7 @@ int main(int argc, char *argv[]) + errx(EXIT_FAILURE, _("Only one user may be specified. Use -l for multiple users.")); + logins = argv[optind]; + outmode = OUT_PRETTY; ++ ctl->fail_on_unknown = 1; + } else if (argc != optind) + errx(EXIT_FAILURE, _("Only one user may be specified. Use -l for multiple users.")); + +-- +2.14.4 + diff --git a/SOURCES/0007-libuuid-fix-name-based-UUIDs.patch b/SOURCES/0007-libuuid-fix-name-based-UUIDs.patch new file mode 100644 index 0000000..53b7144 --- /dev/null +++ b/SOURCES/0007-libuuid-fix-name-based-UUIDs.patch @@ -0,0 +1,115 @@ +From f942ba2c4c14b6bf7720e8316afe1971231553bc Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Fri, 31 Aug 2018 12:27:32 +0200 +Subject: [PATCH 7/8] libuuid: fix name-based UUIDs + +The current version is not fully compatible with RFC4122. It +incorrectly encodes UUID variant + + xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx + +where M is UUID version and N is UUID variant. + + $ python -c "import uuid ; print(uuid.uuid5(uuid.UUID(int=0), 'foo'))" + aa752cea-8222-5bc8-acd9-555b090c0ccb + ^^ + +Old version: + + $ uuidgen --namespace 00000000-0000-0000-0000-000000000000 --name 'foo' --sha1 + aa752cea-8222-5bc8-8cd9-555b090c0ccb + ^^ + +Fixed version: + ./uuidgen --namespace 00000000-0000-0000-0000-000000000000 --name 'foo' --sha1; + aa752cea-8222-5bc8-acd9-555b090c0ccb + ^^ + +The patch uses uuid_unpack and uuid_pack. It makes code more readable +and allow to access proper octens. The same way we already use for +time and random based UUIDs. + +Upstream: http://github.com/karelzak/util-linux/commit/d6ddf07d31dfdc894eb8e7e6842aa856342c526e +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1624877 +Addresses: https://github.com/karelzak/util-linux/issues/683 +Signed-off-by: Karel Zak +--- + libuuid/src/gen_uuid.c | 34 ++++++++++++++++------------------ + 1 file changed, 16 insertions(+), 18 deletions(-) + +diff --git a/libuuid/src/gen_uuid.c b/libuuid/src/gen_uuid.c +index a374e75c9..27c135db5 100644 +--- a/libuuid/src/gen_uuid.c ++++ b/libuuid/src/gen_uuid.c +@@ -96,9 +96,6 @@ + #define THREAD_LOCAL static + #endif + +-/* index with UUID_VARIANT_xxx and shift 5 bits */ +-static unsigned char variant_bits[] = { 0x00, 0x04, 0x06, 0x07 }; +- + #ifdef _WIN32 + static void gettimeofday (struct timeval *tv, void *dummy) + { +@@ -566,21 +563,22 @@ void uuid_generate_md5(uuid_t out, const uuid_t ns, const char *name, size_t len + { + UL_MD5_CTX ctx; + char hash[UL_MD5LENGTH]; ++ uuid_t buf; ++ struct uuid uu; + + ul_MD5Init(&ctx); +- /* hash concatenation of well-known UUID with name */ + ul_MD5Update(&ctx, ns, sizeof(uuid_t)); + ul_MD5Update(&ctx, (const unsigned char *)name, len); +- + ul_MD5Final((unsigned char *)hash, &ctx); + +- memcpy(out, hash, sizeof(uuid_t)); ++ assert(sizeof(buf) <= sizeof(hash)); + +- out[6] &= ~(UUID_TYPE_MASK << UUID_TYPE_SHIFT); +- out[6] |= (UUID_TYPE_DCE_MD5 << UUID_TYPE_SHIFT); ++ memcpy(buf, hash, sizeof(buf)); ++ uuid_unpack(buf, &uu); + +- out[8] &= ~(UUID_VARIANT_MASK << UUID_VARIANT_SHIFT); +- out[8] |= (variant_bits[UUID_VARIANT_DCE] << UUID_VARIANT_SHIFT); ++ uu.clock_seq = (uu.clock_seq & 0x3FFF) | 0x8000; ++ uu.time_hi_and_version = (uu.time_hi_and_version & 0x0FFF) | 0x3000; ++ uuid_pack(&uu, out); + } + + /* +@@ -591,20 +589,20 @@ void uuid_generate_sha1(uuid_t out, const uuid_t ns, const char *name, size_t le + { + UL_SHA1_CTX ctx; + char hash[UL_SHA1LENGTH]; ++ uuid_t buf; ++ struct uuid uu; + + ul_SHA1Init(&ctx); +- /* hash concatenation of well-known UUID with name */ + ul_SHA1Update(&ctx, ns, sizeof(uuid_t)); + ul_SHA1Update(&ctx, (const unsigned char *)name, len); +- + ul_SHA1Final((unsigned char *)hash, &ctx); + +- memcpy(out, hash, sizeof(uuid_t)); ++ assert(sizeof(buf) <= sizeof(hash)); + +- out[6] &= ~(UUID_TYPE_MASK << UUID_TYPE_SHIFT); +- out[6] |= (UUID_TYPE_DCE_SHA1 << UUID_TYPE_SHIFT); ++ memcpy(buf, hash, sizeof(buf)); ++ uuid_unpack(buf, &uu); + +- out[8] &= ~(UUID_VARIANT_MASK << UUID_VARIANT_SHIFT); +- out[8] |= (variant_bits[UUID_VARIANT_DCE] << UUID_VARIANT_SHIFT); ++ uu.clock_seq = (uu.clock_seq & 0x3FFF) | 0x8000; ++ uu.time_hi_and_version = (uu.time_hi_and_version & 0x0FFF) | 0x5000; ++ uuid_pack(&uu, out); + } +- +-- +2.14.4 + diff --git a/SOURCES/0008-test-update-UUID-v5-tests.patch b/SOURCES/0008-test-update-UUID-v5-tests.patch new file mode 100644 index 0000000..5d134ee --- /dev/null +++ b/SOURCES/0008-test-update-UUID-v5-tests.patch @@ -0,0 +1,25 @@ +From 2f75c4cdf6992af034bf02de55ad2ea90608e1c0 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Fri, 31 Aug 2018 12:48:46 +0200 +Subject: [PATCH 8/8] test: update UUID v5 tests + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1624877 +Upstream: http://github.com/karelzak/util-linux/commit/7edaf221d610309874e866670dceb4e2f3a04070 +Signed-off-by: Karel Zak +--- + tests/expected/uuid/oids | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/expected/uuid/oids b/tests/expected/uuid/oids +index 4644848e8..c121cbeee 100644 +--- a/tests/expected/uuid/oids ++++ b/tests/expected/uuid/oids +@@ -1,4 +1,4 @@ + 3d813cbb-47fb-32ba-91df-831e1593ac29 + 5df41881-3aed-3515-88a7-2f4a814cf09e + 2ed6657d-e927-568b-95e1-2665a8aea6a2 +-fcdc2122-78d2-59f7-91ed-041a561ef652 ++fcdc2122-78d2-59f7-b1ed-041a561ef652 +-- +2.14.4 + diff --git a/SOURCES/0009-tests-enlarge-backing-file-for-fstab-btrfs.patch b/SOURCES/0009-tests-enlarge-backing-file-for-fstab-btrfs.patch new file mode 100644 index 0000000..b5c9040 --- /dev/null +++ b/SOURCES/0009-tests-enlarge-backing-file-for-fstab-btrfs.patch @@ -0,0 +1,30 @@ +From a0753a5452e293da56e1e8579d17b4eb19a7d6a2 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Fri, 30 Nov 2018 12:22:48 +0100 +Subject: [PATCH 09/14] tests: enlarge backing file for fstab-btrfs + +It seems the new limit for Btrfs is 47MiB. + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1656437 +Upstream: http://github.com/karelzak/util-linux/commit/7174b93dfda08f87228bb7aec6274fe60af581bd +Signed-off-by: Karel Zak +--- + tests/ts/mount/fstab-btrfs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/ts/mount/fstab-btrfs b/tests/ts/mount/fstab-btrfs +index 090f52304..54c6bb8ba 100755 +--- a/tests/ts/mount/fstab-btrfs ++++ b/tests/ts/mount/fstab-btrfs +@@ -42,7 +42,7 @@ TS_MOUNTPOINT_SUBVOL="$TS_MOUNTPOINT-subvol" + TS_MOUNTPOINT_SUBVOLID="$TS_MOUNTPOINT-subvolid" + TS_MOUNTPOINT_BIND="$TS_MOUNTPOINT-bind" + +-ts_device_init 42 ++ts_device_init 50 + DEVICE=$TS_LODEV + [ -d "$TS_MOUNTPOINT_CREATE" ] || mkdir -p "$TS_MOUNTPOINT_CREATE" + [ -d "$TS_MOUNTPOINT_DEFAULT" ] || mkdir -p "$TS_MOUNTPOINT_DEFAULT" +-- +2.17.2 + diff --git a/SOURCES/0010-tests-make-lsns-netnsid-portable.patch b/SOURCES/0010-tests-make-lsns-netnsid-portable.patch new file mode 100644 index 0000000..691fd15 --- /dev/null +++ b/SOURCES/0010-tests-make-lsns-netnsid-portable.patch @@ -0,0 +1,81 @@ +From b48e972b3aa32710ed0495c35b2184f5d3ec9eb0 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Fri, 30 Nov 2018 12:24:15 +0100 +Subject: [PATCH 10/14] tests: make lsns-netnsid portable + +It seems ip(8) link-show command does not provide link-netnsid in all +cases (versions ?). Let's try to use "ip netns list-id" as fallback. + +This commit also add possibility to debug the script by $LOG variable. + +Addresses: http://bugzilla.redhat.com/show_bug.cgi?id=1656437 +Upstream: http://github.com/karelzak/util-linux/commit/0d79f5805ff2d7651ec70b06753e908cc782857a +Signed-off-by: Karel Zak +--- + tests/ts/lsns/netnsid | 26 +++++++++++++++++++++++++- + 1 file changed, 25 insertions(+), 1 deletion(-) + +diff --git a/tests/ts/lsns/netnsid b/tests/ts/lsns/netnsid +index 72c14de6c..9d04f28f0 100755 +--- a/tests/ts/lsns/netnsid ++++ b/tests/ts/lsns/netnsid +@@ -36,6 +36,7 @@ vethb=lsns-vethb + NS=LSNS-TEST-NETNSID-NS + FIFO=$TS_OUTDIR/FIFO-NETNSID + NULL=/dev/null ++LOG=/dev/null #/root/foo.log + + function cleanup { + ip link delete $vetha 2> $NULL || : +@@ -43,24 +44,47 @@ function cleanup { + rm -f $FIFO + } + ++echo "==Cleanup" >> $LOG + cleanup ++ ++echo "==Create FIFO" >> $LOG + mkfifo $FIFO + ++echo "==Netns ADD" >> $LOG + if ip netns add $NS && + ip link add name $vetha type veth peer name $vethb && + ip link set $vethb netns $NS; then ++ echo "===Netns EXEC" >> $LOG + ip netns exec $NS dd if=$FIFO bs=1 count=2 of=$NULL 2> $NULL & + PID=$! ++ echo "====PID=$PID" >> $LOG + else + cleanup + ts_skip "failed to initialize" + fi + { ++ echo "==Write to FIFO" >> $LOG + dd if=/dev/zero bs=1 count=1 2> $NULL + { +- ip -o link show dev $vetha > $NULL ++ echo "===IP output" >> $LOG ++ ip -o link show dev $vetha >> $LOG ++ + IP_ID=$(ip -o link show dev $vetha | sed -ne 's/.* *link-netnsid *\([0-9]*\)/\1/p') ++ echo "====ip show: IP_ID=$IP_ID" >> $LOG ++ ++ if [ "x$IP_ID" = "x" ]; then ++ echo "===IP output list id" >> $LOG ++ ip netns list-id >> $LOG ++ ++ IP_ID=$(ip netns list-id | awk "/name: $NS/ { print \$2 }") ++ echo "====ip list-id: IP_ID=$IP_ID" >> $LOG ++ fi ++ ++ echo "===LSNS output" >> $LOG ++ $TS_CMD_LSNS -o+NETNSID,NSFS --type net >> $LOG ++ + LSNS_ID=$($TS_CMD_LSNS -n -o NETNSID --type net --task $PID | { read VAL; echo $VAL; } ) ++ echo "===LSNS_ID=$LSNS_ID" >> $LOG + } + dd if=/dev/zero bs=1 count=1 2> $NULL + } > $FIFO +-- +2.17.2 + diff --git a/SOURCES/0011-tests-break-up-large-strings-for-PySys_WriteStdout.patch b/SOURCES/0011-tests-break-up-large-strings-for-PySys_WriteStdout.patch new file mode 100644 index 0000000..a293dc3 --- /dev/null +++ b/SOURCES/0011-tests-break-up-large-strings-for-PySys_WriteStdout.patch @@ -0,0 +1,111 @@ +From c2b650ebe33a001b3bf19912b136dbbff5495600 Mon Sep 17 00:00:00 2001 +From: Frank Schaefer +Date: Tue, 10 Jul 2018 20:21:02 -0500 +Subject: [PATCH 11/14] tests: break up large strings for PySys_WriteStdout() + +Addresses: http://bugzilla.redhat.com/show_bug.cgi?id=1656437 +Upstream: http://github.com/karelzak/util-linux/commit/8a12ab57755afc36546834f175ef0b9e9376ba59 +Signed-off-by: Karel Zak +--- + libmount/python/fs.c | 56 ++++++++++++++++++++++++++++++++++---------- + 1 file changed, 43 insertions(+), 13 deletions(-) + +diff --git a/libmount/python/fs.c b/libmount/python/fs.c +index d6490d248..634a914ef 100644 +--- a/libmount/python/fs.c ++++ b/libmount/python/fs.c +@@ -63,32 +63,62 @@ static PyObject *Fs_get_devno(FsObject *self) + return PyObjectResultInt(mnt_fs_get_devno(self->fs)); + } + ++static void _dump_debug_string(const char *lead, const char *s, char quote) ++{ ++ /* PySys_WriteStdout() will automatically truncate any '%s' token ++ * longer than a certain length (documented as 1000 bytes, but we ++ * give ourselves some margin here just in case). The only way I ++ * know to get around this is to print such strings in bite-sized ++ * chunks. ++ */ ++ static const unsigned int _PY_MAX_LEN = 900; ++ static const char *_PY_MAX_LEN_FMT = "%.900s"; ++ unsigned int len; ++ ++ if (lead != NULL) ++ PySys_WriteStdout("%s", lead); ++ ++ if (quote != 0) ++ PySys_WriteStdout("%c", quote); ++ ++ for (len = strlen(s); len > _PY_MAX_LEN; len -= _PY_MAX_LEN, s += _PY_MAX_LEN) ++ PySys_WriteStdout(_PY_MAX_LEN_FMT, s); ++ ++ if (len > 0) ++ PySys_WriteStdout(_PY_MAX_LEN_FMT, s); ++ ++ if (quote != 0) ++ PySys_WriteStdout("%c\n", quote); ++ else ++ PySys_WriteStdout("\n"); ++} ++ + #define Fs_print_debug_HELP "print_debug()\n\n" + static PyObject *Fs_print_debug(FsObject *self) + { + PySys_WriteStdout("------ fs: %p\n", self->fs); +- PySys_WriteStdout("source: %s\n", mnt_fs_get_source(self->fs)); +- PySys_WriteStdout("target: %s\n", mnt_fs_get_target(self->fs)); +- PySys_WriteStdout("fstype: %s\n", mnt_fs_get_fstype(self->fs)); ++ _dump_debug_string("source: ", mnt_fs_get_source(self->fs), 0); ++ _dump_debug_string("target: ", mnt_fs_get_target(self->fs), 0); ++ _dump_debug_string("fstype: ", mnt_fs_get_fstype(self->fs), 0); + + if (mnt_fs_get_options(self->fs)) +- PySys_WriteStdout("optstr: %s\n", mnt_fs_get_options(self->fs)); ++ _dump_debug_string("optstr: ", mnt_fs_get_options(self->fs), 0); + if (mnt_fs_get_vfs_options(self->fs)) +- PySys_WriteStdout("VFS-optstr: %s\n", mnt_fs_get_vfs_options(self->fs)); ++ _dump_debug_string("VFS-optstr: ", mnt_fs_get_vfs_options(self->fs), 0); + if (mnt_fs_get_fs_options(self->fs)) +- PySys_WriteStdout("FS-opstr: %s\n", mnt_fs_get_fs_options(self->fs)); ++ _dump_debug_string("FS-opstr: ", mnt_fs_get_fs_options(self->fs), 0); + if (mnt_fs_get_user_options(self->fs)) +- PySys_WriteStdout("user-optstr: %s\n", mnt_fs_get_user_options(self->fs)); ++ _dump_debug_string("user-optstr: ", mnt_fs_get_user_options(self->fs), 0); + if (mnt_fs_get_optional_fields(self->fs)) +- PySys_WriteStdout("optional-fields: '%s'\n", mnt_fs_get_optional_fields(self->fs)); ++ _dump_debug_string("optional-fields: ", mnt_fs_get_optional_fields(self->fs), '\''); + if (mnt_fs_get_attributes(self->fs)) +- PySys_WriteStdout("attributes: %s\n", mnt_fs_get_attributes(self->fs)); ++ _dump_debug_string("attributes: ", mnt_fs_get_attributes(self->fs), 0); + + if (mnt_fs_get_root(self->fs)) +- PySys_WriteStdout("root: %s\n", mnt_fs_get_root(self->fs)); ++ _dump_debug_string("root: ", mnt_fs_get_root(self->fs), 0); + + if (mnt_fs_get_swaptype(self->fs)) +- PySys_WriteStdout("swaptype: %s\n", mnt_fs_get_swaptype(self->fs)); ++ _dump_debug_string("swaptype: ", mnt_fs_get_swaptype(self->fs), 0); + if (mnt_fs_get_size(self->fs)) + PySys_WriteStdout("size: %jd\n", mnt_fs_get_size(self->fs)); + if (mnt_fs_get_usedsize(self->fs)) +@@ -97,7 +127,7 @@ static PyObject *Fs_print_debug(FsObject *self) + PySys_WriteStdout("priority: %d\n", mnt_fs_get_priority(self->fs)); + + if (mnt_fs_get_bindsrc(self->fs)) +- PySys_WriteStdout("bindsrc: %s\n", mnt_fs_get_bindsrc(self->fs)); ++ _dump_debug_string("bindsrc: ", mnt_fs_get_bindsrc(self->fs), 0); + if (mnt_fs_get_freq(self->fs)) + PySys_WriteStdout("freq: %d\n", mnt_fs_get_freq(self->fs)); + if (mnt_fs_get_passno(self->fs)) +@@ -112,7 +142,7 @@ static PyObject *Fs_print_debug(FsObject *self) + if (mnt_fs_get_tid(self->fs)) + PySys_WriteStdout("tid: %d\n", mnt_fs_get_tid(self->fs)); + if (mnt_fs_get_comment(self->fs)) +- PySys_WriteStdout("comment: '%s'\n", mnt_fs_get_comment(self->fs)); ++ _dump_debug_string("comment: ", mnt_fs_get_comment(self->fs), '\''); + return UL_IncRef(self); + } + /* +-- +2.17.2 + diff --git a/SOURCES/0012-libmount-umount-make-mnt_stat_mountpoin-usable-for-r.patch b/SOURCES/0012-libmount-umount-make-mnt_stat_mountpoin-usable-for-r.patch new file mode 100644 index 0000000..bc637b3 --- /dev/null +++ b/SOURCES/0012-libmount-umount-make-mnt_stat_mountpoin-usable-for-r.patch @@ -0,0 +1,33 @@ +From 0afd0613fc738659fb0ff490e4e069366dee4a94 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Mon, 10 Dec 2018 16:25:08 +0100 +Subject: [PATCH 12/14] libmount: (umount) make mnt_stat_mountpoin() usable for + relative paths + + # mount -o loop devicefile /mnt/test + # umount devicefile + umount: devicefile: not mounted. + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1653781 +Upstream: http://github.com/karelzak/util-linux/commit/2859592ecb7b48d47d2e34d589ea35f76e329416 +Signed-off-by: Karel Zak +--- + libmount/src/utils.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libmount/src/utils.c b/libmount/src/utils.c +index fd98d0529..c36187c07 100644 +--- a/libmount/src/utils.c ++++ b/libmount/src/utils.c +@@ -121,7 +121,7 @@ static int fstype_cmp(const void *v1, const void *v2) + int mnt_stat_mountpoint(const char *target, struct stat *st) + { + #ifdef AT_NO_AUTOMOUNT +- return fstatat(-1, target, st, AT_NO_AUTOMOUNT); ++ return fstatat(AT_FDCWD, target, st, AT_NO_AUTOMOUNT); + #else + return stat(target, st); + #endif +-- +2.17.2 + diff --git a/SOURCES/0013-libfdisk-Fix-multipath-partition-seperators-for-user.patch b/SOURCES/0013-libfdisk-Fix-multipath-partition-seperators-for-user.patch new file mode 100644 index 0000000..cb36706 --- /dev/null +++ b/SOURCES/0013-libfdisk-Fix-multipath-partition-seperators-for-user.patch @@ -0,0 +1,65 @@ +From 5aea6937edf77a753e0d504bb637214e116aaed2 Mon Sep 17 00:00:00 2001 +From: KyleMahlkuch +Date: Mon, 25 Jun 2018 14:52:01 -0500 +Subject: [PATCH 13/14] libfdisk: Fix multipath partition seperators for + user-friendly names + +The current code assumes "-part" is the only partition sepereator +but this is not true for some distros. + +For example in Ubuntu 18.04 fdisk does not print the correct names for +mpatha: + +~# ls -l /dev/mapper/mpatha* +lrwxrwxrwx 1 root root 7 Feb 1 04:39 /dev/mapper/mpatha -> ../dm-0 +lrwxrwxrwx 1 root root 7 Feb 1 04:38 /dev/mapper/mpatha1 -> ../dm-4 +lrwxrwxrwx 1 root root 7 Feb 1 04:38 /dev/mapper/mpatha2 -> ../dm-5 +lrwxrwxrwx 1 root root 7 Feb 1 04:38 /dev/mapper/mpatha3 -> ../dm-6 + +~# fdisk -l /dev/mapper/mpatha +Device Boot Start End Sectors Size Id Type +/dev/mapper/mpatha-part1 2048 419432447 419430400 200G 83 Linux +/dev/mapper/mpatha-part2 419432448 838862847 419430400 200G 83 Linux +/dev/mapper/mpatha-part3 838862848 1258291199 419428352 200G 83 Linux + +Instead of assuming a partition seperator of "-part" this patch uses +access to check the file system for a partition seperator of "p" or +the absense of a partition seperator. If neither of these work the patch +defaults to "-part" like we had before this patch. + +Upstream: http://github.com/karelzak/util-linux/commit/73775189767195f1d9f5b6b6f6a54e51f61c4356 +Addresses: http://bugzilla.redhat.com/show_bug.cgi?id=1655650 +Signed-off-by: Karel Zak +--- + libfdisk/src/utils.c | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +diff --git a/libfdisk/src/utils.c b/libfdisk/src/utils.c +index 5ba9e0466..54e28b2fa 100644 +--- a/libfdisk/src/utils.c ++++ b/libfdisk/src/utils.c +@@ -153,7 +153,20 @@ char *fdisk_partname(const char *dev, size_t partno) + if ((strncmp(dev, _PATH_DEV_BYID, sizeof(_PATH_DEV_BYID) - 1) == 0) || + strncmp(dev, _PATH_DEV_BYPATH, sizeof(_PATH_DEV_BYPATH) - 1) == 0 || + strncmp(dev, "/dev/mapper", sizeof("/dev/mapper") - 1) == 0) { +- p = "-part"; ++ asprintf(&res, "%.*s%zu", w, dev, partno); ++ if (access(res, F_OK) == 0){ ++ p = ""; ++ } else { ++ /* check for partition seperator "p" */ ++ p = "p"; ++ free(res); ++ asprintf(&res, "%.*s%s%zu", w, dev, p, partno); ++ if (access(res, F_OK) != 0){ ++ /* otherwise, default to "-path" */ ++ p = "-part"; ++ } ++ } ++ free(res); + } + + if (asprintf(&res, "%.*s%s%zu", w, dev, p, partno) <= 0) +-- +2.17.2 + diff --git a/SOURCES/0014-blkid-make-PART_ENTRY_-tags-optional-add-no-part-det.patch b/SOURCES/0014-blkid-make-PART_ENTRY_-tags-optional-add-no-part-det.patch new file mode 100644 index 0000000..755fa4a --- /dev/null +++ b/SOURCES/0014-blkid-make-PART_ENTRY_-tags-optional-add-no-part-det.patch @@ -0,0 +1,136 @@ +From 64473a830dc93e7fcd246a64bb8389d66f0034b8 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Thu, 29 Nov 2018 13:21:36 +0100 +Subject: [PATCH 14/14] blkid: make PART_ENTRY_* tags optional (add + --no-part-details) + +blkid(8) returns information from partition table also for empty +partitions. This is necessary for example for udev, but it could be +confusing if you care about on-device content only. + +Default: + # blkid -p /dev/md0p1; echo $? + /dev/md0p1: PART_ENTRY_SCHEME="dos" PART_ENTRY_UUID="6d8796b1-01" PART_ENTRY_TYPE="0x83" PART_ENTRY_NUMBER="1" PART_ENTRY_OFFSET="2048" PART_ENTRY_SIZE="204800" PART_ENTRY_DISK="9:0" + 0 + +With --no-part-details: + # blkid -p /dev/md0p1 --no-part-details; echo $? + 2 + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1653413 +Upstream: http://github.com/karelzak/util-linux/commit/5e91d5dd716ebc6144bcb0cabb0ec847a678be9e +Signed-off-by: Karel Zak +--- + misc-utils/blkid.8 | 6 +++++- + misc-utils/blkid.c | 15 +++++++++++---- + 2 files changed, 16 insertions(+), 5 deletions(-) + +diff --git a/misc-utils/blkid.8 b/misc-utils/blkid.8 +index 13b5edb4d..d1cec1dea 100644 +--- a/misc-utils/blkid.8 ++++ b/misc-utils/blkid.8 +@@ -35,6 +35,7 @@ blkid \- locate/print block device attributes + .IR list ] + .RB [ \-\-usages + .IR list ] ++.RB [ \-\-no\-part\-details ] + .IR device " ..." + + .IP \fBblkid\fR +@@ -114,6 +115,9 @@ Don't encode non-printing characters. The non-printing characters are encoded + by ^ and M- notation by default. Note that the \fB\-\-output udev\fR output format uses + a different encoding which cannot be disabled. + .TP ++\fB\-D\fR, \fB\-\-no\-part\-details\fR ++Don't print information (PART_ENTRY_* tags) from partition table in low-level probing mode. ++.TP + \fB\-g\fR, \fB\-\-garbage\-collect\fR + Perform a garbage collection pass on the blkid cache to remove + devices which no longer exist. +@@ -224,7 +228,7 @@ Note that low-level probing also returns information about partition table type + (PTTYPE tag) and partitions (PART_ENTRY_* tags). The tag names produced by + low-level probing are based on names used internally by libblkid and it may be + different than when executed without \fB\-\-probe\fR (for example PART_ENTRY_UUID= vs +-PARTUUID=). ++PARTUUID=). See also \fB\-\-no\-part\-details\fR. + .TP + \fB\-s\fR, \fB\-\-match\-tag\fR \fItag\fR + For each (specified) device, show only the tags that match +diff --git a/misc-utils/blkid.c b/misc-utils/blkid.c +index 4cd85317f..61a6994c2 100644 +--- a/misc-utils/blkid.c ++++ b/misc-utils/blkid.c +@@ -58,6 +58,7 @@ struct blkid_control { + lowprobe:1, + lowprobe_superblocks:1, + lowprobe_topology:1, ++ no_part_details:1, + raw_chars:1; + }; + +@@ -101,6 +102,7 @@ static void __attribute__((__noreturn__)) usage(void) + fputs(_( " -O, --offset probe at the given offset\n"), out); + fputs(_( " -u, --usages filter by \"usage\" (e.g. -u filesystem,raid)\n"), out); + fputs(_( " -n, --match-types filter by filesystem type (e.g. -n vfat,ext3)\n"), out); ++ fputs(_( " -D, --no-part-details don't print info from partition table\n"), out); + + fputs(USAGE_SEPARATOR, out); + printf(USAGE_HELP_OPTIONS(28)); +@@ -444,7 +446,7 @@ done: + return rc; + } + +-static int lowprobe_superblocks(blkid_probe pr) ++static int lowprobe_superblocks(blkid_probe pr, struct blkid_control *ctl) + { + struct stat st; + int rc, fd = blkid_probe_get_fd(pr); +@@ -470,7 +472,8 @@ static int lowprobe_superblocks(blkid_probe pr) + return 0; /* partition table detected */ + } + +- blkid_probe_set_partitions_flags(pr, BLKID_PARTS_ENTRY_DETAILS); ++ if (!ctl->no_part_details) ++ blkid_probe_set_partitions_flags(pr, BLKID_PARTS_ENTRY_DETAILS); + blkid_probe_enable_superblocks(pr, 1); + + return blkid_do_safeprobe(pr); +@@ -509,7 +512,7 @@ static int lowprobe_device(blkid_probe pr, const char *devname, + if (ctl->lowprobe_topology) + rc = lowprobe_topology(pr); + if (rc >= 0 && ctl->lowprobe_superblocks) +- rc = lowprobe_superblocks(pr); ++ rc = lowprobe_superblocks(pr, ctl); + if (rc < 0) + goto done; + +@@ -661,6 +664,7 @@ int main(int argc, char **argv) + static const struct option longopts[] = { + { "cache-file", required_argument, NULL, 'c' }, + { "no-encoding", no_argument, NULL, 'd' }, ++ { "no-part-details", no_argument, NULL, 'D' }, + { "garbage-collect", no_argument, NULL, 'g' }, + { "output", required_argument, NULL, 'o' }, + { "list-filesystems", no_argument, NULL, 'k' }, +@@ -694,7 +698,7 @@ int main(int argc, char **argv) + strutils_set_exitcode(BLKID_EXIT_OTHER); + + while ((c = getopt_long (argc, argv, +- "c:dghilL:n:ko:O:ps:S:t:u:U:w:Vv", longopts, NULL)) != -1) { ++ "c:DdghilL:n:ko:O:ps:S:t:u:U:w:Vv", longopts, NULL)) != -1) { + + err_exclusive_options(c, NULL, excl, excl_st); + +@@ -705,6 +709,9 @@ int main(int argc, char **argv) + case 'd': + ctl.raw_chars = 1; + break; ++ case 'D': ++ ctl.no_part_details = 1; ++ break; + case 'L': + ctl.eval = 1; + search_value = xstrdup(optarg); +-- +2.17.2 + diff --git a/SOURCES/0015-tests-add-missing-ts_check_test_command-calls.patch b/SOURCES/0015-tests-add-missing-ts_check_test_command-calls.patch new file mode 100644 index 0000000..f9dcc0e --- /dev/null +++ b/SOURCES/0015-tests-add-missing-ts_check_test_command-calls.patch @@ -0,0 +1,132 @@ +From 9bccbbf06a91f4e7bf5c0cddadf18265dc2e9e4b Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Mon, 4 Mar 2019 16:42:30 +0100 +Subject: [PATCH 15/19] tests: add missing ts_check_test_command calls + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1681062 +Upstream: http://github.com/karelzak/util-linux/commit/19e00ec9e9e9c36305cf2dd163d0333e2d72c671 +Signed-off-by: Karel Zak +--- + tests/ts/fsck/ismounted | 2 ++ + tests/ts/hexdump/format-strings | 1 + + tests/ts/hexdump/highlighting | 1 + + tests/ts/ipcs/limits | 1 + + tests/ts/ipcs/limits2 | 1 + + tests/ts/ipcs/mk-rm-msg | 1 + + tests/ts/ipcs/mk-rm-sem | 1 + + tests/ts/ipcs/mk-rm-shm | 1 + + tests/ts/misc/swaplabel | 1 + + 9 files changed, 10 insertions(+) + +diff --git a/tests/ts/fsck/ismounted b/tests/ts/fsck/ismounted +index 2a55907a7..7d1fe6273 100755 +--- a/tests/ts/fsck/ismounted ++++ b/tests/ts/fsck/ismounted +@@ -22,6 +22,8 @@ ts_init "$*" + + ts_check_test_command "$TS_CMD_FDISK" + ts_check_test_command "$TS_CMD_MOUNT" ++ts_check_test_command "$TS_CMD_UMOUNT" ++ts_check_test_command "$TS_HELPER_ISMOUNTED" + + ts_skip_nonroot + ts_check_losetup +diff --git a/tests/ts/hexdump/format-strings b/tests/ts/hexdump/format-strings +index e6f9229a5..f2dc6a89b 100755 +--- a/tests/ts/hexdump/format-strings ++++ b/tests/ts/hexdump/format-strings +@@ -23,6 +23,7 @@ FILES="$TS_TOPDIR/ts/hexdump/files" + ts_init "$*" + + ts_check_test_command "$TS_CMD_HEXDUMP" ++ts_check_test_command "$TS_HELPER_SYSINFO" + + # on big endian systems some of the subtests have different expected output + BYTE_ORDER=$($TS_HELPER_SYSINFO byte-order) +diff --git a/tests/ts/hexdump/highlighting b/tests/ts/hexdump/highlighting +index cf78f7b96..e57757978 100755 +--- a/tests/ts/hexdump/highlighting ++++ b/tests/ts/hexdump/highlighting +@@ -25,6 +25,7 @@ ADDRFMT='-e "%07.7_Ax\n"' + ts_init "$*" + + ts_check_test_command "$TS_CMD_HEXDUMP" ++ts_check_test_command "$TS_HELPER_SYSINFO" + + # on big endian systems some of the subtests have different expected output + BYTE_ORDER=$($TS_HELPER_SYSINFO byte-order) +diff --git a/tests/ts/ipcs/limits b/tests/ts/ipcs/limits +index 7b64b3c17..671f23c77 100755 +--- a/tests/ts/ipcs/limits ++++ b/tests/ts/ipcs/limits +@@ -23,6 +23,7 @@ TS_DESC="limits overflow" + ts_init "$*" + + ts_check_test_command "$TS_CMD_IPCS" ++ts_check_test_command "$TS_HELPER_SYSINFO" + + ts_skip_nonroot + ts_check_prog "bc" +diff --git a/tests/ts/ipcs/limits2 b/tests/ts/ipcs/limits2 +index d23c41a35..77ad70f9b 100755 +--- a/tests/ts/ipcs/limits2 ++++ b/tests/ts/ipcs/limits2 +@@ -23,6 +23,7 @@ TS_DESC="basic limits" + ts_init "$*" + + ts_check_test_command "$TS_CMD_IPCS" ++ts_check_test_command "$TS_HELPER_SYSINFO" + ts_check_prog "bc" + + . $TS_SELF/functions.sh +diff --git a/tests/ts/ipcs/mk-rm-msg b/tests/ts/ipcs/mk-rm-msg +index 25460e25d..de3682e87 100755 +--- a/tests/ts/ipcs/mk-rm-msg ++++ b/tests/ts/ipcs/mk-rm-msg +@@ -21,6 +21,7 @@ ts_init "$*" + ts_check_test_command "$TS_CMD_IPCS" + ts_check_test_command "$TS_CMD_IPCMK" + ts_check_test_command "$TS_CMD_IPCRM" ++ts_check_test_command "$TS_HELPER_SYSINFO" + + . $TS_SELF/functions.sh + +diff --git a/tests/ts/ipcs/mk-rm-sem b/tests/ts/ipcs/mk-rm-sem +index 61e0cfdef..d7b505f7c 100755 +--- a/tests/ts/ipcs/mk-rm-sem ++++ b/tests/ts/ipcs/mk-rm-sem +@@ -21,6 +21,7 @@ ts_init "$*" + ts_check_test_command "$TS_CMD_IPCS" + ts_check_test_command "$TS_CMD_IPCMK" + ts_check_test_command "$TS_CMD_IPCRM" ++ts_check_test_command "$TS_HELPER_SYSINFO" + + . $TS_SELF/functions.sh + +diff --git a/tests/ts/ipcs/mk-rm-shm b/tests/ts/ipcs/mk-rm-shm +index 838fb3f21..c21547b82 100755 +--- a/tests/ts/ipcs/mk-rm-shm ++++ b/tests/ts/ipcs/mk-rm-shm +@@ -21,6 +21,7 @@ ts_init "$*" + ts_check_test_command "$TS_CMD_IPCS" + ts_check_test_command "$TS_CMD_IPCMK" + ts_check_test_command "$TS_CMD_IPCRM" ++ts_check_test_command "$TS_HELPER_SYSINFO" + + . $TS_SELF/functions.sh + +diff --git a/tests/ts/misc/swaplabel b/tests/ts/misc/swaplabel +index 646304508..22858b0ac 100755 +--- a/tests/ts/misc/swaplabel ++++ b/tests/ts/misc/swaplabel +@@ -20,6 +20,7 @@ ts_init "$*" + + ts_check_test_command "$TS_CMD_MKSWAP" + ts_check_test_command "$TS_CMD_SWAPLABEL" ++ts_check_test_command "$TS_HELPER_SYSINFO" + + # fallocate does not work on most file systems + function fallocate_or_skip() +-- +2.20.1 + diff --git a/SOURCES/0016-tests-add-use-system-commands.patch b/SOURCES/0016-tests-add-use-system-commands.patch new file mode 100644 index 0000000..1e5003a --- /dev/null +++ b/SOURCES/0016-tests-add-use-system-commands.patch @@ -0,0 +1,357 @@ +From 748fbfa9b1bb3b64b3fbc6b1e51d260d8376c791 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Mon, 4 Mar 2019 17:10:04 +0100 +Subject: [PATCH 16/19] tests: add --use-system-commands + +This change allows to use commands from $PATH rather than from +$top_builddir. There two basic use cases: + +* check differences between installed and git version + run.sh --use-system-command --show-diff + +* check system binaries by upstream tests (for example tests from + src.rpm package) + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1681062 +Upstream: http://github.com/karelzak/util-linux/commit/43b4a4d3c720a4e65fe9de884cd73e0b1b94fbe +Signed-off-by: Karel Zak +--- + tests/commands.sh | 194 ++++++++++++++++++++++----------------------- + tests/functions.sh | 34 ++++++-- + tests/run.sh | 33 +++++--- + 3 files changed, 146 insertions(+), 115 deletions(-) + +diff --git a/tests/commands.sh b/tests/commands.sh +index 1be2d25b4..93100caf6 100644 +--- a/tests/commands.sh ++++ b/tests/commands.sh +@@ -2,105 +2,105 @@ + TS_TESTUSER=${TS_TESTUSER:-"nobody"} + + # helpers +-TS_HELPER_BYTESWAP="$top_builddir/test_byteswap" +-TS_HELPER_CPUSET="$top_builddir/test_cpuset" +-TS_HELPER_DMESG="$top_builddir/test_dmesg" +-TS_HELPER_ISLOCAL="$top_builddir/test_islocal" +-TS_HELPER_ISMOUNTED="$top_builddir/test_ismounted" +-TS_HELPER_LIBFDISK_GPT="$top_builddir/test_fdisk_gpt" +-TS_HELPER_LIBFDISK_MKPART="$top_builddir/sample-fdisk-mkpart" +-TS_HELPER_LIBMOUNT_CONTEXT="$top_builddir/test_mount_context" +-TS_HELPER_LIBFDISK_MKPART_FULLSPEC="$top_builddir/sample-fdisk-mkpart-fullspec" +-TS_HELPER_LIBMOUNT_LOCK="$top_builddir/test_mount_lock" +-TS_HELPER_LIBMOUNT_OPTSTR="$top_builddir/test_mount_optstr" +-TS_HELPER_LIBMOUNT_TABDIFF="$top_builddir/test_mount_tab_diff" +-TS_HELPER_LIBMOUNT_TAB="$top_builddir/test_mount_tab" +-TS_HELPER_LIBMOUNT_UPDATE="$top_builddir/test_mount_tab_update" +-TS_HELPER_LIBMOUNT_UTILS="$top_builddir/test_mount_utils" +-TS_HELPER_LIBMOUNT_DEBUG="$top_builddir/test_mount_debug" +-TS_HELPER_LIBSMARTCOLS_FROMFILE="$top_builddir/sample-scols-fromfile" +-TS_HELPER_LIBSMARTCOLS_TITLE="$top_builddir/sample-scols-title" ++TS_HELPER_BYTESWAP="${ts_helpersdir}test_byteswap" ++TS_HELPER_CPUSET="${ts_helpersdir}test_cpuset" ++TS_HELPER_DMESG="${ts_helpersdir}test_dmesg" ++TS_HELPER_ISLOCAL="${ts_helpersdir}test_islocal" ++TS_HELPER_ISMOUNTED="${ts_helpersdir}test_ismounted" ++TS_HELPER_LIBFDISK_GPT="${ts_helpersdir}test_fdisk_gpt" ++TS_HELPER_LIBFDISK_MKPART="${ts_helpersdir}sample-fdisk-mkpart" ++TS_HELPER_LIBMOUNT_CONTEXT="${ts_helpersdir}test_mount_context" ++TS_HELPER_LIBFDISK_MKPART_FULLSPEC="${ts_helpersdir}sample-fdisk-mkpart-fullspec" ++TS_HELPER_LIBMOUNT_LOCK="${ts_helpersdir}test_mount_lock" ++TS_HELPER_LIBMOUNT_OPTSTR="${ts_helpersdir}test_mount_optstr" ++TS_HELPER_LIBMOUNT_TABDIFF="${ts_helpersdir}test_mount_tab_diff" ++TS_HELPER_LIBMOUNT_TAB="${ts_helpersdir}test_mount_tab" ++TS_HELPER_LIBMOUNT_UPDATE="${ts_helpersdir}test_mount_tab_update" ++TS_HELPER_LIBMOUNT_UTILS="${ts_helpersdir}test_mount_utils" ++TS_HELPER_LIBMOUNT_DEBUG="${ts_helpersdir}test_mount_debug" ++TS_HELPER_LIBSMARTCOLS_FROMFILE="${ts_helpersdir}sample-scols-fromfile" ++TS_HELPER_LIBSMARTCOLS_TITLE="${ts_helpersdir}sample-scols-title" + TS_HELPER_PYLIBMOUNT_CONTEXT="$top_srcdir/libmount/python/test_mount_context.py" + TS_HELPER_PYLIBMOUNT_TAB="$top_srcdir/libmount/python/test_mount_tab.py" + TS_HELPER_PYLIBMOUNT_UPDATE="$top_srcdir/libmount/python/test_mount_tab_update.py" +-TS_HELPER_LOGGER="$top_builddir/test_logger" +-TS_HELPER_LOGINDEFS="$top_builddir/test_logindefs" +-TS_HELPER_MD5="$top_builddir/test_md5" +-TS_HELPER_SHA1="$top_builddir/test_sha1" +-TS_HELPER_MKFS_MINIX="$top_builddir/test_mkfs_minix" +-TS_HELPER_MORE=${TS_HELPER_MORE-"$top_builddir/test_more"} +-TS_HELPER_PARTITIONS="$top_builddir/sample-partitions" +-TS_HELPER_PATHS="$top_builddir/test_pathnames" +-TS_HELPER_SCRIPT="$top_builddir/test_script" +-TS_HELPER_SIGRECEIVE="$top_builddir/test_sigreceive" +-TS_HELPER_STRUTILS="$top_builddir/test_strutils" +-TS_HELPER_SYSINFO="$top_builddir/test_sysinfo" +-TS_HELPER_TIOCSTI="$top_builddir/test_tiocsti" +-TS_HELPER_UUID_PARSER="$top_builddir/test_uuid_parser" +-TS_HELPER_UUID_NAMESPACE="$top_builddir/test_uuid_namespace" +-TS_HELPER_MBSENCODE="$top_builddir/test_mbsencode" +-TS_HELPER_CAL="$top_builddir/test_cal" ++TS_HELPER_LOGGER="${ts_helpersdir}test_logger" ++TS_HELPER_LOGINDEFS="${ts_helpersdir}test_logindefs" ++TS_HELPER_MD5="${ts_helpersdir}test_md5" ++TS_HELPER_SHA1="${ts_helpersdir}test_sha1" ++TS_HELPER_MKFS_MINIX="${ts_helpersdir}test_mkfs_minix" ++TS_HELPER_MORE=${TS_HELPER_MORE-"${ts_helpersdir}test_more"} ++TS_HELPER_PARTITIONS="${ts_helpersdir}sample-partitions" ++TS_HELPER_PATHS="${ts_helpersdir}test_pathnames" ++TS_HELPER_SCRIPT="${ts_helpersdir}test_script" ++TS_HELPER_SIGRECEIVE="${ts_helpersdir}test_sigreceive" ++TS_HELPER_STRUTILS="${ts_helpersdir}test_strutils" ++TS_HELPER_SYSINFO="${ts_helpersdir}test_sysinfo" ++TS_HELPER_TIOCSTI="${ts_helpersdir}test_tiocsti" ++TS_HELPER_UUID_PARSER="${ts_helpersdir}test_uuid_parser" ++TS_HELPER_UUID_NAMESPACE="${ts_helpersdir}test_uuid_namespace" ++TS_HELPER_MBSENCODE="${ts_helpersdir}test_mbsencode" ++TS_HELPER_CAL="${ts_helpersdir}test_cal" + + # paths to commands +-TS_CMD_ADDPART=${TS_CMD_ADDPART:-"$top_builddir/addpart"} +-TS_CMD_DELPART=${TS_CMD_DELPART:-"$top_builddir/delpart"} +-TS_CMD_BLKDISCARD=${TS_CMD_BLKID-"$top_builddir/blkdiscard"} +-TS_CMD_BLKID=${TS_CMD_BLKID-"$top_builddir/blkid"} +-TS_CMD_CAL=${TS_CMD_CAL-"$top_builddir/cal"} +-TS_CMD_COLCRT=${TS_CMD_COLCRT:-"$top_builddir/colcrt"} +-TS_CMD_COLRM=${TS_CMD_COLRM:-"$top_builddir/colrm"} +-TS_CMD_COL=${TS_CMD_COL:-"$top_builddir/col"} +-TS_CMD_COLUMN=${TS_CMD_COLUMN:-"$top_builddir/column"} +-TS_CMD_EJECT=${TS_CMD_EJECT-"$top_builddir/eject"} +-TS_CMD_FALLOCATE=${TS_CMD_FALLOCATE-"$top_builddir/fallocate"} +-TS_CMD_FDISK=${TS_CMD_FDISK-"$top_builddir/fdisk"} +-TS_CMD_FLOCK=${TS_CMD_FLOCK-"$top_builddir/flock"} +-TS_CMD_SFDISK=${TS_CMD_SFDISK-"$top_builddir/sfdisk"} +-TS_CMD_FINCORE=${TS_CMD_FINCORE-"$top_builddir/fincore"} +-TS_CMD_FINDMNT=${TS_CMD_FINDMNT-"$top_builddir/findmnt"} +-TS_CMD_FSCKCRAMFS=${TS_CMD_FSCKCRAMFS:-"$top_builddir/fsck.cramfs"} +-TS_CMD_FSCKMINIX=${TS_CMD_FSCKMINIX:-"$top_builddir/fsck.minix"} +-TS_CMD_GETOPT=${TS_CMD_GETOPT-"$top_builddir/getopt"} +-TS_CMD_HEXDUMP=${TS_CMD_HEXDUMP-"$top_builddir/hexdump"} +-TS_CMD_HWCLOCK=${TS_CMD_HWCLOCK-"$top_builddir/hwclock"} +-TS_CMD_IONICE=${TS_CMD_IONICE-"$top_builddir/ionice"} +-TS_CMD_IPCMK=${TS_CMD_IPCMK-"$top_builddir/ipcmk"} +-TS_CMD_IPCRM=${TS_CMD_IPCRM-"$top_builddir/ipcrm"} +-TS_CMD_IPCS=${TS_CMD_IPCS:-"$top_builddir/ipcs"} +-TS_CMD_ISOSIZE=${TS_CMD_ISOSIZE-"$top_builddir/isosize"} +-TS_CMD_KILL=${TS_CMD_KILL-"$top_builddir/kill"} +-TS_CMD_LAST=${TS_CMD_LAST-"$top_builddir/last"} +-TS_CMD_LINE=${TS_CMD_LINE-"$top_builddir/line"} +-TS_CMD_LOOK=${TS_CMD_LOOK-"$top_builddir/look"} +-TS_CMD_LOSETUP=${TS_CMD_LOSETUP:-"$top_builddir/losetup"} +-TS_CMD_LSBLK=${TS_CMD_LSBLK-"$top_builddir/lsblk"} +-TS_CMD_LSCPU=${TS_CMD_LSCPU-"$top_builddir/lscpu"} +-TS_CMD_LSMEM=${TS_CMD_LSMEM-"$top_builddir/lsmem"} +-TS_CMD_LSNS=${TS_CMD_LSNS-"$top_builddir/lsns"} +-TS_CMD_MCOOKIE=${TS_CMD_MCOOKIE-"$top_builddir/mcookie"} +-TS_CMD_MKCRAMFS=${TS_CMD_MKCRAMFS:-"$top_builddir/mkfs.cramfs"} +-TS_CMD_MKMINIX=${TS_CMD_MKMINIX:-"$top_builddir/mkfs.minix"} +-TS_CMD_MKSWAP=${TS_CMD_MKSWAP:-"$top_builddir/mkswap"} +-TS_CMD_MOUNT=${TS_CMD_MOUNT:-"$top_builddir/mount"} +-TS_CMD_MOUNTPOINT=${TS_CMD_MOUNTPOINT:-"$top_builddir/mountpoint"} +-TS_CMD_NAMEI=${TS_CMD_NAMEI-"$top_builddir/namei"} +-TS_CMD_PARTX=${TS_CMD_PARTX-"$top_builddir/partx"} +-TS_CMD_RENAME=${TS_CMD_RENAME-"$top_builddir/rename"} +-TS_CMD_RUNUSER=${TS_CMD_RUNUSER-"$top_builddir/runuser"} +-TS_CMD_REV=${TS_CMD_REV:-"$top_builddir/rev"} +-TS_CMD_SCRIPT=${TS_CMD_SCRIPT-"$top_builddir/script"} +-TS_CMD_SCRIPTREPLAY=${TS_CMD_SCRIPTREPLAY-"$top_builddir/scriptreplay"} +-TS_CMD_SETARCH=${TS_CMD_SETARCH-"$top_builddir/setarch"} +-TS_CMD_SETSID=${TS_CMD_SETSID-"$top_builddir/setsid"} +-TS_CMD_SWAPLABEL=${TS_CMD_SWAPLABEL:-"$top_builddir/swaplabel"} +-TS_CMD_SWAPOFF=${TS_CMD_SWAPOFF:-"$top_builddir/swapoff"} +-TS_CMD_SWAPON=${TS_CMD_SWAPON:-"$top_builddir/swapon"} +-TS_CMD_UL=${TS_CMD_UL-"$top_builddir/ul"} +-TS_CMD_UMOUNT=${TS_CMD_UMOUNT:-"$top_builddir/umount"} +-TS_CMD_UTMPDUMP=${TS_CMD_UTMPDUMP-"$top_builddir/utmpdump"} +-TS_CMD_UUIDD=${TS_CMD_UUIDD-"$top_builddir/uuidd"} +-TS_CMD_UUIDGEN=${TS_CMD_UUIDGEN-"$top_builddir/uuidgen"} +-TS_CMD_UUIDPARSE=${TS_CMD_UUIDPARSE-"$top_builddir/uuidparse"} +-TS_CMD_WHEREIS=${TS_CMD_WHEREIS-"$top_builddir/whereis"} +-TS_CMD_WIPEFS=${TS_CMD_WIPEFS-"$top_builddir/wipefs"} +-TS_CMD_CHRT=${TS_CMD_CHRT-"$top_builddir/chrt"} ++TS_CMD_ADDPART=${TS_CMD_ADDPART:-"${ts_commandsdir}addpart"} ++TS_CMD_DELPART=${TS_CMD_DELPART:-"${ts_commandsdir}delpart"} ++TS_CMD_BLKDISCARD=${TS_CMD_BLKID-"${ts_commandsdir}blkdiscard"} ++TS_CMD_BLKID=${TS_CMD_BLKID-"${ts_commandsdir}blkid"} ++TS_CMD_CAL=${TS_CMD_CAL-"${ts_commandsdir}cal"} ++TS_CMD_COLCRT=${TS_CMD_COLCRT:-"${ts_commandsdir}colcrt"} ++TS_CMD_COLRM=${TS_CMD_COLRM:-"${ts_commandsdir}colrm"} ++TS_CMD_COL=${TS_CMD_COL:-"${ts_commandsdir}col"} ++TS_CMD_COLUMN=${TS_CMD_COLUMN:-"${ts_commandsdir}column"} ++TS_CMD_EJECT=${TS_CMD_EJECT-"${ts_commandsdir}eject"} ++TS_CMD_FALLOCATE=${TS_CMD_FALLOCATE-"${ts_commandsdir}fallocate"} ++TS_CMD_FDISK=${TS_CMD_FDISK-"${ts_commandsdir}fdisk"} ++TS_CMD_FLOCK=${TS_CMD_FLOCK-"${ts_commandsdir}flock"} ++TS_CMD_SFDISK=${TS_CMD_SFDISK-"${ts_commandsdir}sfdisk"} ++TS_CMD_FINCORE=${TS_CMD_FINCORE-"${ts_commandsdir}fincore"} ++TS_CMD_FINDMNT=${TS_CMD_FINDMNT-"${ts_commandsdir}findmnt"} ++TS_CMD_FSCKCRAMFS=${TS_CMD_FSCKCRAMFS:-"${ts_commandsdir}fsck.cramfs"} ++TS_CMD_FSCKMINIX=${TS_CMD_FSCKMINIX:-"${ts_commandsdir}fsck.minix"} ++TS_CMD_GETOPT=${TS_CMD_GETOPT-"${ts_commandsdir}getopt"} ++TS_CMD_HEXDUMP=${TS_CMD_HEXDUMP-"${ts_commandsdir}hexdump"} ++TS_CMD_HWCLOCK=${TS_CMD_HWCLOCK-"${ts_commandsdir}hwclock"} ++TS_CMD_IONICE=${TS_CMD_IONICE-"${ts_commandsdir}ionice"} ++TS_CMD_IPCMK=${TS_CMD_IPCMK-"${ts_commandsdir}ipcmk"} ++TS_CMD_IPCRM=${TS_CMD_IPCRM-"${ts_commandsdir}ipcrm"} ++TS_CMD_IPCS=${TS_CMD_IPCS:-"${ts_commandsdir}ipcs"} ++TS_CMD_ISOSIZE=${TS_CMD_ISOSIZE-"${ts_commandsdir}isosize"} ++TS_CMD_KILL=${TS_CMD_KILL-"${ts_commandsdir}kill"} ++TS_CMD_LAST=${TS_CMD_LAST-"${ts_commandsdir}last"} ++TS_CMD_LINE=${TS_CMD_LINE-"${ts_commandsdir}line"} ++TS_CMD_LOOK=${TS_CMD_LOOK-"${ts_commandsdir}look"} ++TS_CMD_LOSETUP=${TS_CMD_LOSETUP:-"${ts_commandsdir}losetup"} ++TS_CMD_LSBLK=${TS_CMD_LSBLK-"${ts_commandsdir}lsblk"} ++TS_CMD_LSCPU=${TS_CMD_LSCPU-"${ts_commandsdir}lscpu"} ++TS_CMD_LSMEM=${TS_CMD_LSMEM-"${ts_commandsdir}lsmem"} ++TS_CMD_LSNS=${TS_CMD_LSNS-"${ts_commandsdir}lsns"} ++TS_CMD_MCOOKIE=${TS_CMD_MCOOKIE-"${ts_commandsdir}mcookie"} ++TS_CMD_MKCRAMFS=${TS_CMD_MKCRAMFS:-"${ts_commandsdir}mkfs.cramfs"} ++TS_CMD_MKMINIX=${TS_CMD_MKMINIX:-"${ts_commandsdir}mkfs.minix"} ++TS_CMD_MKSWAP=${TS_CMD_MKSWAP:-"${ts_commandsdir}mkswap"} ++TS_CMD_MOUNT=${TS_CMD_MOUNT:-"${ts_commandsdir}mount"} ++TS_CMD_MOUNTPOINT=${TS_CMD_MOUNTPOINT:-"${ts_commandsdir}mountpoint"} ++TS_CMD_NAMEI=${TS_CMD_NAMEI-"${ts_commandsdir}namei"} ++TS_CMD_PARTX=${TS_CMD_PARTX-"${ts_commandsdir}partx"} ++TS_CMD_RENAME=${TS_CMD_RENAME-"${ts_commandsdir}rename"} ++TS_CMD_RUNUSER=${TS_CMD_RUNUSER-"${ts_commandsdir}runuser"} ++TS_CMD_REV=${TS_CMD_REV:-"${ts_commandsdir}rev"} ++TS_CMD_SCRIPT=${TS_CMD_SCRIPT-"${ts_commandsdir}script"} ++TS_CMD_SCRIPTREPLAY=${TS_CMD_SCRIPTREPLAY-"${ts_commandsdir}scriptreplay"} ++TS_CMD_SETARCH=${TS_CMD_SETARCH-"${ts_commandsdir}setarch"} ++TS_CMD_SETSID=${TS_CMD_SETSID-"${ts_commandsdir}setsid"} ++TS_CMD_SWAPLABEL=${TS_CMD_SWAPLABEL:-"${ts_commandsdir}swaplabel"} ++TS_CMD_SWAPOFF=${TS_CMD_SWAPOFF:-"${ts_commandsdir}swapoff"} ++TS_CMD_SWAPON=${TS_CMD_SWAPON:-"${ts_commandsdir}swapon"} ++TS_CMD_UL=${TS_CMD_UL-"${ts_commandsdir}ul"} ++TS_CMD_UMOUNT=${TS_CMD_UMOUNT:-"${ts_commandsdir}umount"} ++TS_CMD_UTMPDUMP=${TS_CMD_UTMPDUMP-"${ts_commandsdir}utmpdump"} ++TS_CMD_UUIDD=${TS_CMD_UUIDD-"${ts_commandsdir}uuidd"} ++TS_CMD_UUIDGEN=${TS_CMD_UUIDGEN-"${ts_commandsdir}uuidgen"} ++TS_CMD_UUIDPARSE=${TS_CMD_UUIDPARSE-"${ts_commandsdir}uuidparse"} ++TS_CMD_WHEREIS=${TS_CMD_WHEREIS-"${ts_commandsdir}whereis"} ++TS_CMD_WIPEFS=${TS_CMD_WIPEFS-"${ts_commandsdir}wipefs"} ++TS_CMD_CHRT=${TS_CMD_CHRT-"${ts_commandsdir}chrt"} +diff --git a/tests/functions.sh b/tests/functions.sh +index 2fb0ddb5f..ab607c4ce 100644 +--- a/tests/functions.sh ++++ b/tests/functions.sh +@@ -75,9 +75,19 @@ function ts_report { + } + + function ts_check_test_command { +- if [ ! -x "$1" ]; then +- ts_skip "${1##*/} not found" +- fi ++ case "$1" in ++ */*) ++ # paths ++ if [ ! -x "$1" ]; then ++ ts_skip "${1##*/} not found" ++ fi ++ ;; ++ *) ++ # just command names (e.g. --use-system-commands) ++ local cmd=$1 ++ type "$cmd" >/dev/null 2>&1 || ts_skip "missing in PATH: $cmd" ++ ;; ++ esac + } + + function ts_check_prog { +@@ -254,8 +264,20 @@ function ts_init_env { + top_srcdir=$(ts_abspath $top_srcdir) + top_builddir=$(ts_abspath $top_builddir) + +- # some ul commands search other ul commands in $PATH +- export PATH="$top_builddir:$PATH" ++ # We use helpser always from build tree ++ ts_helpersdir="${top_builddir}/" ++ ++ TS_USE_SYSTEM_COMMANDS=$(ts_has_option "use-system-commands" "$*") ++ if [ "$TS_USE_SYSTEM_COMMANDS" == "yes" ]; then ++ # Don't define anything, just follow current PATH ++ ts_commandsdir="" ++ else ++ # The default is to use commands from build tree ++ ts_commandsdir="${top_builddir}/" ++ ++ # some ul commands search other ul commands in $PATH ++ export PATH="$ts_commandsdir:$PATH" ++ fi + + TS_SCRIPT="$mydir/$(basename $0)" + TS_SUBDIR=$(dirname $TS_SCRIPT) +@@ -319,6 +341,8 @@ function ts_init_env { + if [ "$TS_VERBOSE" == "yes" ]; then + echo + echo " script: $TS_SCRIPT" ++ echo " commands: $ts_commandsdir" ++ echo " helpers: $ts_helpersdir" + echo " sub dir: $TS_SUBDIR" + echo " top dir: $TS_TOPDIR" + echo " self: $TS_SELF" +diff --git a/tests/run.sh b/tests/run.sh +index f40c9f801..28f8ee25a 100755 +--- a/tests/run.sh ++++ b/tests/run.sh +@@ -20,6 +20,7 @@ TS_TOPDIR=$(cd ${0%/*} && pwd) + SUBTESTS= + EXCLUDETESTS= + OPTS= ++SYSCOMMANDS= + + top_srcdir= + top_builddir= +@@ -68,6 +69,11 @@ while [ -n "$1" ]; do + # these options are simply forwarded to the test scripts + OPTS="$OPTS $1" + ;; ++ --use-system-commands) ++ OPTS="$OPTS $1" ++ SYSCOMMANDS="yes" ++ ;; ++ + --nonroot) + if [ $(id -ru) -eq 0 ]; then + echo "Ignore util-linux test suite [non-root UID expected]." +@@ -98,18 +104,19 @@ while [ -n "$1" ]; do + echo "Usage: " + echo " $(basename $0) [options] [ ...]" + echo "Options:" +- echo " --force execute demanding tests" +- echo " --fake do not run, setup tests only" +- echo " --memcheck-valgrind run with valgrind" +- echo " --memcheck-asan enable ASAN (requires ./configure --enable-asan)" +- echo " --nolocks don't use flock to lock resources" +- echo " --verbose verbose mode" +- echo " --show-diff show diff from failed tests" +- echo " --nonroot ignore test suite if user is root" +- echo " --srcdir= autotools top source directory" +- echo " --builddir= autotools top build directory" +- echo " --parallel= number of parallel test jobs, default: num cpus" +- echo " --exclude= exclude tests by list '/ ..'" ++ echo " --force execute demanding tests" ++ echo " --fake do not run, setup tests only" ++ echo " --memcheck-valgrind run with valgrind" ++ echo " --memcheck-asan enable ASAN (requires ./configure --enable-asan)" ++ echo " --nolocks don't use flock to lock resources" ++ echo " --verbose verbose mode" ++ echo " --show-diff show diff from failed tests" ++ echo " --nonroot ignore test suite if user is root" ++ echo " --use-system-commands use PATH rather than builddir" ++ echo " --srcdir= autotools top source directory" ++ echo " --builddir= autotools top build directory" ++ echo " --parallel= number of parallel test jobs, default: num cpus" ++ echo " --exclude= exclude tests by list '/ ..'" + echo + exit 1 + ;; +@@ -148,7 +155,7 @@ if [ -n "$SUBTESTS" ]; then + fi + done + else +- if [ ! -f "$top_builddir/test_ttyutils" ]; then ++ if [ -z "$SYSCOMMANDS" -a ! -f "$top_builddir/test_ttyutils" ]; then + echo "Tests not compiled! Run 'make check' to fix the problem." + exit 1 + fi +-- +2.20.1 + diff --git a/SOURCES/0017-tests-kill-do-not-use-shell-build-in.patch b/SOURCES/0017-tests-kill-do-not-use-shell-build-in.patch new file mode 100644 index 0000000..5ae2785 --- /dev/null +++ b/SOURCES/0017-tests-kill-do-not-use-shell-build-in.patch @@ -0,0 +1,99 @@ +From 47b0f3480a88be94ef73973e73ad9f7fb8258cad Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Mon, 4 Mar 2019 17:28:15 +0100 +Subject: [PATCH 17/19] tests: (kill) do not use shell build-in + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1681062 +Upstream: http://github.com/karelzak/util-linux/commit/2fadcded53add5b5b0ca7071f310a0f37c711c51 +Signed-off-by: Karel Zak +--- + tests/ts/kill/all_processes | 5 +++++ + tests/ts/kill/name_to_number | 5 +++++ + tests/ts/kill/options | 5 +++++ + tests/ts/kill/print_pid | 5 +++++ + tests/ts/kill/queue | 5 +++++ + 5 files changed, 25 insertions(+) + +diff --git a/tests/ts/kill/all_processes b/tests/ts/kill/all_processes +index 2596ef02b..7a0c95931 100755 +--- a/tests/ts/kill/all_processes ++++ b/tests/ts/kill/all_processes +@@ -20,6 +20,11 @@ ts_init "$*" + + ts_skip_nonroot + ++# make sure we do not use shell built-in command ++if [ "$TS_USE_SYSTEM_COMMANDS" == "yes" ]; then ++ TS_CMD_KILL="/bin/kill" ++fi ++ + ts_check_test_command "$TS_CMD_KILL" + ts_check_test_command "$TS_HELPER_SIGRECEIVE" + +diff --git a/tests/ts/kill/name_to_number b/tests/ts/kill/name_to_number +index cde55c9ed..fd2aaafe0 100755 +--- a/tests/ts/kill/name_to_number ++++ b/tests/ts/kill/name_to_number +@@ -18,6 +18,11 @@ TS_DESC="name_to_number" + . "$TS_TOPDIR/functions.sh" + ts_init "$*" + ++# make sure we do not use shell built-in command ++if [ "$TS_USE_SYSTEM_COMMANDS" == "yes" ]; then ++ TS_CMD_KILL="/bin/kill" ++fi ++ + ts_check_test_command "$TS_CMD_KILL" + ts_check_test_command "$TS_HELPER_SIGRECEIVE" + +diff --git a/tests/ts/kill/options b/tests/ts/kill/options +index 2c82bbccc..ee9e52f47 100755 +--- a/tests/ts/kill/options ++++ b/tests/ts/kill/options +@@ -18,6 +18,11 @@ TS_DESC="options" + . "$TS_TOPDIR/functions.sh" + ts_init "$*" + ++# make sure we do not use shell built-in command ++if [ "$TS_USE_SYSTEM_COMMANDS" == "yes" ]; then ++ TS_CMD_KILL="/bin/kill" ++fi ++ + ts_check_test_command "$TS_CMD_KILL" + ts_check_test_command "$TS_HELPER_SIGRECEIVE" + +diff --git a/tests/ts/kill/print_pid b/tests/ts/kill/print_pid +index c6187f192..2a2a838ee 100755 +--- a/tests/ts/kill/print_pid ++++ b/tests/ts/kill/print_pid +@@ -18,6 +18,11 @@ TS_DESC="print_pid" + . "$TS_TOPDIR/functions.sh" + ts_init "$*" + ++# make sure we do not use shell built-in command ++if [ "$TS_USE_SYSTEM_COMMANDS" == "yes" ]; then ++ TS_CMD_KILL="/bin/kill" ++fi ++ + ts_check_test_command "$TS_CMD_KILL" + ts_check_test_command "$TS_HELPER_SIGRECEIVE" + +diff --git a/tests/ts/kill/queue b/tests/ts/kill/queue +index 992acf7a6..4727cbfc4 100755 +--- a/tests/ts/kill/queue ++++ b/tests/ts/kill/queue +@@ -18,6 +18,11 @@ TS_DESC="queue" + . "$TS_TOPDIR/functions.sh" + ts_init "$*" + ++# make sure we do not use shell built-in command ++if [ "$TS_USE_SYSTEM_COMMANDS" == "yes" ]; then ++ TS_CMD_KILL="/bin/kill" ++fi ++ + ts_check_test_command "$TS_CMD_KILL" + ts_check_test_command "$TS_HELPER_SIGRECEIVE" + +-- +2.20.1 + diff --git a/SOURCES/0018-tests-add-missing-TS_CMD_UMOUNT-check.patch b/SOURCES/0018-tests-add-missing-TS_CMD_UMOUNT-check.patch new file mode 100644 index 0000000..66e45cc --- /dev/null +++ b/SOURCES/0018-tests-add-missing-TS_CMD_UMOUNT-check.patch @@ -0,0 +1,27 @@ +From aa983f0eea49638f04de0fbafcd156c1472726ee Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Mon, 4 Mar 2019 17:32:03 +0100 +Subject: [PATCH 18/19] tests: add missing TS_CMD_UMOUNT check + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1681062 +Upstream: http://github.com/karelzak/util-linux/commit/bb872a239ce9faae7ac672a9137945dd8e4ee964 +Signed-off-by: Karel Zak +--- + tests/ts/libmount/loop | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tests/ts/libmount/loop b/tests/ts/libmount/loop +index b52b7476a..090b79fa4 100755 +--- a/tests/ts/libmount/loop ++++ b/tests/ts/libmount/loop +@@ -23,6 +23,7 @@ TS_DESC="losetup-loop" + ts_init "$*" + + ts_check_test_command "$TS_CMD_MOUNT" ++ts_check_test_command "$TS_CMD_UMOUNT" + ts_check_test_command "$TS_CMD_FINDMNT" + ts_check_test_command "$TS_CMD_LOSETUP" + +-- +2.20.1 + diff --git a/SOURCES/0019-tests-add-noskip-commands.patch b/SOURCES/0019-tests-add-noskip-commands.patch new file mode 100644 index 0000000..28358fc --- /dev/null +++ b/SOURCES/0019-tests-add-noskip-commands.patch @@ -0,0 +1,66 @@ +From 9e92f2ff939a885b70d3a5d20e8c94f6e41e821b Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Tue, 5 Mar 2019 11:06:41 +0100 +Subject: [PATCH 19/19] tests: add --noskip-commands + +The default is SKIP missing commands on --use-system-commands, but +with --noskip-commands the test will FAIL. + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1681062 +Upstream: http://github.com/karelzak/util-linux/commit/7c90efa384cbb2ace873e2b90e8cc396a1719535 +Signed-off-by: Karel Zak +--- + tests/functions.sh | 9 ++++++++- + tests/run.sh | 2 ++ + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/tests/functions.sh b/tests/functions.sh +index ab607c4ce..0605a1320 100644 +--- a/tests/functions.sh ++++ b/tests/functions.sh +@@ -85,7 +85,13 @@ function ts_check_test_command { + *) + # just command names (e.g. --use-system-commands) + local cmd=$1 +- type "$cmd" >/dev/null 2>&1 || ts_skip "missing in PATH: $cmd" ++ type "$cmd" >/dev/null 2>&1 ++ if [ $? -ne 0 ]; then ++ if [ "$TS_NOSKIP_COMMANDS" = "yes" ]; then ++ ts_failed "missing in PATH: $cmd" ++ fi ++ ts_skip "missing in PATH: $cmd" ++ fi + ;; + esac + } +@@ -301,6 +307,7 @@ function ts_init_env { + + ts_init_core_env + ++ TS_NOSKIP_COMMANDS=$(ts_has_option "noskip-commands" "$*") + TS_VERBOSE=$(ts_has_option "verbose" "$*") + TS_SHOWDIFF=$(ts_has_option "show-diff" "$*") + TS_PARALLEL=$(ts_has_option "parallel" "$*") +diff --git a/tests/run.sh b/tests/run.sh +index 28f8ee25a..e8328cc5d 100755 +--- a/tests/run.sh ++++ b/tests/run.sh +@@ -65,6 +65,7 @@ while [ -n "$1" ]; do + --show-diff |\ + --verbose |\ + --skip-loopdevs |\ ++ --noskip-commands |\ + --parsable) + # these options are simply forwarded to the test scripts + OPTS="$OPTS $1" +@@ -113,6 +114,7 @@ while [ -n "$1" ]; do + echo " --show-diff show diff from failed tests" + echo " --nonroot ignore test suite if user is root" + echo " --use-system-commands use PATH rather than builddir" ++ echo " --noskip-commands fail on missing commands" + echo " --srcdir= autotools top source directory" + echo " --builddir= autotools top build directory" + echo " --parallel= number of parallel test jobs, default: num cpus" +-- +2.20.1 + diff --git a/SOURCES/0020-tests-add-missing-program-checks.patch b/SOURCES/0020-tests-add-missing-program-checks.patch new file mode 100644 index 0000000..06d9d8d --- /dev/null +++ b/SOURCES/0020-tests-add-missing-program-checks.patch @@ -0,0 +1,83 @@ +From 68ab6d9691e667f89f72bc7eb39a5300b2f6cbaf Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Tue, 5 Mar 2019 13:56:45 +0100 +Subject: [PATCH] tests: add missing program checks + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1681062 +Signed-off-by: Karel Zak +--- + tests/ts/cal/bigyear | 2 +- + tests/ts/cal/month | 2 +- + tests/ts/cal/sep1752 | 2 +- + tests/ts/misc/mbsencode | 2 ++ + tests/ts/misc/strtosize | 2 ++ + 5 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/tests/ts/cal/bigyear b/tests/ts/cal/bigyear +index d205c3afd..34139fd27 100755 +--- a/tests/ts/cal/bigyear ++++ b/tests/ts/cal/bigyear +@@ -18,7 +18,7 @@ TS_DESC="Year 2147483646" + . $TS_TOPDIR/functions.sh + ts_init "$*" + +-ts_check_test_command "$TS_CMD_CAL" ++ts_check_test_command "$TS_HELPER_CAL" + + export TERM=linux + +diff --git a/tests/ts/cal/month b/tests/ts/cal/month +index 9794e90c0..37996acae 100755 +--- a/tests/ts/cal/month ++++ b/tests/ts/cal/month +@@ -22,7 +22,7 @@ TS_DESC="month" + . $TS_TOPDIR/functions.sh + ts_init "$*" + +-ts_check_test_command "$TS_CMD_CAL" ++ts_check_test_command "$TS_HELPER_CAL" + + export TERM=linux + +diff --git a/tests/ts/cal/sep1752 b/tests/ts/cal/sep1752 +index 3128261cd..41c30d40e 100755 +--- a/tests/ts/cal/sep1752 ++++ b/tests/ts/cal/sep1752 +@@ -18,7 +18,7 @@ TS_DESC="September 1752" + . $TS_TOPDIR/functions.sh + ts_init "$*" + +-ts_check_test_command "$TS_CMD_CAL" ++ts_check_test_command "$TS_HELPER_CAL" + + export TERM=linux + +diff --git a/tests/ts/misc/mbsencode b/tests/ts/misc/mbsencode +index 405d34c56..139148259 100755 +--- a/tests/ts/misc/mbsencode ++++ b/tests/ts/misc/mbsencode +@@ -22,6 +22,8 @@ TS_DESC="mbsencode" + . $TS_TOPDIR/functions.sh + ts_init "$*" + ++ts_check_test_command "$TS_HELPER_MBSENCODE" ++ + # These test may fail on some machines (locales, other libc...) + TS_KNOWN_FAIL="yes" + +diff --git a/tests/ts/misc/strtosize b/tests/ts/misc/strtosize +index 68b3b8bab..a5914a939 100755 +--- a/tests/ts/misc/strtosize ++++ b/tests/ts/misc/strtosize +@@ -21,6 +21,8 @@ TS_DESC="strtosize" + . $TS_TOPDIR/functions.sh + ts_init "$*" + ++ts_check_test_command "$TS_HELPER_STRUTILS" ++ + $TS_HELPER_STRUTILS --size -1 >> $TS_OUTPUT 2>&1 + $TS_HELPER_STRUTILS --size 0 >> $TS_OUTPUT 2>&1 + $TS_HELPER_STRUTILS --size 1 >> $TS_OUTPUT 2>&1 +-- +2.20.1 + diff --git a/SOURCES/0021-tests-check-for-tar-and-b-g-zip.patch b/SOURCES/0021-tests-check-for-tar-and-b-g-zip.patch new file mode 100644 index 0000000..17199f8 --- /dev/null +++ b/SOURCES/0021-tests-check-for-tar-and-b-g-zip.patch @@ -0,0 +1,42 @@ +From 0c57e5fedce0e627debda3258e2203842b427572 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Tue, 11 Dec 2018 11:44:48 +0100 +Subject: [PATCH] tests: check for tar and {b,g}zip + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1681062 +Upstream: http://github.com/karelzak/util-linux/commit/9e07672bb9989c88f6a7d8b8ab23158701fb4eec +Signed-off-by: Karel Zak +--- + tests/ts/lscpu/lscpu | 2 ++ + tests/ts/lsmem/lsmem | 2 ++ + 2 files changed, 4 insertions(+) + +diff --git a/tests/ts/lscpu/lscpu b/tests/ts/lscpu/lscpu +index 70fbce9f3..ccf271149 100755 +--- a/tests/ts/lscpu/lscpu ++++ b/tests/ts/lscpu/lscpu +@@ -22,6 +22,8 @@ TS_TOPDIR="${0%/*}/../.." + + ts_init "$*" + ++ts_check_prog "tar" ++ts_check_prog "gzip" + ts_check_test_command "$TS_CMD_LSCPU" + + for dump in $(ls $TS_SELF/dumps/*.tar.gz | sort); do +diff --git a/tests/ts/lsmem/lsmem b/tests/ts/lsmem/lsmem +index f1a643f85..bedf4143f 100755 +--- a/tests/ts/lsmem/lsmem ++++ b/tests/ts/lsmem/lsmem +@@ -21,6 +21,8 @@ TS_TOPDIR="${0%/*}/../.." + ts_init "$*" + + ts_check_test_command "$TS_CMD_LSMEM" ++ts_check_prog "tar" ++ts_check_prog "bzip2" + + LSCOLUMNS="RANGE,SIZE,STATE,REMOVABLE,BLOCK,NODE" + +-- +2.20.1 + diff --git a/SOURCES/0022-tests-make-mount-oloop-use-more-robust.patch b/SOURCES/0022-tests-make-mount-oloop-use-more-robust.patch new file mode 100644 index 0000000..6b05766 --- /dev/null +++ b/SOURCES/0022-tests-make-mount-oloop-use-more-robust.patch @@ -0,0 +1,93 @@ +From 8822103e30121d95fa58b5e8b7ce8ce91d4e778e Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Mon, 3 Jun 2019 22:29:51 +0200 +Subject: [PATCH] tests: make mount -oloop use more robust + +The command creates loop device, so udevd is in the game and it seems +better to wait for him. + +Addresses: http://bugzilla.redhat.com/show_bug.cgi?id=1681062 +Signed-off-by: Karel Zak +--- + tests/ts/libmount/loop | 4 ++++ + tests/ts/libmount/loop-overlay | 11 +++++++++++ + 2 files changed, 15 insertions(+) + +diff --git a/tests/ts/libmount/loop b/tests/ts/libmount/loop +index 090b79fa4..50764781c 100755 +--- a/tests/ts/libmount/loop ++++ b/tests/ts/libmount/loop +@@ -65,6 +65,7 @@ ts_finalize_subtest + ts_init_subtest "file-o-loop" + [ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT + $TS_CMD_MOUNT -oloop "$BACKFILE" "$TS_MOUNTPOINT" >> $TS_OUTPUT 2>&1 ++udevadm settle + $TS_CMD_UMOUNT "$TS_MOUNTPOINT" >> $TS_OUTPUT 2>&1 + udevadm settle + ts_log "Success" +@@ -89,6 +90,7 @@ else + [ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT + LODEV=$( $TS_CMD_LOSETUP --find 2>> $TS_OUTPUT ) + $TS_CMD_MOUNT -oloop=$LODEV "$BACKFILE" "$TS_MOUNTPOINT" >> $TS_OUTPUT 2>&1 ++ udevadm settle + verify_mount_dev "$LODEV" "$TS_MOUNTPOINT" >> $TS_OUTPUT 2>&1 + $TS_CMD_UMOUNT "$TS_MOUNTPOINT" >> $TS_OUTPUT 2>&1 + udevadm settle +@@ -122,6 +124,7 @@ ts_init_subtest "o-loop-val-initialized" + LODEV=$( $TS_CMD_LOSETUP --show -f "$BACKFILE" 2>>$TS_OUTPUT) + $TS_CMD_MOUNT -oloop=$LODEV "$BACKFILE" "$TS_MOUNTPOINT" 2>&1 \ + | sed 's/:.*:/: /; s/for .*/for /' > $TS_OUTPUT ++udevadm settle + $TS_CMD_LOSETUP --detach $LODEV >> $TS_OUTPUT 2>&1 + udevadm settle + ts_log "Success" +@@ -133,6 +136,7 @@ cp "$BACKFILE" "$BACKFILE"-2 + LODEV=$( $TS_CMD_LOSETUP --show -f "$BACKFILE"-2 2>> $TS_OUTPUT) + $TS_CMD_MOUNT -oloop=$LODEV "$BACKFILE" "$TS_MOUNTPOINT" 2>&1 \ + | sed 's/:.*:/: /; s/for .*/for /' > $TS_OUTPUT ++udevadm settle + $TS_CMD_LOSETUP --detach $LODEV >> $TS_OUTPUT 2>&1 + rm "$BACKFILE"-2 + udevadm settle +diff --git a/tests/ts/libmount/loop-overlay b/tests/ts/libmount/loop-overlay +index fffb823c0..1ba6eb06e 100755 +--- a/tests/ts/libmount/loop-overlay ++++ b/tests/ts/libmount/loop-overlay +@@ -43,23 +43,34 @@ dd if="$IMG" of="$IMG" oflag=append bs=1024k count=5 conv=notrunc &>/dev/null + + echo "second should fail" >>$TS_OUTPUT + $TS_CMD_MOUNT -oloop "$IMG" "$TS_MOUNTPOINT-1" >> $TS_OUTPUT 2>&1 ++udevadm settle + $TS_CMD_MOUNT -oloop,offset=$OFFSET "$IMG" "$TS_MOUNTPOINT-2" 2>&1 \ + | sed 's/:.*:/: /; s/for .*/for /' >> $TS_OUTPUT ++udevadm settle + $TS_CMD_UMOUNT "$TS_MOUNTPOINT-1" >> $TS_OUTPUT 2>&1 ++udevadm settle + + echo "should succeed" >>$TS_OUTPUT + $TS_CMD_MOUNT -oloop,sizelimit=$OFFSET "$IMG" "$TS_MOUNTPOINT-1" >> $TS_OUTPUT 2>&1 ++udevadm settle + $TS_CMD_MOUNT -oloop,offset=$OFFSET "$IMG" "$TS_MOUNTPOINT-2" >> $TS_OUTPUT 2>&1 ++udevadm settle + $TS_CMD_UMOUNT "$TS_MOUNTPOINT-1" >> $TS_OUTPUT 2>&1 ++udevadm settle + $TS_CMD_UMOUNT "$TS_MOUNTPOINT-2" >> $TS_OUTPUT 2>&1 ++udevadm settle + + echo "both should fail" >>$TS_OUTPUT + LOOPDEV=$($TS_CMD_LOSETUP --show -f --offset 1 --sizelimit $OFFSET "$IMG") ++udevadm settle + $TS_CMD_MOUNT -oloop,sizelimit=$OFFSET "$IMG" "$TS_MOUNTPOINT-1" 2>&1 \ + | sed 's/:.*:/: /; s/for .*/for /' >> $TS_OUTPUT ++udevadm settle + $TS_CMD_MOUNT -oloop,offset=$OFFSET "$IMG" "$TS_MOUNTPOINT-2" 2>&1 \ + | sed 's/:.*:/: /; s/for .*/for /' >> $TS_OUTPUT ++udevadm settle + $TS_CMD_LOSETUP --detach $LOOPDEV ++udevadm settle + + ts_log "Success" + ts_finalize +-- +2.21.0 + diff --git a/SOURCES/0023-libblkid-fix-file-descriptor-leak-in-blkid_verify.patch b/SOURCES/0023-libblkid-fix-file-descriptor-leak-in-blkid_verify.patch new file mode 100644 index 0000000..1c2f1c8 --- /dev/null +++ b/SOURCES/0023-libblkid-fix-file-descriptor-leak-in-blkid_verify.patch @@ -0,0 +1,87 @@ +From e431bfeca0f3e7be2eba30be83260f20976f871d Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Wed, 31 Jul 2019 16:18:27 +0200 +Subject: [PATCH 23/24] libblkid: fix file descriptor leak in blkid_verify() + +The function blkid_verify() uses private device file descriptor and +uses blkid_probe_set_device() to assign the descriptor to low-level +probing code. Unfortunately, close() in this case is not enough as the +prober can internally open whole-disk device too. + +The library API has been extended so blkid_probe_set_device() +deallocates and close previously used prober for whole-disk. This new +functionality is used in blkid_verify() now. + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1734553 +Upstream: http://github.com/karelzak/util-linux/commit/c4d6d1c54dcd0eff701236d396d88b1fc6251768 +Signed-off-by: Karel Zak +--- + libblkid/src/probe.c | 19 ++++++++++++++++--- + libblkid/src/verify.c | 4 +++- + 2 files changed, 19 insertions(+), 4 deletions(-) + +diff --git a/libblkid/src/probe.c b/libblkid/src/probe.c +index 647ae416a..a6dc8416a 100644 +--- a/libblkid/src/probe.c ++++ b/libblkid/src/probe.c +@@ -848,10 +848,15 @@ failed: + * @off: begin of probing area + * @size: size of probing area (zero means whole device/file) + * +- * Assigns the device to probe control struct, resets internal buffers and +- * resets the current probing. ++ * Assigns the device to probe control struct, resets internal buffers, resets ++ * the current probing, and close previously associated device (if open by ++ * libblkid). + * +- * Returns: -1 in case of failure, or 0 on success. ++ * If @fd is < 0 than only resets the prober and returns 1. Note that ++ * blkid_reset_probe() keeps the device associated with the prober, but ++ * blkid_probe_set_device() does complete reset. ++ * ++ * Returns: -1 in case of failure, 0 on success and 1 on reset. + */ + int blkid_probe_set_device(blkid_probe pr, int fd, + blkid_loff_t off, blkid_loff_t size) +@@ -866,6 +871,11 @@ int blkid_probe_set_device(blkid_probe pr, int fd, + if ((pr->flags & BLKID_FL_PRIVATE_FD) && pr->fd >= 0) + close(pr->fd); + ++ if (pr->disk_probe) { ++ blkid_free_probe(pr->disk_probe); ++ pr->disk_probe = NULL; ++ } ++ + pr->flags &= ~BLKID_FL_PRIVATE_FD; + pr->flags &= ~BLKID_FL_TINY_DEV; + pr->flags &= ~BLKID_FL_CDROM_DEV; +@@ -881,6 +891,9 @@ int blkid_probe_set_device(blkid_probe pr, int fd, + pr->wipe_size = 0; + pr->wipe_chain = NULL; + ++ if (fd < 0) ++ return 1; ++ + #if defined(POSIX_FADV_RANDOM) && defined(HAVE_POSIX_FADVISE) + /* Disable read-ahead */ + posix_fadvise(fd, 0, 0, POSIX_FADV_RANDOM); +diff --git a/libblkid/src/verify.c b/libblkid/src/verify.c +index 7f44f5497..750378f8c 100644 +--- a/libblkid/src/verify.c ++++ b/libblkid/src/verify.c +@@ -184,9 +184,11 @@ blkid_dev blkid_verify(blkid_cache cache, blkid_dev dev) + dev->bid_name, (long long)st.st_rdev, dev->bid_type)); + } + +- blkid_reset_probe(cache->probe); ++ /* reset prober */ + blkid_probe_reset_superblocks_filter(cache->probe); ++ blkid_probe_set_device(cache->probe, -1, 0, 0); + close(fd); ++ + return dev; + } + +-- +2.21.0 + diff --git a/SOURCES/0024-findmnt-verify-ignore-passno-for-XFS.patch b/SOURCES/0024-findmnt-verify-ignore-passno-for-XFS.patch new file mode 100644 index 0000000..f0ed8c8 --- /dev/null +++ b/SOURCES/0024-findmnt-verify-ignore-passno-for-XFS.patch @@ -0,0 +1,73 @@ +From 3f6de92999cf63e234265f51d6ee02134bc75ac3 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Wed, 12 Jun 2019 11:02:51 +0200 +Subject: [PATCH 24/24] findmnt: (verify) ignore passno for XFS + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1719069 +Upstream: http://github.com/karelzak/util-linux/commit/f5b7bf155b9881de5b99cc0a23b4dccf9a2d4af3 +Signed-off-by: Karel Zak +--- + misc-utils/findmnt-verify.c | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/misc-utils/findmnt-verify.c b/misc-utils/findmnt-verify.c +index 1cc62def9..73e44a418 100644 +--- a/misc-utils/findmnt-verify.c ++++ b/misc-utils/findmnt-verify.c +@@ -28,7 +28,8 @@ struct verify_context { + int nwarnings; + int nerrors; + +- unsigned int target_printed : 1; ++ unsigned int target_printed : 1, ++ no_fsck : 1; + }; + + static void verify_mesg(struct verify_context *vfy, char type, const char *fmt, va_list ap) +@@ -408,6 +409,8 @@ static int verify_fstype(struct verify_context *vfy) + isauto = 1; + else if (strcmp(type, "swap") == 0) + isswap = 1; ++ else if (strcmp(type, "xfs") == 0) ++ vfy->no_fsck = 1; + + if (!isswap && !isauto && !none && !is_supported_filesystem(vfy, type)) + verify_warn(vfy, _("%s seems unsupported by the current kernel"), type); +@@ -422,6 +425,7 @@ static int verify_fstype(struct verify_context *vfy) + + if (realtype) { + isswap = strcmp(realtype, "swap") == 0; ++ vfy->no_fsck = strcmp(realtype, "xfs") == 0; + + if (type && !isauto && strcmp(type, realtype) != 0) + return verify_err(vfy, _("%s does not match with on-disk %s"), type, realtype); +@@ -440,7 +444,7 @@ static int verify_passno(struct verify_context *vfy) + int passno = mnt_fs_get_passno(vfy->fs); + const char *tgt = mnt_fs_get_target(vfy->fs); + +- if (tgt && strcmp("/", tgt) == 0 && passno != 1) ++ if (tgt && strcmp("/", tgt) == 0 && passno != 1 && !vfy->no_fsck) + return verify_warn(vfy, _("recommended root FS passno is 1 (current is %d)"), passno); + + return 0; +@@ -463,7 +467,7 @@ static int verify_filesystem(struct verify_context *vfy) + if (!rc) + rc = verify_fstype(vfy); + if (!rc) +- rc = verify_passno(vfy); ++ rc = verify_passno(vfy); /* depends on verify_fstype() */ + + return rc; + } +@@ -492,6 +496,8 @@ int verify_table(struct libmnt_table *tb) + + while (rc == 0 && (vfy.fs = get_next_fs(tb, itr))) { + vfy.target_printed = 0; ++ vfy.no_fsck = 0; ++ + if (check_order) + rc = verify_order(&vfy); + if (!rc) +-- +2.21.0 + diff --git a/SOURCES/0025-partx-don-t-report-ENXIO-as-error-on-d.patch b/SOURCES/0025-partx-don-t-report-ENXIO-as-error-on-d.patch new file mode 100644 index 0000000..0afeed4 --- /dev/null +++ b/SOURCES/0025-partx-don-t-report-ENXIO-as-error-on-d.patch @@ -0,0 +1,41 @@ +From be5e6b14db3cdd09dab711572116d7ee39344875 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Wed, 21 Aug 2019 10:51:18 +0200 +Subject: [PATCH 25/26] partx: don't report ENXIO as error on -d + +The errno ENXIO should be ignored, unfortunately the current code uses +variable 'rc' for ioctl return code as well as for final del_parts() +return value. So, failed ioctl (which should be ignored) affects all +del_parts() status. + + # modprobe scsi_debug dev_size_mb=100 + # partx -d --nr 1-1024 /dev/sdc; echo $? + 1 + +The device dos not contains any partitions, so 0 return code is +expected in this case. + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1739179 +Upstream: http://github.com/karelzak/util-linux/commit/53ae7d60cfeacd4e87bfe6fcc015b58b78ef4555 +Signed-off-by: Karel Zak +--- + disk-utils/partx.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/disk-utils/partx.c b/disk-utils/partx.c +index e3443ea80..f3dcc9007 100644 +--- a/disk-utils/partx.c ++++ b/disk-utils/partx.c +@@ -327,8 +327,7 @@ static int del_parts(int fd, const char *device, dev_t devno, + } + + for (i = lower; i <= upper; i++) { +- rc = partx_del_partition(fd, i); +- if (rc == 0) { ++ if (partx_del_partition(fd, i) == 0) { + if (verbose) + printf(_("%s: partition #%d removed\n"), device, i); + continue; +-- +2.21.0 + diff --git a/SOURCES/0026-partx-document-d-vs.-nr-and-fix-test.patch b/SOURCES/0026-partx-document-d-vs.-nr-and-fix-test.patch new file mode 100644 index 0000000..33b50ff --- /dev/null +++ b/SOURCES/0026-partx-document-d-vs.-nr-and-fix-test.patch @@ -0,0 +1,59 @@ +From 5a9269c019f9cb0b2d54444501beb74663670693 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Wed, 21 Aug 2019 13:42:22 +0200 +Subject: [PATCH 26/26] partx: document -d vs. --nr and fix test + +The commit ab025087f91b66ee8e23a16bc49eb0d9bd421d65 has disabled error +message, but unfortunately it keeps wrong return code. This has been fixed +by commit 53ae7d60cfeacd4e87bfe6fcc015b58b78ef4555. + +This commit add hit about it to docs and fix regression test too. + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1739179 +Upstream: http://github.com/karelzak/util-linux/commit/5200aa99d27e084b514e8b035db32f39b49562a3 +Signed-off-by: Karel Zak +--- + disk-utils/partx.8 | 5 ++++- + tests/ts/partx/partx | 9 +++++++-- + 2 files changed, 11 insertions(+), 3 deletions(-) + +diff --git a/disk-utils/partx.8 b/disk-utils/partx.8 +index af7313cb9..c6bbbae42 100644 +--- a/disk-utils/partx.8 ++++ b/disk-utils/partx.8 +@@ -53,7 +53,10 @@ Add the specified partitions, or read the disk and add all partitions. + Print the SIZE column in bytes rather than in human-readable format. + .TP + .BR \-d , " \-\-delete" +-Delete the specified partitions or all partitions. ++Delete the specified partitions or all partitions. It is not error to ++remove non-existing partitions, so this option is possible to use together with ++large \fB\-\-nr\fR ranges without care about the current partitions set on ++the device. + .TP + .BR \-g , " \-\-noheadings" + Do not print a header line with \fB\-\-show\fR or \fB\-\-raw\fR. +diff --git a/tests/ts/partx/partx b/tests/ts/partx/partx +index b21dc44ef..84c286a94 100755 +--- a/tests/ts/partx/partx ++++ b/tests/ts/partx/partx +@@ -137,9 +137,14 @@ udevadm settle + ts_init_subtest "delete-non-existent" + #attempt to remove it again + { ++ # remove non-existing partitions (ENXIO) is not error ++ # ++ # see ab025087f91b66ee8e23a16bc49eb0d9bd421d65 and ++ # 53ae7d60cfeacd4e87bfe6fcc015b58b78ef4555 ++ # + $TS_CMD_PARTX -d --nr $PARTS $TS_DEVICE && +- echo "partx failed: removed non-existing partition" || +- echo "partx: OK" ++ echo "partx: OK" || ++ echo "partx failed: removed non-existing partition" + } >$TS_OUTPUT 2>&1 + ts_finalize_subtest + +-- +2.21.0 + diff --git a/SOURCES/0027-libmount-improve-mountinfo-reliability.patch b/SOURCES/0027-libmount-improve-mountinfo-reliability.patch new file mode 100644 index 0000000..c78f9ad --- /dev/null +++ b/SOURCES/0027-libmount-improve-mountinfo-reliability.patch @@ -0,0 +1,396 @@ +From 32fe4f1dd8fbc104bd848e24de613122947f095a Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Wed, 28 Aug 2019 15:47:16 +0200 +Subject: [PATCH] libmount: improve mountinfo reliability +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The standard way how we read mount table is not reliable because +during the read() syscalls the table may be modified by some another +process. The changes in the table is possible to detect by poll() +event, and in this case it seems better to lseek to the begin of the file +and read it again. It's expensive, but better than races... + +This patch does not modify mountinfo parser, but it reads all file to +memory (by read()+poll()) and than it creates memory stream +from the buffer and use it rather than a regular file stream. + +It means the parser is still possible to use for normal files +(e.g. fstab) as well as for mountinfo and it's also portable to +systems where for some reason is no fmemopen(). + +Addresses: https://github.com/systemd/systemd/issues/10872 +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1751447 +Upstream: http://github.com/karelzak/util-linux/commit/e4925f591c1bfb83719418b56b952830d15b77eb +Upstream: http://github.com/karelzak/util-linux/commit/ee551c909f95437fd9fcd162f398c069d0ce9720 +Reported-by: Zbigniew Jędrzejewski-Szmek +Signed-off-by: Karel Zak +--- + configure.ac | 1 + + libmount/src/mountP.h | 2 + + libmount/src/tab_parse.c | 87 +++++++++++++++++---- + libmount/src/utils.c | 158 +++++++++++++++++++++++++++++++++++++++ + 4 files changed, 233 insertions(+), 15 deletions(-) + +diff --git a/configure.ac b/configure.ac +index a05a294ad..245004890 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -456,6 +456,7 @@ AC_CHECK_FUNCS([ \ + err \ + errx \ + explicit_bzero \ ++ fmemopen \ + fsync \ + utimensat \ + getdomainname \ +diff --git a/libmount/src/mountP.h b/libmount/src/mountP.h +index d47d26442..52a238ef3 100644 +--- a/libmount/src/mountP.h ++++ b/libmount/src/mountP.h +@@ -93,6 +93,7 @@ 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) +@@ -118,6 +119,7 @@ extern void mnt_free_filesystems(char **filesystems); + extern char *mnt_get_kernel_cmdline_option(const char *name); + extern int mnt_guess_system_root(dev_t devno, struct libmnt_cache *cache, char **path); + extern int mnt_stat_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 3ed84ebc2..10fc68279 100644 +--- a/libmount/src/tab_parse.c ++++ b/libmount/src/tab_parse.c +@@ -603,15 +603,7 @@ static int kernel_fs_postparse(struct libmnt_table *tb, + 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) ++static int __table_parse_stream(struct libmnt_table *tb, FILE *f, const char *filename) + { + int rc = -1; + int flags = 0; +@@ -685,6 +677,40 @@ 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 +@@ -700,18 +726,49 @@ err: + int mnt_table_parse_file(struct libmnt_table *tb, const char *filename) + { + FILE *f; +- int rc; ++ int rc, fd = -1; + + if (!filename || !tb) + return -EINVAL; + +- f = fopen(filename, "r" UL_CLOEXECSTR); ++ /* ++ * 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); ++ + if (f) { +- rc = mnt_table_parse_stream(tb, f, filename); ++ rc = __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; + } +@@ -768,7 +825,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) { +- mnt_table_parse_stream(tb, f, d->d_name); ++ __table_parse_stream(tb, f, d->d_name); + fclose(f); + } + } +@@ -809,7 +866,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) { +- mnt_table_parse_stream(tb, f, d->d_name); ++ __table_parse_stream(tb, f, d->d_name); + fclose(f); + } + } +diff --git a/libmount/src/utils.c b/libmount/src/utils.c +index c36187c07..f7d85d124 100644 +--- a/libmount/src/utils.c ++++ b/libmount/src/utils.c +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + #include + + #include "strutils.h" +@@ -408,6 +409,12 @@ 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: +@@ -1117,8 +1124,158 @@ 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; ++ ++ } else 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) ++{ ++ FILE *memf; ++ size_t sz = 0; ++ off_t cur; ++ ++ /* 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 ++ && (memf = fmemopen(*membuf, sz, "r"))) ++ return memf; ++ ++ /* error */ ++ 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]; +@@ -1300,6 +1457,7 @@ int main(int argc, char *argv[]) + { "--guess-root", test_guess_root, "[]" }, + { "--mkdir", test_mkdir, "" }, + { "--statfs-type", test_statfs_type, "" }, ++ { "--read-procfs", test_proc_read, "" }, + + { NULL } + }; +-- +2.21.0 + diff --git a/SOURCES/0028-libmount-use-fmemopen-in-more-robust-way-coverity-sc.patch b/SOURCES/0028-libmount-use-fmemopen-in-more-robust-way-coverity-sc.patch new file mode 100644 index 0000000..e356bf4 --- /dev/null +++ b/SOURCES/0028-libmount-use-fmemopen-in-more-robust-way-coverity-sc.patch @@ -0,0 +1,53 @@ +From d9fe56d8da9015694fcba5f3dd850becff677ab5 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Fri, 20 Sep 2019 13:00:19 +0200 +Subject: [PATCH] libmount: use fmemopen() in more robust way [coverity scan] + +Upstream: http://github.com/karelzak/util-linux/commit/026f7d302066a4e6f5a69dc9818ec3180939f4a3 +Upstream: http://github.com/karelzak/util-linux/commit/bc747dfccf511419312ec872cefa90e25d83136a +Addresses: http://bugzilla.redhat.com/show_bug.cgi?id=1751447 +Signed-off-by: Karel Zak +--- + libmount/src/utils.c | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +diff --git a/libmount/src/utils.c b/libmount/src/utils.c +index f7d85d124..04e79f53f 100644 +--- a/libmount/src/utils.c ++++ b/libmount/src/utils.c +@@ -1219,20 +1219,26 @@ success: + */ + FILE *mnt_get_procfs_memstream(int fd, char **membuf) + { +- FILE *memf; + 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 +- && (memf = fmemopen(*membuf, sz, "r"))) +- return memf; ++ 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 */ +- lseek(fd, cur, SEEK_SET); ++ if (cur != (off_t) -1) ++ lseek(fd, cur, SEEK_SET); + return NULL; + } + #else +-- +2.21.0 + diff --git a/SOURCES/0029-lscpu-use-the-first-VM-from-proc-sysinfo.patch b/SOURCES/0029-lscpu-use-the-first-VM-from-proc-sysinfo.patch new file mode 100644 index 0000000..9552768 --- /dev/null +++ b/SOURCES/0029-lscpu-use-the-first-VM-from-proc-sysinfo.patch @@ -0,0 +1,28 @@ +From 6f16035b81cd7feca02d6df8eff1bb954ed7e58d Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Tue, 4 Sep 2018 14:30:37 +0200 +Subject: [PATCH 29/32] lscpu: use the first VM from /proc/sysinfo + +Addresses: https://github.com/karelzak/util-linux/issues/685 +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1739443 +Upstream: http://github.com/karelzak/util-linux/commit/350f5c8df2cb6edbfb5bae95f00a9fff446d236c +Signed-off-by: Karel Zak +--- + sys-utils/lscpu.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c +index fd6d63bbf..1aa7bff4d 100644 +--- a/sys-utils/lscpu.c ++++ b/sys-utils/lscpu.c +@@ -866,6 +866,7 @@ read_hypervisor(struct lscpu_desc *desc, struct lscpu_modifier *mod) + *(str--) = '\0'; + while ((str = strstr(desc->hypervisor, " "))) + memmove(str, str + 1, strlen(str)); ++ break; + } + fclose(fd); + } +-- +2.21.0 + diff --git a/SOURCES/0030-tests-lscpu-s390-nested-virtualization.patch b/SOURCES/0030-tests-lscpu-s390-nested-virtualization.patch new file mode 100644 index 0000000..fa71cbc --- /dev/null +++ b/SOURCES/0030-tests-lscpu-s390-nested-virtualization.patch @@ -0,0 +1,206 @@ +From e10bdfc6cd623f02740cf2bcfd9867c56534c5e5 Mon Sep 17 00:00:00 2001 +From: Radka Skvarilova +Date: Sun, 22 Sep 2019 13:49:45 +0200 +Subject: [PATCH 30/32] tests: lscpu s390 nested virtualization + +Signed-off-by: Radka Skvarilova +Addresses:https://bugzilla.redhat.com/show_bug.cgi?id=1739443 +Upstream: http://github.com/karelzak/util-linux/commit/2062164894fffa314ecb7ac99dc6c98062484389 +--- + tests/expected/lscpu/lscpu-s390-nested-virt | 45 +++++++++++++++++++ + tests/ts/lscpu/dumps/s390-nested-virt.tar.gz | Bin 0 -> 7199 bytes + 2 files changed, 45 insertions(+) + create mode 100644 tests/expected/lscpu/lscpu-s390-nested-virt + create mode 100644 tests/ts/lscpu/dumps/s390-nested-virt.tar.gz + +diff --git a/tests/expected/lscpu/lscpu-s390-nested-virt b/tests/expected/lscpu/lscpu-s390-nested-virt +new file mode 100644 +index 000000000..2665fd8dc +--- /dev/null ++++ b/tests/expected/lscpu/lscpu-s390-nested-virt +@@ -0,0 +1,45 @@ ++CPU op-mode(s): 32-bit, 64-bit ++CPU(s): 2 ++On-line CPU(s) list: 0,1 ++Thread(s) per core: 1 ++Core(s) per socket: 1 ++Socket(s) per book: 1 ++Book(s) per drawer: 1 ++Drawer(s): 2 ++NUMA node(s): 1 ++Vendor ID: IBM/S390 ++Machine type: 2964 ++CPU dynamic MHz: 5000 ++CPU static MHz: 5000 ++BogoMIPS: 3033.00 ++Hypervisor: KVM/Linux ++Hypervisor vendor: KVM ++Virtualization type: full ++Dispatching mode: horizontal ++L1d cache: 256 KiB ++L1i cache: 192 KiB ++L2d cache: 4 MiB ++L2i cache: 4 MiB ++L3 cache: 64 MiB ++L4 cache: 480 MiB ++NUMA node0 CPU(s): 0,1 ++Vulnerability L1tf: Not affected ++Vulnerability Meltdown: Not affected ++Vulnerability Spec store bypass: Not affected ++Vulnerability Spectre v1: Mitigation; __user pointer sanitization ++Vulnerability Spectre v2: Mitigation; execute trampolines ++Flags: esan3 zarch stfle msa ldisp eimm dfp edat etf3eh highgprs te vx ++ ++# The following is the parsable format, which can be fed to other ++# programs. Each different item in every column has an unique ID ++# starting from zero. ++# CPU,Core,Socket,Node,,L1d,L1i,L2d,L2i ++0,0,0,0,,0,0,0,0 ++1,1,1,0,,1,1,1,1 ++ ++# The following is the parsable format, which can be fed to other ++# programs. Each different item in every column has an unique ID ++# starting from zero. ++# CPU,Core,Socket,Node,,L1d,L1i,L2d,L2i ++0,0,0,0,,0,0,0,0 ++1,1,1,0,,1,1,1,1 +diff --git a/tests/ts/lscpu/dumps/s390-nested-virt.tar.gz b/tests/ts/lscpu/dumps/s390-nested-virt.tar.gz +new file mode 100644 +index 0000000000000000000000000000000000000000..7992699925395ed8d33b1e1466b74fc1aa235268 +GIT binary patch +literal 7199 +zcmb7|dpK14zsFsYO}nPFYuZ%PMd^Z336(4*TcRer3sNpgD3MZbv80PMNo`w{G9oG0 +zqzEx26v{10($JJUV=(5n*7}?^*}wgq^E~G{&vW`mYx%D4_jCJx-mecD^A|aJ^PPv} +z6bJ7eib<%-zkE8l+t#n8FlzI-@}kEz)axa}w(L)lt9PBsIIOAv%}zn7;nQdi5~WYu +zJ{neZKDMS$*w*%R=W)|!D?0w%vFL^?&s?4AW{mpAeg7e#;9SqG91c9*fS(3`-H^qX +z)Y3P;zr?$Q=%Hctr>gQ-q}_}aRkprjf_!Sec}n^BcIEO=O+sXSYPld#Gv=x#>uuQE8!Mw%zW>{Khm+}=AL~*n*W=aKaa>K@OPx!P +zguV%1Gi}4PWz*(N3z^$bNkO8j|F|199x+Se`nIt}`;Lxl^yalL86sWBl5d$`PJFZV +zNm+ZiQo9+&DG_(p0SmlkLwX; +zO@+n&> +zb%o^pf&LUq1pBnAcfeJ))LRVEyaF(6Pp&pe3IqnMY=o3fvB>ABC4(bBCXz0skmYlS +zi$wF(I?npN{KE=h6QA-xwGq-frF{BXr4A8&CUy|cZ^c%MW~Mr9ewKdOQ~W)bmQfv+ +z`M!l$v}uz|+Fw*Es7>W1S^T-8fkg)C5>7EnE3PN@{FKlTbixS +zfy8@Xn-%}6h;2*oNQt=oW4LRxyKSgZM@z+~wgEAe9^o~KYx~^;O1{4vT_)AJepS20 +z{5hB1V{<^0-xU)e?Qck_kM=cbu1;>R=wTzei5qlT8?qBO46|tLpfP@QIGz~WXcMJ8 +zx_e}~74>b_j2~F(hfVWg?;m~GQQ`PfVKvHR8nJ`V37aE{p2`RgrzGppx2|nz)#B2t +z-sv~R*+k?6;@Cm_udEpTjoW(rbfn1)zP445P3fjpdtH4~T~n47eq`s*7-iBMyPlmN +z!TC0~&#fA(+IUg0R$$j1jW_Z);Au~9@**tU%J^C<+yq_)|)qy7SwoQFR$0X^XdL>exr?jmgB`g3E2;khu^{d +z8B|@1YPMOHKR?l>U_R-S$N7?o7G%w#qhVs +zjvqW;NB3JlI&hmFU5g#K{Y!MH|Ev!+yZR3pw=h*JMtc3JDF<%nT<^EOcHC|Bh2xPd +z$F0K)Lh3brR?MF6_Vm8>`oG1~-L{z7f7)$uY=s8m^iaLueEkRJu}9RF-SqVPj(g2Y +z9$gNynJ!44`~_z>J=Cm3G+pq`@B{OId6+U?pr-%9s$n<1+_U6h35XJ))*!N6w91iJ7lD;tI7KRQ_WvxKq> +z2ey?NHL!93#p3&%TbEh}`{2!3Y}K +z5K^4C@ogOc*m!uJSuXLT#@Hb@I`C|Q#ej-bTu*7`#rR1D#85=Ry?qOEg04iYySqQ} +z(Sn@TLwG<*e}B)0>>`|xhUjqpvR$!}gfE~F(S#62{my+E!Q8eLw+!i9O}goSfAD|n +zJ1>%YemGg=yZ%^Fq;OwFeMWaH0|JFSPRQ96CK-2pTG3&txZFz6RGgz8>bU;T8tLr2 +zAFrj8XIbMS`*$O}mO9Sn8K+|N`0Rxe;XTE}CZLr%vIZ>5{kbSI)Y>X6J4_&Z-@xMg +zYX}L??d34GUXO|7bfe~v$V;so30`?a;|uhn(OxAxSlZPj8i3$@CxtO7I&a5y(H`gD +z;KaE!3#F>oPxMj!Oz?etol7^O7-z!nk*?N)91c4e@7ot!XS+;iXQ}UoLdKT_%e3TaypeAq>>)@BUlb5t~uq@!2HVnAbrp>EvGRZ7pacX-)#p1l+c2)g +z@G2~qs`Yf|g-JyTb)YgVbH02DAvVy7Ib)pl(!Sklxx&O|?BN89H36~IMZmgv;((W7 +zf_5w4f>E|bdmP#HVAi3~s0o6NZiF<2I=DIWMD4Gy{Nr?oApg_g?BCN`5RL4{&jc$9 +zLO4AQh*G@JKVgO>`l#C}YC$9@uf~J_G=<+x!Q1sdq}K*;CKx^ZRiAgZzRQyv!l7AA +zbJ{EBG{A`6YcwyBh@I1Hteamn$IjgC?)$UNmv1Lch*)1iakv~93d7_k4?sVmdTw&& +zZ{GRD(!erWE1I71*|BIrwZP{Vj5+hy6<-$PEM*VyER(R?=k+0X>d)lVi+r8Cxv1_F +z!a`Akdb=7C4(5TQCm_@A!trPQtlDM)(q{&m+UpiHXzQfR@t&f4_yHU#y_%Nib-Y*J +z%LgtrPawbM5{#|Awv=#bF`^_Y)@y~(Azt!JwzAh}ltR$dL@R#9oxew!eVKCb^>(Pu +z{F0ep@bLFesn{tG^Qq)x6t&E6PHv$Zb@By5*fqw!^ydqRDXZ?q3$Miz&kuWZYg?Ys +zx_*BLSHoO!)|5IZii#zuHiwxdk%22jT~uPMs%cDh=%R +zPkr#DQTlAV_kPQu_WZdX+31`_5Ha;v`0|j7Gi)sz7tLT2=$l3&CTxOpV&gc_z3{Bh +z=;INLq1HeY@1#h4JY_E;F(-BMIqDwa^K@{mYz%z^i{vG;LZIbCG#^pv1=(WSLx}D{ +zZ^-r<97pO?=)R$Szmz3I&N&gXJ&fph7(*x@1j-shOCCoH`piKw6Q+HKpC8mE!td{H +z@f)OU-z=2=YZojc3%OmSYY?QccaC#j4|`g9E@2gJjz#&O*KYMtzdpk7aGy$RqRtgiSU&8PZD%HKwJ%-39g4vXA^vlCM +zg8oUVX)7!oMLbCJst&-^V$(bIptR&7FsCp@T15rImUZ!R&u+uC5zI+#kc*1fh7}U2 +zqk3Qw9)i_&biZ;pCDZ-B8+|D!MAg3j;dW6ssrb_Xn#zN?%}O87VOp0W1Wsx<$ox!5 +z=(lVZ)~6LY7hN~l*{avd=DC2fdeYBG=u9=8hEKaBpsDG>0J)UqR%;a9+_tM0$x56$ +zK2+Ejb{1!Kqe^#EaIGyO`C+*kt~o$&%#J_G^xXSfn|5T)ciol#oRZ6dQktj%nZEQ9 +z$8%7?@@_Tsb?lJ8`ohav&Zian2!@HU6P7OC{X+hQbp#*A77(*P3(!)c#}#O5FXrLb +zHiePq!zm5t)RTD_ZDrsUjHX&t1!@}3131(Hb^CcKqA~)7J8f~N!-|=j-rcZgu?5+- +zWbb^2&$aTonPZMq#g0_*=ApR(Y!BamzKh^6ub +ztsu7*$_V5d{46diPU(UQ30)-~&S(VVltD0)G88bfALPJ!9Bn{Uc9S<^0JQ^J^%(gH +z)SuXR4T8tvUJjIlMTJoqUhg(2Kr(^h42W7$6{-icMA#|Yf;9Sq7)CHHwN5yl@bxp4 +z;^ZAzB0s?PZjK{@g|HYdOzGvEDC$R70Br(IE;k?!djKn1jHnKBktaaGQL=oH5dw{e +zW%5!ej4C0NC%^@>2oDq8t8yd_hjTJVNUMSxVJ1PE@mHAGN#^1c0y#gynj(TPlk1XD +z^(Vk0U12kT(}%I^HzdM#1>uzWVKbUtFir~4jfCKW$4%*4=_S{zHzA?bKsANj?nBOFBK5FtR+CJmGY0}+Aj22SSTK89kQP$7zzc|-OfVL!AF +zIF*5wVmI1BdS@p7xxv5QPChH+F>*g0{%5}%VE!{HE*NqHcu&aUC7qoN4_O5u8e>LKRqWtQLg_e%1wK5OwfJAJNk_ZHh~~W4EDby2 +zx?Uo1T~?4#5^jUh3$O)^4^dr44;V#2++_;8Gz2F)1{gVhVOp`NKBG~!Z1$&?l=yOL|^alV4lq9Adf>SiV?_lJb_!zTCcL;K$iyMymO +z7e+W|NH5zJ~z2U2q$vu}`kyw-H;qgql2tyX75 +z@YjE?hO{B1M~$quPVm$C9~jZ#OfZIept3fuH5xj+nEhtsj`G(BI4g*_G;Bd`G~0%t +z2}dxxy7o8JvW7EDy0FxSV2y5-HE0Ye$ZddSD^ZJQLST%+MOCr`DvXjjw32dejQVdo +zE=389%BhwhDwBlZvqQY;)mBJ+J?3O7>#bWM?g1IIuYlYG{v}hgVa(-oGSg7EO8sbN +zmbcP=n?m##y9(>w!B~AFRPZr>^^@RFdXUy;oIlfz>_!6G+YF2+6|nl#^W(g$eer}J +zaHMZZVMq7nm2%xebYT*nCO`0#Av{c4OH5L}a8$?m2-OZ!NUhSS;B!{h#Q4}eceqi$ +z{(zwVN1ud6l9<}9+cP|F-D*@dRG_YDLf1M~HrwZ~AD7E7fV6t_yUP^;suu2CSAC;2 +zFMa@JPx#w>TD8GpUp;C;2uJKH +z*)^C!yrMS`?scQnF5zsCPFI>?Xhd!kdw<=DbA{>?OO4mz$_f%KnUSk;dh+Ws!uLE; +zUxjX63^5l;A~^N`B!cQOB(iMirv}%K&VARqrj`9&0Y}tGrO9nZ3+uQZCOUs5?EC9$ +zewNam0Vkz5aDR&_>}qBbX&DbZW=5C;^4$Y0O{F}81rng<6Z?nQdjkk96%XimsEijp +zlfBqR(5I8nRlC5@ej>0_j2OdtSqI$Mi+&=IDj<=BXRx^!jVF*q*rM=Rb~YGCm%bLK +zE|p^vY}FfNXC3Dm+#5$aCFqrZ7=kXLIpa=C$k;w36FGs^d*okRIf0J7O2;F>H9-3t +zJBoKWMay)byg@KgJahg4Ths0}CxE*BG|t2cwv02YInLBK9|=wy5p7aU(Dj|cq9FI9 +zj1q>1NCAv)iu>7tk)oZ#33do|`&egP_3u?#;SUWU7#yvI7Ac8b|#&x27nxzo7S4;LbOic}O={O(eHm@L`vAV7W? +zG+##5{Bp?DpX}m0I6x0p%@m6msua@fMNoZWP~fDUVw}i0Q|`Cm#GP!HY?M<$Q1ll; +zE2#k}Q@&v)`Pasb?hQS|n)^LXIf)4~JX*n%ur14lY13a(PAZ?A7fcQi +zXDjs`tW%QT9JSoL+~2ZLI=sHF9m*mI&$4`$ObPvpOC!hnXY79M=Bf}-OfZD#=!OW0 +zzG&JtwR7!)Dya7tG02U@5>_;hZtpxizHV4<_;3!?o(PM5^==e>@Y{Sb@|#~2EHfzk +zD23ZVzo9^qk4zS`CG6Kz?JU34LE6^q*yKA>DyM2B@v)pQ9J2ltI>A@gXpboBe`Nn+ +z9!5g541dzW$}8;Ww7}Z!0=DX2-1>+Kvh|`eO>rjWN+vFB3*fY2IpgGz^4Ey2PR+TD +zO+5RniAfhoNhjA-p=3zOnit5#mW%u}$Z;IG2(n-&;r{;@5s;rJlI={U^FQ^IcMd1z +zQoTxk5Y?T8hfidLviY<+i0DCoYLQ?X*XkDMwKvVsY=52==HQogHCNSaU{fqX}A +zkOf3i5~Z8ec8W?qpK2zBt#x4IOq1bAFT}|HBZLZ!uJVag{r_gU@1(IZnIvx%i34&3 +zG6WQOlW$ucn5{ +zu#r4nZ8C?>1TsF!93;4qT#yLcen!DT$|(Sf*omYBu8iP(!0F1rxhlud078RwD2^1{ +zbScsem#hC9xGC}=LhSS(0Fc3!Ozlw_yZi%gRPywPbX+(LW`weA +zEFzOfdOir-UZwI`T9wOJxz}oztS|i|7-R6@;6*#ok{6-{g?s;*@}_2Uv{qe8cn86y +zqicY1-V@6RBwnm(=ia?VusaD)Ebt1>_H?dGc;c1&=u|+?JnroMx?@Ins4+Vi`Xs;H +zxMI22>>g&?(t}_vaI<_mps%ZS8V?QG4PLpQzZzqE;6qRdzKl^LT7D-a)JR(x!TZ=k +z?dytfLT>BSXu?3(n}Ap2?1u?n&x;Vv@%29Y+Xlx3e1}V=y9CQhziKBB^>_Wf)#PO` +zF8U)R*4#HF?~wL4tSdeTeQs=78xgG)j#oQW57^&E95>#5vhURCtkw5VZK`Xk&bT&1 +zDNvtLYBFDgSN|l^TaXlxioC*oA0zDS%pDFCi}6bK5pfSYpKlPFe(-V51UhuD!#hE5 +z-ev!n8NEtgs#6s#-+x@-qa1s7{)Y0t2GQ)ZpC8&H37Qux_v9XW*HR;$Z`9--UOvG@ +zN8Cg6k1gt$p}P1M+T)hj;ii~S$KNj~R9+sdq15rK_Gmt@l!%YKHC^p?26q4MyKOpS +zFG^{559{WcKJ%+R>R(W^BjNp>vju{>TJBCkgx1>1=E{XW#~1rp9c@0gbW9M+*?z&; +zC2`K+e0u%1gndpubJxx;oNs$%b?Uaopn0OU+}vH+ZRx5!#)gwmw|x(In7(ONilSDEPQvdhzHIdew_fehzWdhp?ygHR<_H*HnYnEbAHb?&~xyc{O3f+*9uFTKMvF +zOWY$j`sKWp_@3SpdrSPL!EwhA;W@>7LNsed2X9orUF3O_dQMXBfb^7c)|`OTj?||= +z>JK)}W5Ln`KsT52lzut=IldpL$5-#qw2~ZQRlOi`T4AOL4LrQ7Q+}hHwZQ4)?>eWB +zZ5Tz?K12n%7Fl?;6s7wqJ~XS?Uw`UIsq5ZBhkVI{9p*~glkC5Jm0?<7`R3sCj!O{rZCCd0~ +zIIr9HSXh2}4>6kYz*oeOv?y08gcqc}7m0WhoN;$*01PN)0?WW#g1&9vQ@sVI5Kf_C +zL>l?0hn+7spQ(~U>losD5eLlqAfdy(%#t?GLy6<$L^6L29Lq3xwx$K4U*Zn3D=@?| +zMzb7aQ@m<8CnoBXaIMdn(-j^nxu34&C}%xS1E*Qw6P}-@p$O&tK5Aoc8 +zfs~KVRBB*Tt!u%>X>Vp~!pk@2x+z{wPlh4FCEgkQ=`U`fZ&mLb*y~xkKEqoj;5%~* +zIEoyZ8b$57IueL^y$@dA-1pFJKzVIq)g$6L&iXc!0}~a7_IHKP+K+Z0E%|!-<5&GN +zjw<3>&t*$l#oLY5zpl*rh#JY3yY@oXynfc^+#yH3=Th6Y4>g=J8YcKlFT!$u~ +zU}h$^s+Aj*!kGRmg5qdO&I&L3*^3Ul-?>~uq%5kE(CDVnT(u4M-CNUBNu%BUi2BJ! +zPh2=Jj;*RtaKQNx;WG2G9dMOuN8=8i|I6T(=e2y0NWti}1f_5D7?+p(_g_E(Hg(Yb +L#Syu9MY;b1+Xr6l + +literal 0 +HcmV?d00001 + +-- +2.21.0 + diff --git a/SOURCES/0031-chfn-don-t-append-extra-tailing-commas.patch b/SOURCES/0031-chfn-don-t-append-extra-tailing-commas.patch new file mode 100644 index 0000000..256b95f --- /dev/null +++ b/SOURCES/0031-chfn-don-t-append-extra-tailing-commas.patch @@ -0,0 +1,43 @@ +From 90d4faece26c328c40336a0e02b875515c503e30 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Mon, 19 Aug 2019 14:03:07 +0200 +Subject: [PATCH 31/32] chfn: don't append extra tailing commas + + # grep kzak /etc/passwd + kzak:x:1000:1000::/home/kzak:/bin/bash + + # chfn kzak + ... + grep kzak /etc/passwd + +old version: + kzak:x:1000:1000:Karel Zak,,,,:/home/kzak:/bin/bash + +fixed version: + kzak:x:1000:1000:Karel Zak:/home/kzak:/bin/bash + +Reported-by: Filip Dvorak +References: f723cbf544a7eac2927634f2cb6d802437a2d519 +Upstream: http://github.com/karelzak/util-linux/commit/9210c0d225fd808da451d86055bf243a8b47a525 +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1743555 +Signed-off-by: Karel Zak +--- + login-utils/chfn.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/login-utils/chfn.c b/login-utils/chfn.c +index c5312fa0c..4f32604c5 100644 +--- a/login-utils/chfn.c ++++ b/login-utils/chfn.c +@@ -377,7 +377,7 @@ static int save_new_data(struct chfn_control *ctl) + ctl->newf.other); + + /* remove trailing empty fields (but not subfields of ctl->newf.other) */ +- if (!ctl->newf.other) { ++ if (!ctl->newf.other || !*ctl->newf.other) { + while (len > 0 && gecos[len - 1] == ',') + len--; + gecos[len] = 0; +-- +2.21.0 + diff --git a/SOURCES/0032-tests-add-new-test-for-chfn-gecos.patch b/SOURCES/0032-tests-add-new-test-for-chfn-gecos.patch new file mode 100644 index 0000000..646efc0 --- /dev/null +++ b/SOURCES/0032-tests-add-new-test-for-chfn-gecos.patch @@ -0,0 +1,83 @@ +From 447b7d7222bf8cb3591d611aa51917bd4453f8d6 Mon Sep 17 00:00:00 2001 +From: Radka Skvarilova +Date: Mon, 16 Dec 2019 10:57:32 +0100 +Subject: [PATCH 32/32] tests: add new test for chfn gecos + +Addresses: http://bugzilla.redhat.com/show_bug.cgi?id=1743555 +Upstream: http://github.com/karelzak/util-linux/commit/02238bff663ce5fe823980d8119f3871cc348764 +Upstream: http://github.com/karelzak/util-linux/commit/b2ef43864f24b1a9c0c67fe2a7177a5110da1b6e +Signed-off-by: Karel Zak +--- + tests/commands.sh | 1 + + tests/expected/chfn/gecos | 6 ++++++ + tests/ts/chfn/gecos | 36 ++++++++++++++++++++++++++++++++++++ + 3 files changed, 43 insertions(+) + create mode 100644 tests/expected/chfn/gecos + create mode 100755 tests/ts/chfn/gecos + +diff --git a/tests/commands.sh b/tests/commands.sh +index 93100caf6..b56381c9e 100644 +--- a/tests/commands.sh ++++ b/tests/commands.sh +@@ -104,3 +104,4 @@ TS_CMD_UUIDPARSE=${TS_CMD_UUIDPARSE-"${ts_commandsdir}uuidparse"} + TS_CMD_WHEREIS=${TS_CMD_WHEREIS-"${ts_commandsdir}whereis"} + TS_CMD_WIPEFS=${TS_CMD_WIPEFS-"${ts_commandsdir}wipefs"} + TS_CMD_CHRT=${TS_CMD_CHRT-"${ts_commandsdir}chrt"} ++TS_CMD_CHFN=${TS_CMD_CHFN-"${ts_commandsdir}chfn"} +diff --git a/tests/expected/chfn/gecos b/tests/expected/chfn/gecos +new file mode 100644 +index 000000000..af7b81b6c +--- /dev/null ++++ b/tests/expected/chfn/gecos +@@ -0,0 +1,6 @@ ++Initialize user ++testuser_chfn_test:x:9899:9899::/home/testuser_chfn_test:/bin/bash ++Changing finger information for testuser_chfn_test. ++ ++Finger information changed. ++testuser_chfn_test:x:9899:9899:test_gecos:/home/testuser_chfn_test:/bin/bash +diff --git a/tests/ts/chfn/gecos b/tests/ts/chfn/gecos +new file mode 100755 +index 000000000..aad27d40a +--- /dev/null ++++ b/tests/ts/chfn/gecos +@@ -0,0 +1,36 @@ ++#!/bin/bash ++ ++# ++# Copyright (C) 2019 Radka Skvarilova ++# ++# This file is part of util-linux. ++# ++# This file is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This file is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++ ++TS_TOPDIR="${0%/*}/../.." ++TS_DESC="gecos" ++ ++. $TS_TOPDIR/functions.sh ++ts_init "$*" ++ ++ts_skip_nonroot ++ts_check_test_command "$TS_CMD_CHFN" ++ts_check_prog "useradd" ++ts_check_prog "userdel" ++ ++ts_log "Initialize user" ++useradd -u 9899 --shell /bin/bash testuser_chfn_test ++grep testuser /etc/passwd >> $TS_OUTPUT ++$TS_CMD_CHFN -f test_gecos testuser_chfn_test >>$TS_OUTPUT ++grep testuser /etc/passwd >> $TS_OUTPUT ++userdel --remove testuser_chfn_test &> /dev/null ++ts_finalize +-- +2.21.0 + diff --git a/SOURCES/0033-tests-update-lscpu-test-for-RHEL8.patch b/SOURCES/0033-tests-update-lscpu-test-for-RHEL8.patch new file mode 100644 index 0000000..8ba4702 --- /dev/null +++ b/SOURCES/0033-tests-update-lscpu-test-for-RHEL8.patch @@ -0,0 +1,83 @@ +From b30f84e240bd60a23508797e33a4777cbaa50949 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Tue, 17 Dec 2019 10:53:47 +0100 +Subject: [PATCH] tests: update lscpu test for RHEL8 + +The test is originally from upstream (~v2.35), but RHEL-8 uses older +version with a little different output -- RHEL-8 has no vulnerability +fields and it counts cache sizes in different way. + +Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1739443 +Signed-off-by: Karel Zak +--- + tests/expected/lscpu/lscpu-s390-nested-virt | 57 ++++++++++----------- + 1 file changed, 26 insertions(+), 31 deletions(-) + +diff --git a/tests/expected/lscpu/lscpu-s390-nested-virt b/tests/expected/lscpu/lscpu-s390-nested-virt +index 2665fd8dc..a6ab04f0b 100644 +--- a/tests/expected/lscpu/lscpu-s390-nested-virt ++++ b/tests/expected/lscpu/lscpu-s390-nested-virt +@@ -1,34 +1,29 @@ +-CPU op-mode(s): 32-bit, 64-bit +-CPU(s): 2 +-On-line CPU(s) list: 0,1 +-Thread(s) per core: 1 +-Core(s) per socket: 1 +-Socket(s) per book: 1 +-Book(s) per drawer: 1 +-Drawer(s): 2 +-NUMA node(s): 1 +-Vendor ID: IBM/S390 +-Machine type: 2964 +-CPU dynamic MHz: 5000 +-CPU static MHz: 5000 +-BogoMIPS: 3033.00 +-Hypervisor: KVM/Linux +-Hypervisor vendor: KVM +-Virtualization type: full +-Dispatching mode: horizontal +-L1d cache: 256 KiB +-L1i cache: 192 KiB +-L2d cache: 4 MiB +-L2i cache: 4 MiB +-L3 cache: 64 MiB +-L4 cache: 480 MiB +-NUMA node0 CPU(s): 0,1 +-Vulnerability L1tf: Not affected +-Vulnerability Meltdown: Not affected +-Vulnerability Spec store bypass: Not affected +-Vulnerability Spectre v1: Mitigation; __user pointer sanitization +-Vulnerability Spectre v2: Mitigation; execute trampolines +-Flags: esan3 zarch stfle msa ldisp eimm dfp edat etf3eh highgprs te vx ++CPU op-mode(s): 32-bit, 64-bit ++CPU(s): 2 ++On-line CPU(s) list: 0,1 ++Thread(s) per core: 1 ++Core(s) per socket: 1 ++Socket(s) per book: 1 ++Book(s) per drawer: 1 ++Drawer(s): 2 ++NUMA node(s): 1 ++Vendor ID: IBM/S390 ++Machine type: 2964 ++CPU dynamic MHz: 5000 ++CPU static MHz: 5000 ++BogoMIPS: 3033.00 ++Hypervisor: KVM/Linux ++Hypervisor vendor: KVM ++Virtualization type: full ++Dispatching mode: horizontal ++L1d cache: 128K ++L1i cache: 96K ++L2d cache: 2048K ++L2i cache: 2048K ++L3 cache: 65536K ++L4 cache: 491520K ++NUMA node0 CPU(s): 0,1 ++Flags: esan3 zarch stfle msa ldisp eimm dfp edat etf3eh highgprs te vx + + # The following is the parsable format, which can be fed to other + # programs. Each different item in every column has an unique ID +-- +2.21.0 + diff --git a/SOURCES/0034-tests-fdisk-make-sure-we-use-the-same-sizes-for-MD-d.patch b/SOURCES/0034-tests-fdisk-make-sure-we-use-the-same-sizes-for-MD-d.patch new file mode 100644 index 0000000..99cdd50 --- /dev/null +++ b/SOURCES/0034-tests-fdisk-make-sure-we-use-the-same-sizes-for-MD-d.patch @@ -0,0 +1,91 @@ +From 60f97394878d8b540ee6a4fb9c9edaae2f90d0d0 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Tue, 17 Dec 2019 18:10:31 +0100 +Subject: [PATCH] tests: (fdisk) make sure we use the same sizes for MD devices + +It seems on some kernels MD can return error if the devices in RAID +have different size + + # mdadm -q --create /dev/md8 --chunk=64 --level=0 --raid-devices=2 /dev/sda1 /dev/sda2 + mdadm: RUN_ARRAY failed: Unknown error 524 + + # dmesg + ... + [ 1485.148435] md/raid0:md8: cannot assemble multi-zone RAID0 with default_layout setting + [ 1485.152306] md/raid0: please set raid.default_layout to 1 or 2 + [ 1485.154050] md: pers->run() failed ... + [ 1485.154104] md: md8 stopped. + +Reference: https://bugzilla.redhat.com/show_bug.cgi?id=1784534 +Signed-off-by: Karel Zak +--- + tests/expected/fdisk/align-512-4K-md | 12 ++++++------ + tests/ts/fdisk/align-512-4K-md | 4 ++-- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/tests/expected/fdisk/align-512-4K-md b/tests/expected/fdisk/align-512-4K-md +index caca03154..3690c04c2 100644 +--- a/tests/expected/fdisk/align-512-4K-md ++++ b/tests/expected/fdisk/align-512-4K-md +@@ -16,7 +16,7 @@ Created a new . + Command (m for help): Partition type + p primary (1 primary, 0 extended, 3 free) + e extended (container for logical partitions) +-Select (default p): Partition number (2-4, default 2): First sector (43008-102399, default 43008): Last sector, +sectors or +size{K,M,G,T,P} (43008-102399, default 102399): ++Select (default p): Partition number (2-4, default 2): First sector (51199-102399, default 51200): Last sector, +sectors or +size{K,M,G,T,P} (51200-102399, default 102399): + Created a new . + + Command (m for help): Disk : 50 MiB, 52428800 bytes, 102400 sectors +@@ -27,8 +27,8 @@ Disklabel type: dos + Disk identifier: + + Device Boot Start End Sectors Size Id Type +-1 2048 43007 40960 20M 83 Linux +-2 43008 102399 59392 29M 83 Linux ++1 2048 51198 49151 24M 83 Linux ++2 51200 100350 49151 24M 83 Linux + + Command (m for help): The partition table has been altered. + Calling ioctl() to re-read partition table. +@@ -49,16 +49,16 @@ Created a new . + Command (m for help): Partition type + p primary (0 primary, 0 extended, 4 free) + e extended (container for logical partitions) +-Select (default p): Partition number (1-4, default 1): First sector (2048-100095, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-100095, default 100095): ++Select (default p): Partition number (1-4, default 1): First sector (2048-97791, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-97791, default 97791): + Created a new . + + Command (m for help): Partition type + p primary (1 primary, 0 extended, 3 free) + e extended (container for logical partitions) +-Select (default p): Partition number (2-4, default 2): First sector (22528-100095, default 22528): Last sector, +sectors or +size{K,M,G,T,P} (22528-100095, default 100095): ++Select (default p): Partition number (2-4, default 2): First sector (22528-97791, default 22528): Last sector, +sectors or +size{K,M,G,T,P} (22528-97791, default 97791): + Created a new . + +-Command (m for help): Disk : 48.9 MiB, 51249152 bytes, 100096 sectors ++Command (m for help): Disk : 47.8 MiB, 50069504 bytes, 97792 sectors + Units: sectors of 1 * 512 = 512 bytes + Sector size (logical/physical): 512 bytes / 4096 bytes + I/O size (minimum/optimal): 65536 bytes / bytes +diff --git a/tests/ts/fdisk/align-512-4K-md b/tests/ts/fdisk/align-512-4K-md +index 7f60a654f..68aaff0b7 100755 +--- a/tests/ts/fdisk/align-512-4K-md ++++ b/tests/ts/fdisk/align-512-4K-md +@@ -41,12 +41,12 @@ n + p + 1 + +-+20M +++49150 + n + p + 2 + +- +++49150 + p + w + q +-- +2.21.0 + diff --git a/SOURCES/adjtime b/SOURCES/adjtime new file mode 100644 index 0000000..3127bd0 --- /dev/null +++ b/SOURCES/adjtime @@ -0,0 +1,2 @@ +0.0 0 0.0 +0 diff --git a/SOURCES/util-linux-60-raw.rules b/SOURCES/util-linux-60-raw.rules new file mode 100644 index 0000000..abbf79d --- /dev/null +++ b/SOURCES/util-linux-60-raw.rules @@ -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. diff --git a/SOURCES/util-linux-chsh-chfn.pamd b/SOURCES/util-linux-chsh-chfn.pamd new file mode 100644 index 0000000..2dbc0aa --- /dev/null +++ b/SOURCES/util-linux-chsh-chfn.pamd @@ -0,0 +1,6 @@ +#%PAM-1.0 +auth sufficient pam_rootok.so +auth include system-auth +account include system-auth +password include system-auth +session include system-auth diff --git a/SOURCES/util-linux-login.pamd b/SOURCES/util-linux-login.pamd new file mode 100644 index 0000000..98e30d7 --- /dev/null +++ b/SOURCES/util-linux-login.pamd @@ -0,0 +1,17 @@ +#%PAM-1.0 +auth substack system-auth +auth include postlogin +account required pam_nologin.so +account include system-auth +password include system-auth +# pam_selinux.so close should be the first session rule +session required pam_selinux.so close +session required pam_loginuid.so +session optional pam_console.so +# pam_selinux.so open should only be followed by sessions to be executed in the user context +session required pam_selinux.so open +session required pam_namespace.so +session optional pam_keyinit.so force revoke +session include system-auth +session include postlogin +-session optional pam_ck_connector.so diff --git a/SOURCES/util-linux-remote.pamd b/SOURCES/util-linux-remote.pamd new file mode 100644 index 0000000..100ec98 --- /dev/null +++ b/SOURCES/util-linux-remote.pamd @@ -0,0 +1,15 @@ +#%PAM-1.0 +auth substack password-auth +auth include postlogin +account required pam_nologin.so +account include password-auth +password include password-auth +# pam_selinux.so close should be the first session rule +session required pam_selinux.so close +session required pam_loginuid.so +# pam_selinux.so open should only be followed by sessions to be executed in the user context +session required pam_selinux.so open +session required pam_namespace.so +session optional pam_keyinit.so force revoke +session include password-auth +session include postlogin diff --git a/SOURCES/util-linux-runuser-l.pamd b/SOURCES/util-linux-runuser-l.pamd new file mode 100644 index 0000000..7a9a48c --- /dev/null +++ b/SOURCES/util-linux-runuser-l.pamd @@ -0,0 +1,5 @@ +#%PAM-1.0 +auth include runuser +session optional pam_keyinit.so force revoke +-session optional pam_systemd.so +session include runuser diff --git a/SOURCES/util-linux-runuser.pamd b/SOURCES/util-linux-runuser.pamd new file mode 100644 index 0000000..37f0e84 --- /dev/null +++ b/SOURCES/util-linux-runuser.pamd @@ -0,0 +1,5 @@ +#%PAM-1.0 +auth sufficient pam_rootok.so +session optional pam_keyinit.so revoke +session required pam_limits.so +session required pam_unix.so diff --git a/SOURCES/util-linux-su-l.pamd b/SOURCES/util-linux-su-l.pamd new file mode 100644 index 0000000..656a139 --- /dev/null +++ b/SOURCES/util-linux-su-l.pamd @@ -0,0 +1,6 @@ +#%PAM-1.0 +auth include su +account include su +password include su +session optional pam_keyinit.so force revoke +session include su diff --git a/SOURCES/util-linux-su.pamd b/SOURCES/util-linux-su.pamd new file mode 100644 index 0000000..5733201 --- /dev/null +++ b/SOURCES/util-linux-su.pamd @@ -0,0 +1,15 @@ +#%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 +# Uncomment the following line to require a user to be in the "wheel" group. +#auth required pam_wheel.so use_uid +auth substack system-auth +auth include postlogin +account sufficient pam_succeed_if.so uid = 0 use_uid quiet +account include system-auth +password include system-auth +session include system-auth +session include postlogin +session optional pam_xauth.so diff --git a/SPECS/util-linux.spec b/SPECS/util-linux.spec new file mode 100644 index 0000000..22178a1 --- /dev/null +++ b/SPECS/util-linux.spec @@ -0,0 +1,3140 @@ +### Header +Summary: A collection of basic system utilities +Name: util-linux +Version: 2.32.1 +Release: 22%{?dist} +License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain +Group: System Environment/Base +URL: http://en.wikipedia.org/wiki/Util-linux + +### Macros +%define upstream_version %{version} +%define upstream_major %(eval echo %{version} | %{__sed} -e 's/\([[:digit:]]*\)\.\([[:digit:]]*\)\.[[:digit:]]*$/\1.\2/') + +%define compldir %{_datadir}/bash-completion/completions/ + +%if 0%{?fedora} >= 23 || 0%{?rhel} > 7 +%define pypkg python3 +%define pyver 3 +%else +%define pypkg python +%define pyver 2 +%endif + + +### Dependencies +BuildRequires: audit-libs-devel >= 1.0.6 +BuildRequires: gettext-devel +BuildRequires: libselinux-devel +BuildRequires: ncurses-devel +BuildRequires: pam-devel +BuildRequires: zlib-devel +BuildRequires: popt-devel +BuildRequires: libutempter-devel +Buildrequires: systemd-devel +BuildRequires: systemd +Buildrequires: libuser-devel +BuildRequires: libcap-ng-devel +BuildRequires: %{pypkg}-devel +BuildRequires: gcc +%ifarch ppc64le +BuildRequires: librtas-devel +%endif +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +BuildRequires: bison +BuildRequires: git-core + +### Sources +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: util-linux-60-raw.rules +Source5: adjtime +Source12: util-linux-su.pamd +Source13: util-linux-su-l.pamd +Source14: util-linux-runuser.pamd +Source15: util-linux-runuser-l.pamd + +### Obsoletes & Conflicts & Provides +Conflicts: initscripts < 9.79-4 +Conflicts: bash-completion < 1:2.1-1 +# su(1) and runuser(1) merged into util-linux v2.22 +Conflicts: coreutils < 8.20 +# eject has been merged into util-linux v2.22 +Obsoletes: eject <= 2.1.5 +Provides: eject = 2.1.6 +# rfkill has been merged into util-linux v2.31 +Obsoletes: rfkill <= 0.5 +Provides: rfkill = 0.5 +# 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: /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 +Requires: audit-libs >= 1.0.6 +Requires: libuuid = %{version}-%{release} +Requires: libblkid = %{version}-%{release} +Requires: libmount = %{version}-%{release} +Requires: libsmartcols = %{version}-%{release} +Requires: libfdisk = %{version}-%{release} + +### RHEL-8.0 +### +# 151635 - /var/log/secure spam finding lastlog +Patch0: 0000-login-create-var-log-lastlog.patch +# 1595882 - wipefs should erase also secondary LUKSv2 header +Patch1: 0001-libblkid-Check-for-a-secondary-LUKS2-header.patch +# 1614364 - losetup: /dev/loop1: failed to set up loop device +Patch2: 0002-losetup-keep-f-and-devname-mutually-exclusive.patch +# 1614852 - mount man page says sync option has no effect for ext4 +Patch3: 0003-mount-add-ext4-to-some-places-to-the-man-page.patch +# 1614843 - Man page of logger is missing -S option +Patch4: 0004-logger-add-S-to-the-man-page.patch +# 1614967 - Lslogins doesn't fail with nonexisting username +Patch5: 0005-lslogins-add-info-about-single-user-output-mode.patch +Patch6: 0006-lslogins-return-1-on-lslogins-nonexisting.patch +# 1624877 - libuuid: name-based UUIDs are not compatible with RFC4122 +Patch7: 0007-libuuid-fix-name-based-UUIDs.patch +Patch8: 0008-test-update-UUID-v5-tests.patch +# 1656437 - Failing tests from testsuite +Patch9: 0009-tests-enlarge-backing-file-for-fstab-btrfs.patch +Patch10: 0010-tests-make-lsns-netnsid-portable.patch +Patch11: 0011-tests-break-up-large-strings-for-PySys_WriteStdout.patch +# 1653781 - unable to umount by loop backing file +Patch12: 0012-libmount-umount-make-mnt_stat_mountpoin-usable-for-r.patch +# 1655650 - RHEL8.0 - fdisk -l shows the conflicting partitions name for the mpath +Patch13: 0013-libfdisk-Fix-multipath-partition-seperators-for-user.patch +# 1653413 - blkid: add --no-part-details to not return metadata from empty partitions +Patch14: 0014-blkid-make-PART_ENTRY_-tags-optional-add-no-part-det.patch + +### RHEL-8.1 +### +# 1681062 - Add gainting tests +Patch15: 0015-tests-add-missing-ts_check_test_command-calls.patch +Patch16: 0016-tests-add-use-system-commands.patch +Patch17: 0017-tests-kill-do-not-use-shell-build-in.patch +Patch18: 0018-tests-add-missing-TS_CMD_UMOUNT-check.patch +Patch19: 0019-tests-add-noskip-commands.patch +Patch20: 0020-tests-add-missing-program-checks.patch +Patch21: 0021-tests-check-for-tar-and-b-g-zip.patch +Patch22: 0022-tests-make-mount-oloop-use-more-robust.patch +# 1734553 - RHEL-8: blkid_get_dev() leak file descriptor to underlying block device +Patch23: 0023-libblkid-fix-file-descriptor-leak-in-blkid_verify.patch +# 1719069 - Findmnt warning "recommended root FS passno is 1" for XFS +Patch24: 0024-findmnt-verify-ignore-passno-for-XFS.patch +# 1739179 - partx failed on nvme devices with exit code 1 +Patch25: 0025-partx-don-t-report-ENXIO-as-error-on-d.patch +Patch26: 0026-partx-document-d-vs.-nr-and-fix-test.patch +# 1751447 - improve /proc/self/mountinfo reliability +Patch27: 0027-libmount-improve-mountinfo-reliability.patch +Patch28: 0028-libmount-use-fmemopen-in-more-robust-way-coverity-sc.patch + +### RHEL-8.2 +### +# 1739443 - lscpu reports wrong hypervisor in nested virt on s390x +Patch29: 0029-lscpu-use-the-first-VM-from-proc-sysinfo.patch +Patch30: 0030-tests-lscpu-s390-nested-virtualization.patch +# 1743555 - command chfn adds some useless commas with GECOS information into /etc/password +Patch31: 0031-chfn-don-t-append-extra-tailing-commas.patch +Patch32: 0032-tests-add-new-test-for-chfn-gecos.patch +# 1739443 - lscpu reports wrong hypervisor in nested virt on s390x +Patch33: 0033-tests-update-lscpu-test-for-RHEL8.patch +# CI fix +Patch34: 0034-tests-fdisk-make-sure-we-use-the-same-sizes-for-MD-d.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 +program. + + +%package -n libfdisk +Summary: Partitioning library for fdisk-like programs. +Group: Development/Libraries +License: LGPLv2+ +Requires: libuuid = %{version}-%{release} +Requires: libblkid = %{version}-%{release} + +%description -n libfdisk +This is library for fdisk-like programs, part of util-linux. + + +%package -n libfdisk-devel +Summary: Partitioning library for fdisk-like programs. +Group: Development/Libraries +License: LGPLv2+ +Requires: libfdisk = %{version}-%{release} +Requires: pkgconfig + +%description -n libfdisk-devel +This is development library and headers for fdisk-like programs, +part of util-linux. + + +%package -n libsmartcols +Summary: Formatting library for ls-like programs. +Group: Development/Libraries +License: LGPLv2+ + +%description -n libsmartcols +This is library for ls-like terminal programs, part of util-linux. + + +%package -n libsmartcols-devel +Summary: Formatting library for ls-like programs. +Group: Development/Libraries +License: LGPLv2+ +Requires: libsmartcols = %{version}-%{release} +Requires: pkgconfig + +%description -n libsmartcols-devel +This is development library and headers for ls-like terminal programs, +part of util-linux. + + +%package -n libmount +Summary: Device mounting library +Group: Development/Libraries +License: LGPLv2+ +Requires: libblkid = %{version}-%{release} +Requires: libuuid = %{version}-%{release} +Conflicts: filesystem < 3 + +%description -n libmount +This is the device mounting library, part of util-linux. + + +%package -n libmount-devel +Summary: Device mounting library +Group: Development/Libraries +License: LGPLv2+ +Requires: libmount = %{version}-%{release} +Requires: pkgconfig + +%description -n libmount-devel +This is the device mounting development library and headers, +part of util-linux. + + +%package -n libblkid +Summary: Block device ID library +Group: Development/Libraries +License: LGPLv2+ +Requires: libuuid = %{version}-%{release} +Conflicts: filesystem < 3 +Requires(post): coreutils + +%description -n libblkid +This is block device identification library, part of util-linux. + + +%package -n libblkid-devel +Summary: Block device ID library +Group: Development/Libraries +License: LGPLv2+ +Requires: libblkid = %{version}-%{release} +Requires: pkgconfig + +%description -n libblkid-devel +This is the block device identification development library and headers, +part of util-linux. + + +%package -n libuuid +Summary: Universally unique ID library +Group: Development/Libraries +License: BSD +Conflicts: filesystem < 3 + +%description -n libuuid +This is the universally unique ID library, part of util-linux. + +The libuuid library generates and parses 128-bit universally unique +id's (UUID's). A UUID is an identifier that is unique across both +space and time, with respect to the space of all UUIDs. A UUID can +be used for multiple purposes, from tagging objects with an extremely +short lifetime, to reliably identifying very persistent objects +across a network. + +See also the "uuid" package, which is a separate implementation. + +%package -n libuuid-devel +Summary: Universally unique ID library +Group: Development/Libraries +License: BSD +Requires: libuuid = %{version}-%{release} +Requires: pkgconfig + +%description -n libuuid-devel +This is the universally unique ID development library and headers, +part of util-linux. + +The libuuid library generates and parses 128-bit universally unique +id's (UUID's). A UUID is an identifier that is unique across both +space and time, with respect to the space of all UUIDs. A UUID can +be used for multiple purposes, from tagging objects with an extremely +short lifetime, to reliably identifying very persistent objects +across a network. + +See also the "uuid-devel" package, which is a separate implementation. + + +%package -n uuidd +Summary: Helper daemon to guarantee uniqueness of time-based UUIDs +Group: System Environment/Daemons +Requires: libuuid = %{version}-%{release} +License: GPLv2 +Requires: systemd +Requires(pre): shadow-utils +Requires(post): systemd-units +Requires(preun): systemd-units + +%description -n uuidd +The uuidd package contains a userspace daemon (uuidd) which guarantees +uniqueness of time-based UUID generation even at very high rates on +SMP systems. + + +%package -n %{pypkg}-libmount +Summary: Python bindings for the libmount library +Group: Development/Libraries +Requires: libmount = %{version}-%{release} +Requires: libblkid = %{version}-%{release} +Requires: libuuid = %{version}-%{release} +License: LGPLv2+ + +%description -n %{pypkg}-libmount +The libmount-python package contains a module that permits applications +written in the Python programming language to use the interface +supplied by the libmount library to work with mount tables (fstab, +mountinfo, etc) and mount filesystems. + + +%package -n util-linux-user +Summary: libuser based util-linux utilities +Group: System Environment/Base +Requires: util-linux = %{version}-%{release} +License: GPLv2 + +%description -n util-linux-user +chfn and chsh utilities with dependence on libuser + + +%prep +%autosetup -p1 -Sgit -n %{name}-%{upstream_version} + +%build +unset LINGUAS || : + +# unfortunately, we did changes to build-system +./autogen.sh + +# if we modify .po files by RHEL patches +rm -f po/stamp* + +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" +export DAEMON_CFLAGS="$SUID_CFLAGS" +export DAEMON_LDFLAGS="$SUID_LDFLAGS" +%configure \ + --disable-assert \ + --with-systemdsystemunitdir=%{_unitdir} \ + --disable-silent-rules \ + --disable-bfs \ + --disable-pg \ + --enable-chfn-chsh \ + --enable-usrdir-path \ + --enable-write \ + --enable-raw \ + --with-python=%{pyver} \ + --with-systemd \ + --with-udev \ + --with-selinux \ + --with-audit \ + --with-utempter \ + --disable-makeinstall-chown \ +%ifarch s390 s390x + --disable-hwclock \ + --disable-fdformat +%endif + +# build util-linux +make %{?_smp_mflags} + +%check +#to run tests use "--with check" +%if %{?_with_check:1}%{!?_with_check:0} +make check +%endif + + +%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}/var/log +touch ${RPM_BUILD_ROOT}/var/log/lastlog +chmod 0664 ${RPM_BUILD_ROOT}/var/log/lastlog + +# install util-linux +make install DESTDIR=${RPM_BUILD_ROOT} + +# 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 -d ${RPM_BUILD_ROOT}/run/uuidd +install -d ${RPM_BUILD_ROOT}/var/lib/libuuid + +# /etc/adjtime +install -m 644 %{SOURCE5} ${RPM_BUILD_ROOT}%{_sysconfdir}/adjtime + +# libtool junk +rm -rf ${RPM_BUILD_ROOT}%{_libdir}/*.la +rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.la +rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.a + +%ifarch %{sparc} +rm -rf ${RPM_BUILD_ROOT}%{_bindir}/sunhostid +cat << E-O-F > ${RPM_BUILD_ROOT}%{_bindir}/sunhostid +#!/bin/sh +# this should be _bindir/sunhostid or somesuch. +# Copyright 1999 Peter Jones, . +# GPL and all that good stuff apply. +( +idprom=\`cat /proc/openprom/idprom\` +echo \$idprom|dd bs=1 skip=2 count=2 +echo \$idprom|dd bs=1 skip=27 count=6 +echo +) 2>/dev/null +E-O-F +chmod 755 ${RPM_BUILD_ROOT}%{_bindir}/sunhostid +%endif + +# PAM settings +{ + pushd ${RPM_BUILD_ROOT}%{_sysconfdir}/pam.d + install -m 644 %{SOURCE1} ./login + install -m 644 %{SOURCE2} ./remote + install -m 644 %{SOURCE3} ./chsh + install -m 644 %{SOURCE3} ./chfn + install -m 644 %{SOURCE12} ./su + install -m 644 %{SOURCE13} ./su-l + install -m 644 %{SOURCE14} ./runuser + install -m 644 %{SOURCE15} ./runuser-l + popd +} + +%ifnarch s390 s390x +ln -sf hwclock ${RPM_BUILD_ROOT}%{_sbindir}/clock +echo ".so man8/hwclock.8" > ${RPM_BUILD_ROOT}%{_mandir}/man8/clock.8 +%endif + +# unsupported on SPARCs +%ifarch %{sparc} +for I in /sbin/sfdisk \ + %{_mandir}/man8/sfdisk.8* \ + /sbin/cfdisk \ + %{_mandir}/man8/cfdisk.8*; do + + rm -f $RPM_BUILD_ROOT$I +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 + +ln -sf ../proc/self/mounts %{buildroot}/etc/mtab + +# remove static libs +rm -f $RPM_BUILD_ROOT%{_libdir}/lib{uuid,blkid,mount,smartcols,fdisk}.a + +# temporary remove to avoid conflicts with bash-completion pkg +rm -f $RPM_BUILD_ROOT%{compldir}/{mount,umount} + +# find MO files +%find_lang %name + +# the files section supports only one -f option... +mv %{name}.lang %{name}.files + +# create list of setarch(8) symlinks +find $RPM_BUILD_ROOT%{_bindir}/ -regextype posix-egrep -type l \ + -regex ".*(linux32|linux64|s390|s390x|i386|ppc|ppc64|ppc32|sparc|sparc64|sparc32|sparc32bash|mips|mips64|mips32|ia64|x86_64|uname26)$" \ + -printf "%{_bindir}/%f\n" >> %{name}.files + +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:utmp /var/log/lastlog +chmod 0664 /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 +/sbin/ldconfig + +### 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 + +%postun -n libblkid -p /sbin/ldconfig + +%post -n libuuid -p /sbin/ldconfig +%postun -n libuuid -p /sbin/ldconfig + +%post -n libmount -p /sbin/ldconfig +%postun -n libmount -p /sbin/ldconfig + +%post -n libsmartcols -p /sbin/ldconfig +%postun -n libsmartcols -p /sbin/ldconfig + +%post -n libfdisk -p /sbin/ldconfig +%postun -n libfdisk -p /sbin/ldconfig + +%pre -n uuidd +getent group uuidd >/dev/null || groupadd -r uuidd +getent passwd uuidd >/dev/null || \ +useradd -r -g uuidd -d /var/lib/libuuid -s /sbin/nologin \ + -c "UUID generator helper daemon" uuidd +exit 0 + +# Please, keep uuidd running after installation! Note that systemd_post is +# "systemctl preset" and it enable/disable service only. +%post -n uuidd +%systemd_post uuidd.service +if [ $1 -eq 1 ]; then + /bin/systemctl start uuidd.service > /dev/null 2>&1 || : +fi + +%preun -n uuidd +%systemd_preun uuidd.service + +%postun -n uuidd +%systemd_postun_with_restart uuidd.service + + +%files -f %{name}.files +%defattr(-,root,root) +%doc README NEWS AUTHORS +%doc Documentation/deprecated.txt +%{!?_licensedir:%global license %%doc} +%license Documentation/licenses/* +%doc misc-utils/getopt-*.{bash,tcsh} + +%config(noreplace) %{_sysconfdir}/pam.d/login +%config(noreplace) %{_sysconfdir}/pam.d/remote +%config(noreplace) %{_sysconfdir}/pam.d/su +%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(0664,root,utmp) %verify(not md5 size mtime) /var/log/lastlog +%ghost %verify(not md5 size mtime) %config(noreplace,missingok) /etc/mtab + +%{_unitdir}/fstrim.* + +%{_bindir}/cal +%{_bindir}/chrt +%{_bindir}/col +%{_bindir}/colcrt +%{_bindir}/colrm +%{_bindir}/column +%{_bindir}/chmem +%{_bindir}/dmesg +%{_bindir}/eject +%{_bindir}/fallocate +%{_bindir}/fincore +%{_bindir}/findmnt +%{_bindir}/flock +%{_bindir}/getopt +%{_bindir}/hexdump +%{_bindir}/ionice +%{_bindir}/ipcmk +%{_bindir}/ipcrm +%{_bindir}/ipcs +%{_bindir}/isosize +%{_bindir}/kill +%{_bindir}/last +%{_bindir}/lastb +%{_bindir}/logger +%{_bindir}/look +%{_bindir}/lsblk +%{_bindir}/lscpu +%{_bindir}/lsipc +%{_bindir}/lslocks +%{_bindir}/lslogins +%{_bindir}/lsmem +%{_bindir}/lsns +%{_bindir}/mcookie +%{_bindir}/mesg +%{_bindir}/more +%{_bindir}/mountpoint +%{_bindir}/namei +%{_bindir}/nsenter +%{_bindir}/prlimit +%{_bindir}/raw +%{_bindir}/rename +%{_bindir}/renice +%{_bindir}/rev +%{_bindir}/script +%{_bindir}/scriptreplay +%{_bindir}/setarch +%{_bindir}/setpriv +%{_bindir}/setsid +%{_bindir}/setterm +%{_bindir}/taskset +%{_bindir}/ul +%{_bindir}/unshare +%{_bindir}/utmpdump +%{_bindir}/uuidgen +%{_bindir}/uuidparse +%{_bindir}/wall +%{_bindir}/wdctl +%{_bindir}/whereis +%{_mandir}/man1/cal.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/fallocate.1* +%{_mandir}/man1/fincore.1* +%{_mandir}/man1/flock.1* +%{_mandir}/man1/getopt.1* +%{_mandir}/man1/hexdump.1* +%{_mandir}/man1/ionice.1* +%{_mandir}/man1/ipcmk.1* +%{_mandir}/man1/ipcrm.1* +%{_mandir}/man1/ipcs.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/lsipc.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/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/scriptreplay.1* +%{_mandir}/man1/setpriv.1* +%{_mandir}/man1/setsid.1* +%{_mandir}/man1/setterm.1* +%{_mandir}/man1/su.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/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/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* +%{_mandir}/man8/rtcwake.8* +%{_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}/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 +%{_sbindir}/rfkill +%{_sbindir}/rtcwake +%{_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}/isosize +%{compldir}/last +%{compldir}/ldattach +%{compldir}/logger +%{compldir}/look +%{compldir}/losetup +%{compldir}/lsblk +%{compldir}/lscpu +%{compldir}/lsipc +%{compldir}/lslocks +%{compldir}/lslogins +%{compldir}/lsmem +%{compldir}/lsns +%{compldir}/mcookie +%{compldir}/mesg +%{compldir}/mkfs +%{compldir}/mkfs.cramfs +%{compldir}/mkfs.minix +%{compldir}/mkswap +%{compldir}/more +%{compldir}/mountpoint +%{compldir}/namei +%{compldir}/nsenter +%{compldir}/partx +%{compldir}/pivot_root +%{compldir}/prlimit +%{compldir}/raw +%{compldir}/readprofile +%{compldir}/rename +%{compldir}/renice +%{compldir}/resizepart +%{compldir}/rev +%{compldir}/rfkill +%{compldir}/rtcwake +%{compldir}/runuser +%{compldir}/script +%{compldir}/scriptreplay +%{compldir}/setarch +%{compldir}/setpriv +%{compldir}/setsid +%{compldir}/setterm +%{compldir}/su +%{compldir}/swaplabel +%{compldir}/swapoff +%{compldir}/swapon +%{compldir}/taskset +%{compldir}/ul +%{compldir}/unshare +%{compldir}/utmpdump +%{compldir}/uuidgen +%{compldir}/uuidparse +%{compldir}/wall +%{compldir}/wdctl +%{compldir}/whereis +%{compldir}/wipefs +%{compldir}/write +%{compldir}/zramctl + + +%ifnarch s390 s390x +%{_sbindir}/clock +%{_sbindir}/fdformat +%{_sbindir}/hwclock +%{_mandir}/man8/fdformat.8* +%{_mandir}/man8/hwclock.8* +%{_mandir}/man8/clock.8* +%{compldir}/fdformat +%{compldir}/hwclock +%endif + +%ifnarch %{sparc} +%{_sbindir}/cfdisk +%{_sbindir}/sfdisk +%{_mandir}/man8/cfdisk.8* +%{_mandir}/man8/sfdisk.8* +%{compldir}/cfdisk +%{compldir}/sfdisk +%endif + +%ifarch %{sparc} +%{_bindir}/sunhostid +%endif + + +%files -n util-linux-user +%config(noreplace) %{_sysconfdir}/pam.d/chfn +%config(noreplace) %{_sysconfdir}/pam.d/chsh +%attr(4711,root,root) %{_bindir}/chfn +%attr(4711,root,root) %{_bindir}/chsh +%{_mandir}/man1/chfn.1* +%{_mandir}/man1/chsh.1* +%{compldir}/chfn +%{compldir}/chsh + + +%files -n uuidd +%defattr(-,root,root) +%{!?_licensedir:%global license %%doc} +%license Documentation/licenses/COPYING.GPLv2 +%{_mandir}/man8/uuidd.8* +%{_sbindir}/uuidd +%{_unitdir}/uuidd.* +%dir %attr(2775, uuidd, uuidd) /var/lib/libuuid +%dir %attr(2775, uuidd, uuidd) /run/uuidd +%{compldir}/uuidd + + +%files -n libfdisk +%defattr(-,root,root) +%{!?_licensedir:%global license %%doc} +%license Documentation/licenses/COPYING.LGPLv2.1 libfdisk/COPYING +%{_libdir}/libfdisk.so.* + +%files -n libfdisk-devel +%defattr(-,root,root) +%{_libdir}/libfdisk.so +%{_includedir}/libfdisk +%{_libdir}/pkgconfig/fdisk.pc + + +%files -n libsmartcols +%defattr(-,root,root) +%{!?_licensedir:%global license %%doc} +%license Documentation/licenses/COPYING.LGPLv2.1 libsmartcols/COPYING +%{_libdir}/libsmartcols.so.* + +%files -n libsmartcols-devel +%defattr(-,root,root) +%{_libdir}/libsmartcols.so +%{_includedir}/libsmartcols +%{_libdir}/pkgconfig/smartcols.pc + + +%files -n libmount +%defattr(-,root,root) +%{!?_licensedir:%global license %%doc} +%license Documentation/licenses/COPYING.LGPLv2.1 libmount/COPYING +%{_libdir}/libmount.so.* + +%files -n libmount-devel +%defattr(-,root,root) +%{_libdir}/libmount.so +%{_includedir}/libmount +%{_libdir}/pkgconfig/mount.pc + + +%files -n libblkid +%defattr(-,root,root) +%doc libblkid/COPYING +%{_libdir}/libblkid.so.* + +%files -n libblkid-devel +%defattr(-,root,root) +%doc libblkid/COPYING +%{_libdir}/libblkid.so +%{_includedir}/blkid +%{_mandir}/man3/libblkid.3* +%{_libdir}/pkgconfig/blkid.pc + + +%files -n libuuid +%defattr(-,root,root) +%{!?_licensedir:%global license %%doc} +%license Documentation/licenses/COPYING.BSD-3 libuuid/COPYING +%{_libdir}/libuuid.so.* + +%files -n libuuid-devel +%defattr(-,root,root) +%{_libdir}/libuuid.so +%{_includedir}/uuid +%{_mandir}/man3/uuid.3* +%{_mandir}/man3/uuid_clear.3* +%{_mandir}/man3/uuid_compare.3* +%{_mandir}/man3/uuid_copy.3* +%{_mandir}/man3/uuid_generate.3* +%{_mandir}/man3/uuid_generate_random.3* +%{_mandir}/man3/uuid_generate_time.3* +%{_mandir}/man3/uuid_generate_time_safe.3* +%{_mandir}/man3/uuid_is_null.3* +%{_mandir}/man3/uuid_parse.3* +%{_mandir}/man3/uuid_time.3* +%{_mandir}/man3/uuid_unparse.3* +%{_libdir}/pkgconfig/uuid.pc + +%files -n %{pypkg}-libmount +%defattr(-, root, root) +%{!?_licensedir:%global license %%doc} +%license Documentation/licenses/COPYING.LGPLv2.1 libmount/COPYING +%{_libdir}/python*/site-packages/libmount/ + +%changelog +* Tue Dec 17 2019 Karel Zak 2.32.1-22 +- improve CI tests portability to rhel-8 kernel + +* Tue Dec 17 2019 Karel Zak 2.32.1-21 +- add git to BuildRequires due to autosetup -Sgit + +* Tue Dec 17 2019 Karel Zak 2.32.1-20 +- fix spec file typo + +* Tue Dec 17 2019 Karel Zak 2.32.1-19 +- fix test for #1739443 + +* Mon Dec 16 2019 Karel Zak 2.32.1-18 +- fix #1739443 - lscpu reports wrong hypervisor in nested virt on s390x +- fix #1743555 - command chfn adds some useless commas with GECOS information into /etc/password + +* Sat Sep 21 2019 Karel Zak 2.32.1-17 +- fix error path in mountinfo patch (#1751447) + +* Fri Sep 20 2019 Karel Zak 2.32.1-16 +- cleanup mountinfo libmount patch (#1751447) + +* Mon Sep 16 2019 Karel Zak 2.32.1-15 +- fix #1751447 - improve /proc/self/mountinfo reliability + +* Tue Sep 03 2019 Karel Zak 2.32.1-14 +- fix #1739179 - partx failed on nvme devices with exit code 1 + +* Mon Aug 05 2019 Karel Zak 2.32.1-13 +- fix #1734553 - blkid_get_dev() leak file descriptor to underlying block device +- fix #1719069 - findmnt warning "recommended root FS passno is 1" for XFS + +* Tue Jul 30 2019 Karel Zak 2.32.1-12 +- fix #1732769 - lscpu not showing Physical socket, chips information + +* Tue Jun 04 2019 Karel Zak 2.32.1-11 +- fix #1681062 - improve loopdev use in gating tests + +* Mon Jun 03 2019 Karel Zak 2.32.1-10 +- fix #1699310 - rpm -V setup fail on /var/log/lastlog +- fix #1702712 - pam_env bypassed for root user when using su + +* Tue Mar 05 2019 Karel Zak 2.32.1-9 +- fix #1681062 - implement gating tests + +* Tue Dec 11 2018 Karel Zak 2.32.1-8 +- fix #1658206 - improve dependence between subpackages + +* Tue Dec 11 2018 Karel Zak 2.32.1-7 +- fix #1656437 - Failing tests from testsuite +- fix #1653781 - unable to umount by loop backing file +- fix #1655650 - RHEL8.0 - fdisk -l shows the conflicting partitions name for the mpath +- fix #1653413 - blkid: add --no-part-details to not return metadata from empty partitions + +* Tue Sep 04 2018 Karel Zak 2.32.1-6 +- fix #1624877 - libuuid: name-based UUIDs are not compatible with RFC4122 + +* Mon Aug 13 2018 Karel Zak 2.32.1-5 +- fix #1614967 - Lslogins doesn't fail with nonexisting username +- cleanup patches list + +* Fri Aug 10 2018 Karel Zak 2.32.1-4 +- fix #1614364 - losetup: /dev/loop1: failed to set up loop device +- fix #1614852 - mount man page says sync option has no effect for ext4 +- fix #1614843 - Man page of logger is missing -S option + +* Wed Aug 08 2018 Karel Zak 2.32.1-3 +- refresh lastlog patch +- fix #1595882 - wipefs should erase also secondary LUKSv2 header + +* Thu Aug 2 2018 Karel Zak - 2.32.1-2 +* rebuild to verify build flags + +* Tue Jul 17 2018 Karel Zak - 2.32.1-1 +- upgrade to v2.32.1 + http://www.kernel.org/pub/linux/utils/util-linux/v2.32/v2.32.1-ReleaseNotes + +* Tue Jun 12 2018 Charalampos Stratakis - 2.32-4 +- Build only the python3 bindings + +* Thu May 24 2018 Karel Zak - 2.32-3 +- sync spec file with Fedora +- move /etc/adjtime config from initscripts to util-linux +- fix #1560642 - uuidd.service does not start +- remove unused build option --enable-libmount-force-mountinfo (it's default now) +- disable assert code + +* Tue Mar 27 2018 Karel Zak - 2.32-2 +- fix #1560283 - column does not properly handle spaces at beginning of tab-separated table columns + +* Wed Mar 21 2018 Karel Zak - 2.32-1 +- upgrade to v2.32 + +* Tue Feb 20 2018 Karel Zak - 2.32-0.2 +- add BuildRequires gcc + +* Tue Feb 13 2018 Karel Zak - 2.32-0.1 +- upgrade to v2.32-rc1 + http://www.kernel.org/pub/linux/utils/util-linux/v2.32/v2.32-ReleaseNotes + +* Fri Feb 09 2018 Fedora Release Engineering - 2.31-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Jan 20 2018 Björn Esser - 2.31-4 +- Rebuilt for switch to libxcrypt + +* Wed Jan 03 2018 Lumír Balhar - 2.31-3 +- Fix directory ownership in python subpackage + +* Mon Oct 30 2017 Karel Zak - 2.31-2 +- fix dmesg for multi-line records + +* Mon Oct 23 2017 Karel Zak - 2.31-1 +- upgrade to final v2.31 +- move rfkill to sbin (for backward compatibility) + +* Mon Oct 9 2017 Karel Zak - 2.31-0.4 +- fix build error + +* Mon Oct 9 2017 Karel Zak - 2.31-0.3 +- upgrade to v2.31-rc2 +- enable rfkill + +* Mon Sep 25 2017 Karel Zak - 2.31-0.2 +- temporary disable rfkill (fix #1494855) + +* Fri Sep 22 2017 Karel Zak - 2.31-0.1 +- upgrade to v2.31-rc1 + http://ftp.kernel.org/pub/linux/utils/util-linux/v2.31/v2.31-ReleaseNotes + +* Fri Sep 22 2017 Karel Zak - 2.30.2-1 +- upgrade to v2.30.2 + http://ftp.kernel.org/pub/linux/utils/util-linux/v2.30/v2.30.2-ReleaseNotes + +* Mon Aug 14 2017 Karel Zak - 2.30.1-5 +- make ln-s usage more robust + +* Fri Aug 4 2017 Karel Zak - 2.30.1-4 +- fix post install script + +* Wed Aug 2 2017 Karel Zak - 2.30.1-3 +- fix #1390191 - systemd read-only container produces errors + +* Thu Jul 27 2017 Fedora Release Engineering - 2.30.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jul 20 2017 Karel Zak - 2.30.1-1 +- upgrade to v2.30.1 + http://ftp.kernel.org/pub/linux/utils/util-linux/v2.30/v2.30.1-ReleaseNotes + +* Fri Jun 2 2017 Karel Zak - 2.30-1 +- upgrade to v2.30 + +* Wed May 17 2017 Karel Zak - 2.30-0.1 +- upgrade to v2.30-rc1 + http://ftp.kernel.org/pub/linux/utils/util-linux/v2.30/v2.30-ReleaseNotes + +* Fri Feb 24 2017 Karel Zak - 2.29.2-1 +- upgrade to v2.29.2 + http://ftp.kernel.org/pub/linux/utils/util-linux/v2.29/v2.29.2-ReleaseNotes + +* Sat Feb 11 2017 Fedora Release Engineering - 2.29.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Jan 20 2017 Karel Zak - 2.29.1-1 +- upgrade to v2.29.1 + http://ftp.kernel.org/pub/linux/utils/util-linux/v2.29/v2.29.1-ReleaseNotes + +* Mon Dec 19 2016 Miro Hrončok - 2.29-2 +- Rebuild for Python 3.6 + +* Tue Nov 8 2016 Karel Zak - 2.29-1 +- upgrade to v2.29 + +* Wed Oct 19 2016 Karel Zak - 2.29-0.2 +- upgrade to v2.29-rc2 + +* Fri Sep 30 2016 Karel Zak - 2.29-0.1 +- upgrade to v2.29-rc1 + http://ftp.kernel.org/pub/linux/utils/util-linux/v2.29/v2.29-ReleaseNotes + +* Wed Sep 7 2016 Karel Zak - 2.28.2-1 +- upgrade to stable 2.28.2 + http://ftp.kernel.org/pub/linux/utils/util-linux/v2.28/v2.28.2-ReleaseNotes + +* Thu Aug 18 2016 Karel Zak - 2.28.1-1 +- upgrade to stable 2.28.1 + http://ftp.kernel.org/pub/linux/utils/util-linux/v2.28/v2.28.1-ReleaseNotes + +* Tue Jul 19 2016 Fedora Release Engineering - 2.28-4 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Mon Jun 13 2016 Karel Zak - 2.28-3 +- fix #1234317 - CD / DVD are rarely automounted + +* Tue Apr 26 2016 Karel Zak - 2.28-2 +- refresh login-lastlog-create.patch + +* Tue Apr 12 2016 Karel Zak - 2.28-1 +- upgrade to stable v2.28 + +* Wed Mar 30 2016 Karel Zak - 2.28-0.3 +- fix libblkid + +* Tue Mar 29 2016 Karel Zak - 2.28-0.2 +- upgrade to v2.28-rc2 + +* Tue Mar 22 2016 Karel Zak - 2.28-0.1 +- upgrade to v2.28-rc1 + http://ftp.kernel.org/pub/linux/utils/util-linux/v2.28/v2.28-ReleaseNotes +- add patch to fix broken swapon +- add subpackage util-linux-user (utils with dependence on libuser) + +* Fri Feb 05 2016 Fedora Release Engineering - 2.27.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Jan 18 2016 Karel Zak - 2.27.1-4 +- fix #1299255 - boot.iso (from 20160117 Rawhide compose) incorrectly detected as minix FS + +* Wed Nov 18 2015 Karel Zak - 2.27.1-3 +- fix #1259745 - Can't start installation in Rawhide or F23 recent development images + +* Tue Nov 10 2015 Fedora Release Engineering - 2.27.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + +* Mon Nov 2 2015 Karel Zak - 2.27.1 +- upgrade to v2.27.1 + http://ftp.kernel.org/pub/linux/utils/util-linux/v2.27/v2.27.1-ReleaseNotes + +* Mon Sep 7 2015 Karel Zak - 2.27 +- upgrade to v2.27 + +* Mon Aug 24 2015 Karel Zak - 2.27-0.4 +- upgrade to v2.27-rc2 + +* Thu Aug 13 2015 Karel Zak - 2.27-0.3 +- improve version usage in source url + +* Wed Aug 12 2015 Karel Zak - 2.27-0.2 +- fix #1251320 - rfe: please change login to not add /bin:/sbin to $PATH +- apply patches from Lokesh Mandvekar to make spec file more portable + +* Fri Jul 31 2015 Karel Zak - 2.27-0.1 +- upgrade to v2.27-rc1 + http://ftp.kernel.org/pub/linux/utils/util-linux/v2.27/v2.27-ReleaseNotes +- add lsipc + +* Thu Jul 16 2015 Karel Zak - 2.26.2-3 +- fix dates in the spec file + +* Fri Jun 19 2015 Fedora Release Engineering - 2.26.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Apr 30 2015 Karel Zak - 2.26.2-1 +- upgrade to stable release 2.26.2 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.26/v2.26.2-ReleaseNotes + +* Sat Feb 21 2015 Till Maas - 2.26-2 +- Rebuilt for Fedora 23 Change + https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code + +* Thu Feb 19 2015 Karel Zak 2.26-1 +- upgrade to stable release 2.26 + +* Tue Feb 10 2015 Karel Zak 2.26-0.4 +- fix setarch build on PPC + +* Thu Feb 5 2015 Karel Zak 2.26-0.3 +- upgrade to 2.26-rc2 + +* Fri Jan 16 2015 Karel Zak 2.26-0.2 +- fix 1182778 - remount causes ro / and /home on boot + +* Thu Jan 15 2015 Karel Zak 2.26-0.1 +- upgrade to 2.26-rc1 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.26/v2.26-ReleaseNotes +- build with -pie for uuidd +- new command zramctl + +* Thu Nov 27 2014 Karel Zak 2.25.2-2 +- fix #1168490 - CVE-2014-9114 util-linux: command injection flaw in blkid + +* Fri Oct 24 2014 Karel Zak 2.25.2-1 +- upgrade to stable 2.25.2 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/v2.25.2-ReleaseNotes + +* Wed Sep 3 2014 Karel Zak 2.25.1-1 +- upgrade to stable 2.25.1 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/v2.25.1-ReleaseNotes + +* Wed Aug 27 2014 Karel Zak 2.25.1-0.1 +- upgrade to release 2.25.1-rc1 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/v2.25.1-ReleaseNotes + +* Mon Aug 18 2014 Fedora Release Engineering - 2.25-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Wed Aug 6 2014 Tom Callaway 2.25-3 +- fix license handling + +* Thu Jul 24 2014 Karel Zak 2.25-2 +- remove fstrim unit files from uuidd subpackage + +* Tue Jul 22 2014 Karel Zak 2.25-1 +- upgrade to stable release 2.25 + +* Wed Jul 02 2014 Karel Zak 2.25-0.3 +- upgrade to release 2.25-rc2 + +* Wed Jun 25 2014 Peter Jones - 2.25-0.2 +- Fix libblkid's squashfs probe return checking. + Related: rhbz#1112315 + +* Thu Jun 19 2014 Karel Zak 2.25-0.1 +- upgrade to release 2.25-rc1 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/v2.25-ReleaseNotes + +* Sun Jun 08 2014 Fedora Release Engineering - 2.24.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Wed May 28 2014 Kalev Lember - 2.24.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4 + +* Mon May 12 2014 Karel Zak 2.24.2-4 +- fix #1094935 - script and/or trigger should not directly enable systemd units + +* Mon May 12 2014 Karel Zak 2.24.2-3 +- fix #1090638 - remove pam_securetty.so from .pamd files + +* Wed May 7 2014 Karel Zak 2.24.2-2 +- use systemd macroized scriptlets (#850355) + +* Thu Apr 24 2014 Karel Zak 2.24.2-1 +- upgrade to stable release 2.24.2 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.24/v2.24.2-ReleaseNotes + +* Thu Jan 30 2014 Karel Zak 2.24.1-2 +- use rpm autosetup + +* Mon Jan 20 2014 Karel Zak 2.24.1-1 +- upgrade to stable release 2.24.1 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.24/v2.24.1-ReleaseNotes + +* Mon Nov 18 2013 Karel Zak 2.24-2 +- fix #1031262 - lsblk -D segfault + +* Wed Oct 23 2013 Karel Zak 2.24-1 +- upgrade to upstream release v2.24 +- remove nologin (merged upstream) +- fix #1022217 - fdisk mishandles GPT corruption + +* Fri Sep 27 2013 Karel Zak 2.24-0.1 +- upgrade to upstream release v2.24-rc1 +- add python3 libmount binding + +* Mon Sep 9 2013 Karel Zak 2.23.2-4 +- fix #1005566 - recount_geometry: Process /usr/sbin/fdisk was killed by signal 8 (SIGFPE) +- fix #1005194 - su generates incorrect log entries + +* Mon Sep 9 2013 Karel Zak 2.23.2-3 +- refresh and rename patches +- fix #987787 - Remove lastlogin from su +- fix #950497 - problem umounting loop device +- fix #921498 - multiple internal testsuite failures + +* Thu Aug 1 2013 Karel Zak 2.23.2-2 +- fix 990083 - su doesn't work with pam_ecryptfs + +* Wed Jul 31 2013 Karel Zak 2.23.2-1 +- upgrade to stable release 2.23.2 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.23/v2.23.2-ReleaseNotes + +* Thu Jun 13 2013 Karel Zak 2.23.1-3 +- fix #972457 - agetty idle I/O polling causes elevated CPU usage + +* Wed Jun 5 2013 Karel Zak 2.23.1-2 +- fix #962145 - in.telnetd immediately closes connection + +* Tue May 28 2013 Karel Zak 2.23.1-1 +- upgrade to 2.23.1 +- backport agetty --local-line path + +* Thu Apr 25 2013 Karel Zak 2.23-1 +- upgrade to 2.23 +- add --with check to call make check + +* Mon Apr 15 2013 Karel Zak 2.23-0.7 +- remove unused patches + +* Mon Apr 15 2013 Karel Zak 2.23-0.6 +- remove floppy from util-linux + +* Fri Apr 12 2013 Karel Zak 2.23-0.5 +- fix #948274 - interruption code 0x4003B in libmount.so.1.1.0 + +* Wed Apr 10 2013 Karel Zak 2.23-0.4 +- upgrade to the release 2.23-rc2 + +* Wed Mar 27 2013 Karel Zak 2.23-0.3 +- libblkid ntfs bugfix for build on s390 + +* Wed Mar 27 2013 Karel Zak 2.23-0.2 +- add upstream patches for to fix umount and mount. + +* Fri Mar 22 2013 Karel Zak 2.23-0.1 +- upgrade to the release 2.23-rc1 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.23/v2.23-ReleaseNotes +- add nsenter and blkdiscard +- remove tunelp + +* Wed Feb 20 2013 Karel Zak 2.22.2-6 +- fix #912778 - "runuser -l" doesn't register session to systemd + +* Tue Feb 19 2013 Karel Zak 2.22.2-5 +- fix #902512 - Dependency failed for /home (and blkid fails to tell UUID) +- refresh old patches + +* Wed Feb 6 2013 Karel Zak 2.22.2-4 +- improve convertion to mtab symlink in post script +- spec file cleanup (based on #894199) + +* Sun Feb 3 2013 Karel Zak 2.22.2-3 +- fix #882305 - agetty: unstable /dev/tty* permissions +- fix #885314 - hexdump segfault +- fix #896447 - No newlines in piped "cal" command +- fix libblkid cache usage (upstream patch) +- fix #905008 - uuidd: /usr/sbin/uuidd has incorrect file permissions + +* Tue Jan 15 2013 Karel Zak 2.22.2-2 +- fix #889888 - wipefs does not completely wipe btrfs volume + +* Thu Dec 13 2012 Karel Zak 2.22.2-1 +- upgrade to upstream maintenance release 2.22.2 + +* Mon Nov 19 2012 Karel Zak 2.22.1-5 +- sources cleanup + +* Fri Nov 16 2012 Karel Zak 2.22.1-4 +- fix #872787 - su: COMMAND not specified + +* Thu Nov 1 2012 Karel Zak 2.22.1-3 +- backport upstream runuser(1) +- enable su(1) + +* Thu Nov 1 2012 Karel Zak 2.22.1-2 +- apply pathes from upstream stable/v2.22 branch +- fix #865961 - wipefs -a should use O_EXCL + +* Wed Oct 10 2012 Karel Zak 2.22.1-1 +- upgrade to the release 2.22.1 + +* Wed Oct 3 2012 Karel Zak 2.22-2 +- remove obsolete references to e2fsprogs + +* Thu Sep 6 2012 Karel Zak 2.22-1 +- upgrade to the release 2.22 +- enable eject(1) from util-linux, obsolete original eject package +- fix #853164 - setuid program should have full RELRO +- fix #851230 - probe_ntfs: /usr/sbin/blkid was killed by SIGSEGV + +* Thu Aug 16 2012 Karel Zak 2.22-0.1 +- upgrade to the release 2.22-rc2 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.22/v2.22-ReleaseNotes +- add sulogin, utmpdump, lslocks, wdctl + +* Fri Jul 27 2012 Fedora Release Engineering - 2.21.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Jun 13 2012 Karel Zak 2.21.2-2 +- replace udev dependenceis with systemd + +* Fri May 25 2012 Karel Zak 2.21.2-1 +- upgrade to bugfix release 2.21.2 +- fix #814699 - namei(1) incorrectly resolves relative symlinks +- fix #820707 - Impossible to unmount nfsv4/krb5 mounts after network disconnect +- fix #816877 - libmount does not close device fd before mount(2) +- fix #822705 - unable to login after installing + +* Fri Mar 30 2012 Karel Zak 2.21.1-1 +- upgrade to bugfix release 2.21.1 + +* Fri Feb 24 2012 Karel Zak 2.21-1 +- upgrade to release 2.21 + +* Thu Feb 09 2012 Karel Zak 2.21-0.2 +- fix #788703 - /run/blkid does not exist + +* Tue Feb 07 2012 Karel Zak 2.21-0.1 +- upgrade to the release 2.21-rc2 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.21/v2.21-ReleaseNotes +- add {fsck,mkfs}.minix +- add new command chcpu(8) +- add new command prlimit(1) +- enable raw(8) command +- move 60-raw.rules from /etc from /usr/lib/udev/rules.d +- move blkid cache from etc to /run/blkid + +* Wed Jan 25 2012 Harald Hoyer 2.20.1-5 +- install everything in /usr + https://fedoraproject.org/wiki/Features/UsrMove + +* Sat Jan 14 2012 Fedora Release Engineering - 2.20.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Nov 22 2011 Karel Zak 2.20.1-3 +- fix #748216 - util-linux requires pam >= 1.1.3-7 +- remove ddate(1) + +* Wed Oct 26 2011 Fedora Release Engineering - 2.20.1-2 +- Rebuilt for glibc bug#747377 + +* Thu Oct 20 2011 Karel Zak 2.20.1-1 +- upgrade to the release 2.20.1 + ftp://ftp.infradead.org/pub/util-linux/v2.20/v2.20.1-ReleaseNotes + +* Mon Aug 29 2011 Karel Zak 2.20-1 +- upgrade to the release 2.20 + +* Wed Aug 17 2011 Karel Zak 2.20-0.2 +- upgrade to the release 2.20-rc2 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.20/v2.20-rc2-ChangeLog + +* Tue Aug 2 2011 Karel Zak 2.20-0.1 +- upgrade to the release 2.20-rc1 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.20/v2.20-ReleaseNotes + +* Mon Jul 4 2011 Karel Zak 2.19.1-2 +- fix #716483 - /var/tmp --(BIND-mounted)--> /tmp disrupts/hangs bootup +- fix #709681 - failure to mount if a mount point ends with a slash in /etc/fstab +- fix #709319 - 'mount -a' mounts already mounted directories +- fix kernel version parsing + +* Fri May 6 2011 Karel Zak 2.19.1-1 +- upgrade to the release 2.19.1 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19.1-ReleaseNotes + +* Wed Apr 20 2011 Karel Zak 2.19.1-0.1 +- upgrade to the release 2.19.1-rc1 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19.1-rc1-ChangeLog + +* Mon Mar 7 2011 Karel Zak 2.19-2 +- fix #682502 - Broken source URL to floppy tarball, new version available +- upgrade to floppy-0.18 + +* Thu Feb 10 2011 Karel Zak 2.19-1 +- upgrade to the release 2.19 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19-ReleaseNotes +- remove /sbin/mount.tmpfs -- integrated to mount(8) + +* Tue Feb 8 2011 Karel Zak 2.19-0.6 +- fix #665062 - add support for the postlogin PAM stack to util-linux-ng + +* Mon Feb 07 2011 Fedora Release Engineering - 2.19-0.5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Jan 25 2011 Karel Zak 2.19-0.4 +- upgrade to the release 2.19-rc3 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19-rc3-ChangeLog + +* Tue Jan 25 2011 Karel Zak 2.19-0.3 +- upgrade to the release 2.19-rc2 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19-rc2-ChangeLog +- fix #671893 - SELinux is preventing /bin/chown from 'setattr' accesses + on the file mounts. + +* Wed Jan 19 2011 Karel Zak 2.19-0.2 +- clean up specfile (review #667416) + +* Wed Jan 5 2011 Karel Zak 2.19-0.1 +- upgrade to the release 2.19-rc1 + ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.19/v2.19-ReleaseNotes + +* Tue Oct 26 2010 Karel Zak 2.18-5 +- fix #645640 - new "-s" parameter parsing in agetty does not work +- add -l (lock) support to fsck + +* Wed Aug 18 2010 Karel Zak 2.18-4 +- fix #623685 - please extend agetty to not require a baud rate to be specified + +* Thu Aug 5 2010 Karel Zak 2.18-3 +- fix #620924 - /sbin/mount.tmpfs uses not available /usr/bin/id + +* Mon Aug 2 2010 Karel Zak 2.18-2 +- fix #615719 - tmpfs mount fails with 'user' option. +- fix #598631 - shutdown, reboot, halt and C-A-D don't work +- fix #618957 - ISO images listed in fstab are mounted twice at boot + +* Wed Jun 30 2010 Karel Zak 2.18-1 +- upgrade to the final 2.18 + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.18/v2.18-ReleaseNotes + +* Fri Jun 18 2010 Karel Zak 2.18-0.2 +- upgrade to 2.18-rc2 + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.18/v2.18-rc2-ChangeLog + +* Tue Jun 8 2010 Karel Zak 2.18-0.1 +- upgrade to the release 2.18-rc1 + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.18/v2.18-ReleaseNotes + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.18/v2.18-rc1-ChangeLog + +* Mon Apr 12 2010 Karel Zak 2.17.2-1 +- fix #581252 - remounting tmpfs fails because of hidden rootcontext= +- fix #580296 - "rtcwake" does miss the "off" option +- fix #575734 - use microsecond resolution for blkid cache entries +- upgrade to the bugfix release 2.17.2 + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17.2-ReleaseNotes + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17.2-ChangeLog +- minor fixed in spec file + +* Thu Mar 11 2010 Karel Zak 2.17.1-2 +- fix #533874 - libblkid should allow scanning of slow devices (eg. cdroms) + +* Mon Feb 22 2010 Karel Zak 2.17.1-1 +- upgrade to the final 2.17.1 + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17.1-ReleaseNotes + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17.1-ChangeLog + +* Tue Feb 16 2010 Karel Zak 2.17.1-0.1 +- upgrade to 2.17.1-rc1 + +* Tue Feb 16 2010 Karel Zak 2.17-4 +- fix uuidd init script + +* Fri Feb 12 2010 Karel Zak 2.17-3 +- fix #541402 - uuidd initscript lsb compliance + +* Fri Jan 8 2010 Karel Zak 2.17-2 +- remove Provides: lib{uuid,blkid}-static (thanks to Michael Schwendt) +- remove useless URL to sf.net + +* Fri Jan 8 2010 Karel Zak 2.17-1 +- upgrade to the final 2.17 + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17-ReleaseNotes + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17-ChangeLog +- fix #545147 - util-linux-ng : Violation of the Packaging Guidelines + (remove uuid and blkid static libs) + +* Mon Dec 14 2009 Karel Zak 2.17-0.6 +- minor fixes in spec file (fix URL, add Requires, add LGPLv2+) + +* Wed Dec 9 2009 Karel Zak 2.17-0.5 +- upgrade to 2.17-rc2 + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17-rc2-ChangeLog + +* Mon Dec 7 2009 Karel Zak 2.17-0.4 +- add clock.8 man page (manlink to hwclock) +- add --help to mount.tmpfs + +* Mon Nov 23 2009 Karel Zak 2.17-0.3 +- upgrade to 2.17-rc1 + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.17/v2.17-rc1-ChangeLog + +* Tue Nov 10 2009 Karel Zak 2.17-0.2.git10dfc39 +- upgrade to pre-release snapshot (official changelog not available yet, see + http://git.kernel.org/?p=utils/util-linux-ng/util-linux-ng.git for now) + +* Mon Oct 19 2009 Karel Zak 2.17-0.1.git5e51568 +- upgrade to pre-release snapshot (official changelog not available yet, see + http://git.kernel.org/?p=utils/util-linux-ng/util-linux-ng.git for now) +- new commands: fallocate, unshare, wipefs +- libblkid supports topology and partitions probing +- remove support for --rmpart[s] from blockdev(8) (util-linux-ng-2.14-blockdev-rmpart.patch) +- merged upstream: + util-linux-ng-2.14-sfdisk-dump.patch + util-linux-ng-2.16-blkid-swsuspend.patch + util-linux-ng-2.16-libblkid-compression.patch + util-linux-ng-2.16-libblkid-ext2.patch + util-linux-ng-2.16-switchroot-tty.patch + +* Mon Oct 5 2009 Karel Zak 2.16-13 +- fix spec file + +* Fri Oct 2 2009 Karel Zak 2.16-12 +- release++ + +* Thu Oct 1 2009 Karel Zak 2.16-11 +- fix #519237 - bash: cannot set terminal process group (-1): Inappropriate ioctl for device + +* Wed Sep 16 2009 Tomas Mraz - 2.16-10 +- use password-auth common PAM configuration instead of system-auth and + drop pam_console.so call from the remote PAM config file + +* Mon Sep 14 2009 Karel Zak 2.16-9 +- fix #522718 - sfdisk -d /dev/xxx | sfdisk --force /dev/yyy fails when LANG is set +- fix typo in swsuspend detection + +* Wed Aug 26 2009 Tomas Mraz - 2.16-8 +- rebuilt with new audit + +* Sun Aug 23 2009 Karel Zak 2.16-7 +- fix #518572 - blkid requires ext2.ko to be decompressed on installation media + +* Thu Aug 13 2009 Karel Zak 2.16-5 +- fix #513104 - blkid returns no fstype for ext2 device when ext2 module not loaded + +* Wed Aug 5 2009 Stepan Kasal 2.16-4 +- set conflict with versions of e2fsprogs containing fsck + +* Thu Jul 30 2009 Karel Zak 2.16-3 +- remove the mount.conf support (see #214891) + +* Mon Jul 27 2009 Karel Zak 2.16-2 +- fix #214891 - add mount.conf and MTAB_LOCK_DIR= option + +* Sat Jul 25 2009 Karel Zak 2.16-1 +- upgrade to 2.16 + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.16/v2.16-ReleaseNotes +- enable built-in libuuid (replacement for the old uuid stuff from e2fsprogs) +- new commands switch_root, uuidgen and uuidd (subpackage) + +* Wed Jun 10 2009 Karel Zak 2.15.1-1 +- upgrade to 2.15.1 + +* Mon Jun 8 2009 Karel Zak 2.15.1-0.2 +- set BuildRequires: e2fsprogs-devel +- add Requires: e2fsprogs-devel to libblkid-devel + +* Thu Jun 4 2009 Karel Zak 2.15.1-0.1 +- upgrade to 2.15.1-rc1 + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.15/v2.15-ReleaseNotes + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.15/v2.15.1-rc1-ChangeLog +- merged patches: + util-linux-ng-2.14-login-remote.patch + util-linux-ng-2.14-fdisk-4k-I.patch + util-linux-ng-2.14-fdisk-4k-II.patch + util-linux-ng-2.14-fdisk-4k-III.patch + util-linux-ng-2.14-dmesg-r.patch + util-linux-ng-2.14-flock-segfaults.patch + util-linux-ng-2.14-renice-n.patch +- new commands: lscpu, ipcmk +- remove support for "managed" and "kudzu" mount options +- cleanup spec file +- enable built-in libblkid (replacement for the old blkid from e2fsprogs) + +* Thu Apr 2 2009 Karel Zak 2.14.2-8 +- fix #490769 - post scriptlet failed (thanks to Dan Horak) + +* Fri Mar 20 2009 Karel Zak 2.14.2-7 +- fix some nits in mount.tmpfs + +* Fri Mar 20 2009 Karel Zak 2.14.2-6 +- fix #491175 - mount of tmpfs FSs fail at boot + +* Thu Mar 19 2009 Karel Zak 2.14.2-5 +- fix #489672 - flock segfaults when file name is not given (upstream) +- fix #476964 - Mount /var/tmp with tmpfs creates denials +- fix #487227 - fdisk 4KiB hw sectors support (upstream) +- fix #477303 - renice doesn't support -n option (upstream) + +* Wed Feb 25 2009 Fedora Release Engineering - 2.14.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Feb 20 2009 Karel Zak 2.14.2-3 +- add -r option to dmesg(1) + +* Mon Feb 9 2009 Karel Zak 2.14.2-2 +- fix typo in spec file + +* Mon Feb 9 2009 Karel Zak 2.14.2-1 +- upgrade to stable 2.14.2 + ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.14/v2.14.2-ReleaseNotes + +* Thu Jan 22 2009 Karel Zak 2.14.2-0.2 +- fix #480413 - util-linux-ng doesn't include scriptreplay +- fix #479002 - remove dependency on ConsoleKit-libs +- upgrade to 2.14.2-rc2 + +* Mon Dec 22 2008 Karel Zak 2.14.2-0.1 +- upgrade to 2.14.2-rc1 +- refresh old patches + +* Fri Nov 21 2008 Karel Zak 2.14.1-5 +- fix #472502 - problem with fdisk and use +sectors for the end of partition + +* Mon Oct 6 2008 Karel Zak 2.14.1-3 +- fix #465761 - mount manpage is missing uid/gid mount options for tmpfs +- refresh util-linux-ng-2.14-mount-file_t.patch (fuzz=0) + +* Wed Sep 10 2008 Karel Zak 2.14.1-2 +- remove obsolete pam-console support + +* Wed Sep 10 2008 Karel Zak 2.14.1-1 +- upgrade to stable 2.14.1 + +* Thu Aug 14 2008 Karel Zak 2.14.1-0.1 +- upgrade to 2.14.1-rc1 +- refresh old patches + +* Thu Jul 24 2008 Karel Zak 2.14-3 +- update util-linux-ng-2.14-mount-file_t.patch to make + the SELinux warning optional (verbose mode is required) + +* Tue Jul 1 2008 Karel Zak 2.14-2 +- fix #390691 - mount should check selinux context on mount, and warn on file_t + +* Mon Jun 9 2008 Karel Zak 2.14-1 +- upgrade to stable util-linux-ng release + +* Mon May 19 2008 Karel Zak 2.14-0.1 +- upgrade to 2.14-rc3 +- remove arch(8) (deprecated in favor of uname(1) or arch(1) from coreutils) +- add a new command ldattach(8) +- cfdisk(8) linked with libncursesw + +* Tue Apr 22 2008 Karel Zak 2.13.1-9 +- fix audit log injection attack via login + +* Thu Apr 17 2008 Karel Zak 2.13.1-8 +- fix location of the command raw(8) + +* Tue Apr 15 2008 Karel Zak 2.13.1-7 +- fix 244383 - libblkid uses TYPE="swsuspend" for S1SUSPEND/S2SUSPEND + +* Wed Apr 2 2008 Karel Zak 2.13.1-6 +- fix 439984 - backport mkswap -U + +* Wed Mar 26 2008 Tom "spot" Callaway - 2.13.1-5 +- clean up sparc conditionals + +* Tue Feb 19 2008 Fedora Release Engineering - 2.13.1-4 +- Autorebuild for GCC 4.3 + +* Mon Jan 28 2008 Karel Zak 2.13.1-3 +- upgrade to new upstream release +- fix #427874 - util-linux-ng gets "excess command line argument" on update + +* Wed Jan 2 2008 Karel Zak 2.13.1-2 +- update to upstream 2.13.1-rc2 + +* Wed Dec 12 2007 Dan Walsh 2.13.1-1 +- Fix pam files so that pam_keyinit happens after pam_selinux.so + +* Wed Dec 12 2007 Karel Zak 2.13.1-0.2 +- remove viwp and vigr (in favour of shadow-utils) + +* Sun Dec 9 2007 Karel Zak 2.13.1-0.1 +- update to the latest upstream stable branch + (commit: fda9d11739ee88c3b2f22a73f12ec019bd3b8335) + +* Wed Oct 31 2007 Karel Zak 2.13-4 +- fix #354791 - blockdev command calls the blkpg ioctl with a wrong data structure + +* Tue Oct 16 2007 Karel Zak 2.13-3 +- fix mount -L | -U segfault +- fix script die on SIGWINCH + +* Thu Oct 4 2007 Karel Zak 2.13-2 +- update to the latest upstream stable branch + +* Tue Aug 28 2007 Karel Zak 2.13-1 +- upgrade to stable util-linux-ng release + +* Fri Aug 24 2007 Karel Zak 2.13-0.59 +- add release number to util-linux Provides and increment setarch Obsoletes +- fix #254114 - spec typo +- upgrade to floppy-0.16 +- add BuildRequires: popt-devel + +* Wed Aug 22 2007 Jesse Keating 2.13-0.58 +- Obsolete a sufficiently high enough version of setarch + +* Mon Aug 20 2007 Karel Zak 2.13-0.57 +- fix #253664 - util-linux-ng fails to build on sparc (patch by Dennis Gilmore) +- rebase to new GIT snapshot + +* Mon Aug 20 2007 Karel Zak 2.13-0.56 +- fix obsoletes field + +* Mon Aug 20 2007 Karel Zak 2.13-0.55 +- util-linux-ng includes setarch(1), define relevat Obsoletes+Provides + +* Mon Aug 20 2007 Karel Zak 2.13-0.54 +- port "blockdev --rmpart" patch from util-linux +- use same Provides/Obsoletes setting like in util-linux + +* Wed Aug 15 2007 Karel Zak 2.13-0.53 +- fix #252046 - review Request: util-linux-ng (util-linux replacement) + +* Mon Aug 13 2007 Karel Zak 2.13-0.52 +- rebase to util-linux-ng (new util-linux upstream fork, + based on util-linux 2.13-pre7) +- more than 70 Fedora/RHEL patches have been merged to upstream code + +* Fri Apr 6 2007 Karel Zak 2.13-0.51 +- fix #150493 - hwclock --systohc sets clock 0.5 seconds slow +- fix #220873 - starting RPC idmapd: Error: RPC MTAB does not exist. + (added rpc_pipefs to util-linux-2.13-umount-sysfs.patch) +- fix #227903 - mount -f does not work with NFS-mounted + +* Sat Mar 3 2007 David Zeuthen 2.13-0.50 +- include ConsoleKit session module by default (#229172) + +* Thu Jan 11 2007 Karel Zak 2.13-0.49 +- fix #222293 - undocumented partx,addpart, delpart + +* Sun Dec 17 2006 Karel Zak 2.13-0.48 +- fix paths in po/Makefile.in.in + +* Fri Dec 15 2006 Karel Zak 2.13-0.47 +- fix #217240 - namei ignores non-directory components instead of saying "Not a directory" +- fix #217241 - namei enforces symlink limits inconsistently + +* Thu Dec 14 2006 Karel Zak 2.13-0.46 +- fix leaking file descriptor in the more command (patch by Steve Grubb) + +* Wed Dec 13 2006 Karel Zak 2.13-0.45 +- use ncurses only +- fix #218915 - fdisk -b 4K +- upgrade to -pre7 release +- fix building problem with raw0 patch +- fix #217186 - /bin/sh: @MKINSTALLDIRS@: No such file or directory + (port po/Makefile.in.in from gettext-0.16) +- sync with FC6 and RHEL5: +- fix #216489 - SCHED_BATCH option missing in chrt +- fix #216712 - issues with raw device support ("raw0" is wrong device name) +- fix #216760 - mount with context or fscontext option fails + (temporarily disabled the support for additional contexts -- not supported by kernel yet) +- fix #211827 - Can't mount with additional contexts +- fix #213127 - mount --make-unbindable does not work +- fix #211749 - add -r option to losetup to create a read-only loop + +* Thu Oct 12 2006 Karel Zak 2.13-0.44 +- fix #209911 - losetup.8 updated (use dm-crypt rather than deprecated cryptoloop) +- fix #210338 - spurious error from '/bin/login -h $PHONENUMBER' (bug in IPv6 patch) +- fix #208634 - mkswap "works" without warning on a mounted device + +* Sun Oct 01 2006 Jesse Keating - 2.13-0.43 +- rebuilt for unwind info generation, broken in gcc-4.1.1-21 + +* Wed Sep 20 2006 Karel Zak 2.13-0.42 +- remove obsolete NFS code and patches (we use /sbin/mount.nfs + and /sbin/umount.nfs from nfs-utils now) +- move nfs.5 to nfs-utils + +* Fri Sep 15 2006 Karel Zak 2.13-0.41 +- fix #205038 - mount not allowing sloppy option (exports "-s" + to external /sbin/mount.nfs(4) calls) +- fix minor bug in util-linux-2.13-mount-twiceloop.patch +- fix #188193- util-linux should provide plugin infrastructure for HAL + +* Mon Aug 21 2006 Karel Zak 2.13-0.40 +- fix Makefile.am in util-linux-2.13-mount-context.patch +- fix #201343 - pam_securetty requires known user to work + (split PAM login configuration to two files) +- fix #203358 - change location of taskset binary to allow for early affinity work + +* Fri Aug 11 2006 Karel Zak 2.13-0.39 +- fix #199745 - non-existant simpleinit(8) mentioned in ctrlaltdel(8) + +* Thu Aug 10 2006 Dan Walsh 2.13-0.38 +- Change keycreate line to happen after pam_selinux open call so it gets correct context + +* Thu Aug 10 2006 Karel Zak 2.13-0.37 +- fix #176494 - last -i returns strange IP addresses (patch by Bill Nottingham) + +* Thu Jul 27 2006 Karel Zak 2.13-0.36 +- fix #198300, #199557 - util-linux "post" scriptlet failure + +* Thu Jul 27 2006 Steve Dickson 2.13-0.35 +- Added the -o fsc flag to nfsmount. + +* Wed Jul 26 2006 Karel Zak 2.13-0.34 +- rebuild + +* Tue Jul 18 2006 Karel Zak 2.13-0.33 +- add Requires(post): libselinux + +* Mon Jul 17 2006 Karel Zak 2.13-0.32 +- add IPv6 support to the login command (patch by Milan Zazrivec) +- fix #198626 - add keyinit instructions to the login PAM script + (patch by David Howells) + +* Wed Jul 12 2006 Jesse Keating - 2.13-0.31.1 +- rebuild + +* Tue Jul 11 2006 Karel Zak 2.13-0.31 +- cleanup dependences for post and preun scriptlets + +* Mon Jul 10 2006 Karsten Hopp 2.13-0.30 +- silence install in minimal buildroot without /var/log + +* Fri Jul 7 2006 Karel Zak 2.13-0.29 +- include the raw command for RHELs + +* Mon Jun 26 2006 Florian La Roche 2.13-0.28 +- move install-info parts from postun to preun + +* Wed Jun 21 2006 Dan Walsh 2.13-0.27 +- Only execute chcon on machines with selinux enabled + +* Wed Jun 14 2006 Steve Dickson 2.13-0.26 +- Remove unneeded header files from nfsmount.c + +* Mon Jun 12 2006 Karel Zak 2.13-0.25 +- fix #187014 - umount segfaults for normal user +- fix #183446 - cal not UTF-8-aware +- fix #186915 - mount does not translate SELIinux context options though libselinux +- fix #185500 - Need man page entry for -o context= mount option +- fix #152579 - missing info about /etc/mtab and /proc/mounts mismatch +- fix #183890 - missing info about possible ioctl() and fcntl() problems on NFS filesystem +- fix #191230 - using mount --move results in wrong data in /etc/mtab +- added mount subtrees support +- fdisk: wrong number of sectors for large disks (suse#160822) +- merge fdisk-xvd (#182553) with new fdisk-isfull (#188981) patch +- fix #181549 - raw(8) manpage has old information about dd +- remove asm/page.h usage + +* Wed May 24 2006 Dan Walsh 2.13-0.24 +- Remove requirement on restorecon, since we can do the same thing +- with chcon/matchpathcon, and not add requirement on policycoreutils + +* Wed May 24 2006 Steve Dickson 2.13-0.23 +- Fixed bug in patch for bz183713 which cause nfs4 mounts to fail. + +* Tue May 2 2006 Steve Dickson 2.13-0.22 +- Added syslog logging to background mounts as suggested + by a customer. + +* Mon May 1 2006 Steve Dickson 2.13-0.21 +- fix #183713 - foreground mounts are not retrying as advertised +- fix #151549 - Added 'noacl' mount flag +- fix #169042 - Changed nfsmount to try udp before using tcp when rpc-ing + the remote rpc.mountd (iff -o tcp is not specified). + This drastically increases the total number of tcp mounts + that can happen at once (ala autofs). + +* Thu Mar 9 2006 Jesse Keating 2.13-0.20 +- Better calling of restorecon as suggested by Bill Nottingham +- prereq restorecon to avoid ordering issues + +* Thu Mar 9 2006 Jesse Keating 2.13-0.19 +- restorecon /var/log/lastlog + +* Wed Mar 8 2006 Karel Zak 2.13-0.17 +- fix #181782 - mkswap selinux relabeling (fix util-linux-2.13-mkswap-selinux.patch) + +* Wed Feb 22 2006 Karel Zak 2.13-0.16 +- fix #181782 - mkswap should automatically add selinux label to swapfile +- fix #180730 - col is exiting with 1 (fix util-linux-2.12p-col-EILSEQ.patch) +- fix #181896 - broken example in schedutils man pages +- fix #177331 - login omits pam_acct_mgmt & pam_chauthtok when authentication is skipped. +- fix #177523 - umount -a should not unmount sysfs +- fix #182553 - fdisk -l inside xen guest shows no disks + +* Fri Feb 10 2006 Jesse Keating - 2.13-0.15.1 +- bump again for double-long bug on ppc(64) + +* Wed Feb 8 2006 Peter Jones 2.13-0.15 +- add "blockdev --rmpart N " and "blockdev --rmparts " + +* Tue Feb 07 2006 Jesse Keating - 2.13-0.14.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Thu Jan 19 2006 Steve Dickson 2.13-0.14 +- Updated the gssd_check() and idmapd_check(), used with + nfsv4 mounts, to looked for the correct file in /var/lock/subsys + which stops bogus warnings. + +* Tue Jan 3 2006 Karel Zak 2.13-0.13 +- fix #174676 - hwclock audit return code mismatch +- fix #176441: col truncates data +- fix #174111 - mount allows loopback devices to be mounted more than once to the same mount point +- better wide chars usage in the cal command (based on the old 'moremisc' patch) + +* Mon Dec 12 2005 Karel Zak 2.13-0.12 +- rebuilt + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Fri Nov 25 2005 Karel Zak 2.13-0.11.pre6 +- update to upstream version 2.13-pre6 +- fix #172203 - mount man page in RHEL4 lacks any info on cifs mount options + +* Mon Nov 7 2005 Karel Zak 2.13-0.10.pre5 +- fix #171337 - mkfs.cramfs doesn't work correctly with empty files + +* Fri Oct 28 2005 Karel Zak 2.13-0.9.pre5 +- rebuild + +* Wed Oct 26 2005 Karel Zak 2.13-0.8.pre5 +- updated version of the patch for hwclock audit + +* Thu Oct 20 2005 Karel Zak 2.13-0.7.pre5 +- fix #171337 - mkfs.cramfs dies creating installer image + +* Thu Oct 20 2005 Karel Zak 2.13-0.6.pre5 +- update to upstream 2.13pre5 +- remove separated cramfs1.1 (already in upstream package) +- remove odd symlink /usr/bin/mkcramfs -> ../../sbin/mkfs.cramfs +- fix #170171 - ipcs -lm always report "max total shared memory (kbytes) = 0" + +* Mon Oct 17 2005 Karel Zak 2.13-0.5.pre4 +* fix #170564 - add audit message to login + +* Fri Oct 7 2005 Karel Zak 2.13-0.4.pre4 +- fix #169628 - /usr/bin/floppy doesn't work with /dev/fd0 +- fix #168436 - login will attempt to run if it has no read/write access to its terminal +- fix #168434 - login's timeout can fail - needs to call siginterrupt(SIGALRM,1) +- fix #165253 - losetup missing option -a [new feature] +- update PAM files (replace pam_stack with new "include" PAM directive) +- remove kbdrate from src.rpm +- update to 2.13pre4 + +* Fri Oct 7 2005 Steve Dickson 2.13-0.3.pre3 +- fix #170110 - Documentation for 'rsize' and 'wsize' NFS mount options + is misleading + +* Fri Sep 2 2005 Karel Zak 2.13-0.3.pre2 +- fix #166923 - hwclock will not run on a non audit-enabled kernel +- fix #159410 - mkswap(8) claims max swap area size is 2 GB +- fix #165863 - swsusp swaps should be reinitialized +- change /var/log/lastlog perms to 0644 + +* Tue Aug 16 2005 Karel Zak 2.13-0.2.pre2 +- /usr/share/misc/getopt/* -move-> /usr/share/doc/util-linux-2.13/getopt-* +- the arch command marked as deprecated +- removed: elvtune, rescuept and setfdprm +- removed: man8/sln.8 (moved to man-pages, see #10601) +- removed REDAME.pg and README.reset +- .spec file cleanup +- added schedutils (commands: chrt, ionice and taskset) + +* Tue Jul 12 2005 Karel Zak 2.12p-9.7 +- fix #159339 - util-linux updates for new audit system +- fix #158737 - sfdisk warning for large partitions, gpt +- fix #150912 - Add ocfs2 support +- NULL is better than zero at end of execl() + +* Thu Jun 16 2005 Karel Zak 2.12p-9.5 +- fix #157656 - CRM 546998: Possible bug in vipw, changes permissions of /etc/shadow and /etc/gshadow +- fix #159339 - util-linux updates for new audit system (pam_loginuid.so added to util-linux-selinux.pamd) +- fix #159418 - sfdisk unusable - crashes immediately on invocation +- fix #157674 - sync option on VFAT mount destroys flash drives +- fix .spec file /usr/sbin/{hwclock,clock} symlinks + +* Wed May 4 2005 Jeremy Katz - 2.12p-9.3 +- rebuild against new libe2fsprogs (and libblkid) to fix cramfs auto-detection + +* Mon May 2 2005 Karel Zak 2.12p-9.2 +- rebuild + +* Mon May 2 2005 Karel Zak 2.12p-9 +- fix #156597 - look - doesn't work with separators + +* Mon Apr 25 2005 Karel Zak 2.12p-8 +- fix #154498 - util-linux login & pam session +- fix #155293 - man 5 nfs should include vers as a mount option +- fix #76467 - At boot time, fsck chokes on LVs listed by label in fstab +- new Source URL +- added note about ATAPI IDE floppy to fdformat.8 +- fix #145355 - Man pages for fstab and fstab-sync in conflict + +* Tue Apr 5 2005 Karel Zak 2.12p-7 +- enable build with libblkid from e2fsprogs-devel +- remove workaround for duplicated labels + +* Thu Mar 31 2005 Steve Dickson 2.12p-5 +- Fixed nfs mount to rollback correctly. + +* Fri Mar 25 2005 Karel Zak 2.12p-4 +- added /var/log/lastlog to util-linux (#151635) +- disabled 'newgrp' in util-linux (enabled in shadow-utils) (#149997, #151613) +- improved mtab lock (#143118) +- fixed ipcs typo (#151156) +- implemented mount workaround for duplicated labels (#116300) + +* Wed Mar 16 2005 Elliot Lee 2.12p-3 +- rebuilt + +* Fri Feb 25 2005 Steve Dickson 2.12p-2 +- Changed nfsmount to only use reserve ports when necessary + (bz# 141773) + +* Thu Dec 23 2004 Elliot Lee 2.12p-1 +- Update to util-linux-2.12p. This changes swap header format + from - you may need to rerun mkswap if you did a clean install of + FC3. + +* Fri Dec 10 2004 Elliot Lee 2.12j-1 +- Update to util-linux-2.12j + +* Tue Dec 7 2004 Steve Dickson 2.12a-20 +- Corrected a buffer overflow problem with nfs mounts. + (bz# 141733) + +* Wed Dec 01 2004 Elliot Lee 2.12a-19 +- Patches for various bugs. + +* Mon Nov 29 2004 Steve Dickson 2.12a-18 +- Made NFS mounts adhere to the IP protocol if specified on + command line as well as made NFS umounts adhere to the + current IP protocol. Fix #140016 + +* Thu Oct 14 2004 Elliot Lee 2.12a-16 +- Add include_raw macro, build with it off for Fedora + +* Wed Oct 13 2004 Stephen C. Tweedie - 2.12a-15 +- Add raw patch to allow binding of devices not yet in /dev + +* Wed Oct 13 2004 John (J5) Palmieri 2.12a-14 +- Add David Zeuthen's patch to enable the pamconsole flag #133941 + +* Wed Oct 13 2004 Stephen C. Tweedie 2.12a-13 +- Restore raw utils (bugzilla #130016) + +* Mon Oct 11 2004 Phil Knirsch 2.12a-12 +- Add the missing remote entry in pam.d + +* Wed Oct 6 2004 Steve Dickson +- Rechecked in some missing NFS mounting code. + +* Wed Sep 29 2004 Elliot Lee 2.12a-10 +- Make swaplabel support work with swapon -a -e + +* Tue Sep 28 2004 Steve Dickson +- Updated the NFS and NFS4 code to the latest CITI patch set + (in which they incorporate a number of our local patches). + +* Wed Sep 15 2004 Nalin Dahybhai 2.12a-8 +- Fix #132196 - turn on SELinux support at build-time. + +* Wed Sep 15 2004 Phil Knirsch 2.12a-7 +- Fix #91174 with pamstart.patch + +* Tue Aug 31 2004 Elliot Lee 2.12a-6 +- Fix #16415, #70616 with rdevman.patch +- Fix #102566 with loginman.patch +- Fix #104321 with rescuept.patch (just use plain lseek - we're in _FILE_OFFSET_BITS=64 land now) +- Fix #130016 - remove raw. +- Re-add agetty (replacing it with mgetty is too much pain, and mgetty is much larger) + +* Thu Aug 26 2004 Steve Dickson +- Made the NFS security checks more explicit to avoid confusion + (an upstream fix) +- Also removed a compilation warning + +* Wed Aug 11 2004 Alasdair Kergon +- Remove unused mount libdevmapper inclusion. + +* Wed Aug 11 2004 Alasdair Kergon +- Add device-mapper mount-by-label support +- Fix segfault in mount-by-label when a device without a label is present. + +* Wed Aug 11 2004 Steve Dickson +- Updated nfs man page to show that intr are on by + default for nfs4 + +* Thu Aug 05 2004 Jindrich Novy +- modified warning causing heart attack for >16 partitions, #107824 + +* Fri Jul 09 2004 Elliot Lee 2.12a-3 +- Fix #126623, #126572 +- Patch cleanup +- Remove agetty (use mgetty, agetty is broken) + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Thu Jun 03 2004 Elliot Lee 2.12a-1 +- Update to 2.12a +- Fix #122448 + +* Thu May 13 2004 Dan Walsh 2.12-19 +- Change pam_selinux to run last + +* Tue May 04 2004 Elliot Lee 2.12-18 +- Fix #122448 (autofs issues) + +* Fri Apr 23 2004 Elliot Lee 2.12-17 +- Fix #119157 by editing the patch +- Add patch145 to fix #119986 + +* Fri Apr 16 2004 Elliot Lee 2.12-16 +- Fix #118803 + +* Tue Mar 23 2004 Jeremy Katz 2.12-15 +- mkcramfs: use PAGE_SIZE for default blocksize (#118681) + +* Sat Mar 20 2004 +- Updated the nfs-mount.patch to correctly + handle the mounthost option and to ignore + servers that do not set auth flavors + +* Tue Mar 16 2004 Dan Walsh 2.12-13 +- Fix selinux ordering or pam for login + +* Tue Mar 16 2004 +- Make RPC error messages displayed with -v argument +- Added two checks to the nfs4 path what will print warnings + when rpc.idmapd and rpc.gssd are not running +- Ping NFS v4 servers before diving into kernel +- Make v4 mount interruptible which also make the intr option on by default + +* Sat Mar 13 2004 +- Reworked how the rpc.idmapd and rpc.gssd checks were + done due to review comments from upstream. +- Added rpc_strerror() so the '-v' flag will show RPC errors. + +* Sat Mar 13 2004 +- Added two checks to the nfs4 path what will print warnings + when rpc.idmapd and rpc.gssd are not running. + +* Thu Mar 11 2004 +- Reworked and updated the nfsv4 patches. + +* Wed Mar 10 2004 Dan Walsh +- Bump version + +* Wed Mar 10 2004 Steve Dickson +- Tried to make nfs error message a bit more meaninful +- Cleaned up some warnings + +* Sun Mar 7 2004 Steve Dickson +- Added pesudo flavors for nfsv4 mounts. +- Added BuildRequires: libselinux-devel and Requires: libselinux + when WITH_SELINUX is set. + +* Fri Feb 27 2004 Dan Walsh 2.12-5 +- check for 2.6.3 kernel in mount options + +* Mon Feb 23 2004 Elliot Lee 2.12-4 +- Remove /bin/kill for #116100 + +* Fri Feb 20 2004 Dan Walsh 2.12-3 +- rebuilt + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Thu Feb 12 2004 Elliot Lee 2.12-1 +- Final 2.12 has been out for ages - might as well use it. + +* Wed Jan 28 2004 Steve Dickson 2.12pre-4 +- Added mount patches that have NFS version 4 support + +* Mon Jan 26 2004 Elliot Lee 2.12pre-3 +- Provides: mount losetup + +* Mon Jan 26 2004 Dan Walsh 2.12pre-2 +- Add multiple to /etc/pam.d/login for SELinux + +* Thu Jan 15 2004 Elliot Lee 2.12pre-1 +- 2.12pre-1 +- Merge mount/losetup packages into the main package (#112324) +- Lose separate + +* Mon Nov 3 2003 Dan Walsh 2.11y-35.sel +- remove selinux code from login and use pam_selinux + +* Thu Oct 30 2003 Dan Walsh 2.11y-34.sel +- turn on selinux + +* Fri Oct 24 2003 Elliot Lee 2.11y-34 +- Add BuildRequires: texinfo (from a bug# I don't remember) +- Fix #90588 with mountman patch142. + +* Mon Oct 6 2003 Dan Walsh 2.11y-33 +- turn off selinux + +* Thu Sep 25 2003 Dan Walsh 2.11y-32.sel +- turn on selinux +- remove context selection + +* Fri Sep 19 2003 Elliot Lee 2.11y-31 +- Add patch140 (alldevs) to fix #101772. Printing the total size of + all devices was deemed a lower priority than having all devices + (e.g. /dev/ida/c0d9) displayed. + +* Fri Sep 12 2003 Dan Walsh 2.11y-31 +- turn off selinux + +* Fri Sep 12 2003 Dan Walsh 2.11y-30.sel +- turn on selinux + +* Fri Sep 5 2003 Elliot Lee 2.11y-28 +- Fix #103004, #103954 + +* Fri Sep 5 2003 Dan Walsh 2.11y-27 +- turn off selinux + +* Thu Sep 4 2003 Dan Walsh 2.11y-26.sel +- build with selinux + +* Mon Aug 11 2003 Elliot Lee 2.11y-25 +- Use urandom instead for mkcramfs + +* Tue Jul 29 2003 Dan Walsh 2.11y-24 +- add SELINUX 2.5 support + +* Wed Jul 23 2003 Elliot Lee 2.11y-22 +- #100433 patch + +* Sat Jun 14 2003 Elliot Lee 2.11y-20 +- #97381 patch + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Mon Apr 21 2003 Elliot Lee 2.11y-17 +- Change patch128 to improve ipcs -l + +* Fri Apr 11 2003 Elliot Lee 2.11y-16 +- Fix #85407 + +* Fri Apr 11 2003 Elliot Lee 2.11y-15 +- Change patch128 to util-linux-2.11f-ipcs-84243-86285.patch to get all +ipcs fixes + +* Thu Apr 10 2003 Matt Wilson 2.11y-14 +- fix last login date display on AMD64 (#88574) + +* Mon Apr 7 2003 Jeremy Katz 2.11y-13 +- include sfdisk on ppc + +* Fri Mar 28 2003 Jeremy Katz 2.11y-12 +- add patch from msw to change mkcramfs blocksize with a command line option + +* Tue Mar 25 2003 Phil Knirsch 2.11y-11 +- Fix segfault on s390x due to wrong usage of BLKGETSIZE. + +* Thu Mar 13 2003 Elliot Lee 2.11y-10 +- Really apply the ipcs patch. Doh. + +* Mon Feb 24 2003 Elliot Lee +- rebuilt + +* Wed Feb 19 2003 Elliot Lee 2.11y-8 +- ipcs-84243.patch to fix #84243 + +* Thu Feb 13 2003 Yukihiro Nakai 2.11y-7 +- Update moremisc patch to fix swprintf()'s minimum field (bug #83361). + +* Mon Feb 03 2003 Elliot Lee 2.11y-6 +- Fix mcookie segfault on many 64-bit architectures (bug #83345). + +* Mon Feb 03 2003 Tim Waugh 2.11y-5 +- Fix underlined multibyte characters (bug #83376). + +* Sun Feb 02 2003 Florian La Roche +- rebuild to have again a s390 rpm +- disable some more apps for mainframe + +* Wed Jan 29 2003 Elliot Lee 2.11y-4 +- util-linux-2.11y-umask-82552.patch + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Mon Jan 13 2003 Elliot Lee 2.11y-2 +- Fix #81069, #75421 + +* Mon Jan 13 2003 Elliot Lee 2.11y-1 +- Update to 2.11y +- Fix #80953 +- Update patch0, patch107, patch117, patch120 for 2.11y +- Remove patch60, patch61, patch207, patch211, patch212, patch119, patch121 +- Remove patch122, patch200 + +* Wed Oct 30 2002 Elliot Lee 2.11w-2 +- Remove some crack/unnecessary patches while submitting stuff upstream. +- Build with -D_FILE_OFFSET_BITS=64 + +* Tue Oct 29 2002 Elliot Lee 2.11w-1 +- Update to 2.11w, resolve patch conflicts + +* Tue Oct 08 2002 Phil Knirsch 2.11r-10hammer.3 +- Extended util-linux-2.11b-s390x patch to work again. + +* Thu Oct 03 2002 Elliot Lee 2.11r-10hammer.2 +- Add patch122 for hwclock on x86_64 + +* Thu Sep 12 2002 Than Ngo 2.11r-10hammer.1 +- Fixed pam config files + +* Wed Sep 11 2002 Bernhard Rosenkraenzer 2.11r-10hammer +- Port to hammer + +* Fri Aug 30 2002 Elliot Lee 2.11r-10 +- Patch120 (hwclock) to fix #72140 +- Include isosize util + +* Wed Aug 7 2002 Elliot Lee 2.11r-9 +- Patch120 (skipraid2) to fix #70353, because the original patch was +totally useless. + +* Fri Aug 2 2002 Elliot Lee 2.11r-8 +- Patch119 (fdisk-add-primary) from #67898 + +* Wed Jul 24 2002 Elliot Lee 2.11r-7 +- Really add the gptsize patch, instead of what I think the patch says. +(+1) + +* Tue Jul 23 2002 Elliot Lee 2.11r-6 +- Add the sp[n].size part of the patch from #69603 + +* Mon Jul 22 2002 Florian La Roche +- adjust mainframe patches + +* Tue Jul 2 2002 Bill Nottingham 2.11r-4 +- only require usermode if we're shipping kbdrate here + +* Fri Jun 28 2002 Trond Eivind Glomsrod 2.11r-3 +- Port the large swap patch to new util-linux... the off_t changes + now in main aren't sufficient + +* Thu Jun 27 2002 Elliot Lee 2.11r-2 +- Remove swapondetect (patch301) until it avoids possible false positives. + +* Thu Jun 27 2002 Elliot Lee 2.11r-1 +- Update to 2.11r, wheeee +- Remove unused patches + +* Thu Jun 27 2002 Elliot Lee 2.11n-19 +- Make a note here that this package was the source of the single change +contained in util-linux-2.11f-18 (in 7.2/Alpha), and also contains the +rawman patch from util-linux-2.11f-17.1 (in 2.1AS). +- Package has no runtime deps on slang, so remove the BuildRequires: +slang-devel. + +* Fri Jun 21 2002 Tim Powers +- automated rebuild + +* Thu Jun 20 2002 Elliot Lee 2.11n-17 +- Fix teg's swapondetect patch to not print out the usage message when +'swapon -a -e' is run. (#66690) (edit existing patch) +- Apply hjl's utmp handling patch (#66950) (patch116) +- Fix fdisk man page notes on IDE disk partition limit (#64013) (patch117) +- Fix mount.8 man page notes on vfat shortname option (#65628) (patch117) +- Fix possible cal overflow with widechars (#67090) (patch117) + +* Tue Jun 11 2002 Trond Eivind Glomsrod 2.11n-16 +- support large swap partitions +- add '-d' option to autodetect available swap partitions + +* Thu May 23 2002 Tim Powers +- automated rebuild + +* Wed May 15 2002 Elliot Lee 2.11n-14 +- Remove kbdrate (again). + +* Mon Apr 29 2002 Florian La Roche +- adjust mainframe patches to apply to current rpm +- do not include fdisk until it is fixed to work on mainframe + +* Mon Apr 01 2002 Elliot Lee 2.11n-12 +- Don't strip binaries - rpm does it for us. + +* Sun Mar 31 2002 Elliot Lee 2.11n-11 +- Apply patch115 from ejb@ql.org for bug #61868 + +* Wed Mar 27 2002 Elliot Lee 2.11n-10 +- Finish fixing #60675 (ipcrm man page), updated the patch. +- Fix #61203 (patch114 - dumboctal.patch). + +* Tue Mar 12 2002 Elliot Lee 2.11n-9 +- Update ctty3 patch to ignore SIGHUP while dropping controlling terminal + +* Fri Mar 08 2002 Elliot Lee 2.11n-8 +- Update ctty3 patch to drop controlling terminal before forking. + +* Fri Mar 08 2002 Elliot Lee 2.11n-7 + Fix various bugs: +- Add patch110 (skipraid) to properly skip devices that are part of a RAID array. +- Add patch111 (mkfsman) to update the mkfs man page's "SEE ALSO" section. +- remove README.cfdisk +- Include partx +- Fix 54741 and related bugs for good(hah!) with patch113 (ctty3) + +* Wed Mar 06 2002 Elliot Lee 2.11n-6 +- Put kbdrate in, add usermode dep. + +* Tue Feb 26 2002 Elliot Lee 2.11n-5 +- Fix #60363 (tweak raw.8 man page, make rawdevices.8 symlink). + +* Mon Jan 28 2002 Bill Nottingham 2.11n-4 +- remove kbdrate (fixes kbd conflict) + +* Fri Dec 28 2001 Elliot Lee 2.11n-3 +- Add util-linux-2.11n-ownerumount.patch (#56593) +- Add patch102 (util-linux-2.11n-colrm.patch) to fix #51887 +- Fix #53452 nits. +- Fix #56953 (remove tunelp on s390) +- Fix #56459, and in addition switch to using sed instead of perl. +- Fix #58471 +- Fix #57300 +- Fix #37436 +- Fix #32132 + +* Wed Dec 26 2001 Elliot Lee 2.11n-1 +- Update to 2.11n +- Merge mount/losetup back in. + +* Tue Dec 04 2001 Elliot Lee 2.11f-17 +- Add patch38 (util-linux-2.11f-ctty2.patch) to ignore SIGINT/SIGTERM/SIGQUIT in the parent, so that ^\ won't break things. + +* Fri Nov 09 2001 Elliot Lee 2.11f-16 +- Merge patches 36, 75, 76, and 77 into patch #37, to attempt resolve all the remaining issues with #54741. + +* Wed Oct 24 2001 Florian La Roche +- add nologin man-page for s390/s390x + +* Wed Oct 24 2001 Bernhard Rosenkraenzer 2.11f-14 +- Don't build kbdrate on s390/s390x +- Don't make the pivot_root.8 man page executable(!) + +* Tue Oct 23 2001 Elliot Lee 2.11f-13 +- Patch/idea #76 from HJL, fixes bug #54741 (race condition in login +acquisition of controlling terminal). + +* Thu Oct 11 2001 Bill Nottingham +- fix permissions problem with vipw & shadow files, again (doh!) + +* Tue Oct 09 2001 Erik Troan +- added patch from Olaf Kirch to fix possible pwent structure overwriting + +* Fri Sep 28 2001 Elliot Lee 2.11f-10 +- fdisk patch from arjan + +* Sun Aug 26 2001 Elliot Lee 2.11f-9 +- Don't include cfdisk, since it appears to be an even bigger pile of junk than fdisk? :) + +* Wed Aug 1 2001 Tim Powers +- don't require usermode + +* Mon Jul 30 2001 Elliot Lee 2.11f-7 +- Incorporate kbdrate back in. + +* Mon Jul 30 2001 Bill Nottingham +- revert the patch that calls setsid() in login that we had reverted + locally but got integrated upstream (#46223) + +* Tue Jul 24 2001 Florian La Roche +- correct s390x patch + +* Mon Jul 23 2001 Elliot Lee +- Add my megapatch (various bugs) +- Include pivot_root (#44828) + +* Thu Jul 12 2001 Bill Nottingham +- make shadow files 0400, not 0600 + +* Wed Jul 11 2001 Bill Nottingham +- fix permissions problem with vipw & shadow files + +* Mon Jun 18 2001 Florian La Roche +- update to 2.11f, remove any merged patches +- add s390x patches for somewhat larger swap + +* Thu Jun 14 2001 Erik Troan +- added --verbose patch to mkcramfs; it's much quieter by default now + +* Tue May 22 2001 Erik Troan +- removed warning about starting partitions on cylinder 0 -- swap version2 + makes it unnecessary + +* Wed May 9 2001 Bernhard Rosenkraenzer 2.11b-2 +- Fix up s390x support + +* Mon May 7 2001 Bernhard Rosenkraenzer 2.11b-1 +- Fix up login for real (a console session should be the controlling tty) + by reverting to 2.10s code (#36839, #36840, #39237) +- Add man page for agetty (#39287) +- 2.11b, while at it + +* Fri Apr 27 2001 Preston Brown 2.11a-4 +- /sbin/nologin from OpenBSD added. + +* Fri Apr 20 2001 Bernhard Rosenkraenzer 2.11a-3 +- Fix up login - exiting immediately even if the password is correct + is not exactly a nice feature. +- Make definite plans to kill people who update login without checking + if the new version works ;) + +* Tue Apr 17 2001 Erik Troan +- upgraded to 2.11a (kbdrate moved to kbd, among other things) +- turned off ALLOW_VCS_USE +- modified mkcramfs to not use a large number of file descriptors +- include mkfs.bfs + +* Sun Apr 8 2001 Matt Wilson +- changed Requires: kernel >= 2.2.12-7 to Conflicts: kernel < 2.2.12-7 + (fixes a initscripts -> util-linux -> kernel -> initscripts prereq loop) + +* Tue Mar 20 2001 Matt Wilson +- patched mkcramfs to use the PAGE_SIZE from asm/page.h instead of hard + coding 4096 (fixes mkcramfs on alpha...) + +* Mon Mar 19 2001 Matt Wilson +- added mkcramfs (from linux/scripts/mkcramfs) + +* Mon Feb 26 2001 Tim Powers +- fixed bug #29131, where ipc.info didn't have an info dir entry, + added the dir entry to ipc.texi (Patch58) + +* Fri Feb 23 2001 Preston Brown +- use lang finder script +- install info files + +* Thu Feb 08 2001 Erik Troan +- reverted login patch; seems to cause problems +- added agetty + +* Wed Feb 07 2001 Erik Troan +- updated kill man page +- added patch to fix vipw race +- updated vipw to edit /etc/shadow and /etc/gshadow, if appropriate +- added patch to disassociate login from tty, session, and pgrp + +* Tue Feb 06 2001 Erik Troan +- fixed problem w/ empty extended partitions +- added patch to fix the date in the more man page +- set OPT to pass optimization flags to make rather then RPM_OPT_FLAG +- fixed fdisk -l /Proc/partitions parsing +- updated to 2.10s + +* Tue Jan 23 2001 Preston Brown +- danish translations added + +* Mon Jan 15 2001 Nalin Dahyabhai +- fix segfault in login in btmp patch (#24025) + +* Mon Dec 11 2000 Oliver Paukstadt +- ported to s390 + +* Wed Nov 01 2000 Florian La Roche +- update to 2.10p +- update patch37 to newer fdisk version + +* Mon Oct 9 2000 Jeff Johnson +- update to 2.10o +- fdformat: fixed to work with kernel 2.4.0test6 (Marek Wojtowicz) +- login: not installed suid +- getopt: by default install aux files in /usr/share/misc +- update to 2.10n: +- added blockdev.8 +- change to elvtune (andrea) +- fixed overrun in agetty (vii@penguinpowered.com) +- shutdown: prefer umounting by mount point (rgooch) +- fdisk: added plan9 +- fdisk: remove empty links in chain of extended partitions +- hwclock: handle both /dev/rtc and /dev/efirtc (Bill Nottingham) +- script: added -f (flush) option (Ivan Schreter) +- script: added -q (quiet) option (Per Andreas Buer) +- getopt: updated to version 1.1.0 (Frodo Looijaard) +- Czech messages (Jiri Pavlovsky) +- login.1 man page had not /var/spool/mail path (#16998). +- sln.8 man page (but not executable) included (#10601). +- teach fdisk 0xde(Dell), 0xee(EFI GPT), 0xef(EFI FAT) partitions (#17610). + +* Wed Aug 30 2000 Matt Wilson +- rebuild to cope with glibc locale binary incompatibility, again + +* Mon Aug 14 2000 Jeff Johnson +- setfdprm should open with O_WRONLY, not 3. + +* Fri Aug 11 2000 Jeff Johnson +- fdformat should open with O_WRONLY, not 3. + +* Fri Jul 21 2000 Nalin Dahyabhai +- make 'look' look in /usr/share/dict + +* Fri Jul 21 2000 Bill Nottingham +- put /usr/local/sbin:/usr/local/bin in root's path + +* Wed Jul 19 2000 Jakub Jelinek +- rebuild to cope with glibc locale binary incompatibility + +* Thu Jul 13 2000 Prospector +- automatic rebuild + +* Mon Jul 10 2000 Bill Nottingham +- enable hwclock to use /dev/efirtc on ia64 (gettext is fun. :( ) + +* Mon Jul 3 2000 Bill Nottingham +- move cfdisk to /usr/sbin, it depends on /usr stuff +- add rescuept + +* Fri Jun 23 2000 Bernhard Rosenkraenzer +- point more at the correct path to vi (for "v"), Bug #10882 + +* Sun Jun 4 2000 Jeff Johnson +- FHS packaging changes. + +* Thu Jun 1 2000 Nalin Dahyabhai +- modify PAM setup to use system-auth + +* Mon May 1 2000 Bill Nottingham +- eek, where did login go? (specfile tweaks) + +* Mon Apr 17 2000 Bernhard Rosenkraenzer +- 2.10k +- fix compilation with current glibc + +* Tue Mar 21 2000 Bernhard Rosenkraenzer +- 2.10h + +* Tue Mar 7 2000 Jeff Johnson +- rebuild for sparc baud rates > 38400. + +* Sat Mar 4 2000 Matt Wilson +- use snprintf - not sprintf - when doing + sprintf ("%%s\n", _("Some string")) to avoid overflows and + segfaults. + +* Mon Feb 21 2000 Jeff Johnson +- raw control file was /dev/raw, now /dev/rawctl. +- raw access files were /dev/raw*, now /dev/raw/raw*. + +* Thu Feb 17 2000 Erik Troan +- -v argument to mkswap wasn't working + +* Thu Feb 10 2000 Jakub Jelinek +- Recognize 0xfd on Sun disklabels as RAID + +* Tue Feb 8 2000 Bill Nottingham +- more lives in /bin, and was linked against /usr/lib/libnurses. Bad. + +* Thu Feb 03 2000 Jakub Jelinek +- update to 2.10f +- fix issues in the new realpath code, avoid leaking memory + +* Tue Feb 01 2000 Cristian Gafton +- rebuild to fix dependencies +- add NFSv3 patches + +* Fri Jan 28 2000 Bill Nottingham +- don't require csh + +* Mon Jan 24 2000 Nalin Dahyabhai +- update to 2.10e +- add rename + +* Thu Jan 20 2000 Jeff Johnson +- strip newlines in logger input. + +* Mon Jan 10 2000 Jeff Johnson +- rebuild with correct ncurses libs. + +* Tue Dec 7 1999 Matt Wilson +- updated to util-linux 2.10c +- deprecated IMAP login mail notification patch17 +- deprecated raw patch22 +- depricated readprofile patch24 + +* Tue Dec 7 1999 Bill Nottingham +- add patch for readprofile + +* Thu Nov 18 1999 Michael K. Johnson +- tunelp should come from util-linux + +* Tue Nov 9 1999 Jakub Jelinek +- kbdrate cannot use /dev/port on sparc. + +* Wed Nov 3 1999 Jakub Jelinek +- fix kbdrate on sparc. + +* Wed Oct 27 1999 Bill Nottingham +- ship hwclock on alpha. + +* Tue Oct 5 1999 Bill Nottingham +- don't ship symlinks to rdev if we don't ship rdev. + +* Tue Sep 07 1999 Cristian Gafton +- add rawIO support from sct + +* Mon Aug 30 1999 Preston Brown +- don't display "new mail" message when the only piece of mail is from IMAP + +* Fri Aug 27 1999 Michael K. Johnson +- kbdrate is now a console program + +* Thu Aug 26 1999 Jeff Johnson +- hostid is now in sh-utils. On sparc, install hostid as sunhostid (#4581). +- update to 2.9w: +- Updated mount.8 (Yann Droneaud) +- Improved makefiles +- Fixed flaw in fdisk + +* Tue Aug 10 1999 Jeff Johnson +- tsort is now in textutils. + +* Wed Aug 4 1999 Bill Nottingham +- turn off setuid bit on login. Again. :( + +* Tue Aug 3 1999 Peter Jones, +- hostid script for sparc (#3803). + +* Tue Aug 03 1999 Christian 'Dr. Disk' Hechelmann +- added locale message catalogs to %%file +- added patch for non-root build +- vigr.8 and /usr/lib/getopt man-page was missing from file list +- /etc/fdprm really is a config file + +* Fri Jul 23 1999 Jeff Johnson +- update to 2.9v: +- cfdisk no longer believes the kernel's HDGETGEO + (and may be able to partition a 2 TB disk) + +* Fri Jul 16 1999 Jeff Johnson +- update to 2.9u: +- Czech more.help and messages (Jiri Pavlovsky) +- Japanese messages (Daisuke Yamashita) +- fdisk fix (Klaus G. Wagner) +- mount fix (Hirokazu Takahashi) +- agetty: enable hardware flow control (Thorsten Kranzkowski) +- minor cfdisk improvements +- fdisk no longer accepts a default device +- Makefile fix + +* Tue Jul 6 1999 Jeff Johnson +- update to 2.9t: +- national language support for hwclock +- Japanese messages (both by Daisuke Yamashita) +- German messages and some misc i18n fixes (Elrond) +- Czech messages (Jiri Pavlovsky) +- wall fixed for /dev/pts/xx ttys +- make last and wall use getutent() (Sascha Schumann) + [Maybe this is bad: last reading all of wtmp may be too slow. + Revert in case people complain.] +- documented UUID= and LABEL= in fstab.5 +- added some partition types +- swapon: warn only if verbose + +* Fri Jun 25 1999 Jeff Johnson +- update to 2.9s. + +* Sat May 29 1999 Jeff Johnson +- fix mkswap sets incorrect bits on sparc64 (#3140). + +* Thu Apr 15 1999 Jeff Johnson +- on sparc64 random ioctls on clock interface cause kernel messages. + +* Thu Apr 15 1999 Jeff Johnson +- improved raid patch (H.J. Lu). + +* Wed Apr 14 1999 Michael K. Johnson +- added patch for smartraid controllers + +* Sat Apr 10 1999 Cristian Gafton +- fix logging problems caused by setproctitle and PAM interaction + (#2045) + +* Wed Mar 31 1999 Jeff Johnson +- include docs and examples for sfdisk (#1164) + +* Mon Mar 29 1999 Matt Wilson +- rtc is not working properly on alpha, we can't use hwclock yet. + +* Fri Mar 26 1999 Cristian Gafton +- add patch to make mkswap more 64 bit friendly... Patch from + eranian@hpl.hp.com (ahem!) + +* Thu Mar 25 1999 Jeff Johnson +- include sfdisk (#1164) +- fix write (#1784) +- use positive logic in spec file (ifarch rather than ifnarch). +- (re)-use 1st matching utmp slot if search by mypid not found. +- update to 2.9o +- lastb wants bad logins in wtmp clone /var/run/btmp (#884) + +* Thu Mar 25 1999 Jakub Jelinek +- if hwclock is to be compiled on sparc, + it must actually work. Also, it should obsolete + clock, otherwise it clashes. +- limit the swap size in mkswap for 2.2.1+ kernels + by the actual maximum size kernel can handle. +- fix kbdrate on sparc, patch by J. S. Connell + + +* Wed Mar 24 1999 Matt Wilson +- added pam_console back into pam.d/login + +* Tue Mar 23 1999 Matt Wilson +- updated to 2.9i +- added hwclock for sparcs and alpha + +* Mon Mar 22 1999 Erik Troan +- added vigr to file list + +* Sun Mar 21 1999 Cristian Gafton +- auto rebuild in the new build environment (release 12) + +* Thu Mar 18 1999 Cristian Gafton +- remove most of the ifnarch arm stuff + +* Mon Mar 15 1999 Michael Johnson +- added pam_console.so to /etc/pam.d/login + +* Thu Feb 4 1999 Michael K. Johnson +- .perms patch to login to make it retain root in parent process + for pam_close_session to work correctly + +* Tue Jan 12 1999 Jeff Johnson +- strip fdisk in buildroot correctly (#718) + +* Mon Jan 11 1999 Cristian Gafton +- have fdisk compiled on sparc and arm + +* Mon Jan 11 1999 Erik Troan +- added beos partition type to fdisk + +* Wed Dec 30 1998 Cristian Gafton +- incorporate fdisk on all arches + +* Sat Dec 5 1998 Jeff Johnson +- restore PAM functionality at end of login (Bug #201) + +* Thu Dec 03 1998 Cristian Gafton +- patch top build on the arm without PAM and related utilities, for now. +- build hwclock only on intel + +* Wed Nov 18 1998 Cristian Gafton +- upgraded to version 2.9 + +* Thu Oct 29 1998 Bill Nottingham +- build for Raw Hide (slang-1.2.2) +- patch kbdrate wackiness so it builds with egcs + +* Tue Oct 13 1998 Erik Troan +- patched more to use termcap + +* Mon Oct 12 1998 Erik Troan +- added warning about alpha/bsd label starting cylinder + +* Mon Sep 21 1998 Erik Troan +- use sigsetjmp/siglongjmp in more rather then sig'less versions + +* Fri Sep 11 1998 Jeff Johnson +- explicit attrs for setuid/setgid programs + +* Thu Aug 27 1998 Cristian Gafton +- sln is now included in glibc + +* Sun Aug 23 1998 Jeff Johnson +- add cbm1581 floppy definitions (problem #787) + +* Mon Jun 29 1998 Jeff Johnson +- remove /etc/nologin at end of shutdown/halt. + +* Fri Jun 19 1998 Jeff Johnson +- add mount/losetup. + +* Thu Jun 18 1998 Jeff Johnson +- update to 2.8 with 2.8b clean up. hostid now defunct? + +* Mon Jun 01 1998 David S. Miller +- "more" now works properly on sparc + +* Sat May 02 1998 Jeff Johnson +- Fix "fdisk -l" fault on mounted cdrom. (prob #513) + +* Fri Apr 24 1998 Prospector System +- translations modified for de, fr, tr + +* Sat Apr 11 1998 Cristian Gafton +- manhattan rebuild + +* Mon Dec 29 1997 Erik Troan +- more didn't suspend properly on glibc +- use proper tc*() calls rather then ioctl's + +* Sun Dec 21 1997 Cristian Gafton +- fixed a security problem in chfn and chsh accepting too + long gecos fields + +* Fri Dec 19 1997 Mike Wangsmo +- removed "." from default path + +* Tue Dec 02 1997 Cristian Gafton +- added (again) the vipw patch + +* Wed Oct 22 1997 Michael Fulbright +- minor cleanups for glibc 2.1 + +* Fri Oct 17 1997 Michael Fulbright +- added vfat32 filesystem type to list recognized by fdisk + +* Fri Oct 10 1997 Erik Troan +- don't build clock on the alpha +- don't install chkdupexe + +* Thu Oct 02 1997 Michael K. Johnson +- Update to new pam standard. +- BuildRoot. + +* Thu Sep 25 1997 Cristian Gafton +- added rootok and setproctitle patches +- updated pam config files for chfn and chsh + +* Tue Sep 02 1997 Erik Troan +- updated MCONFIG to automatically determine the architecture +- added glibc header hacks to fdisk code +- rdev is only available on the intel + +* Fri Jul 18 1997 Erik Troan +- update to util-linux 2.7, fixed login problems + +* Wed Jun 25 1997 Erik Troan +- Merged Red Hat changes into main util-linux source, updated package to + development util-linux (nearly 2.7). + +* Tue Apr 22 1997 Michael K. Johnson +- LOG_AUTH --> LOG_AUTHPRIV in login and shutdown + +* Mon Mar 03 1997 Michael K. Johnson +- Moved to new pam and from pam.conf to pam.d + +* Tue Feb 25 1997 Michael K. Johnson +- pam.patch differentiated between different kinds of bad logins. + In particular, "user does not exist" and "bad password" were treated + differently. This was a minor security hole.