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 <kzak@redhat.com>
+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 <gmazyland@gmail.com>
+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 <gmazyland@gmail.com>
+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 <kzak@redhat.com>
++ * Copyright (C) 2018 Milan Broz <gmazyland@gmail.com>
+  *
+  * Inspired by libvolume_id by
+  *     Kay Sievers <kay.sievers@vrfy.org>
+@@ -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 <kzak@redhat.com>
+Date: Thu, 7 Jun 2018 12:05:08 +0200
+Subject: [PATCH 2/6] losetup: keep -f and <devname> 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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+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 <rskvaril@redhat.com>
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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] [<username>]\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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kelledin@gmail.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <Kyle.Mahlkuch@ibm.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <offset>      probe at the given offset\n"), out);
+ 	fputs(_(	" -u, --usages <list>        filter by \"usage\" (e.g. -u filesystem,raid)\n"), out);
+ 	fputs(_(	" -n, --match-types <list>   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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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] [<component> ...]"
+ 		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=<path>      autotools top source directory"
+-		echo "  --builddir=<path>    autotools top build directory"
+-		echo "  --parallel=<num>     number of parallel test jobs, default: num cpus"
+-		echo "  --exclude=<list>     exclude tests by list '<utilname>/<testname> ..'"
++		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=<path>       autotools top source directory"
++		echo "  --builddir=<path>     autotools top build directory"
++		echo "  --parallel=<num>      number of parallel test jobs, default: num cpus"
++		echo "  --exclude=<list>      exclude tests by list '<utilname>/<testname> ..'"
+ 		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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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=<path>       autotools top source directory"
+ 		echo "  --builddir=<path>     autotools top build directory"
+ 		echo "  --parallel=<num>      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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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/:.*:/: <target>/; s/for .*/for <source>/' > $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/:.*:/: <target>/; s/for .*/for <source>/' > $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/:.*:/: <target>/; s/for .*/for <source>/' >> $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/:.*:/: <target>/; s/for .*/for <source>/' >> $TS_OUTPUT
++udevadm settle
+ $TS_CMD_MOUNT -oloop,offset=$OFFSET "$IMG" "$TS_MOUNTPOINT-2" 2>&1 \
+ 	| sed 's/:.*:/: <target>/; s/for .*/for <source>/' >> $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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <zbyszek@in.waw.pl>
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+ configure.ac             |   1 +
+ libmount/src/mountP.h    |   2 +
+ libmount/src/tab_parse.c |  87 +++++++++++++++++----
+ libmount/src/utils.c     | 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 <fcntl.h>
+ #include <pwd.h>
+ #include <grp.h>
++#include <poll.h>
+ #include <blkid.h>
+ 
+ #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,      "[<maj:min>]" },
+ 	{ "--mkdir",         test_mkdir,           "<path>" },
+ 	{ "--statfs-type",   test_statfs_type,     "<path>" },
++	{ "--read-procfs",   test_proc_read,       "<path>" },
+ 
+ 	{ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <rskvaril@redhat.com>
+Date: Sun, 22 Sep 2019 13:49:45 +0200
+Subject: [PATCH 30/32] tests: lscpu s390 nested virtualization
+
+Signed-off-by: Radka Skvarilova <rskvaril@redhat.com>
+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}<J=jcTt>_}aRkprjf_!Sec}n^BcIE<Kh$6ICsxLEF)U
+z2h7a0<9p@z@7PR57h|28L}}W0O5H%8B+6(Z6dT=h7wg~7Q=C09oJMJ7jTe0DXWI)7
+zU12V%Wt!c5QS{b3@66McpO(MBP294MAAfMJFVJ?NclGMH!1?dmh$FMR59xe+^rhRE
+z?=*WZ)n-*&!3vg+y^ZevH4fBS4)0<PSA08Ca&+txQER-){-ExWmq%*9pA9T-wAFPz
+zD~vs)lWhNVM~$ZLLX$_;MzgKgRw~SWI!j|+Hbtds4%dV$&t1%2T2*ZwVBITJU9LI%
+zstPMIEb>O=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+&<F)*65~<AZ4%k&@W4%}G1HK<HvVNP}7gqPzBkSS6P6_*oI;?FS+lslC
+z^S(yYitT^ix8WSoc{0>DG_(<Wdnrv<+B@2|r{LT;GbibN&LWDfXz9+mmd0#En&$Sm
+zEj-#aS5)ftSUuFqkP!FnYwv4`m%ch~!XD3FsPyKgN-=XRIsK~bAP0z>p0SmlkLwX;
+zO@+<E?c$u9y7mK%)cOocq;JwOt*!~J!luLSeP=^b&Oj0y&!vF4s=HYKfY!Q@x>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|+F<Zy+S9<78&@~`8k>w*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<mMyY}72UbJ`awW?~C+uqgO`x{qj
+zAhF`054Lpf*FCq@-=>^C<+yq_)|)qy7SwoQFR$0X^XdL>exr?jmgB`g3E2;khu^{d
+z8B|@1YPMOH<I7wl;_mYx{y1E(IVSk#8#-RhObfE%>KR?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+_U6h35X<y6Sbj586VfG
+z`mPAbyLPH$=<3*m6*2Z}T!eWScrj;^rQZgL>J))*!N6w91iJ7lD;tI7KRQ_WvxKq>
+z2ey<Xl$mEGeP!%^&J~1i#Z`T{f$LAdpg*D^m~Mm>?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_%<fWJ
+zP*)4{k>e3TaypeAq>>)@B<S~jbZ-BTGlJ3PIaPijcWoT0O*y<_XI_)`vLuPx<I^2T
+z2NW7LvOC{E>Ulb5t~uq@!2HVnAbrp>EvGRZ<vqjWjDJl+RgdU}k1nX%4)zCrWN0|0
+zWI;~wEq5G^BoLMP{r>7pacX-)#p1l<gFWc0kx?-XcTZ|Z`J+DsTy)=#r^L(>+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#zuHiw<zg(<jm5!|qs6;8F2J4+@%u5G!4TfwFZ`J_q_eWVkX
+zmFp4-KeD$UZ6q()QC3QOz@0iWEhfaKTCkPJ5X~g$F*qw>xdk%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*KY<BLW-mJp)2<~yIl81
+z7S7JYX(88fCyz2B+S@e?y>Mtzdpk7aGy$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&<oQW0tnmTw2Mio!V_Y^Af%7|cB)4vI_s*On5IegiROI}_eri@3Tb1={Z~Ye
+z{--JyWeE1fLrR$mp(uq0&?+|}HcMntO{F>$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<Yy{n
+zUP(~RGO{8M36OZ8)T2w}38bJe3+J^%1V&f;CvE;f8%2IbHiM7~fqwxg1Vzn@OIIF~
+zJ<wlcG^GjtKYKp|%}>?nBOFBK5FtR+CJmGY0}+Aj22SSTK89kQP$7zzc|-OfVL!AF
+zIF*5wVmI1BdS@p7xxv5QPChH+F>*g0{%5}%VE!{HE*NqHcu&aUC7qoN4_O<Uqv(oW
+zbs%urQD!iC)T9d~vedf&Cx>5u8e>LKRqWtQLg_e%1wK5OwfJAJNk_ZHh~~W4EDby2
+zx?Uo1T~?4#5^jUh3$O)^4^dr44;V#2++_;8Gz2F)1{gVhVOp`NKBG~!Z<k!JIkAut
+zn)zx^$w<HXUi#A@n-->1$&?l=yOL|^alV4lq9Adf>SiV?_lJb_!zTCcL;K$iyMymO
+z<pFD;)Bw=WKt1R}u%?ubPz`U6=*>7e+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><tQ2qArTNU#iU7qs9#brSfsV43D&MQ%oxh@oGJ<>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|`<R%usB^L@zu4)HJ3X29;1aR<JK7+J7e_rOrk_2p
+z&w^>&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<Y<0mWW03>)`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<H>?X*XkDMwKvVsY=52==HQogHCNSaU{fqX}A
+zkOf3i5~Z8ec8W?qpK2zBt#x4IOq1bAFT}|HBZLZ!uJVag{r_gU@1(IZnIvx%i34&3
+zG6<H6|FR5uJ7u6S`3c!MCV4_iqRe}c-sOs;HBU0i<a_nVe3Bd$ei~>WQOlW$ucn5{
+zu#r4nZ8C?>1TsF!93;4qT#yLcen!DT$|(Sf*omYBu8iP(!0F1rxhlud078RwD2^1{
+zbScsem#hC9xGC}=LhSS(0Fc3!Ozlw_yZi%g<lyjcW@H#b0?H?d_*e7ERb*Qx3u-b7
+z7szHHi*bcWMsB1Z|9Z|?3=!dzSs}-rNhXy=dyF-SQO6;8f&??>RPywPbX+(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(ON<SW-#
+z;f)3vwAG%G#cZz!e(pWTI%xO&_Idr`U;MJBvP<n|V!E_V&uK<&pV!Xt@?{f$oZ8nX
+zy>ilSDEPQvdhzHIdew_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*~gl<uo8ne%#8e8wW1E$QKx
+zRBx>kC5Jm0?<7`R3sCj!O{rZC<Uo%bBBt5RRdx`Yhmi=dCEgj&p@!G@0^|2RxZ(O9
+z@xzlr3P!!ic_^SIfv0OWy2ppHAoXOefVS8&m#9!a`@`qk(BpLytW^jzWZRX&>Cd0~
+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}-<!BVeULZ>@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=<Ga>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 <kzak@redhat.com>
+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 <fdvorak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <rskvaril@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <rskvaril@redhat.com>
++#
++# 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <kzak@redhat.com>
+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 <kzak@redhat.com>
+---
+ 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 <removed>.
+ 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 <removed>.
+ 
+ Command (m for help): Disk <removed>: 50 MiB, 52428800 bytes, 102400 sectors
+@@ -27,8 +27,8 @@ Disklabel type: dos
+ Disk identifier: <removed>
+ 
+ Device     Boot Start    End Sectors Size Id Type
+-<removed>1        2048  43007   40960  20M 83 Linux
+-<removed>2       43008 102399   59392  29M 83 Linux
++<removed>1        2048  51198   49151  24M 83 Linux
++<removed>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 <removed>.
+ 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 <removed>.
+ 
+ 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 <removed>.
+ 
+-Command (m for help): Disk <removed>: 48.9 MiB, 51249152 bytes, 100096 sectors
++Command (m for help): Disk <removed>: 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 / <removed> 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, <pjones@redhat.com> .
+# 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 <kzak@redhat.com> 2.32.1-22
+- improve CI tests portability to rhel-8 kernel
+
+* Tue Dec 17 2019 Karel Zak <kzak@redhat.com> 2.32.1-21
+- add git to BuildRequires due to autosetup -Sgit
+
+* Tue Dec 17 2019 Karel Zak <kzak@redhat.com> 2.32.1-20
+- fix spec file typo
+
+* Tue Dec 17 2019 Karel Zak <kzak@redhat.com> 2.32.1-19
+- fix test for #1739443
+
+* Mon Dec 16 2019 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.32.1-17
+- fix error path in mountinfo patch (#1751447)
+
+* Fri Sep 20 2019 Karel Zak <kzak@redhat.com> 2.32.1-16
+- cleanup mountinfo libmount patch (#1751447)
+
+* Mon Sep 16 2019 Karel Zak <kzak@redhat.com> 2.32.1-15
+- fix #1751447 - improve /proc/self/mountinfo reliability
+
+* Tue Sep 03 2019 Karel Zak <kzak@redhat.com> 2.32.1-14
+- fix #1739179 - partx failed on nvme devices with exit code 1 
+
+* Mon Aug 05 2019 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.32.1-12
+- fix #1732769 - lscpu not showing Physical socket, chips information
+
+* Tue Jun 04 2019 Karel Zak <kzak@redhat.com> 2.32.1-11
+- fix #1681062 - improve loopdev use in gating tests
+
+* Mon Jun 03 2019 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.32.1-9
+- fix #1681062 - implement gating tests
+
+* Tue Dec 11 2018 Karel Zak <kzak@redhat.com> 2.32.1-8
+- fix #1658206 - improve dependence between subpackages
+
+* Tue Dec 11 2018 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.32.1-6
+- fix #1624877 - libuuid: name-based UUIDs are not compatible with RFC4122
+
+* Mon Aug 13 2018 Karel Zak <kzak@redhat.com> 2.32.1-5
+- fix #1614967 - Lslogins doesn't fail with nonexisting username
+- cleanup patches list
+
+* Fri Aug 10 2018 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.32.1-3
+- refresh lastlog patch 
+- fix #1595882 - wipefs should erase also secondary LUKSv2 header
+
+* Thu Aug  2 2018 Karel Zak <kzak@redhat.com> - 2.32.1-2
+* rebuild to verify build flags
+
+* Tue Jul 17 2018 Karel Zak <kzak@redhat.com> - 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 <cstratak@redhat.com> - 2.32-4
+- Build only the python3 bindings
+
+* Thu May 24 2018 Karel Zak <kzak@redhat.com> - 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 <kzak@redhat.com> - 2.32-2
+- fix #1560283 - column does not properly handle spaces at beginning of tab-separated table columns
+
+* Wed Mar 21 2018 Karel Zak <kzak@redhat.com> - 2.32-1
+- upgrade to v2.32
+
+* Tue Feb 20 2018 Karel Zak <kzak@redhat.com> - 2.32-0.2
+- add BuildRequires gcc
+
+* Tue Feb 13 2018 Karel Zak <kzak@redhat.com> - 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 <releng@fedoraproject.org> - 2.31-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Sat Jan 20 2018 Björn Esser <besser82@fedoraproject.org> - 2.31-4
+- Rebuilt for switch to libxcrypt
+
+* Wed Jan 03 2018 Lumír Balhar <lbalhar@redhat.com> - 2.31-3
+- Fix directory ownership in python subpackage
+
+* Mon Oct 30 2017 Karel Zak <kzak@redhat.com> - 2.31-2
+- fix dmesg for multi-line records
+
+* Mon Oct 23 2017 Karel Zak <kzak@redhat.com> - 2.31-1
+- upgrade to final v2.31
+- move rfkill to sbin (for backward compatibility)
+
+* Mon Oct  9 2017 Karel Zak <kzak@redhat.com> - 2.31-0.4
+- fix build error
+
+* Mon Oct  9 2017 Karel Zak <kzak@redhat.com> - 2.31-0.3
+- upgrade to v2.31-rc2
+- enable rfkill
+
+* Mon Sep 25 2017 Karel Zak <kzak@redhat.com> - 2.31-0.2
+- temporary disable rfkill (fix #1494855)
+
+* Fri Sep 22 2017 Karel Zak <kzak@redhat.com> - 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 <kzak@redhat.com> - 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 <kzak@redhat.com> - 2.30.1-5
+- make ln-s usage more robust
+
+* Fri Aug  4 2017 Karel Zak <kzak@redhat.com> - 2.30.1-4
+- fix post install script
+
+* Wed Aug  2 2017 Karel Zak <kzak@redhat.com> - 2.30.1-3
+- fix #1390191 - systemd read-only container produces errors
+
+* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.30.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Thu Jul 20 2017 Karel Zak <kzak@redhat.com> - 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 <kzak@redhat.com> - 2.30-1
+- upgrade to v2.30
+
+* Wed May 17 2017 Karel Zak <kzak@redhat.com> - 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 <kzak@redhat.com> - 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 <releng@fedoraproject.org> - 2.29.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Fri Jan 20 2017 Karel Zak <kzak@redhat.com> - 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 <mhroncok@redhat.com> - 2.29-2
+- Rebuild for Python 3.6
+
+* Tue Nov  8 2016 Karel Zak <kzak@redhat.com> - 2.29-1
+- upgrade to v2.29
+
+* Wed Oct 19 2016 Karel Zak <kzak@redhat.com> - 2.29-0.2
+- upgrade to v2.29-rc2
+
+* Fri Sep 30 2016 Karel Zak <kzak@redhat.com> - 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 <kzak@redhat.com> - 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 <kzak@redhat.com> - 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 <rel-eng@lists.fedoraproject.org> - 2.28-4
+- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
+
+* Mon Jun 13 2016 Karel Zak <kzak@redhat.com> - 2.28-3
+- fix #1234317 - CD / DVD are rarely automounted
+
+* Tue Apr 26 2016 Karel Zak <kzak@redhat.com> - 2.28-2
+- refresh login-lastlog-create.patch
+
+* Tue Apr 12 2016 Karel Zak <kzak@redhat.com> - 2.28-1
+- upgrade to stable v2.28
+
+* Wed Mar 30 2016 Karel Zak <kzak@redhat.com> - 2.28-0.3
+- fix libblkid
+
+* Tue Mar 29 2016 Karel Zak <kzak@redhat.com> - 2.28-0.2
+- upgrade to v2.28-rc2
+
+* Tue Mar 22 2016 Karel Zak <kzak@redhat.com> - 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 <releng@fedoraproject.org> - 2.27.1-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Mon Jan 18 2016 Karel Zak <kzak@redhat.com> - 2.27.1-4
+- fix #1299255 - boot.iso (from 20160117 Rawhide compose) incorrectly detected as minix FS
+
+* Wed Nov 18 2015 Karel Zak <kzak@redhat.com> - 2.27.1-3
+- fix #1259745 - Can't start installation in Rawhide or F23 recent development images
+
+* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.27.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5
+
+* Mon Nov  2 2015 Karel Zak <kzak@redhat.com> - 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 <kzak@redhat.com> - 2.27
+- upgrade to v2.27
+
+* Mon Aug 24 2015 Karel Zak <kzak@redhat.com> - 2.27-0.4
+- upgrade to v2.27-rc2
+
+* Thu Aug 13 2015 Karel Zak <kzak@redhat.com> - 2.27-0.3
+- improve version usage in source url
+
+* Wed Aug 12 2015 Karel Zak <kzak@redhat.com> - 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 <kzak@redhat.com> - 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 <kzak@redhat.com> - 2.26.2-3
+- fix dates in the spec file
+
+* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.26.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Thu Apr 30 2015 Karel Zak <kzak@redhat.com> - 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 <opensource@till.name> - 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 <kzak@redhat.com> 2.26-1
+- upgrade to stable release 2.26
+
+* Tue Feb 10 2015 Karel Zak <kzak@redhat.com> 2.26-0.4
+- fix setarch build on PPC
+
+* Thu Feb 5 2015 Karel Zak <kzak@redhat.com> 2.26-0.3
+- upgrade to 2.26-rc2
+
+* Fri Jan 16 2015 Karel Zak <kzak@redhat.com> 2.26-0.2
+- fix 1182778 - remount causes ro / and /home on boot
+
+* Thu Jan 15 2015 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.25.2-2
+- fix #1168490 - CVE-2014-9114 util-linux: command injection flaw in blkid
+
+* Fri Oct 24 2014 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 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 <rel-eng@lists.fedoraproject.org> - 2.25-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Wed Aug  6 2014 Tom Callaway <spot@fedoraproject.org> 2.25-3
+- fix license handling
+
+* Thu Jul 24 2014 Karel Zak <kzak@redhat.com> 2.25-2
+- remove fstrim unit files from uuidd subpackage
+
+* Tue Jul 22 2014 Karel Zak <kzak@redhat.com> 2.25-1
+- upgrade to stable release 2.25
+
+* Wed Jul 02 2014 Karel Zak <kzak@redhat.com> 2.25-0.3
+- upgrade to release 2.25-rc2
+
+* Wed Jun 25 2014 Peter Jones <pjones@redhat.com> - 2.25-0.2
+- Fix libblkid's squashfs probe return checking.
+  Related: rhbz#1112315
+
+* Thu Jun 19 2014 Karel Zak <kzak@redhat.com> 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 <rel-eng@lists.fedoraproject.org> - 2.24.2-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Wed May 28 2014 Kalev Lember <kalevlember@gmail.com> - 2.24.2-5
+- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4
+
+* Mon May 12 2014 Karel Zak <kzak@redhat.com> 2.24.2-4
+- fix #1094935 - script and/or trigger should not directly enable systemd units
+
+* Mon May 12 2014 Karel Zak <kzak@redhat.com> 2.24.2-3
+- fix #1090638 - remove pam_securetty.so from .pamd files
+
+* Wed May  7 2014 Karel Zak <kzak@redhat.com> 2.24.2-2
+- use systemd macroized scriptlets (#850355)
+
+* Thu Apr 24 2014 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.24.1-2
+- use rpm autosetup
+
+* Mon Jan 20 2014 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.24-2
+- fix #1031262 - lsblk -D segfault
+
+* Wed Oct 23 2013 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.24-0.1
+- upgrade to upstream release v2.24-rc1
+- add python3 libmount binding
+
+* Mon Sep  9 2013 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 2.23.2-2
+- fix 990083 - su doesn't work with pam_ecryptfs
+
+* Wed Jul 31 2013 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.23.1-3
+- fix #972457 - agetty idle I/O polling causes elevated CPU usage
+
+* Wed Jun  5 2013 Karel Zak <kzak@redhat.com> 2.23.1-2
+- fix #962145 - in.telnetd immediately closes connection
+
+* Tue May 28 2013 Karel Zak <kzak@redhat.com> 2.23.1-1
+- upgrade to 2.23.1
+- backport agetty --local-line path
+
+* Thu Apr 25 2013 Karel Zak <kzak@redhat.com> 2.23-1
+- upgrade to 2.23
+- add --with check to call make check
+
+* Mon Apr 15 2013 Karel Zak <kzak@redhat.com> 2.23-0.7
+- remove unused patches
+
+* Mon Apr 15 2013 Karel Zak <kzak@redhat.com> 2.23-0.6
+- remove floppy from util-linux
+
+* Fri Apr 12 2013 Karel Zak <kzak@redhat.com> 2.23-0.5
+- fix #948274 - interruption code 0x4003B in libmount.so.1.1.0
+
+* Wed Apr 10 2013 Karel Zak <kzak@redhat.com> 2.23-0.4
+- upgrade to the release 2.23-rc2
+
+* Wed Mar 27 2013 Karel Zak <kzak@redhat.com> 2.23-0.3
+- libblkid ntfs bugfix for build on s390
+
+* Wed Mar 27 2013 Karel Zak <kzak@redhat.com> 2.23-0.2
+- add upstream patches for to fix umount and mount.<type>
+
+* Fri Mar 22 2013 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.22.2-6
+- fix  #912778 - "runuser -l" doesn't register session to systemd
+
+* Tue Feb 19 2013 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.22.2-4
+- improve convertion to mtab symlink in post script
+- spec file cleanup (based on #894199)
+
+* Sun Feb  3 2013 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.22.2-2
+- fix #889888 - wipefs does not completely wipe btrfs volume
+
+* Thu Dec 13 2012 Karel Zak <kzak@redhat.com> 2.22.2-1
+- upgrade to upstream maintenance release 2.22.2
+
+* Mon Nov 19 2012 Karel Zak <kzak@redhat.com> 2.22.1-5
+- sources cleanup
+
+* Fri Nov 16 2012 Karel Zak <kzak@redhat.com> 2.22.1-4
+- fix #872787 - su: COMMAND not specified
+
+* Thu Nov  1 2012 Karel Zak <kzak@redhat.com> 2.22.1-3
+- backport upstream runuser(1)
+- enable su(1)
+
+* Thu Nov  1 2012 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.22.1-1
+- upgrade to the release 2.22.1
+
+* Wed Oct  3 2012 Karel Zak <kzak@redhat.com> 2.22-2
+- remove obsolete references to e2fsprogs
+
+* Thu Sep  6 2012 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 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 <rel-eng@lists.fedoraproject.org> - 2.21.2-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Wed Jun 13 2012 Karel Zak <kzak@redhat.com> 2.21.2-2
+- replace udev dependenceis with systemd
+
+* Fri May 25 2012 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.21.1-1
+- upgrade to bugfix release 2.21.1
+
+* Fri Feb 24 2012 Karel Zak <kzak@redhat.com> 2.21-1
+- upgrade to release 2.21
+
+* Thu Feb 09 2012 Karel Zak <kzak@redhat.com> 2.21-0.2
+- fix #788703 - /run/blkid does not exist
+
+* Tue Feb 07 2012 Karel Zak <kzak@redhat.com> 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 <harald@redhat.com> 2.20.1-5
+- install everything in /usr
+  https://fedoraproject.org/wiki/Features/UsrMove
+
+* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.20.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Tue Nov 22 2011 Karel Zak <kzak@redhat.com> 2.20.1-3
+- fix #748216 - util-linux requires pam >= 1.1.3-7
+- remove ddate(1)
+
+* Wed Oct 26 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.20.1-2
+- Rebuilt for glibc bug#747377
+
+* Thu Oct 20 2011 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.20-1
+- upgrade to the release 2.20
+
+* Wed Aug 17 2011 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 2.19-0.6
+- fix #665062 - add support for the postlogin PAM stack to util-linux-ng
+
+* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.19-0.5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Tue Jan 25 2011 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 2.19-0.2
+- clean up specfile (review #667416)
+
+* Wed Jan  5 2011 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 2.18-4
+- fix #623685 - please extend agetty to not require a baud rate to be specified
+
+* Thu Aug  5 2010 Karel Zak <kzak@redhat.com> 2.18-3
+- fix #620924 - /sbin/mount.tmpfs uses not available /usr/bin/id
+
+* Mon Aug  2 2010 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 2.17.1-2
+- fix #533874 - libblkid should allow scanning of slow devices (eg. cdroms)
+
+* Mon Feb 22 2010 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.17.1-0.1
+- upgrade to 2.17.1-rc1
+
+* Tue Feb 16 2010 Karel Zak <kzak@redhat.com> 2.17-4
+- fix uuidd init script
+
+* Fri Feb 12 2010 Karel Zak <kzak@redhat.com> 2.17-3
+- fix #541402 - uuidd initscript lsb compliance
+
+* Fri Jan  8 2010 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 2.17-0.6
+- minor fixes in spec file (fix URL, add Requires, add LGPLv2+)
+
+* Wed Dec  9 2009 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.17-0.4
+- add clock.8 man page (manlink to hwclock)
+- add --help to mount.tmpfs
+
+* Mon Nov 23 2009 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 2.16-13
+- fix spec file
+
+* Fri Oct  2 2009 Karel Zak <kzak@redhat.com> 2.16-12
+- release++
+
+* Thu Oct  1 2009 Karel Zak <kzak@redhat.com> 2.16-11
+- fix #519237 - bash: cannot set terminal process group (-1): Inappropriate ioctl for device
+
+* Wed Sep 16 2009 Tomas Mraz <tmraz@redhat.com> - 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 <kzak@redhat.com> 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 <tmraz@redhat.com> - 2.16-8
+- rebuilt with new audit
+
+* Sun Aug 23 2009 Karel Zak <kzak@redhat.com> 2.16-7
+- fix #518572 - blkid requires ext2.ko to be decompressed on installation media
+
+* Thu Aug 13 2009 Karel Zak <kzak@redhat.com> 2.16-5
+- fix #513104 - blkid returns no fstype for ext2 device when ext2 module not loaded
+
+* Wed Aug  5 2009 Stepan Kasal <skasal@redhat.com> 2.16-4
+- set conflict with versions of e2fsprogs containing fsck
+
+* Thu Jul 30 2009 Karel Zak <kzak@redhat.com> 2.16-3
+- remove the mount.conf support (see #214891)
+
+* Mon Jul 27 2009 Karel Zak <kzak@redhat.com> 2.16-2
+- fix #214891 - add mount.conf and MTAB_LOCK_DIR= option
+
+* Sat Jul 25 2009 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.15.1-1
+- upgrade to 2.15.1
+
+* Mon Jun  8 2009 Karel Zak <kzak@redhat.com> 2.15.1-0.2
+- set BuildRequires: e2fsprogs-devel
+- add Requires: e2fsprogs-devel to libblkid-devel
+
+* Thu Jun  4 2009 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.14.2-8
+- fix #490769 - post scriptlet failed (thanks to Dan Horak)
+ 
+* Fri Mar 20 2009 Karel Zak <kzak@redhat.com> 2.14.2-7
+- fix some nits in mount.tmpfs
+
+* Fri Mar 20 2009 Karel Zak <kzak@redhat.com> 2.14.2-6
+- fix #491175 - mount of tmpfs FSs fail at boot
+
+* Thu Mar 19 2009 Karel Zak <kzak@redhat.com> 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 <rel-eng@lists.fedoraproject.org> - 2.14.2-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Fri Feb 20 2009 Karel Zak <kzak@redhat.com> 2.14.2-3
+- add -r option to dmesg(1)
+
+* Mon Feb  9 2009 Karel Zak <kzak@redhat.com> 2.14.2-2
+- fix typo in spec file
+
+* Mon Feb  9 2009 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 2.14.2-0.1
+- upgrade to 2.14.2-rc1
+- refresh old patches
+
+* Fri Nov 21 2008 Karel Zak <kzak@redhat.com> 2.14.1-5
+- fix #472502 - problem with fdisk and use +sectors for the end of partition
+
+* Mon Oct  6 2008 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.14.1-2
+- remove obsolete pam-console support
+
+* Wed Sep 10 2008 Karel Zak <kzak@redhat.com> 2.14.1-1
+- upgrade to stable 2.14.1
+
+* Thu Aug 14 2008 Karel Zak <kzak@redhat.com> 2.14.1-0.1
+- upgrade to 2.14.1-rc1
+- refresh old patches
+
+* Thu Jul 24 2008 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.14-2
+- fix #390691 - mount should check selinux context on mount, and warn on file_t
+
+* Mon Jun  9 2008 Karel Zak <kzak@redhat.com> 2.14-1
+- upgrade to stable util-linux-ng release
+
+* Mon May 19 2008 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.13.1-9
+- fix audit log injection attack via login
+
+* Thu Apr 17 2008 Karel Zak <kzak@redhat.com> 2.13.1-8
+- fix location of the command raw(8)
+
+* Tue Apr 15 2008 Karel Zak <kzak@redhat.com> 2.13.1-7
+- fix 244383 - libblkid uses TYPE="swsuspend" for S1SUSPEND/S2SUSPEND
+
+* Wed Apr  2 2008 Karel Zak <kzak@redhat.com> 2.13.1-6
+- fix 439984 - backport mkswap -U
+
+* Wed Mar 26 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2.13.1-5
+- clean up sparc conditionals
+
+* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2.13.1-4
+- Autorebuild for GCC 4.3
+
+* Mon Jan 28 2008 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.13.1-2
+- update to upstream 2.13.1-rc2
+
+* Wed Dec 12 2007 Dan Walsh <dwalsh@redhat.com> 2.13.1-1
+- Fix pam files so that pam_keyinit happens after pam_selinux.so
+
+* Wed Dec 12 2007 Karel Zak <kzak@redhat.com> 2.13.1-0.2
+- remove viwp and vigr (in favour of shadow-utils)
+
+* Sun Dec  9 2007 Karel Zak <kzak@redhat.com> 2.13.1-0.1
+- update to the latest upstream stable branch
+  (commit: fda9d11739ee88c3b2f22a73f12ec019bd3b8335)
+
+* Wed Oct 31 2007 Karel Zak <kzak@redhat.com> 2.13-4
+- fix #354791 - blockdev command calls the blkpg ioctl with a wrong data structure
+
+* Tue Oct 16 2007 Karel Zak <kzak@redhat.com> 2.13-3
+- fix mount -L | -U segfault
+- fix script die on SIGWINCH
+
+* Thu Oct  4 2007 Karel Zak <kzak@redhat.com> 2.13-2
+- update to the latest upstream stable branch
+
+* Tue Aug 28 2007 Karel Zak <kzak@redhat.com> 2.13-1
+- upgrade to stable util-linux-ng release
+
+* Fri Aug 24 2007 Karel Zak <kzak@redhat.com> 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 <jkeating@redhat.com>  2.13-0.58
+- Obsolete a sufficiently high enough version of setarch
+
+* Mon Aug 20 2007 Karel Zak <kzak@redhat.com>  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 <kzak@redhat.com> 2.13-0.56
+- fix obsoletes field
+
+* Mon Aug 20 2007 Karel Zak <kzak@redhat.com> 2.13-0.55
+- util-linux-ng includes setarch(1), define relevat Obsoletes+Provides
+
+* Mon Aug 20 2007 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.13-0.53
+- fix #252046 - review Request: util-linux-ng (util-linux replacement)
+
+* Mon Aug 13 2007 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 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 <davidz@redhat.com> 2.13-0.50
+- include ConsoleKit session module by default (#229172)
+
+* Thu Jan 11 2007 Karel Zak <kzak@redhat.com> 2.13-0.49
+- fix #222293 - undocumented partx,addpart, delpart
+
+* Sun Dec 17 2006 Karel Zak <kzak@redhat.com> 2.13-0.48
+- fix paths in po/Makefile.in.in
+
+* Fri Dec 15 2006 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.13-0.46
+- fix leaking file descriptor in the more command (patch by Steve Grubb)
+
+* Wed Dec 13 2006 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 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 <jkeating@redhat.com> - 2.13-0.43
+- rebuilt for unwind info generation, broken in gcc-4.1.1-21
+
+* Wed Sep 20 2006 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 2.13-0.39
+- fix #199745 - non-existant simpleinit(8) mentioned in ctrlaltdel(8)
+
+* Thu Aug 10 2006 Dan Walsh <dwalsh@redhat.com> 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 <kzak@redhat.com> 2.13-0.37
+- fix #176494 - last -i returns strange IP addresses (patch by Bill Nottingham)
+
+* Thu Jul 27 2006 Karel Zak <kzak@redhat.com> 2.13-0.36
+- fix #198300, #199557 - util-linux "post" scriptlet failure
+
+* Thu Jul 27 2006 Steve Dickson <steved@redhat.com> 2.13-0.35
+- Added the -o fsc flag to nfsmount.
+
+* Wed Jul 26 2006 Karel Zak <kzak@redhat.com> 2.13-0.34
+- rebuild
+
+* Tue Jul 18 2006 Karel Zak <kzak@redhat.com> 2.13-0.33
+- add Requires(post): libselinux
+
+* Mon Jul 17 2006 Karel Zak <kzak@redhat.com> 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 <jkeating@redhat.com> - 2.13-0.31.1
+- rebuild
+
+* Tue Jul 11 2006 Karel Zak <kzak@redhat.com> 2.13-0.31
+- cleanup dependences for post and preun scriptlets
+
+* Mon Jul 10 2006 Karsten Hopp <karsten@redhat.de> 2.13-0.30
+- silence install in minimal buildroot without /var/log
+
+* Fri Jul  7 2006 Karel Zak <kzak@redhat.com> 2.13-0.29 
+- include the raw command for RHELs
+
+* Mon Jun 26 2006 Florian La Roche <laroche@redhat.com> 2.13-0.28
+- move install-info parts from postun to preun
+
+* Wed Jun 21 2006 Dan Walsh <dwalsh@RedHat.com> 2.13-0.27
+- Only execute chcon on machines with selinux enabled
+
+* Wed Jun 14 2006 Steve Dickson <steved@redhat.com> 2.13-0.26
+- Remove unneeded header files from nfsmount.c
+
+* Mon Jun 12 2006 Karel Zak <kzak@redhat.com> 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 <dwalsh@RedHat.com> 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 <steved@redhat.com> 2.13-0.23
+- Fixed bug in patch for bz183713 which cause nfs4 mounts to fail.
+
+* Tue May  2 2006 Steve Dickson <steved@redhat.com> 2.13-0.22
+- Added syslog logging to background mounts as suggested
+  by a customer.
+
+* Mon May  1 2006 Steve Dickson <steved@redhat.com> 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 <jkeating@redhat.com> 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 <jkeating@redhat.com> 2.13-0.19
+- restorecon /var/log/lastlog
+
+* Wed Mar  8 2006 Karel Zak <kzak@redhat.com> 2.13-0.17
+- fix #181782 - mkswap selinux relabeling (fix util-linux-2.13-mkswap-selinux.patch)
+
+* Wed Feb 22 2006 Karel Zak <kzak@redhat.com> 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 <jkeating@redhat.com> - 2.13-0.15.1
+- bump again for double-long bug on ppc(64)
+
+* Wed Feb  8 2006 Peter Jones <pjones@redhat.com> 2.13-0.15
+- add "blockdev --rmpart N <device>" and "blockdev --rmparts <device>"
+
+* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 2.13-0.14.1
+- rebuilt for new gcc4.1 snapshot and glibc changes
+
+* Thu Jan 19 2006 Steve Dickson <steved@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 2.13-0.12
+- rebuilt
+
+* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
+- rebuilt
+
+* Fri Nov 25 2005 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.13-0.10.pre5
+- fix #171337 - mkfs.cramfs doesn't work correctly with empty files
+
+* Fri Oct 28 2005 Karel Zak <kzak@redhat.com> 2.13-0.9.pre5
+- rebuild
+
+* Wed Oct 26 2005 Karel Zak <kzak@redhat.com> 2.13-0.8.pre5
+- updated version of the patch for hwclock audit
+
+* Thu Oct 20 2005 Karel Zak <kzak@redhat.com> 2.13-0.7.pre5
+- fix #171337 - mkfs.cramfs dies creating installer image
+
+* Thu Oct 20 2005 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.13-0.5.pre4
+* fix #170564 - add audit message to login
+
+* Fri Oct  7 2005 Karel Zak <kzak@redhat.com> 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 <steved@redhat.com> 2.13-0.3.pre3
+- fix #170110 - Documentation for 'rsize' and 'wsize' NFS mount options
+		is misleading
+
+* Fri Sep  2 2005 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 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 <kzak@redhat.com> 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 <katzj@redhat.com> - 2.12p-9.3
+- rebuild against new libe2fsprogs (and libblkid) to fix cramfs auto-detection
+
+* Mon May  2 2005 Karel Zak <kzak@redhat.com> 2.12p-9.2
+- rebuild
+
+* Mon May  2 2005 Karel Zak <kzak@redhat.com> 2.12p-9
+- fix #156597 - look - doesn't work with separators
+
+* Mon Apr 25 2005 Karel Zak <kzak@redhat.com> 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 <kzak@redhat.com> 2.12p-7
+- enable build with libblkid from e2fsprogs-devel
+- remove workaround for duplicated labels
+
+* Thu Mar 31 2005 Steve Dickson <SteveD@RedHat.com> 2.12p-5
+- Fixed nfs mount to rollback correctly.
+
+* Fri Mar 25 2005 Karel Zak <kzak@redhat.com> 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 <sopwith@redhat.com> 2.12p-3
+- rebuilt
+
+* Fri Feb 25 2005 Steve Dickson <SteveD@RedHat.com> 2.12p-2
+- Changed nfsmount to only use reserve ports when necessary
+  (bz# 141773) 
+
+* Thu Dec 23 2004 Elliot Lee <sopwith@redhat.com> 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 <sopwith@redhat.com> 2.12j-1
+- Update to util-linux-2.12j
+
+* Tue Dec  7 2004 Steve Dickson <SteveD@RedHat.com> 2.12a-20
+- Corrected a buffer overflow problem with nfs mounts.
+  (bz# 141733) 
+
+* Wed Dec 01 2004 Elliot Lee <sopwith@redhat.com> 2.12a-19
+- Patches for various bugs.
+
+* Mon Nov 29 2004 Steve Dickson <SteveD@RedHat.com> 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 <sopwith@redhat.com> 2.12a-16
+- Add include_raw macro, build with it off for Fedora
+
+* Wed Oct 13 2004 Stephen C. Tweedie <sct@redhat.com> - 2.12a-15
+- Add raw patch to allow binding of devices not yet in /dev
+
+* Wed Oct 13 2004 John (J5) Palmieri <johnp@redhat.com> 2.12a-14
+- Add David Zeuthen's patch to enable the pamconsole flag #133941
+
+* Wed Oct 13 2004 Stephen C. Tweedie <sct@redhat.com> 2.12a-13
+- Restore raw utils (bugzilla #130016)
+
+* Mon Oct 11 2004 Phil Knirsch <pknirsch@redhat.com> 2.12a-12
+- Add the missing remote entry in pam.d
+
+* Wed Oct  6 2004 Steve Dickson <SteveD@RedHat.com>
+- Rechecked in some missing NFS mounting code.
+
+* Wed Sep 29 2004 Elliot Lee <sopwith@redhat.com> 2.12a-10
+- Make swaplabel support work with swapon -a -e
+
+* Tue Sep 28 2004 Steve Dickson <SteveD@RedHat.com>
+- 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 <nalin@redhat.com> 2.12a-8
+- Fix #132196 - turn on SELinux support at build-time.
+
+* Wed Sep 15 2004 Phil Knirsch <pknirsch@redhat.com> 2.12a-7
+- Fix #91174 with pamstart.patch
+
+* Tue Aug 31 2004 Elliot Lee <sopwith@redhat.com> 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 <SteveD@RedHat.com>
+- Made the NFS security checks more explicit to avoid confusion
+  (an upstream fix)
+- Also removed a compilation warning
+
+* Wed Aug 11 2004 Alasdair Kergon <agk@redhat.com>
+- Remove unused mount libdevmapper inclusion.
+
+* Wed Aug 11 2004 Alasdair Kergon <agk@redhat.com>
+- 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 <SteveD@RedHat.com>
+- Updated nfs man page to show that intr are on by
+  default for nfs4
+
+* Thu Aug 05 2004 Jindrich Novy <jnovy@redhat.com>
+- modified warning causing heart attack for >16 partitions, #107824
+
+* Fri Jul 09 2004 Elliot Lee <sopwith@redhat.com> 2.12a-3
+- Fix #126623, #126572
+- Patch cleanup
+- Remove agetty (use mgetty, agetty is broken)
+
+* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Thu Jun 03 2004 Elliot Lee <sopwith@redhat.com> 2.12a-1
+- Update to 2.12a
+- Fix #122448
+
+* Thu May 13 2004 Dan Walsh <dwalsh@RedHat.com> 2.12-19
+- Change pam_selinux to run last
+
+* Tue May 04 2004 Elliot Lee <sopwith@redhat.com> 2.12-18
+- Fix #122448 (autofs issues)
+
+* Fri Apr 23 2004 Elliot Lee <sopwith@redhat.com> 2.12-17
+- Fix #119157 by editing the patch
+- Add patch145 to fix #119986
+
+* Fri Apr 16 2004 Elliot Lee <sopwith@redhat.com> 2.12-16
+- Fix #118803
+
+* Tue Mar 23 2004 Jeremy Katz <katzj@redhat.com> 2.12-15
+- mkcramfs: use PAGE_SIZE for default blocksize (#118681)
+
+* Sat Mar 20 2004 <SteveD@RedHat.com>
+- 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 <dwalsh@RedHat.com> 2.12-13
+- Fix selinux ordering or pam for login
+
+* Tue Mar 16 2004 <SteveD@RedHat.com>
+- 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  <SteveD@RedHat.com>
+- 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  <SteveD@RedHat.com>
+- Added two checks to the nfs4 path what will print warnings
+  when rpc.idmapd and rpc.gssd are not running.
+
+* Thu Mar 11 2004 <SteveD@RedHat.com>
+- Reworked and updated the nfsv4 patches.
+
+* Wed Mar 10 2004 Dan Walsh <dwalsh@RedHat.com>
+- Bump version
+
+* Wed Mar 10 2004 Steve Dickson <SteveD@RedHat.com>
+- Tried to make nfs error message a bit more meaninful
+- Cleaned up some warnings
+
+* Sun Mar  7 2004 Steve Dickson <SteveD@RedHat.com> 
+- Added pesudo flavors for nfsv4 mounts.
+- Added BuildRequires: libselinux-devel and Requires: libselinux
+  when WITH_SELINUX is set. 
+
+* Fri Feb 27 2004 Dan Walsh <dwalsh@redhat.com> 2.12-5
+- check for 2.6.3 kernel in mount options
+
+* Mon Feb 23 2004 Elliot Lee <sopwith@redhat.com> 2.12-4
+- Remove /bin/kill for #116100
+
+* Fri Feb 20 2004 Dan Walsh <dwalsh@redhat.com> 2.12-3
+- rebuilt
+
+* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Thu Feb 12 2004 Elliot Lee <sopwith@redhat.com> 2.12-1
+- Final 2.12 has been out for ages - might as well use it.
+
+* Wed Jan 28 2004 Steve Dickson <SteveD@RedHat.com> 2.12pre-4
+- Added mount patches that have NFS version 4 support
+
+* Mon Jan 26 2004 Elliot Lee <sopwith@redhat.com> 2.12pre-3
+- Provides: mount losetup
+
+* Mon Jan 26 2004 Dan Walsh <dwalsh@redhat.com> 2.12pre-2
+- Add multiple to /etc/pam.d/login for SELinux
+
+* Thu Jan 15 2004 Elliot Lee <sopwith@redhat.com> 2.12pre-1
+- 2.12pre-1
+- Merge mount/losetup packages into the main package (#112324)
+- Lose separate 
+
+* Mon Nov 3 2003 Dan Walsh <dwalsh@redhat.com> 2.11y-35.sel
+- remove selinux code from login and use pam_selinux
+
+* Thu Oct 30 2003 Dan Walsh <dwalsh@redhat.com> 2.11y-34.sel
+- turn on selinux
+
+* Fri Oct 24 2003 Elliot Lee <sopwith@redhat.com> 2.11y-34
+- Add BuildRequires: texinfo (from a bug# I don't remember)
+- Fix #90588 with mountman patch142.
+
+* Mon Oct 6 2003 Dan Walsh <dwalsh@redhat.com> 2.11y-33
+- turn off selinux
+
+* Thu Sep 25 2003 Dan Walsh <dwalsh@redhat.com> 2.11y-32.sel
+- turn on selinux
+- remove context selection
+
+* Fri Sep 19 2003 Elliot Lee <sopwith@redhat.com> 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 <dwalsh@redhat.com> 2.11y-31
+- turn off selinux
+
+* Fri Sep 12 2003 Dan Walsh <dwalsh@redhat.com> 2.11y-30.sel
+- turn on selinux
+
+* Fri Sep 5 2003 Elliot Lee <sopwith@redhat.com> 2.11y-28
+- Fix #103004, #103954
+
+* Fri Sep 5 2003 Dan Walsh <dwalsh@redhat.com> 2.11y-27
+- turn off selinux
+
+* Thu Sep 4 2003 Dan Walsh <dwalsh@redhat.com> 2.11y-26.sel
+- build with selinux
+
+* Mon Aug 11 2003 Elliot Lee <sopwith@redhat.com> 2.11y-25
+- Use urandom instead for mkcramfs
+
+* Tue Jul 29 2003 Dan Walsh <dwalsh@redhat.com> 2.11y-24
+- add SELINUX 2.5 support
+
+* Wed Jul 23 2003 Elliot Lee <sopwith@redhat.com> 2.11y-22
+- #100433 patch
+
+* Sat Jun 14 2003 Elliot Lee <sopwith@redhat.com> 2.11y-20
+- #97381 patch
+
+* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Mon Apr 21 2003 Elliot Lee <sopwith@redhat.com> 2.11y-17
+- Change patch128 to improve ipcs -l
+
+* Fri Apr 11 2003 Elliot Lee <sopwith@redhat.com> 2.11y-16
+- Fix #85407
+
+* Fri Apr 11 2003 Elliot Lee <sopwith@redhat.com> 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 <msw@redhat.com> 2.11y-14
+- fix last login date display on AMD64 (#88574)
+
+* Mon Apr  7 2003 Jeremy Katz <katzj@redhat.com> 2.11y-13
+- include sfdisk on ppc
+
+* Fri Mar 28 2003 Jeremy Katz <katzj@redhat.com> 2.11y-12
+- add patch from msw to change mkcramfs blocksize with a command line option
+
+* Tue Mar 25 2003 Phil Knirsch <pknirsch@redhat.com> 2.11y-11
+- Fix segfault on s390x due to wrong usage of BLKGETSIZE.
+
+* Thu Mar 13 2003 Elliot Lee <sopwith@redhat.com> 2.11y-10
+- Really apply the ipcs patch. Doh.
+
+* Mon Feb 24 2003 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Wed Feb 19 2003 Elliot Lee <sopwith@redhat.com> 2.11y-8
+- ipcs-84243.patch to fix #84243
+
+* Thu Feb 13 2003 Yukihiro Nakai <ynakai@redhat.com> 2.11y-7
+- Update moremisc patch to fix swprintf()'s minimum field (bug #83361).
+
+* Mon Feb 03 2003 Elliot Lee <sopwith@redhat.com> 2.11y-6
+- Fix mcookie segfault on many 64-bit architectures (bug #83345).
+
+* Mon Feb 03 2003 Tim Waugh <twaugh@redhat.com> 2.11y-5
+- Fix underlined multibyte characters (bug #83376).
+
+* Sun Feb 02 2003 Florian La Roche <Florian.LaRoche@redhat.de>
+- rebuild to have again a s390 rpm
+- disable some more apps for mainframe
+
+* Wed Jan 29 2003 Elliot Lee <sopwith@redhat.com> 2.11y-4
+- util-linux-2.11y-umask-82552.patch
+
+* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
+- rebuilt
+
+* Mon Jan 13 2003 Elliot Lee <sopwith@redhat.com> 2.11y-2
+- Fix #81069, #75421
+
+* Mon Jan 13 2003 Elliot Lee <sopwith@redhat.com> 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 <sopwith@redhat.com> 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 <sopwith@redhat.com> 2.11w-1
+- Update to 2.11w, resolve patch conflicts
+
+* Tue Oct 08 2002 Phil Knirsch <pknirsch@redhat.com> 2.11r-10hammer.3
+- Extended util-linux-2.11b-s390x patch to work again.
+
+* Thu Oct 03 2002 Elliot Lee <sopwith@redhat.com> 2.11r-10hammer.2
+- Add patch122 for hwclock on x86_64
+
+* Thu Sep 12 2002 Than Ngo <than@redhat.com> 2.11r-10hammer.1
+- Fixed pam config files
+
+* Wed Sep 11 2002 Bernhard Rosenkraenzer <bero@redhat.com> 2.11r-10hammer
+- Port to hammer
+
+* Fri Aug 30 2002 Elliot Lee <sopwith@redhat.com> 2.11r-10
+- Patch120 (hwclock) to fix #72140
+- Include isosize util
+
+* Wed Aug 7 2002  Elliot Lee <sopwith@redhat.com> 2.11r-9
+- Patch120 (skipraid2) to fix #70353, because the original patch was 
+totally useless.
+
+* Fri Aug 2 2002  Elliot Lee <sopwith@redhat.com> 2.11r-8
+- Patch119 (fdisk-add-primary) from #67898
+
+* Wed Jul 24 2002 Elliot Lee <sopwith@redhat.com> 2.11r-7
+- Really add the gptsize patch, instead of what I think the patch says.
+(+1)
+
+* Tue Jul 23 2002 Elliot Lee <sopwith@redhat.com> 2.11r-6
+- Add the sp[n].size part of the patch from #69603
+
+* Mon Jul 22 2002 Florian La Roche <Florian.LaRoche@redhat.de>
+- adjust mainframe patches
+
+* Tue Jul  2 2002 Bill Nottingham <notting@redhat.com> 2.11r-4
+- only require usermode if we're shipping kbdrate here
+
+* Fri Jun 28 2002 Trond Eivind Glomsrod <teg@redhat.com> 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 <sopwith@redhat.com> 2.11r-2
+- Remove swapondetect (patch301) until it avoids possible false positives.
+
+* Thu Jun 27 2002 Elliot Lee <sopwith@redhat.com> 2.11r-1
+- Update to 2.11r, wheeee
+- Remove unused patches
+
+* Thu Jun 27 2002 Elliot Lee <sopwith@redhat.com> 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 <timp@redhat.com>
+- automated rebuild
+
+* Thu Jun 20 2002 Elliot Lee <sopwith@redhat.com> 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 <teg@redhat.com> 2.11n-16
+- support large swap partitions
+- add '-d' option to autodetect available swap partitions
+
+* Thu May 23 2002 Tim Powers <timp@redhat.com>
+- automated rebuild
+
+* Wed May 15 2002 Elliot Lee <sopwith@redhat.com> 2.11n-14
+- Remove kbdrate (again).
+
+* Mon Apr 29 2002 Florian La Roche <Florian.LaRoche@redhat.de>
+- 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 <sopwith@redhat.com> 2.11n-12
+- Don't strip binaries - rpm does it for us.
+
+* Sun Mar 31 2002 Elliot Lee <sopwith@redhat.com> 2.11n-11
+- Apply patch115 from ejb@ql.org for bug #61868
+
+* Wed Mar 27 2002 Elliot Lee <sopwith@redhat.com> 2.11n-10
+- Finish fixing #60675 (ipcrm man page), updated the patch.
+- Fix #61203 (patch114 - dumboctal.patch).
+
+* Tue Mar 12 2002 Elliot Lee <sopwith@redhat.com> 2.11n-9
+- Update ctty3 patch to ignore SIGHUP while dropping controlling terminal
+
+* Fri Mar 08 2002 Elliot Lee <sopwith@redhat.com> 2.11n-8
+- Update ctty3 patch to drop controlling terminal before forking.
+
+* Fri Mar 08 2002 Elliot Lee <sopwith@redhat.com> 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 <sopwith@redhat.com> 2.11n-6
+- Put kbdrate in, add usermode dep.
+
+* Tue Feb 26 2002 Elliot Lee <sopwith@redhat.com> 2.11n-5
+- Fix #60363 (tweak raw.8 man page, make rawdevices.8 symlink).
+
+* Mon Jan 28 2002 Bill Nottingham <notting@redhat.com> 2.11n-4
+- remove kbdrate (fixes kbd conflict)
+
+* Fri Dec 28 2001 Elliot Lee <sopwith@redhat.com> 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 <sopwith@redhat.com> 2.11n-1
+- Update to 2.11n
+- Merge mount/losetup back in.
+
+* Tue Dec 04 2001 Elliot Lee <sopwith@redhat.com> 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 <sopwith@redhat.com> 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 <Florian.LaRoche@redhat.de>
+- add nologin man-page for s390/s390x
+
+* Wed Oct 24 2001 Bernhard Rosenkraenzer <bero@redhat.com> 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 <sopwith@redhat.com> 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 <notting@redhat.com>
+- fix permissions problem with vipw & shadow files, again (doh!)
+
+* Tue Oct 09 2001 Erik Troan <ewt@redhat.com>
+- added patch from Olaf Kirch to fix possible pwent structure overwriting
+
+* Fri Sep 28 2001 Elliot Lee <sopwith@redhat.com> 2.11f-10
+- fdisk patch from arjan
+
+* Sun Aug 26 2001 Elliot Lee <sopwith@redhat.com> 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 <timp@redhat.com>
+- don't require usermode
+
+* Mon Jul 30 2001 Elliot Lee <sopwith@redhat.com> 2.11f-7
+- Incorporate kbdrate back in.
+
+* Mon Jul 30 2001 Bill Nottingham <notting@redhat.com>
+- 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 <Florian.LaRoche@redhat.de>
+- correct s390x patch
+
+* Mon Jul 23 2001 Elliot Lee <sopwith@redhat.com>
+- Add my megapatch (various bugs)
+- Include pivot_root (#44828)
+
+* Thu Jul 12 2001 Bill Nottingham <notting@redhat.com>
+- make shadow files 0400, not 0600
+
+* Wed Jul 11 2001 Bill Nottingham <notting@redhat.com>
+- fix permissions problem with vipw & shadow files
+
+* Mon Jun 18 2001 Florian La Roche <Florian.LaRoche@redhat.de>
+- update to 2.11f, remove any merged patches
+- add s390x patches for somewhat larger swap
+
+* Thu Jun 14 2001 Erik Troan <ewt@redhat.com>
+- added --verbose patch to mkcramfs; it's much quieter by default now
+
+* Tue May 22 2001 Erik Troan <ewt@redhat.com>
+- removed warning about starting partitions on cylinder 0 -- swap version2
+  makes it unnecessary
+
+* Wed May  9 2001 Bernhard Rosenkraenzer <bero@redhat.com> 2.11b-2
+- Fix up s390x support
+
+* Mon May  7 2001 Bernhard Rosenkraenzer <bero@redhat.com> 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 <pbrown@redhat.com> 2.11a-4
+- /sbin/nologin from OpenBSD added.
+
+* Fri Apr 20 2001 Bernhard Rosenkraenzer <bero@redhat.com> 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 <ewt@redhat.com>
+- 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 <msw@redhat.com>
+- 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 <msw@redhat.com>
+- 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 <msw@redhat.com>
+- added mkcramfs (from linux/scripts/mkcramfs)
+
+* Mon Feb 26 2001 Tim Powers <timp@redhat.com>
+- 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 <pbrown@redhat.com>
+- use lang finder script
+- install info files
+
+* Thu Feb 08 2001 Erik Troan <ewt@redhat.com>
+- reverted login patch; seems to cause problems
+- added agetty
+
+* Wed Feb 07 2001 Erik Troan <ewt@redhat.com>
+- 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 <ewt@redhat.com>
+- 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 <pbrown@redhat.com>
+- danish translations added
+
+* Mon Jan 15 2001 Nalin Dahyabhai <nalin@redhat.com>
+- fix segfault in login in btmp patch (#24025)
+
+* Mon Dec 11 2000 Oliver Paukstadt <oliver.paukstadt@millenux.com>
+- ported to s390
+
+* Wed Nov 01 2000 Florian La Roche <Florian.LaRoche@redhat.de>
+- update to 2.10p
+- update patch37 to newer fdisk version
+
+* Mon Oct  9 2000 Jeff Johnson <jbj@redhat.com>
+- 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 <msw@redhat.com>
+- rebuild to cope with glibc locale binary incompatibility, again
+
+* Mon Aug 14 2000 Jeff Johnson <jbj@redhat.com>
+- setfdprm should open with O_WRONLY, not 3.
+
+* Fri Aug 11 2000 Jeff Johnson <jbj@redhat.com>
+- fdformat should open with O_WRONLY, not 3.
+
+* Fri Jul 21 2000 Nalin Dahyabhai <nalin@redhat.com>
+- make 'look' look in /usr/share/dict
+
+* Fri Jul 21 2000 Bill Nottingham <notting@redhat.com>
+- put /usr/local/sbin:/usr/local/bin in root's path
+
+* Wed Jul 19 2000 Jakub Jelinek <jakub@redhat.com>
+- rebuild to cope with glibc locale binary incompatibility
+
+* Thu Jul 13 2000 Prospector <bugzilla@redhat.com>
+- automatic rebuild
+
+* Mon Jul 10 2000 Bill Nottingham <notting@redhat.com>
+- enable hwclock to use /dev/efirtc on ia64 (gettext is fun. :( )
+
+* Mon Jul  3 2000 Bill Nottingham <notting@redhat.com>
+- move cfdisk to /usr/sbin, it depends on /usr stuff
+- add rescuept
+
+* Fri Jun 23 2000 Bernhard Rosenkraenzer <bero@redhat.com>
+- point more at the correct path to vi (for "v"), Bug #10882
+
+* Sun Jun  4 2000 Jeff Johnson <jbj@redhat.com>
+- FHS packaging changes.
+
+* Thu Jun  1 2000 Nalin Dahyabhai <nalin@redhat.com>
+- modify PAM setup to use system-auth
+
+* Mon May  1 2000 Bill Nottingham <notting@redhat.com>
+- eek, where did login go? (specfile tweaks)
+
+* Mon Apr 17 2000 Bernhard Rosenkraenzer <bero@redhat.com>
+- 2.10k
+- fix compilation with current glibc
+
+* Tue Mar 21 2000 Bernhard Rosenkraenzer <bero@redhat.com>
+- 2.10h
+
+* Tue Mar  7 2000 Jeff Johnson <jbj@redhat.com>
+- rebuild for sparc baud rates > 38400.
+
+* Sat Mar  4 2000 Matt Wilson <msw@redhat.com>
+- use snprintf - not sprintf - when doing
+  sprintf ("%%s\n", _("Some string")) to avoid overflows and
+  segfaults.
+
+* Mon Feb 21 2000 Jeff Johnson <jbj@redhat.com>
+- 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 <ewt@redhat.com>
+- -v argument to mkswap wasn't working
+
+* Thu Feb 10 2000 Jakub Jelinek <jakub@redhat.com>
+- Recognize 0xfd on Sun disklabels as RAID
+
+* Tue Feb  8 2000 Bill Nottingham <notting@redhat.com>
+- more lives in /bin, and was linked against /usr/lib/libnurses. Bad.
+
+* Thu Feb 03 2000 Jakub Jelinek <jakub@redhat.com>
+- update to 2.10f
+- fix issues in the new realpath code, avoid leaking memory
+
+* Tue Feb 01 2000 Cristian Gafton <gafton@redhat.com>
+- rebuild to fix dependencies
+- add NFSv3 patches
+
+* Fri Jan 28 2000 Bill Nottingham <notting@redhat.com>
+- don't require csh
+
+* Mon Jan 24 2000 Nalin Dahyabhai <nalin@redhat.com>
+- update to 2.10e
+- add rename
+
+* Thu Jan 20 2000 Jeff Johnson <jbj@redhat.com>
+- strip newlines in logger input.
+
+* Mon Jan 10 2000 Jeff Johnson <jbj@redhat.com>
+- rebuild with correct ncurses libs.
+
+* Tue Dec  7 1999 Matt Wilson <msw@redhat.com>
+- updated to util-linux 2.10c
+- deprecated IMAP login mail notification patch17
+- deprecated raw patch22
+- depricated readprofile patch24
+
+* Tue Dec  7 1999 Bill Nottingham <notting@redhat.com>
+- add patch for readprofile
+
+* Thu Nov 18 1999 Michael K. Johnson <johnsonm@redhat.com>
+- tunelp should come from util-linux
+
+* Tue Nov  9 1999 Jakub Jelinek <jakub@redhat.com>
+- kbdrate cannot use /dev/port on sparc.
+
+* Wed Nov  3 1999 Jakub Jelinek <jakub@redhat.com>
+- fix kbdrate on sparc.
+
+* Wed Oct 27 1999 Bill Nottingham <notting@redhat.com>
+- ship hwclock on alpha.
+
+* Tue Oct  5 1999 Bill Nottingham <notting@redhat.com>
+- don't ship symlinks to rdev if we don't ship rdev.
+
+* Tue Sep 07 1999 Cristian Gafton <gafton@redhat.com>
+- add rawIO support from sct
+
+* Mon Aug 30 1999 Preston Brown <pbrown@redhat.com>
+- don't display "new mail" message when the only piece of mail is from IMAP
+
+* Fri Aug 27 1999 Michael K. Johnson <johnsonm@redhat.com>
+- kbdrate is now a console program
+
+* Thu Aug 26 1999 Jeff Johnson <jbj@redhat.com>
+- 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 <jbj@redhat.com>
+- tsort is now in textutils.
+
+* Wed Aug  4 1999 Bill Nottingham <notting@redhat.com>
+- turn off setuid bit on login. Again. :(
+
+* Tue Aug  3 1999 Peter Jones, <pjones@redhat.com>
+- hostid script for sparc (#3803).
+
+* Tue Aug 03 1999 Christian 'Dr. Disk' Hechelmann <drdisk@tc-gruppe.de>
+- 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 <jbj@redhat.com>
+- 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 <jbj@redhat.com>
+- 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 <jbj@redhat.com>
+- 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 <jbj@redhat.com>
+- update to 2.9s.
+
+* Sat May 29 1999 Jeff Johnson <jbj@redhat.com>
+- fix mkswap sets incorrect bits on sparc64 (#3140).
+
+* Thu Apr 15 1999 Jeff Johnson <jbj@redhat.com>
+- on sparc64 random ioctls on clock interface cause kernel messages.
+
+* Thu Apr 15 1999 Jeff Johnson <jbj@redhat.com>
+- improved raid patch (H.J. Lu).
+
+* Wed Apr 14 1999 Michael K. Johnson <johnsonm@redhat.com>
+- added patch for smartraid controllers
+
+* Sat Apr 10 1999 Cristian Gafton <gafton@redhat.com>
+- fix logging problems caused by setproctitle and PAM interaction
+  (#2045)
+
+* Wed Mar 31 1999 Jeff Johnson <jbj@redhat.com>
+- include docs and examples for sfdisk (#1164)
+
+* Mon Mar 29 1999 Matt Wilson <msw@redhat.com>
+- rtc is not working properly on alpha, we can't use hwclock yet.
+
+* Fri Mar 26 1999 Cristian Gafton <gafton@redhat.com>
+- add patch to make mkswap more 64 bit friendly... Patch from
+  eranian@hpl.hp.com (ahem!)
+
+* Thu Mar 25 1999 Jeff Johnson <jbj@redhat.com>
+- 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 <jj@ultra.linux.cz>
+- 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
+  <ankh@canuck.gen.nz>
+
+* Wed Mar 24 1999 Matt Wilson <msw@redhat.com>
+- added pam_console back into pam.d/login
+
+* Tue Mar 23 1999 Matt Wilson <msw@redhat.com>
+- updated to 2.9i
+- added hwclock for sparcs and alpha
+
+* Mon Mar 22 1999 Erik Troan <ewt@redhat.com>
+- added vigr to file list
+
+* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com> 
+- auto rebuild in the new build environment (release 12)
+
+* Thu Mar 18 1999 Cristian Gafton <gafton@redhat.com>
+- remove most of the ifnarch arm stuff
+
+* Mon Mar 15 1999 Michael Johnson <johnsonm@redhat.com>
+- added pam_console.so to /etc/pam.d/login
+
+* Thu Feb  4 1999 Michael K. Johnson <johnsonm@redhat.com>
+- .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 <jbj@redhat.com>
+- strip fdisk in buildroot correctly (#718)
+
+* Mon Jan 11 1999 Cristian Gafton <gafton@redhat.com>
+- have fdisk compiled on sparc and arm
+
+* Mon Jan 11 1999 Erik Troan <ewt@redhat.com>
+- added beos partition type to fdisk
+
+* Wed Dec 30 1998 Cristian Gafton <gafton@redhat.com>
+- incorporate fdisk on all arches
+
+* Sat Dec  5 1998 Jeff Johnson <jbj@redhat.com>
+- restore PAM functionality at end of login (Bug #201)
+
+* Thu Dec 03 1998 Cristian Gafton <gafton@redhat.com>
+- patch top build on the arm without PAM and related utilities, for now.
+- build hwclock only on intel
+
+* Wed Nov 18 1998 Cristian Gafton <gafton@redhat.com>
+- upgraded to version 2.9
+
+* Thu Oct 29 1998 Bill Nottingham <notting@redhat.com>
+- build for Raw Hide (slang-1.2.2)
+- patch kbdrate wackiness so it builds with egcs
+
+* Tue Oct 13 1998 Erik Troan <ewt@redhat.com>
+- patched more to use termcap
+
+* Mon Oct 12 1998 Erik Troan <ewt@redhat.com>
+- added warning about alpha/bsd label starting cylinder
+
+* Mon Sep 21 1998 Erik Troan <ewt@redhat.com>
+- use sigsetjmp/siglongjmp in more rather then sig'less versions
+
+* Fri Sep 11 1998 Jeff Johnson <jbj@redhat.com>
+- explicit attrs for setuid/setgid programs
+
+* Thu Aug 27 1998 Cristian Gafton <gafton@redhat.com>
+- sln is now included in glibc
+
+* Sun Aug 23 1998 Jeff Johnson <jbj@redhat.com>
+- add cbm1581 floppy definitions (problem #787)
+
+* Mon Jun 29 1998 Jeff Johnson <jbj@redhat.com>
+- remove /etc/nologin at end of shutdown/halt.
+
+* Fri Jun 19 1998 Jeff Johnson <jbj@redhat.com>
+- add mount/losetup.
+
+* Thu Jun 18 1998 Jeff Johnson <jbj@redhat.com>
+- update to 2.8 with 2.8b clean up. hostid now defunct?
+
+* Mon Jun 01 1998 David S. Miller <davem@dm.cobaltmicro.com>
+- "more" now works properly on sparc
+
+* Sat May 02 1998 Jeff Johnson <jbj@redhat.com>
+- Fix "fdisk -l" fault on mounted cdrom. (prob #513)
+
+* Fri Apr 24 1998 Prospector System <bugs@redhat.com>
+- translations modified for de, fr, tr
+
+* Sat Apr 11 1998 Cristian Gafton <gafton@redhat.com>
+- manhattan rebuild
+
+* Mon Dec 29 1997 Erik Troan <ewt@redhat.com>
+- more didn't suspend properly on glibc
+- use proper tc*() calls rather then ioctl's
+
+* Sun Dec 21 1997 Cristian Gafton <gafton@redhat.com>
+- fixed a security problem in chfn and chsh accepting too 
+  long gecos fields
+
+* Fri Dec 19 1997 Mike Wangsmo <wanger@redhat.com>
+- removed "." from default path
+
+* Tue Dec 02 1997 Cristian Gafton <gafton@redhat.com>
+- added (again) the vipw patch
+
+* Wed Oct 22 1997 Michael Fulbright <msf@redhat.com>
+- minor cleanups for glibc 2.1
+
+* Fri Oct 17 1997 Michael Fulbright <msf@redhat.com>
+- added vfat32 filesystem type to list recognized by fdisk
+
+* Fri Oct 10 1997 Erik Troan <ewt@redhat.com>
+- don't build clock on the alpha 
+- don't install chkdupexe
+
+* Thu Oct 02 1997 Michael K. Johnson <johnsonm@redhat.com>
+- Update to new pam standard.
+- BuildRoot.
+
+* Thu Sep 25 1997 Cristian Gafton <gafton@redhat.com>
+- added rootok and setproctitle patches
+- updated pam config files for chfn and chsh
+
+* Tue Sep 02 1997 Erik Troan <ewt@redhat.com>
+- 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 <ewt@redhat.com>
+- update to util-linux 2.7, fixed login problems
+
+* Wed Jun 25 1997 Erik Troan <ewt@redhat.com>
+- 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 <johnsonm@redhat.com>
+- LOG_AUTH --> LOG_AUTHPRIV in login and shutdown
+
+* Mon Mar 03 1997 Michael K. Johnson <johnsonm@redhat.com>
+- Moved to new pam and from pam.conf to pam.d
+
+* Tue Feb 25 1997 Michael K. Johnson <johnsonm@redhat.com>
+- 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.