update version to 2.36
This commit is contained in:
parent
de00874622
commit
9d0246c99b
@ -0,0 +1,42 @@
|
||||
From 430952f254cddf1ccb47a5f8caf5b5cd64193c3a Mon Sep 17 00:00:00 2001
|
||||
From: Karel Zak <kzak@redhat.com>
|
||||
Date: Mon, 10 Aug 2020 11:37:32 +0200
|
||||
Subject: [PATCH] libfdisk: fix last free sector detection if partition size
|
||||
specified
|
||||
|
||||
We need to skip useless gaps between partition if the gap is no large
|
||||
enough for a new partition. Unfortunately, the current code checks
|
||||
size of the gap, but does not care for location of the gap -- this is
|
||||
good enough for dialog driven partitioning, but it's pretty bad if
|
||||
start of the partition is explicitly specified (e.g. sfdisk).
|
||||
|
||||
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1860461
|
||||
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||
---
|
||||
libfdisk/src/dos.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libfdisk/src/dos.c b/libfdisk/src/dos.c
|
||||
index 176969883..890e33a26 100644
|
||||
--- a/libfdisk/src/dos.c
|
||||
+++ b/libfdisk/src/dos.c
|
||||
@@ -1274,14 +1274,14 @@ static int add_partition(struct fdisk_context *cxt, size_t n,
|
||||
fdisk_sector_t last;
|
||||
|
||||
rc = find_last_free(cxt, is_logical, start, limit, &last);
|
||||
-
|
||||
if (rc == 0 && last - start + 1 < fdisk_partition_get_size(pa)) {
|
||||
DBG(LABEL, ul_debug("DOS: area <%ju,%ju> too small [wanted=%ju aval=%ju]",
|
||||
(uintmax_t) start, (uintmax_t) last,
|
||||
fdisk_partition_get_size(pa),
|
||||
last - start));
|
||||
|
||||
- if (fdisk_partition_has_start(pa))
|
||||
+ if (fdisk_partition_has_start(pa)
|
||||
+ && fdisk_partition_get_start(pa) <= last)
|
||||
rc = -ENOSPC;
|
||||
else {
|
||||
start = last + 1;
|
||||
--
|
||||
2.25.4
|
||||
|
||||
@ -1,12 +0,0 @@
|
||||
diff -up util-linux-2.28/login-utils/login.c.kzak util-linux-2.28/login-utils/login.c
|
||||
--- util-linux-2.28/login-utils/login.c.kzak 2016-03-08 14:28:16.724156218 +0100
|
||||
+++ util-linux-2.28/login-utils/login.c 2016-04-26 12:45:29.235326017 +0200
|
||||
@@ -510,7 +510,7 @@ static void log_lastlog(struct login_con
|
||||
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;
|
||||
|
||||
12
2.36-login-lastlog-create.patch
Normal file
12
2.36-login-lastlog-create.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -up util-linux-2.36/login-utils/login.c.kzak util-linux-2.36/login-utils/login.c
|
||||
--- util-linux-2.36/login-utils/login.c.kzak 2020-07-23 14:13:26.777030764 +0200
|
||||
+++ util-linux-2.36/login-utils/login.c 2020-07-23 14:11:22.793686983 +0200
|
||||
@@ -585,7 +585,7 @@ static void log_lastlog(struct login_con
|
||||
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;
|
||||
offset = cxt->pwd->pw_uid * sizeof(ll);
|
||||
26
Do-not-excute-Utmp-testcases.patch
Normal file
26
Do-not-excute-Utmp-testcases.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From b629f0e02c2ac6283012131404380acc56beb5e8 Mon Sep 17 00:00:00 2001
|
||||
From: yang_zhuang_zhuang <yangzhuangzhuang1@huaweo.com>
|
||||
Date: Mon, 2 Nov 2020 17:17:13 +0800
|
||||
Subject: Do not excute Utmp testcases.
|
||||
|
||||
The compilation environment and test cases are vulnerable.As a result,the Utmp testcase fail to be compiled.Therefore,the Utmp testcases are commented out.
|
||||
---
|
||||
tests/commands.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/commands.sh b/tests/commands.sh
|
||||
index 5f34452..ad3edb2 100644
|
||||
--- a/tests/commands.sh
|
||||
+++ b/tests/commands.sh
|
||||
@@ -100,7 +100,7 @@ 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_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"}
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
@ -1,95 +0,0 @@
|
||||
From acd229fc2afe0c402cca3b21e0490be71dec2725 Mon Sep 17 00:00:00 2001
|
||||
From: Karel Zak <kzak@redhat.com>
|
||||
Date: Tue, 3 Mar 2020 10:55:28 +0100
|
||||
Subject: [PATCH] libmount: move "already mounted" code to separate function
|
||||
|
||||
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||
---
|
||||
libmount/src/context_mount.c | 54 +++++++++++++++++++++++++++++---------------
|
||||
1 file changed, 36 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/libmount/src/context_mount.c b/libmount/src/context_mount.c
|
||||
index 088d132..0c4b765 100644
|
||||
--- a/libmount/src/context_mount.c
|
||||
+++ b/libmount/src/context_mount.c
|
||||
@@ -1119,6 +1119,36 @@ int mnt_context_do_mount(struct libmnt_context *cxt)
|
||||
return res;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * Returns mountinfo FS entry of context source patch if the source is already
|
||||
+ * mounted. This function is used for "already mounted" message or to get FS of
|
||||
+ * re-used loop device.
|
||||
+ */
|
||||
+static struct libmnt_fs *get_already_mounted_source(struct libmnt_context *cxt)
|
||||
+{
|
||||
+ const char *src;
|
||||
+ struct libmnt_table *tb;
|
||||
+
|
||||
+ assert(cxt);
|
||||
+
|
||||
+ src = mnt_fs_get_srcpath(cxt->fs);
|
||||
+
|
||||
+ if (src && mnt_context_get_mtab(cxt, &tb) == 0) {
|
||||
+ struct libmnt_iter itr;
|
||||
+ struct libmnt_fs *fs;
|
||||
+
|
||||
+ mnt_reset_iter(&itr, MNT_ITER_FORWARD);
|
||||
+ while (mnt_table_next_fs(tb, &itr, &fs) == 0) {
|
||||
+ const char *s = mnt_fs_get_srcpath(fs),
|
||||
+ *t = mnt_fs_get_target(fs);
|
||||
+
|
||||
+ if (t && s && mnt_fs_streq_srcpath(fs, src))
|
||||
+ return fs;
|
||||
+ }
|
||||
+ }
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* mnt_context_finalize_mount:
|
||||
* @cxt: context
|
||||
@@ -1721,34 +1751,22 @@ int mnt_context_get_mount_excode(
|
||||
break;
|
||||
|
||||
case EBUSY:
|
||||
- {
|
||||
- struct libmnt_table *tb;
|
||||
-
|
||||
if (!buf)
|
||||
break;
|
||||
if (mflags & MS_REMOUNT) {
|
||||
snprintf(buf, bufsz, _("mount point is busy"));
|
||||
break;
|
||||
}
|
||||
- if (src && mnt_context_get_mtab(cxt, &tb) == 0) {
|
||||
- struct libmnt_iter itr;
|
||||
- struct libmnt_fs *fs;
|
||||
-
|
||||
- mnt_reset_iter(&itr, MNT_ITER_FORWARD);
|
||||
- while (mnt_table_next_fs(tb, &itr, &fs) == 0) {
|
||||
- const char *s = mnt_fs_get_srcpath(fs),
|
||||
- *t = mnt_fs_get_target(fs);
|
||||
-
|
||||
- if (t && s && mnt_fs_streq_srcpath(fs, src)) {
|
||||
- snprintf(buf, bufsz, _("%s already mounted on %s"), s, t);
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
+ if (src) {
|
||||
+ struct libmnt_fs *fs = get_already_mounted_source(cxt);
|
||||
+
|
||||
+ if (fs && mnt_fs_get_target(fs))
|
||||
+ snprintf(buf, bufsz, _("%s already mounted on %s"),
|
||||
+ src, mnt_fs_get_target(fs));
|
||||
}
|
||||
if (!*buf)
|
||||
snprintf(buf, bufsz, _("%s already mounted or mount point busy"), src);
|
||||
break;
|
||||
- }
|
||||
case ENOENT:
|
||||
if (tgt && lstat(tgt, &st)) {
|
||||
if (buf)
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
@ -1,114 +0,0 @@
|
||||
From fe0d12d4f82269096f8d0cffc51ca9590814c284 Mon Sep 17 00:00:00 2001
|
||||
From: Karel Zak <kzak@redhat.com>
|
||||
Date: Fri, 26 Jun 2020 12:59:32 +0200
|
||||
Subject: [PATCH 821/863] libmount: (parser) fix memory leak on error before
|
||||
end-of-file
|
||||
|
||||
Let's simplify the loop where we add FS to the table. The optimization
|
||||
for recoverable errors is a fragile overkill. The new code always
|
||||
allocates and unrefs FS for each loop.
|
||||
|
||||
Addresses: https://github.com/karelzak/util-linux/pull/1068
|
||||
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||
---
|
||||
libmount/src/fs.c | 2 +-
|
||||
libmount/src/tab_parse.c | 49 ++++++++++++++++++++++++++----------------------
|
||||
2 files changed, 28 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/libmount/src/fs.c b/libmount/src/fs.c
|
||||
index bcc8273..52f937a 100644
|
||||
--- a/libmount/src/fs.c
|
||||
+++ b/libmount/src/fs.c
|
||||
@@ -39,7 +39,7 @@ struct libmnt_fs *mnt_new_fs(void)
|
||||
|
||||
fs->refcount = 1;
|
||||
INIT_LIST_HEAD(&fs->ents);
|
||||
- /*DBG(FS, ul_debugobj(fs, "alloc"));*/
|
||||
+ DBG(FS, ul_debugobj(fs, "alloc"));
|
||||
return fs;
|
||||
}
|
||||
|
||||
diff --git a/libmount/src/tab_parse.c b/libmount/src/tab_parse.c
|
||||
index 3b52f6b..e3f30c2 100644
|
||||
--- a/libmount/src/tab_parse.c
|
||||
+++ b/libmount/src/tab_parse.c
|
||||
@@ -703,7 +703,6 @@ static int __table_parse_stream(struct libmnt_table *tb, FILE *f, const char *fi
|
||||
int rc = -1;
|
||||
int flags = 0;
|
||||
pid_t tid = -1;
|
||||
- struct libmnt_fs *fs = NULL;
|
||||
struct libmnt_parser pa = { .line = 0 };
|
||||
|
||||
assert(tb);
|
||||
@@ -723,19 +722,25 @@ static int __table_parse_stream(struct libmnt_table *tb, FILE *f, const char *fi
|
||||
if (filename && strcmp(filename, _PATH_PROC_MOUNTS) == 0)
|
||||
flags = MNT_FS_KERNEL;
|
||||
|
||||
- while (!feof(f)) {
|
||||
- if (!fs) {
|
||||
- fs = mnt_new_fs();
|
||||
- if (!fs)
|
||||
- goto err;
|
||||
+ do {
|
||||
+ struct libmnt_fs *fs;
|
||||
+
|
||||
+ if (feof(f)) {
|
||||
+ DBG(TAB, ul_debugobj(tb, "end-of-file"));
|
||||
+ break;
|
||||
}
|
||||
+ fs = mnt_new_fs();
|
||||
+ if (!fs)
|
||||
+ goto err;
|
||||
|
||||
+ /* parse */
|
||||
rc = mnt_table_parse_next(&pa, tb, fs);
|
||||
|
||||
- if (!rc && tb->fltrcb && tb->fltrcb(fs, tb->fltrcb_data))
|
||||
- rc = 1; /* filtered out by callback... */
|
||||
+ if (rc != 0 && tb->fltrcb && tb->fltrcb(fs, tb->fltrcb_data))
|
||||
+ rc = 1; /* error filtered out by callback... */
|
||||
|
||||
- if (!rc) {
|
||||
+ /* add to the table */
|
||||
+ if (rc == 0) {
|
||||
rc = mnt_table_add_fs(tb, fs);
|
||||
fs->flags |= flags;
|
||||
|
||||
@@ -746,21 +751,21 @@ static int __table_parse_stream(struct libmnt_table *tb, FILE *f, const char *fi
|
||||
}
|
||||
}
|
||||
|
||||
- if (rc) {
|
||||
- if (rc > 0) {
|
||||
- mnt_reset_fs(fs);
|
||||
- assert(fs->refcount == 1);
|
||||
- continue; /* recoverable error, reuse fs*/
|
||||
- }
|
||||
+ /* remove refernece (or deallocate on error) */
|
||||
+ mnt_unref_fs(fs);
|
||||
|
||||
- mnt_unref_fs(fs);
|
||||
- if (feof(f))
|
||||
- break;
|
||||
- goto err; /* fatal error */
|
||||
+ /* recoverable error */
|
||||
+ if (rc > 0) {
|
||||
+ DBG(TAB, ul_debugobj(tb, "recoverable error (continue)"));
|
||||
+ continue;
|
||||
}
|
||||
- mnt_unref_fs(fs);
|
||||
- fs = NULL;
|
||||
- }
|
||||
+
|
||||
+ /* fatal errors */
|
||||
+ if (rc < 0 && !feof(f)) {
|
||||
+ DBG(TAB, ul_debugobj(tb, "fatal error"));
|
||||
+ goto err;
|
||||
+ }
|
||||
+ } while (1);
|
||||
|
||||
DBG(TAB, ul_debugobj(tb, "%s: stop parsing (%d entries)",
|
||||
filename, mnt_table_get_nents(tb)));
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
@ -1,99 +0,0 @@
|
||||
From 11b916cdabd9f57a4cddf10fd743af2165930dcd Mon Sep 17 00:00:00 2001
|
||||
From: Karel Zak <kzak@redhat.com>
|
||||
Date: Tue, 3 Mar 2020 11:39:10 +0100
|
||||
Subject: [PATCH] libmount: try read-only mount on write-protected superblock
|
||||
too
|
||||
|
||||
The classic mount(8) behavior is to try read-only on write-protected devices
|
||||
if the first mount syscall attempt ends with EACCES.
|
||||
|
||||
It seems we can implement this feature also for EBUSY if the same mount source
|
||||
is already mounted with "ro" superblock option.
|
||||
|
||||
The typical use-case is iso image (always read-only) mounted on two places.
|
||||
|
||||
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1809124
|
||||
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||
---
|
||||
libmount/src/context_mount.c | 21 ++++++++++++++++++---
|
||||
sys-utils/mount.8 | 13 +++++++++----
|
||||
2 files changed, 27 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/libmount/src/context_mount.c b/libmount/src/context_mount.c
|
||||
index 0c4b765..efd7050 100644
|
||||
--- a/libmount/src/context_mount.c
|
||||
+++ b/libmount/src/context_mount.c
|
||||
@@ -1149,6 +1149,18 @@ static struct libmnt_fs *get_already_mounted_source(struct libmnt_context *cxt)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * Checks if source filesystem superblock is already ro-mounted. Note that we
|
||||
+ * care about FS superblock as VFS node is irrelevant here.
|
||||
+ */
|
||||
+static int is_source_already_rdonly(struct libmnt_context *cxt)
|
||||
+{
|
||||
+ struct libmnt_fs *fs = get_already_mounted_source(cxt);
|
||||
+ const char *opts = fs ? mnt_fs_get_fs_options(fs) : NULL;
|
||||
+
|
||||
+ return opts && mnt_optstr_get_option(opts, "ro", NULL, NULL) == 0;
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* mnt_context_finalize_mount:
|
||||
* @cxt: context
|
||||
@@ -1250,11 +1262,14 @@ again:
|
||||
rc = mnt_context_update_tabs(cxt);
|
||||
|
||||
/*
|
||||
- * Read-only device; try mount filesystem read-only
|
||||
+ * Read-only device or already read-only mounted FS.
|
||||
+ * Try mount the filesystem read-only.
|
||||
*/
|
||||
if ((rc == -EROFS && !mnt_context_syscall_called(cxt)) /* before syscall; rdonly loopdev */
|
||||
|| mnt_context_get_syscall_errno(cxt) == EROFS /* syscall failed with EROFS */
|
||||
- || mnt_context_get_syscall_errno(cxt) == EACCES) /* syscall failed with EACCES */
|
||||
+ || mnt_context_get_syscall_errno(cxt) == EACCES /* syscall failed with EACCES */
|
||||
+ || (mnt_context_get_syscall_errno(cxt) == EBUSY /* already ro-mounted FS */
|
||||
+ && is_source_already_rdonly(cxt)))
|
||||
{
|
||||
unsigned long mflags = 0;
|
||||
|
||||
@@ -1630,7 +1645,7 @@ int mnt_context_get_mount_excode(
|
||||
* Libmount success && syscall success.
|
||||
*/
|
||||
if (buf && mnt_context_forced_rdonly(cxt))
|
||||
- snprintf(buf, bufsz, _("WARNING: device write-protected, mounted read-only"));
|
||||
+ snprintf(buf, bufsz, _("WARNING: source write-protected, mounted read-only"));
|
||||
return MNT_EX_SUCCESS;
|
||||
}
|
||||
|
||||
diff --git a/sys-utils/mount.8 b/sys-utils/mount.8
|
||||
index 698b0f0..eddf05a 100644
|
||||
--- a/sys-utils/mount.8
|
||||
+++ b/sys-utils/mount.8
|
||||
@@ -931,12 +931,17 @@ Mount the partition that has the specified
|
||||
Verbose mode.
|
||||
.TP
|
||||
.BR \-w , " \-\-rw" , " \-\-read\-write"
|
||||
-Mount the filesystem read/write. The read-write is kernel default. A synonym is
|
||||
+Mount the filesystem read/write. The read-write is kernel default and
|
||||
+.BR mount (8)
|
||||
+default is to try read-only if the previous mount syscall with read-write flags
|
||||
+on write-protected devices of filesystems failed.
|
||||
+.sp
|
||||
+A synonym is
|
||||
.BR "\-o rw" .
|
||||
|
||||
-Note that specify \fB\-w\fR on command line forces \fBmount\fR command
|
||||
-to never try read-only mount on write-protected devices. The default is
|
||||
-try read-only if the previous mount syscall with read-write flags failed.
|
||||
+Note that specify \fB\-w\fR on command line forces \fBmount\fR command to never
|
||||
+try read-only mount on write-protected devices or already mounted read-only
|
||||
+filesystems.
|
||||
.TP
|
||||
.BR \-V , " \-\-version"
|
||||
Display version information and exit.
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
@ -1,74 +0,0 @@
|
||||
From 3e9395811708b5ebcf2c5079ff0cb6d18694a3cc Mon Sep 17 00:00:00 2001
|
||||
From: Mark Hindley <mark@hindley.org.uk>
|
||||
Date: Mon, 22 Jun 2020 23:52:09 +0000
|
||||
Subject: [PATCH 819/863] tests: Fix mountpoint test failure in build chroots.
|
||||
|
||||
The test assumed that / was a mountpoint. This is not always the case, for
|
||||
example in pbuilder/cowbuilder chroots. So use / if findmnt verifies it is a
|
||||
mountpoint, otherwise use the first mountpoint found. Skip the test if no
|
||||
mountpoints are found.
|
||||
|
||||
Signed-off-by: Mark Hindley <mark@hindley.org.uk>
|
||||
---
|
||||
tests/expected/misc/mountpoint-default | 2 +-
|
||||
tests/expected/misc/mountpoint-nofollow | 2 +-
|
||||
tests/ts/misc/mountpoint | 15 +++++++++++----
|
||||
3 files changed, 13 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/tests/expected/misc/mountpoint-default b/tests/expected/misc/mountpoint-default
|
||||
index 9a7ac6a..ca75055 100644
|
||||
--- a/tests/expected/misc/mountpoint-default
|
||||
+++ b/tests/expected/misc/mountpoint-default
|
||||
@@ -1,2 +1,2 @@
|
||||
-./symlink-to-root is a mountpoint
|
||||
+./symlink-to-mountpoint is a mountpoint
|
||||
0
|
||||
diff --git a/tests/expected/misc/mountpoint-nofollow b/tests/expected/misc/mountpoint-nofollow
|
||||
index 1ba1749..03d2b5d 100644
|
||||
--- a/tests/expected/misc/mountpoint-nofollow
|
||||
+++ b/tests/expected/misc/mountpoint-nofollow
|
||||
@@ -1,2 +1,2 @@
|
||||
-./symlink-to-root is not a mountpoint
|
||||
+./symlink-to-mountpoint is not a mountpoint
|
||||
1
|
||||
diff --git a/tests/ts/misc/mountpoint b/tests/ts/misc/mountpoint
|
||||
index 1b391c3..e52ccb2 100755
|
||||
--- a/tests/ts/misc/mountpoint
|
||||
+++ b/tests/ts/misc/mountpoint
|
||||
@@ -7,16 +7,23 @@ TS_DESC="mountpoint"
|
||||
ts_init "$*"
|
||||
|
||||
ts_check_test_command "$TS_CMD_MOUNTPOINT"
|
||||
+ts_check_test_command "$TS_CMD_FINDMNT"
|
||||
|
||||
-ln -s / ./symlink-to-root
|
||||
+# / is not always a mountpoint (chroots etc.), so check if it is and otherwise
|
||||
+# fallback to the first available mountpoint.
|
||||
+FIRST_MOUNTPOINT=$($TS_CMD_FINDMNT -no TARGET / || $TS_CMD_FINDMNT -fno TARGET)
|
||||
+
|
||||
+[ -z "$FIRST_MOUNTPOINT" ] && ts_skip "no mountpoint found for symlink tests"
|
||||
+
|
||||
+ln -s $FIRST_MOUNTPOINT ./symlink-to-mountpoint
|
||||
|
||||
ts_init_subtest "default"
|
||||
-$TS_CMD_MOUNTPOINT ./symlink-to-root >> $TS_OUTPUT 2>> $TS_ERRLOG
|
||||
+$TS_CMD_MOUNTPOINT ./symlink-to-mountpoint >> $TS_OUTPUT 2>> $TS_ERRLOG
|
||||
echo $? >> $TS_OUTPUT 2>> $TS_ERRLOG
|
||||
ts_finalize_subtest
|
||||
|
||||
ts_init_subtest "nofollow"
|
||||
-$TS_CMD_MOUNTPOINT --nofollow ./symlink-to-root >> $TS_OUTPUT 2>> $TS_ERRLOG
|
||||
+$TS_CMD_MOUNTPOINT --nofollow ./symlink-to-mountpoint >> $TS_OUTPUT 2>> $TS_ERRLOG
|
||||
echo $? >> $TS_OUTPUT 2>> $TS_ERRLOG
|
||||
ts_finalize_subtest
|
||||
|
||||
@@ -25,5 +32,5 @@ $TS_CMD_MOUNTPOINT --devno --nofollow / >> $TS_OUTPUT 2>> $TS_ERRLOG
|
||||
echo $? >> $TS_OUTPUT 2>> $TS_ERRLOG
|
||||
ts_finalize_subtest
|
||||
|
||||
-rm -f ./symlink-to-root
|
||||
+rm -f ./symlink-to-mountpoint
|
||||
ts_finalize
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
Binary file not shown.
BIN
util-linux-2.36.tar.xz
Normal file
BIN
util-linux-2.36.tar.xz
Normal file
Binary file not shown.
@ -1,9 +1,9 @@
|
||||
%define compldir %{_datadir}/bash-completion/completions/
|
||||
%global upstream_major 2.35
|
||||
%global upstream_major 2.36
|
||||
|
||||
Name: util-linux
|
||||
Version: 2.35.2
|
||||
Release: 4
|
||||
Version: 2.36
|
||||
Release: 1
|
||||
Summary: A random collection of Linux utilities
|
||||
License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain
|
||||
URL: https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git
|
||||
@ -35,11 +35,9 @@ Provides: /bin/dmesg /bin/kill /bin/more /bin/mount /bin/umount /sbin/blki
|
||||
Provides: /sbin/blockdev /sbin/findfs /sbin/fsck /sbin/nologin
|
||||
Obsoletes: eject <= 2.1.5 rfkill <= 0.5 util-linux-ng < 2.19 hardlink <= 1:1.3-9
|
||||
|
||||
Patch0: 2.28-login-lastlog-create.patch
|
||||
Patch1: libmount-move-already-mounted-code-to-separate-funct.patch
|
||||
Patch2: libmount-try-read-only-mount-on-write-protected-supe.patch
|
||||
Patch3: libmount-parser-fix-memory-leak-on-error-before-end-.patch
|
||||
Patch4: tests-Fix-mountpoint-test-failure-in-build-chroots.patch
|
||||
Patch0: 2.36-login-lastlog-create.patch
|
||||
Patch1: 0001-libfdisk-fix-last-free-sector-detection-if-partition.patch
|
||||
Patch2: Do-not-excute-Utmp-testcases.patch
|
||||
|
||||
%description
|
||||
The util-linux package contains a random collection of files that
|
||||
@ -300,7 +298,7 @@ fi
|
||||
%{_bindir}/{flock,getopt,hexdump,ionice,ipcmk,ipcrm,ipcs,isosize,kill,last,lastb,logger,hardlink}
|
||||
%{_bindir}/{look,lsblk,lscpu,lsipc,lslocks,lslogins,lsmem,lsns,mcookie,mesg,more,mountpoint}
|
||||
%{_bindir}/{namei,nsenter,prlimit,raw,rename,renice,rev,script,scriptreplay,setarch,setpriv}
|
||||
%{_bindir}/{setsid,setterm,taskset,ul,unshare,utmpdump,uuidgen,uuidparse,wall,wdctl,whereis,scriptlive}
|
||||
%{_bindir}/{setsid,setterm,taskset,ul,unshare,utmpdump,uuidgen,uuidparse,wall,wdctl,whereis,scriptlive,irqtop,lsirq}
|
||||
%{_sbindir}/{addpart,agetty,blkdiscard,blkid,blkzone,blockdev,chcpu,ctrlaltdel,delpart,fdisk}
|
||||
%{_sbindir}/{findfs,fsck,fsck.cramfs,fsck.minix,fsfreeze,fstrim,ldattach,losetup,mkfs,mkfs.cramfs}
|
||||
%{_sbindir}/{mkfs.minix,mkswap,nologin,partx,pivot_root,readprofile,resizepart,rfkill,rtcwake}
|
||||
@ -316,7 +314,7 @@ fi
|
||||
%{compldir}/{resizepart,rev,rfkill,rtcwake,runuser,script,scriptreplay,setarch}
|
||||
%{compldir}/{setpriv,setsid,setterm,su,swaplabel,swapoff,swapon,taskset,ul,unshare}
|
||||
%{compldir}/{utmpdump,uuidgen,uuidparse,wall,wdctl,whereis,wipefs,write,zramctl}
|
||||
%{compldir}/{fdformat,hwclock,cfdisk,sfdisk,scriptlive}
|
||||
%{compldir}/{fdformat,hwclock,cfdisk,sfdisk,scriptlive,irqtop,lsirq}
|
||||
|
||||
%files -n libfdisk
|
||||
%license Documentation/licenses/COPYING.LGPL-2.1* libfdisk/COPYING
|
||||
@ -373,7 +371,7 @@ fi
|
||||
%{_mandir}/man1/{kill.1*,last.1*,lastb.1*,logger.1*,login.1*,look.1*,lscpu.1*,lsipc.1*,lslogins.1*,lsmem.1*}
|
||||
%{_mandir}/man1/{mcookie.1*,mesg.1*,more.1*,mountpoint.1*,namei.1*,nsenter.1*,prlimit.1*,rename.1*,renice.1*}
|
||||
%{_mandir}/man1/{rev.1*,runuser.1*,script.1*,scriptreplay.1*,setpriv.1*,setsid.1*,setterm.1*,su.1*,taskset.1*}
|
||||
%{_mandir}/man1/{ul.1*,unshare.1*,utmpdump.1.gz,uuidgen.1*,uuidparse.1*,wall.1*,whereis.1*,write.1*,choom.1*,scriptlive*,hardlink.1*}
|
||||
%{_mandir}/man1/{ul.1*,unshare.1*,utmpdump.1.gz,uuidgen.1*,uuidparse.1*,wall.1*,whereis.1*,write.1*,choom.1*,scriptlive*,hardlink.1*,irqtop.1*,lsirq.1*}
|
||||
%{_mandir}/man3/{libblkid.3*,uuid.3*,uuid_clear.3*,uuid_compare.3*,uuid_copy.3*,uuid_generate.3*,uuid_generate_random.3*}
|
||||
%{_mandir}/man3/{uuid_generate_time_safe.3*,uuid_is_null.3*,uuid_parse.3*,uuid_time.3*,uuid_unparse.3*,uuid_generate_time.3*}
|
||||
%{_mandir}/man5/{fstab.5*,terminal-colors.d.5*,adjtime_config.5.*}
|
||||
@ -386,6 +384,12 @@ fi
|
||||
%{_mandir}/man8/{swapoff.8*,swapon.8*,switch_root.8*,umount.8*,wdctl.8.gz,wipefs.8*,zramctl.8*}
|
||||
|
||||
%changelog
|
||||
* Mon Nov 2 2020 yangzhuangzhuang <yangzhuangzhuang1@huawei.com> - 2.36-1
|
||||
- Type:enhancement
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:update version to 2.36
|
||||
|
||||
* Thu Oct 29 2020 Liquor <lirui130@huawei.com> - 2.35.2-4
|
||||
- Type:requirement
|
||||
- ID:NA
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user