Compare commits
60 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f674e5fc9c |
||
|
|
eb04a0fe33 |
||
|
|
0615d97b81 |
||
|
|
0095d94d91 |
||
|
|
20976b8be8 |
||
|
|
c493f607ab | ||
|
|
c3c18147bd |
||
|
|
e454479c5c |
||
|
|
a0b27bcd5f |
||
|
|
386bf34c2e |
||
|
|
fdfe50c891 |
||
|
|
f0604fd61a |
||
|
|
ec87f84093 |
||
|
|
c71c8701f4 | ||
|
|
e847b805f8 | ||
|
|
ddff633d0f | ||
|
|
a6d9263e25 | ||
|
|
8080f5a15a |
||
|
|
968cac099d |
||
|
|
e3b928358b |
||
|
|
d3137f0cd0 |
||
|
|
a09814d13c | ||
|
|
6cd5ce1d7e |
||
|
|
e02261a471 |
||
|
|
7c8ffed470 | ||
|
|
ba7b19b5bf | ||
|
|
1421739c0c |
||
|
|
56dd448b26 |
||
|
|
a91df5db11 |
||
|
|
245be9f408 |
||
|
|
f6a44b3f1f | ||
|
|
fd8859df68 | ||
|
|
bf7dfdb2ce |
||
|
|
b851cbdafc |
||
|
|
bf0817f5a5 |
||
|
|
21acecbf27 | ||
|
|
6e05a62913 | ||
|
|
3040113a7a | ||
|
|
1c60283cdf | ||
|
|
f33a14f44f | ||
|
|
6bd7dce39d |
||
|
|
cce55f8f56 | ||
|
|
24c306d28d | ||
|
|
2c4d4b8151 | ||
|
|
43d181cda7 | ||
|
|
f8035e385d | ||
|
|
ea41467a56 | ||
|
|
9d850274b1 | ||
|
|
ad57d2b8e8 | ||
|
|
31230267ea | ||
|
|
cd953e11dd | ||
|
|
23b297bf58 | ||
|
|
f3c6ff7e2c | ||
|
|
4dcaf08c8b | ||
|
|
26b2c3ae54 | ||
|
|
e0f6afe5e6 | ||
|
|
2158b83433 | ||
|
|
f672fec436 | ||
|
|
cc30dec8eb | ||
|
|
9325dbbef7 |
25 changed files with 1228 additions and 2672 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1 +1,2 @@
|
||||||
/coreutils-[0-9.]*.tar.xz
|
/coreutils-[0-9.]*.tar.xz
|
||||||
|
/coreutils-[0-9.]*.tar.xz.sig
|
||||||
|
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
diff --git a/src/date.c b/src/date.c
|
|
||||||
index ddb011e..619a72b 100644
|
|
||||||
--- a/src/date.c
|
|
||||||
+++ b/src/date.c
|
|
||||||
@@ -494,14 +494,7 @@ main (int argc, char **argv)
|
|
||||||
format = DATE_FMT_LANGINFO ();
|
|
||||||
if (! *format)
|
|
||||||
{
|
|
||||||
- /* Do not wrap the following literal format string with _(...).
|
|
||||||
- For example, suppose LC_ALL is unset, LC_TIME=POSIX,
|
|
||||||
- and LANG="ko_KR". In that case, POSIX says that LC_TIME
|
|
||||||
- determines the format and contents of date and time strings
|
|
||||||
- written by date, which means "date" must generate output
|
|
||||||
- using the POSIX locale; but adding _() would cause "date"
|
|
||||||
- to use a Korean translation of the format. */
|
|
||||||
- format = "%a %b %e %H:%M:%S %Z %Y";
|
|
||||||
+ format = dcgettext(NULL, N_("%a %b %e %H:%M:%S %Z %Y"), LC_TIME);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
diff --git a/src/uname.c b/src/uname.c
|
|
||||||
index 6371ca2..1ad8fd7 100644
|
|
||||||
--- a/src/uname.c
|
|
||||||
+++ b/src/uname.c
|
|
||||||
@@ -300,13 +300,19 @@ main (int argc, char **argv)
|
|
||||||
|
|
||||||
if (toprint & PRINT_PROCESSOR)
|
|
||||||
{
|
|
||||||
- char const *element = unknown;
|
|
||||||
+ char *element = unknown;
|
|
||||||
#if HAVE_SYSINFO && defined SI_ARCHITECTURE
|
|
||||||
{
|
|
||||||
static char processor[257];
|
|
||||||
if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor))
|
|
||||||
element = processor;
|
|
||||||
}
|
|
||||||
+#else
|
|
||||||
+ {
|
|
||||||
+ static struct utsname u;
|
|
||||||
+ uname(&u);
|
|
||||||
+ element = u.machine;
|
|
||||||
+ }
|
|
||||||
#endif
|
|
||||||
#ifdef UNAME_PROCESSOR
|
|
||||||
if (element == unknown)
|
|
||||||
@@ -344,7 +350,7 @@ main (int argc, char **argv)
|
|
||||||
|
|
||||||
if (toprint & PRINT_HARDWARE_PLATFORM)
|
|
||||||
{
|
|
||||||
- char const *element = unknown;
|
|
||||||
+ char *element = unknown;
|
|
||||||
#if HAVE_SYSINFO && defined SI_PLATFORM
|
|
||||||
{
|
|
||||||
static char hardware_platform[257];
|
|
||||||
@@ -352,6 +358,14 @@ main (int argc, char **argv)
|
|
||||||
hardware_platform, sizeof hardware_platform))
|
|
||||||
element = hardware_platform;
|
|
||||||
}
|
|
||||||
+#else
|
|
||||||
+ {
|
|
||||||
+ static struct utsname u;
|
|
||||||
+ uname(&u);
|
|
||||||
+ element = u.machine;
|
|
||||||
+ if(strlen(element)==4 && element[0]=='i' && element[2]=='8' && element[3]=='6')
|
|
||||||
+ element[1]='3';
|
|
||||||
+ }
|
|
||||||
#endif
|
|
||||||
#ifdef UNAME_HARDWARE_PLATFORM
|
|
||||||
if (element == unknown)
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
From 81e25c8521937ecf7f444bab11fddaaf81cc3efd Mon Sep 17 00:00:00 2001
|
From bca11e30e8a6281a8cbddc9fb196dd86ab09c955 Mon Sep 17 00:00:00 2001
|
||||||
From: Kamil Dudka <kdudka@redhat.com>
|
From: Kamil Dudka <kdudka@redhat.com>
|
||||||
Date: Fri, 17 Jun 2016 16:58:18 +0200
|
Date: Fri, 17 Jun 2016 16:58:18 +0200
|
||||||
Subject: [PATCH] downstream changes to default DIR_COLORS
|
Subject: [PATCH] downstream changes to default DIR_COLORS
|
||||||
|
|
@ -9,61 +9,61 @@ Subject: [PATCH] downstream changes to default DIR_COLORS
|
||||||
2 files changed, 23 insertions(+), 7 deletions(-)
|
2 files changed, 23 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
diff --git a/DIR_COLORS b/DIR_COLORS
|
diff --git a/DIR_COLORS b/DIR_COLORS
|
||||||
index bd5df23..84f2417 100644
|
index 540f6cd..b4785b6 100644
|
||||||
--- a/DIR_COLORS
|
--- a/DIR_COLORS
|
||||||
+++ b/DIR_COLORS
|
+++ b/DIR_COLORS
|
||||||
@@ -1,3 +1,7 @@
|
@@ -1,3 +1,7 @@
|
||||||
+# This file goes in the /etc directory, and must be world readable.
|
+# This file goes in the /etc directory, and must be world readable.
|
||||||
+# You can copy this file to .dir_colors in your $HOME directory to override
|
+# You can override the system defaults by making a copy of this file
|
||||||
+# the system defaults.
|
+# as ~/.dir_colors
|
||||||
+
|
+
|
||||||
# Configuration file for dircolors, a utility to help you set the
|
# Configuration file for dircolors, a utility to help you set the
|
||||||
# LS_COLORS environment variable used by GNU ls with the --color option.
|
# LS_COLORS environment variable used by GNU ls with the --color option.
|
||||||
|
|
||||||
@@ -8,6 +12,9 @@
|
@@ -11,6 +15,9 @@
|
||||||
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
|
|
||||||
# slackware version of dircolors) are recognized but ignored.
|
# Global config options can be specified before TERM or COLORTERM entries
|
||||||
|
|
||||||
+# For compatibility, the pattern "^COLOR.*none" is recognized as a way to
|
+# For compatibility, the pattern "^COLOR.*none" is recognized as a way to
|
||||||
+# disable colorization. See https://bugzilla.redhat.com/1349579 for details.
|
+# disable colorization. See https://bugzilla.redhat.com/1349579 for details.
|
||||||
+
|
+
|
||||||
# Below are TERM entries, which can be a glob patterns, to match
|
# ===================================================================
|
||||||
# against the TERM environment variable to determine if it is colorizable.
|
# Terminal filters
|
||||||
TERM Eterm
|
# ===================================================================
|
||||||
@@ -59,7 +66,7 @@ DOOR 01;35 # door
|
@@ -70,7 +77,7 @@ DOOR 01;35 # door
|
||||||
BLK 40;33;01 # block device driver
|
BLK 40;33;01 # block device driver
|
||||||
CHR 40;33;01 # character device driver
|
CHR 40;33;01 # character device driver
|
||||||
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...
|
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...
|
||||||
-MISSING 00 # ... and the files they point to
|
-MISSING 00 # ... and the files they point to
|
||||||
+MISSING 01;37;41 # ... and the files they point to
|
+MISSING 01;37;41 # ... and the files they point to
|
||||||
SETUID 37;41 # file that is setuid (u+s)
|
SETUID 37;41 # regular file that is setuid (u+s)
|
||||||
SETGID 30;43 # file that is setgid (g+s)
|
SETGID 30;43 # regular file that is setgid (g+s)
|
||||||
CAPABILITY 30;41 # file with capability
|
CAPABILITY 00 # regular file with capability (very expensive to lookup)
|
||||||
diff --git a/DIR_COLORS.lightbgcolor b/DIR_COLORS.lightbgcolor
|
diff --git a/DIR_COLORS.lightbgcolor b/DIR_COLORS.lightbgcolor
|
||||||
index 4316832..6402854 100644
|
index e3b0ec3..39a0a4c 100644
|
||||||
--- a/DIR_COLORS.lightbgcolor
|
--- a/DIR_COLORS.lightbgcolor
|
||||||
+++ b/DIR_COLORS.lightbgcolor
|
+++ b/DIR_COLORS.lightbgcolor
|
||||||
@@ -1,3 +1,9 @@
|
@@ -1,3 +1,9 @@
|
||||||
+# Configuration file for the color ls utility - modified for lighter backgrounds
|
+# Configuration file for the color ls utility - modified for lighter backgrounds
|
||||||
+
|
+
|
||||||
+# This file goes in the /etc directory, and must be world readable.
|
+# This file goes in the /etc directory, and must be world readable.
|
||||||
+# You can copy this file to .dir_colors in your $HOME directory to override
|
+# You can override the system defaults by making a copy of this file
|
||||||
+# the system defaults.
|
+# as ~/.dir_colors
|
||||||
+
|
+
|
||||||
# Configuration file for dircolors, a utility to help you set the
|
# Configuration file for dircolors, a utility to help you set the
|
||||||
# LS_COLORS environment variable used by GNU ls with the --color option.
|
# LS_COLORS environment variable used by GNU ls with the --color option.
|
||||||
|
|
||||||
@@ -8,6 +14,9 @@
|
@@ -11,6 +17,9 @@
|
||||||
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
|
|
||||||
# slackware version of dircolors) are recognized but ignored.
|
# Global config options can be specified before TERM or COLORTERM entries
|
||||||
|
|
||||||
+# For compatibility, the pattern "^COLOR.*none" is recognized as a way to
|
+# For compatibility, the pattern "^COLOR.*none" is recognized as a way to
|
||||||
+# disable colorization. See https://bugzilla.redhat.com/1349579 for details.
|
+# disable colorization. See https://bugzilla.redhat.com/1349579 for details.
|
||||||
+
|
+
|
||||||
# Below are TERM entries, which can be a glob patterns, to match
|
# ===================================================================
|
||||||
# against the TERM environment variable to determine if it is colorizable.
|
# Terminal filters
|
||||||
TERM Eterm
|
# ===================================================================
|
||||||
@@ -49,17 +58,17 @@ TERM xterm*
|
@@ -60,17 +69,17 @@ TERM xterm*
|
||||||
#NORMAL 00 # no color code at all
|
#NORMAL 00 # no color code at all
|
||||||
#FILE 00 # regular file: use no color at all
|
#FILE 00 # regular file: use no color at all
|
||||||
RESET 0 # reset to "normal" color
|
RESET 0 # reset to "normal" color
|
||||||
|
|
@ -83,18 +83,18 @@ index 4316832..6402854 100644
|
||||||
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...
|
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...
|
||||||
-MISSING 00 # ... and the files they point to
|
-MISSING 00 # ... and the files they point to
|
||||||
+MISSING 01;37;41 # ... and the files they point to
|
+MISSING 01;37;41 # ... and the files they point to
|
||||||
SETUID 37;41 # file that is setuid (u+s)
|
SETUID 37;41 # regular file that is setuid (u+s)
|
||||||
SETGID 30;43 # file that is setgid (g+s)
|
SETGID 30;43 # regular file that is setgid (g+s)
|
||||||
CAPABILITY 30;41 # file with capability
|
CAPABILITY 00 # regular file with capability (very expensive to lookup)
|
||||||
@@ -68,7 +77,7 @@ OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
|
@@ -79,7 +88,7 @@ OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
|
||||||
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
|
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
|
||||||
|
|
||||||
# This is for files with execute permission:
|
# This is for regular files with execute permission:
|
||||||
-EXEC 01;32
|
-EXEC 01;32
|
||||||
+EXEC 00;32
|
+EXEC 00;32
|
||||||
|
|
||||||
# List any file extensions like '.gz' or '.tar' that you would like ls
|
# ===================================================================
|
||||||
# to colorize below. Put the extension, a space, and the color init string.
|
# File extension attributes
|
||||||
--
|
--
|
||||||
2.21.1
|
2.49.0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
|
|
||||||
index 400e135..47e4480 100644
|
|
||||||
--- a/doc/coreutils.texi
|
|
||||||
+++ b/doc/coreutils.texi
|
|
||||||
@@ -10829,6 +10829,8 @@ incorrect. @xref{Directory Setuid and Setgid}, for how the
|
|
||||||
set-user-ID and set-group-ID bits of directories are inherited unless
|
|
||||||
overridden in this way.
|
|
||||||
|
|
||||||
+Note: The @option{--mode},@option{-m} option only applies to the right-most directories listed on the command line. When combined with @option{--parents}, @option{-p} option, any parent directories are created with @samp{u+wx} modified by umask.
|
|
||||||
+
|
|
||||||
@item -p
|
|
||||||
@itemx --parents
|
|
||||||
@opindex -p
|
|
||||||
|
|
@ -1,87 +0,0 @@
|
||||||
From f4422844dbcd839ce486bcbc15b7bd5b72c9198d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Rohan Sable <rsable@redhat.com>
|
|
||||||
Date: Mon, 7 Mar 2022 14:14:13 +0000
|
|
||||||
Subject: [PATCH 1/2] ls: avoid triggering automounts
|
|
||||||
|
|
||||||
statx() has different defaults wrt automounting
|
|
||||||
compared to stat() or lstat(), so explicitly
|
|
||||||
set the AT_NO_AUTOMOUNT flag to suppress that behavior,
|
|
||||||
and avoid unintended operations or potential errors.
|
|
||||||
|
|
||||||
* src/ls.c (do_statx): Pass AT_NO_AUTOMOUNT to avoid this behavior.
|
|
||||||
Fixes https://bugs.gnu.org/54286
|
|
||||||
|
|
||||||
Signed-off-by: Rohan Sable <rsable@redhat.com>
|
|
||||||
|
|
||||||
Upstream-commit: 85c975df2c25bd799370b04bb294e568e001102f
|
|
||||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
|
||||||
---
|
|
||||||
src/ls.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/ls.c b/src/ls.c
|
|
||||||
index 1047801..fe0e9f8 100644
|
|
||||||
--- a/src/ls.c
|
|
||||||
+++ b/src/ls.c
|
|
||||||
@@ -1175,7 +1175,7 @@ do_statx (int fd, char const *name, struct stat *st, int flags,
|
|
||||||
{
|
|
||||||
struct statx stx;
|
|
||||||
bool want_btime = mask & STATX_BTIME;
|
|
||||||
- int ret = statx (fd, name, flags, mask, &stx);
|
|
||||||
+ int ret = statx (fd, name, flags | AT_NO_AUTOMOUNT, mask, &stx);
|
|
||||||
if (ret >= 0)
|
|
||||||
{
|
|
||||||
statx_to_stat (&stx, st);
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
||||||
|
|
||||||
From 3d227f9e4f3fe806064721e4b9451ee06526bc80 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
|
|
||||||
Date: Mon, 7 Mar 2022 23:29:20 +0000
|
|
||||||
Subject: [PATCH 2/2] stat: only automount with --cached=never
|
|
||||||
|
|
||||||
Revert to the default behavior before the introduction of statx().
|
|
||||||
|
|
||||||
* src/stat.c (do_stat): Set AT_NO_AUTOMOUNT without --cached=never.
|
|
||||||
* doc/coreutils.texi (stat invocation): Mention the automount
|
|
||||||
behavior with --cached=never.
|
|
||||||
|
|
||||||
Fixes https://bugs.gnu.org/54287
|
|
||||||
|
|
||||||
Upstream-commit: 92cb8427c537f37edd43c5cef1909585201372ab
|
|
||||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
|
||||||
---
|
|
||||||
doc/coreutils.texi | 1 +
|
|
||||||
src/stat.c | 3 +++
|
|
||||||
2 files changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
|
|
||||||
index 19b535c..0f5c16a 100644
|
|
||||||
--- a/doc/coreutils.texi
|
|
||||||
+++ b/doc/coreutils.texi
|
|
||||||
@@ -12564,6 +12564,7 @@ Always read the already cached attributes if available.
|
|
||||||
|
|
||||||
@item never
|
|
||||||
Always sychronize with the latest file system attributes.
|
|
||||||
+This also mounts automounted files.
|
|
||||||
|
|
||||||
@item default
|
|
||||||
Leave the caching behavior to the underlying file system.
|
|
||||||
diff --git a/src/stat.c b/src/stat.c
|
|
||||||
index 0c34501..803340a 100644
|
|
||||||
--- a/src/stat.c
|
|
||||||
+++ b/src/stat.c
|
|
||||||
@@ -1381,6 +1381,9 @@ do_stat (char const *filename, char const *format, char const *format2)
|
|
||||||
else if (force_sync)
|
|
||||||
flags |= AT_STATX_FORCE_SYNC;
|
|
||||||
|
|
||||||
+ if (! force_sync)
|
|
||||||
+ flags |= AT_NO_AUTOMOUNT;
|
|
||||||
+
|
|
||||||
fd = statx (fd, pathname, flags, format_to_mask (format), &stx);
|
|
||||||
if (fd < 0)
|
|
||||||
{
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
||||||
|
|
@ -1,114 +0,0 @@
|
||||||
From c76e70637e529481478e26683ebd73c40621c382 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
|
|
||||||
Date: Fri, 24 Sep 2021 20:57:41 +0100
|
|
||||||
Subject: [PATCH] chmod: fix exit status when ignoring symlinks
|
|
||||||
|
|
||||||
* src/chmod.c: Reorder enum so CH_NOT_APPLIED
|
|
||||||
can be treated as a non error.
|
|
||||||
* tests/chmod/ignore-symlink.sh: A new test.
|
|
||||||
* tests/local.mk: Reference the new test.
|
|
||||||
* NEWS: Mention the bug fix.
|
|
||||||
Fixes https://bugs.gnu.org/50784
|
|
||||||
|
|
||||||
Upstream-commit: e8b56ebd536e82b15542a00c888109471936bfda
|
|
||||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
|
||||||
---
|
|
||||||
NEWS | 6 ++++++
|
|
||||||
src/chmod.c | 4 ++--
|
|
||||||
tests/chmod/ignore-symlink.sh | 31 +++++++++++++++++++++++++++++++
|
|
||||||
tests/local.mk | 1 +
|
|
||||||
4 files changed, 40 insertions(+), 2 deletions(-)
|
|
||||||
create mode 100755 tests/chmod/ignore-symlink.sh
|
|
||||||
|
|
||||||
diff --git a/NEWS b/NEWS
|
|
||||||
index f2fbcbb..5722a8b 100644
|
|
||||||
--- a/NEWS
|
|
||||||
+++ b/NEWS
|
|
||||||
@@ -143,6 +143,12 @@ GNU coreutils NEWS -*- outline -*-
|
|
||||||
where avx2 instructions are supported.
|
|
||||||
A new --debug option will indicate if avx2 is being used.
|
|
||||||
|
|
||||||
+** Bug fixes
|
|
||||||
+
|
|
||||||
+ chmod -R no longer exits with error status when encountering symlinks.
|
|
||||||
+ All files would be processed correctly, but the exit status was incorrect.
|
|
||||||
+ [bug introduced in coreutils-9.0]
|
|
||||||
+
|
|
||||||
|
|
||||||
* Noteworthy changes in release 8.32 (2020-03-05) [stable]
|
|
||||||
|
|
||||||
diff --git a/src/chmod.c b/src/chmod.c
|
|
||||||
index 37b04f5..57ac47f 100644
|
|
||||||
--- a/src/chmod.c
|
|
||||||
+++ b/src/chmod.c
|
|
||||||
@@ -44,8 +44,8 @@ struct change_status
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
CH_NO_STAT,
|
|
||||||
- CH_NOT_APPLIED,
|
|
||||||
CH_FAILED,
|
|
||||||
+ CH_NOT_APPLIED,
|
|
||||||
CH_NO_CHANGE_REQUESTED,
|
|
||||||
CH_SUCCEEDED
|
|
||||||
}
|
|
||||||
@@ -322,7 +322,7 @@ process_file (FTS *fts, FTSENT *ent)
|
|
||||||
if ( ! recurse)
|
|
||||||
fts_set (fts, ent, FTS_SKIP);
|
|
||||||
|
|
||||||
- return CH_NO_CHANGE_REQUESTED <= ch.status;
|
|
||||||
+ return CH_NOT_APPLIED <= ch.status;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Recursively change the modes of the specified FILES (the last entry
|
|
||||||
diff --git a/tests/chmod/ignore-symlink.sh b/tests/chmod/ignore-symlink.sh
|
|
||||||
new file mode 100755
|
|
||||||
index 0000000..5ce3de8
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/chmod/ignore-symlink.sh
|
|
||||||
@@ -0,0 +1,31 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+# Test for proper exit code of chmod on a processed symlink.
|
|
||||||
+
|
|
||||||
+# Copyright (C) 2021 Free Software Foundation, Inc.
|
|
||||||
+
|
|
||||||
+# This program 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 3 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+
|
|
||||||
+# This program 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.
|
|
||||||
+
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
|
|
||||||
+print_ver_ chmod
|
|
||||||
+
|
|
||||||
+mkdir dir || framework_failure_
|
|
||||||
+touch dir/f || framework_failure_
|
|
||||||
+ln -s f dir/l || framework_failure_
|
|
||||||
+
|
|
||||||
+# This operation ignores symlinks but should succeed.
|
|
||||||
+chmod u+w -R dir 2> out || fail=1
|
|
||||||
+
|
|
||||||
+compare /dev/null out || fail=1
|
|
||||||
+
|
|
||||||
+Exit $fail
|
|
||||||
diff --git a/tests/local.mk b/tests/local.mk
|
|
||||||
index a76c808..a2164c9 100644
|
|
||||||
--- a/tests/local.mk
|
|
||||||
+++ b/tests/local.mk
|
|
||||||
@@ -458,6 +458,7 @@ all_tests = \
|
|
||||||
tests/chmod/c-option.sh \
|
|
||||||
tests/chmod/equal-x.sh \
|
|
||||||
tests/chmod/equals.sh \
|
|
||||||
+ tests/chmod/ignore-symlink.sh \
|
|
||||||
tests/chmod/inaccessible.sh \
|
|
||||||
tests/chmod/octal.sh \
|
|
||||||
tests/chmod/setgid.sh \
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQIzBAABCAAdFiEEbDfcEhIaUAa8HbgE32/ZcTBgN9kFAmFN1c4ACgkQ32/ZcTBg
|
|
||||||
N9mtfw/8D8BJrt2Ver2xdPfow5FYHT/zakUQ2b3ZIHP0Es62W56+pWtGombphrZu
|
|
||||||
4PkI1x6i4S8z06O9rWPIDGMPjyPV9UJbzAiGC7Px6tW6RFHZx0M+GNsKfcjmhtf7
|
|
||||||
0v3jFF0g1IdrikFG1aYCAHZHy7n+yOm7xsfSmlYVlKcOVbCFN92ZBw0IohOSriSq
|
|
||||||
nJN6IOY8I3frhuI5kchY4wM6RMQ+ztNtG8odNvJI3kWCCL9pQFxzD8uorrvTiAcp
|
|
||||||
Qdbfz5TDnlVcXKR1gu6AAP+XThUYuxG5t/2Kghlril1zxnbDBZJsGteevyHsS7kY
|
|
||||||
grAWY4XqSvKVURGaKSSUhXlriQilPknBaichwEhAXvrUk1giviAzZ8CXB6WzzTvn
|
|
||||||
E9+ofC8RqTu345+ixkdZZu0TauOZWYIUVzKsD7W0ooQOT7OZeIQfb3+pbves/I+k
|
|
||||||
ZyiRLxfiUkAkKMUDrMr+okhqFA9fo/GCkFmHWj9m2NAc15kifEpSiCktfgoChbeG
|
|
||||||
ZiQFXQz090P+L1pk82qBXVgTjUyS5VEnXZoIkTWGzkHKySwreiaIjPQhS3cU2xAm
|
|
||||||
24i53zidj84Ib62Xa4jwxX7BzZqYRdbWAa/BUUNMov75W4dfkPlZ6qbRXtKnoOZf
|
|
||||||
u0ok3fgFvopGzwbw3l/HFp58jpaYL5S28gy10PpdOnxeO54XBn0=
|
|
||||||
=3TCC
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
28
coreutils-9.9-fix-cut-test-aarch64.patch
Normal file
28
coreutils-9.9-fix-cut-test-aarch64.patch
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
From 95044cb5eaea83d02f768feb5ab79fcf5e6ad782 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
|
||||||
|
Date: Mon, 22 Dec 2025 17:12:48 +0000
|
||||||
|
Subject: [PATCH] tests: avoid false failure due to ulimit on aarch64
|
||||||
|
|
||||||
|
* tests/cut/cut-huge-range.sh: Add an extra 1MiB headroom,
|
||||||
|
which was seen with aarch64.
|
||||||
|
Reported at https://bugzilla.redhat.com/2424302
|
||||||
|
|
||||||
|
Cherry-picked-by: Lukáš Zaoral <lzaoral@redhat.com>
|
||||||
|
Upstream-commit: 95044cb5eaea83d02f768feb5ab79fcf5e6ad782
|
||||||
|
---
|
||||||
|
tests/cut/cut-huge-range.sh | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/tests/cut/cut-huge-range.sh b/tests/cut/cut-huge-range.sh
|
||||||
|
index 4bd1b129d8..98d7e8f0b9 100755
|
||||||
|
--- a/tests/cut/cut-huge-range.sh
|
||||||
|
+++ b/tests/cut/cut-huge-range.sh
|
||||||
|
@@ -22,6 +22,7 @@ getlimits_
|
||||||
|
|
||||||
|
vm=$(get_min_ulimit_v_ returns_ 0 cut -b1 /dev/null) \
|
||||||
|
|| skip_ 'shell lacks ulimit, or ASAN enabled'
|
||||||
|
+vm=$(($vm+1000)) # https://bugzilla.redhat.com/2424302
|
||||||
|
|
||||||
|
# Ensure we can cut up to our sentinel value.
|
||||||
|
# Don't use expr to subtract one,
|
||||||
|
|
||||||
169
coreutils-9.9-gnulib-c23.patch
Normal file
169
coreutils-9.9-gnulib-c23.patch
Normal file
|
|
@ -0,0 +1,169 @@
|
||||||
|
From 891761bca1aa78336e5b18c121075b6e4696c5d4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
Date: Sun, 23 Nov 2025 00:50:40 -0800
|
||||||
|
Subject: [PATCH] Port to C23 qualifier-generic fns like strchr
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
This ports Gnulib to strict C23 platforms that reject code
|
||||||
|
like ‘char *q = strchr (P, 'x');’ when P is a pointer to const,
|
||||||
|
because in C23 strchr is a qualifier-generic function so
|
||||||
|
strchr (P, 'x') returns char const *.
|
||||||
|
This patch does not attempt to do the following two things,
|
||||||
|
which might be useful in the future:
|
||||||
|
1. When compiling on non-C23 platforms, check user code for
|
||||||
|
portability to platforms that define qualifier-generic functions.
|
||||||
|
2. Port Gnulib to platforms that have qualifier-generic functions
|
||||||
|
not listed in the C23 standard, e.g., strchrnul. I don’t know
|
||||||
|
of any such platforms.
|
||||||
|
* lib/mbschr.c (mbschr):
|
||||||
|
* lib/memchr2.c (memchr2):
|
||||||
|
Port to C23, where functions like strchr are qualifier-generic.
|
||||||
|
* lib/c++defs.h (_GL_FUNCDECL_SYS_NAME): New macro.
|
||||||
|
* lib/c++defs.h (_GL_FUNCDECL_SYS):
|
||||||
|
* lib/stdlib.in.h (bsearch):
|
||||||
|
Use it, to prevent C23 names like strchr from acting like macros.
|
||||||
|
* lib/string.in.h (memchr, strchr, strpbrk, strrchr):
|
||||||
|
Do not #undef when GNULIB_POSIXCHECK is defined, as this could
|
||||||
|
cause conforming C23 code to fail to conform. It’s not clear why
|
||||||
|
_GL_WARN_ON_USE_CXX; perhaps it was needed but isn’t any more?
|
||||||
|
But for now, limit the removal of #undef to these four functions
|
||||||
|
where #undeffing is clearly undesirable in C23.
|
||||||
|
* lib/wchar.in.h (wmemchr): Parenthesize function name in decl,
|
||||||
|
to prevent it from acting like a macro.
|
||||||
|
|
||||||
|
Cherry-picked-by: Lukáš Zaoral <lzaoral@redhat.com>
|
||||||
|
Upstream-commit: df17f4f37ed3ca373d23ad42eae51122bdb96626
|
||||||
|
---
|
||||||
|
lib/c++defs.h | 12 +++++++++++-
|
||||||
|
lib/mbschr.c | 2 +-
|
||||||
|
lib/memchr2.c | 2 +-
|
||||||
|
lib/stdlib.in.h | 6 +++---
|
||||||
|
lib/string.in.h | 4 ----
|
||||||
|
lib/wchar.in.h | 2 +-
|
||||||
|
6 files changed, 17 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/c++defs.h b/lib/c++defs.h
|
||||||
|
index b77979a..7384457 100644
|
||||||
|
--- a/lib/c++defs.h
|
||||||
|
+++ b/lib/c++defs.h
|
||||||
|
@@ -127,6 +127,16 @@
|
||||||
|
#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \
|
||||||
|
_GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters
|
||||||
|
|
||||||
|
+/* _GL_FUNCDECL_SYS_NAME (func) expands to plain func if C++, and to
|
||||||
|
+ parenthsized func otherwise. Parenthesization is needed in C23 if
|
||||||
|
+ the function is like strchr and so is a qualifier-generic macro
|
||||||
|
+ that expands to something more complicated. */
|
||||||
|
+#ifdef __cplusplus
|
||||||
|
+# define _GL_FUNCDECL_SYS_NAME(func) func
|
||||||
|
+#else
|
||||||
|
+# define _GL_FUNCDECL_SYS_NAME(func) (func)
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]);
|
||||||
|
declares the system function, named func, with the given prototype,
|
||||||
|
consisting of return type, parameters, and attributes.
|
||||||
|
@@ -139,7 +149,7 @@
|
||||||
|
_GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD);
|
||||||
|
*/
|
||||||
|
#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \
|
||||||
|
- _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters
|
||||||
|
+ _GL_EXTERN_C_FUNC __VA_ARGS__ rettype _GL_FUNCDECL_SYS_NAME (func) parameters
|
||||||
|
|
||||||
|
/* _GL_CXXALIAS_RPL (func, rettype, parameters);
|
||||||
|
declares a C++ alias called GNULIB_NAMESPACE::func
|
||||||
|
diff --git a/lib/mbschr.c b/lib/mbschr.c
|
||||||
|
index c9e14b5..6582134 100644
|
||||||
|
--- a/lib/mbschr.c
|
||||||
|
+++ b/lib/mbschr.c
|
||||||
|
@@ -65,5 +65,5 @@ mbschr (const char *string, int c)
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
- return strchr (string, c);
|
||||||
|
+ return (char *) strchr (string, c);
|
||||||
|
}
|
||||||
|
diff --git a/lib/memchr2.c b/lib/memchr2.c
|
||||||
|
index 7493823..d7724ae 100644
|
||||||
|
--- a/lib/memchr2.c
|
||||||
|
+++ b/lib/memchr2.c
|
||||||
|
@@ -55,7 +55,7 @@ memchr2 (void const *s, int c1_in, int c2_in, size_t n)
|
||||||
|
c2 = (unsigned char) c2_in;
|
||||||
|
|
||||||
|
if (c1 == c2)
|
||||||
|
- return memchr (s, c1, n);
|
||||||
|
+ return (void *) memchr (s, c1, n);
|
||||||
|
|
||||||
|
/* Handle the first few bytes by reading one byte at a time.
|
||||||
|
Do this until VOID_PTR is aligned on a longword boundary. */
|
||||||
|
diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h
|
||||||
|
index bef0aaa..fd0e1e0 100644
|
||||||
|
--- a/lib/stdlib.in.h
|
||||||
|
+++ b/lib/stdlib.in.h
|
||||||
|
@@ -224,9 +224,9 @@ _GL_INLINE_HEADER_BEGIN
|
||||||
|
|
||||||
|
/* Declarations for ISO C N3322. */
|
||||||
|
#if defined __GNUC__ && __GNUC__ >= 15 && !defined __clang__
|
||||||
|
-_GL_EXTERN_C void *bsearch (const void *__key,
|
||||||
|
- const void *__base, size_t __nmemb, size_t __size,
|
||||||
|
- int (*__compare) (const void *, const void *))
|
||||||
|
+_GL_EXTERN_C void *_GL_FUNCDECL_SYS_NAME (bsearch)
|
||||||
|
+ (const void *__key, const void *__base, size_t __nmemb, size_t __size,
|
||||||
|
+ int (*__compare) (const void *, const void *))
|
||||||
|
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3) _GL_ARG_NONNULL ((5));
|
||||||
|
_GL_EXTERN_C void qsort (void *__base, size_t __nmemb, size_t __size,
|
||||||
|
int (*__compare) (const void *, const void *))
|
||||||
|
diff --git a/lib/string.in.h b/lib/string.in.h
|
||||||
|
index fdcdd21..8b56acf 100644
|
||||||
|
--- a/lib/string.in.h
|
||||||
|
+++ b/lib/string.in.h
|
||||||
|
@@ -409,7 +409,6 @@ _GL_CXXALIASWARN1 (memchr, void const *,
|
||||||
|
_GL_CXXALIASWARN (memchr);
|
||||||
|
# endif
|
||||||
|
#elif defined GNULIB_POSIXCHECK
|
||||||
|
-# undef memchr
|
||||||
|
/* Assume memchr is always declared. */
|
||||||
|
_GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - "
|
||||||
|
"use gnulib module memchr for portability" );
|
||||||
|
@@ -674,7 +673,6 @@ _GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - "
|
||||||
|
#if defined GNULIB_POSIXCHECK
|
||||||
|
/* strchr() does not work with multibyte strings if the locale encoding is
|
||||||
|
GB18030 and the character to be searched is a digit. */
|
||||||
|
-# undef strchr
|
||||||
|
/* Assume strchr is always declared. */
|
||||||
|
_GL_WARN_ON_USE_CXX (strchr,
|
||||||
|
const char *, char *, (const char *, int),
|
||||||
|
@@ -981,7 +979,6 @@ _GL_CXXALIASWARN (strpbrk);
|
||||||
|
Even in this simple case, it does not work with multibyte strings if the
|
||||||
|
locale encoding is GB18030 and one of the characters to be searched is a
|
||||||
|
digit. */
|
||||||
|
-# undef strpbrk
|
||||||
|
_GL_WARN_ON_USE_CXX (strpbrk,
|
||||||
|
const char *, char *, (const char *, const char *),
|
||||||
|
"strpbrk cannot work correctly on character strings "
|
||||||
|
@@ -1011,7 +1008,6 @@ _GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings "
|
||||||
|
#if defined GNULIB_POSIXCHECK
|
||||||
|
/* strrchr() does not work with multibyte strings if the locale encoding is
|
||||||
|
GB18030 and the character to be searched is a digit. */
|
||||||
|
-# undef strrchr
|
||||||
|
/* Assume strrchr is always declared. */
|
||||||
|
_GL_WARN_ON_USE_CXX (strrchr,
|
||||||
|
const char *, char *, (const char *, int),
|
||||||
|
diff --git a/lib/wchar.in.h b/lib/wchar.in.h
|
||||||
|
index ab602a2..6be4515 100644
|
||||||
|
--- a/lib/wchar.in.h
|
||||||
|
+++ b/lib/wchar.in.h
|
||||||
|
@@ -301,7 +301,7 @@ _GL_EXTERN_C int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
|
||||||
|
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3)
|
||||||
|
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
|
||||||
|
# ifndef __cplusplus
|
||||||
|
-_GL_EXTERN_C wchar_t *wmemchr (const wchar_t *__s, wchar_t __wc, size_t __n)
|
||||||
|
+_GL_EXTERN_C wchar_t *(wmemchr) (const wchar_t *__s, wchar_t __wc, size_t __n)
|
||||||
|
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3);
|
||||||
|
# endif
|
||||||
|
_GL_EXTERN_C wchar_t *wmemset (wchar_t *__s, wchar_t __wc, size_t __n)
|
||||||
|
--
|
||||||
|
2.52.0
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
From 6e36198f10a2f63b89c89ebb5d5c185b20fb3a63 Mon Sep 17 00:00:00 2001
|
From 91be1a584108a6a3d96f64382bbf206c4213b3db Mon Sep 17 00:00:00 2001
|
||||||
From: Kamil Dudka <kdudka@redhat.com>
|
From: Kamil Dudka <kdudka@redhat.com>
|
||||||
Date: Mon, 29 Mar 2010 17:20:34 +0000
|
Date: Mon, 29 Mar 2010 17:20:34 +0000
|
||||||
Subject: [PATCH] coreutils-df-direct.patch
|
Subject: [PATCH] coreutils-df-direct.patch
|
||||||
|
|
@ -11,10 +11,10 @@ Subject: [PATCH] coreutils-df-direct.patch
|
||||||
create mode 100755 tests/df/direct.sh
|
create mode 100755 tests/df/direct.sh
|
||||||
|
|
||||||
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
|
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
|
||||||
index 5b9a597..6810c15 100644
|
index b420606..0ccb368 100644
|
||||||
--- a/doc/coreutils.texi
|
--- a/doc/coreutils.texi
|
||||||
+++ b/doc/coreutils.texi
|
+++ b/doc/coreutils.texi
|
||||||
@@ -12074,6 +12074,13 @@ some systems (notably Solaris), doing this yields more up to date results,
|
@@ -12597,6 +12597,13 @@ some systems (notably Solaris), doing this yields more up to date results,
|
||||||
but in general this option makes @command{df} much slower, especially when
|
but in general this option makes @command{df} much slower, especially when
|
||||||
there are many or very busy file systems.
|
there are many or very busy file systems.
|
||||||
|
|
||||||
|
|
@ -29,10 +29,10 @@ index 5b9a597..6810c15 100644
|
||||||
@opindex --total
|
@opindex --total
|
||||||
@cindex grand total of file system size, usage and available space
|
@cindex grand total of file system size, usage and available space
|
||||||
diff --git a/src/df.c b/src/df.c
|
diff --git a/src/df.c b/src/df.c
|
||||||
index 48025b9..c8efa5b 100644
|
index 75e638c..ef9f0a7 100644
|
||||||
--- a/src/df.c
|
--- a/src/df.c
|
||||||
+++ b/src/df.c
|
+++ b/src/df.c
|
||||||
@@ -125,6 +125,9 @@ static bool print_type;
|
@@ -121,6 +121,9 @@ static bool print_type;
|
||||||
/* If true, print a grand total at the end. */
|
/* If true, print a grand total at the end. */
|
||||||
static bool print_grand_total;
|
static bool print_grand_total;
|
||||||
|
|
||||||
|
|
@ -42,7 +42,7 @@ index 48025b9..c8efa5b 100644
|
||||||
/* Grand total data. */
|
/* Grand total data. */
|
||||||
static struct fs_usage grand_fsu;
|
static struct fs_usage grand_fsu;
|
||||||
|
|
||||||
@@ -252,13 +255,15 @@ enum
|
@@ -248,13 +251,15 @@ enum
|
||||||
NO_SYNC_OPTION = CHAR_MAX + 1,
|
NO_SYNC_OPTION = CHAR_MAX + 1,
|
||||||
SYNC_OPTION,
|
SYNC_OPTION,
|
||||||
TOTAL_OPTION,
|
TOTAL_OPTION,
|
||||||
|
|
@ -53,16 +53,16 @@ index 48025b9..c8efa5b 100644
|
||||||
|
|
||||||
static struct option const long_options[] =
|
static struct option const long_options[] =
|
||||||
{
|
{
|
||||||
{"all", no_argument, NULL, 'a'},
|
{"all", no_argument, nullptr, 'a'},
|
||||||
{"block-size", required_argument, NULL, 'B'},
|
{"block-size", required_argument, nullptr, 'B'},
|
||||||
+ {"direct", no_argument, NULL, DIRECT_OPTION},
|
+ {"direct", no_argument, nullptr, DIRECT_OPTION},
|
||||||
{"inodes", no_argument, NULL, 'i'},
|
{"inodes", no_argument, nullptr, 'i'},
|
||||||
{"human-readable", no_argument, NULL, 'h'},
|
{"human-readable", no_argument, nullptr, 'h'},
|
||||||
{"si", no_argument, NULL, 'H'},
|
{"si", no_argument, nullptr, 'H'},
|
||||||
@@ -583,7 +588,10 @@ get_header (void)
|
@@ -571,7 +576,10 @@ get_header (void)
|
||||||
for (col = 0; col < ncolumns; col++)
|
for (idx_t col = 0; col < ncolumns; col++)
|
||||||
{
|
{
|
||||||
char *cell = NULL;
|
char *cell;
|
||||||
- char const *header = _(columns[col]->caption);
|
- char const *header = _(columns[col]->caption);
|
||||||
+ char const *header = (columns[col]->field == TARGET_FIELD
|
+ char const *header = (columns[col]->field == TARGET_FIELD
|
||||||
+ && direct_statfs)?
|
+ && direct_statfs)?
|
||||||
|
|
@ -71,7 +71,7 @@ index 48025b9..c8efa5b 100644
|
||||||
|
|
||||||
if (columns[col]->field == SIZE_FIELD
|
if (columns[col]->field == SIZE_FIELD
|
||||||
&& (header_mode == DEFAULT_MODE
|
&& (header_mode == DEFAULT_MODE
|
||||||
@@ -1486,6 +1494,17 @@ get_point (char const *point, const struct stat *statp)
|
@@ -1446,6 +1454,17 @@ get_point (char const *point, const struct stat *statp)
|
||||||
static void
|
static void
|
||||||
get_entry (char const *name, struct stat const *statp)
|
get_entry (char const *name, struct stat const *statp)
|
||||||
{
|
{
|
||||||
|
|
@ -79,17 +79,17 @@ index 48025b9..c8efa5b 100644
|
||||||
+ {
|
+ {
|
||||||
+ char *resolved = canonicalize_file_name (name);
|
+ char *resolved = canonicalize_file_name (name);
|
||||||
+ if (resolved)
|
+ if (resolved)
|
||||||
+ {
|
+ {
|
||||||
+ get_dev (NULL, resolved, name, NULL, NULL, false, false, NULL, false);
|
+ get_dev (NULL, resolved, name, NULL, NULL, false, false, NULL, false);
|
||||||
+ free (resolved);
|
+ free (resolved);
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
if ((S_ISBLK (statp->st_mode) || S_ISCHR (statp->st_mode))
|
if ((S_ISBLK (statp->st_mode) || S_ISCHR (statp->st_mode))
|
||||||
&& get_device (name))
|
&& get_device (name))
|
||||||
return;
|
return;
|
||||||
@@ -1556,6 +1575,7 @@ or all file systems by default.\n\
|
@@ -1516,6 +1535,7 @@ or all file systems by default.\n\
|
||||||
-B, --block-size=SIZE scale sizes by SIZE before printing them; e.g.,\n\
|
-B, --block-size=SIZE scale sizes by SIZE before printing them; e.g.,\n\
|
||||||
'-BM' prints sizes in units of 1,048,576 bytes;\n\
|
'-BM' prints sizes in units of 1,048,576 bytes;\n\
|
||||||
see SIZE format below\n\
|
see SIZE format below\n\
|
||||||
|
|
@ -97,7 +97,7 @@ index 48025b9..c8efa5b 100644
|
||||||
-h, --human-readable print sizes in powers of 1024 (e.g., 1023M)\n\
|
-h, --human-readable print sizes in powers of 1024 (e.g., 1023M)\n\
|
||||||
-H, --si print sizes in powers of 1000 (e.g., 1.1G)\n\
|
-H, --si print sizes in powers of 1000 (e.g., 1.1G)\n\
|
||||||
"), stdout);
|
"), stdout);
|
||||||
@@ -1646,6 +1666,9 @@ main (int argc, char **argv)
|
@@ -1610,6 +1630,9 @@ main (int argc, char **argv)
|
||||||
xstrtol_fatal (e, oi, c, long_options, optarg);
|
xstrtol_fatal (e, oi, c, long_options, optarg);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -107,14 +107,14 @@ index 48025b9..c8efa5b 100644
|
||||||
case 'i':
|
case 'i':
|
||||||
if (header_mode == OUTPUT_MODE)
|
if (header_mode == OUTPUT_MODE)
|
||||||
{
|
{
|
||||||
@@ -1742,6 +1765,13 @@ main (int argc, char **argv)
|
@@ -1706,6 +1729,13 @@ main (int argc, char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+ if (direct_statfs && show_local_fs)
|
+ if (direct_statfs && show_local_fs)
|
||||||
+ {
|
+ {
|
||||||
+ error (0, 0, _("options --direct and --local (-l) are mutually "
|
+ error (0, 0, _("options --direct and --local (-l) are mutually "
|
||||||
+ "exclusive"));
|
+ "exclusive"));
|
||||||
+ usage (EXIT_FAILURE);
|
+ usage (EXIT_FAILURE);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
|
@ -183,5 +183,5 @@ index 0000000..8e4cfb8
|
||||||
+
|
+
|
||||||
+Exit $fail
|
+Exit $fail
|
||||||
--
|
--
|
||||||
2.31.1
|
2.52.0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
diff --git a/lib/getugroups.c b/lib/getugroups.c
|
|
||||||
index 299bae6..8ece29b 100644
|
|
||||||
--- a/lib/getugroups.c
|
|
||||||
+++ b/lib/getugroups.c
|
|
||||||
@@ -19,6 +19,9 @@
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
|
|
||||||
+/* We do not need this code if getgrouplist(3) is available. */
|
|
||||||
+#ifndef HAVE_GETGROUPLIST
|
|
||||||
+
|
|
||||||
#include "getugroups.h"
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
@@ -126,3 +129,4 @@ getugroups (int maxcount, gid_t *grouplist, char const *username,
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* HAVE_GRP_H */
|
|
||||||
+#endif /* have getgrouplist */
|
|
||||||
diff --git a/lib/mgetgroups.c b/lib/mgetgroups.c
|
|
||||||
index 76474c2..0a9d221 100644
|
|
||||||
--- a/lib/mgetgroups.c
|
|
||||||
+++ b/lib/mgetgroups.c
|
|
||||||
@@ -31,6 +31,7 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "getugroups.h"
|
|
||||||
+#include "xalloc.h"
|
|
||||||
#include "xalloc-oversized.h"
|
|
||||||
|
|
||||||
/* Work around an incompatibility of OS X 10.11: getgrouplist
|
|
||||||
@@ -119,9 +120,17 @@ mgetgroups (char const *username, gid_t gid, gid_t **groups)
|
|
||||||
/* else no username, so fall through and use getgroups. */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
- max_n_groups = (username
|
|
||||||
- ? getugroups (0, NULL, username, gid)
|
|
||||||
- : getgroups (0, NULL));
|
|
||||||
+ if (!username)
|
|
||||||
+ max_n_groups = getgroups(0, NULL);
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+#ifdef HAVE_GETGROUPLIST
|
|
||||||
+ max_n_groups = 0;
|
|
||||||
+ getgrouplist (username, gid, NULL, &max_n_groups);
|
|
||||||
+#else
|
|
||||||
+ max_n_groups = getugroups (0, NULL, username, gid);
|
|
||||||
+#endif
|
|
||||||
+ }
|
|
||||||
|
|
||||||
/* If we failed to count groups because there is no supplemental
|
|
||||||
group support, then return an array containing just GID.
|
|
||||||
@@ -143,10 +152,25 @@ mgetgroups (char const *username, gid_t gid, gid_t **groups)
|
|
||||||
if (g == NULL)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
- ng = (username
|
|
||||||
- ? getugroups (max_n_groups, g, username, gid)
|
|
||||||
- : getgroups (max_n_groups - (gid != (gid_t) -1),
|
|
||||||
- g + (gid != (gid_t) -1)));
|
|
||||||
+ if (!username)
|
|
||||||
+ ng = getgroups (max_n_groups - (gid != (gid_t)-1), g + (gid != (gid_t)-1));
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+#ifdef HAVE_GETGROUPLIST
|
|
||||||
+ int e;
|
|
||||||
+ ng = max_n_groups;
|
|
||||||
+ while ((e = getgrouplist (username, gid, g, &ng)) == -1
|
|
||||||
+ && ng > max_n_groups)
|
|
||||||
+ {
|
|
||||||
+ max_n_groups = ng;
|
|
||||||
+ g = xrealloc (g, max_n_groups * sizeof (GETGROUPS_T));
|
|
||||||
+ }
|
|
||||||
+ if (e == -1)
|
|
||||||
+ ng = -1;
|
|
||||||
+#else
|
|
||||||
+ ng = getugroups (max_n_groups, g, username, gid);
|
|
||||||
+#endif
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (ng < 0)
|
|
||||||
{
|
|
||||||
diff --git a/m4/jm-macros.m4 b/m4/jm-macros.m4
|
|
||||||
index 62777c7..5180243 100644
|
|
||||||
--- a/m4/jm-macros.m4
|
|
||||||
+++ b/m4/jm-macros.m4
|
|
||||||
@@ -68,6 +68,7 @@ AC_DEFUN([coreutils_MACROS],
|
|
||||||
fchown
|
|
||||||
fchmod
|
|
||||||
ftruncate
|
|
||||||
+ getgrouplist
|
|
||||||
iswspace
|
|
||||||
mkfifo
|
|
||||||
mbrlen
|
|
||||||
2495
coreutils-i18n.patch
2495
coreutils-i18n.patch
File diff suppressed because it is too large
Load diff
|
|
@ -1,9 +0,0 @@
|
||||||
Provides: bundled(gnulib)
|
|
||||||
|
|
||||||
# make it possible to install the latest available Adobe Reader RPM for Linux
|
|
||||||
Provides: /bin/cat
|
|
||||||
Provides: /bin/chmod
|
|
||||||
Provides: /bin/echo
|
|
||||||
Provides: /bin/ln
|
|
||||||
Provides: /bin/rm
|
|
||||||
Provides: /bin/touch
|
|
||||||
65
coreutils-python3.patch
Normal file
65
coreutils-python3.patch
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
From 8927d505ecb5334f09c48ef98ef1f464f581d0f7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: rpm-build <rpm-build>
|
||||||
|
Date: Tue, 2 Apr 2024 14:11:26 +0100
|
||||||
|
Subject: [PATCH] coreutils-python3.patch
|
||||||
|
|
||||||
|
---
|
||||||
|
init.cfg | 4 ++--
|
||||||
|
tests/d_type-check | 2 +-
|
||||||
|
tests/du/move-dir-while-traversing.sh | 6 +++---
|
||||||
|
3 files changed, 6 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/init.cfg b/init.cfg
|
||||||
|
index ac05f7b..26d9516 100644
|
||||||
|
--- a/init.cfg
|
||||||
|
+++ b/init.cfg
|
||||||
|
@@ -601,10 +601,10 @@ seek_data_capable_()
|
||||||
|
# Skip the current test if "." lacks d_type support.
|
||||||
|
require_dirent_d_type_()
|
||||||
|
{
|
||||||
|
- python < /dev/null \
|
||||||
|
+ python3 < /dev/null \
|
||||||
|
|| skip_ python missing: assuming no d_type support
|
||||||
|
|
||||||
|
- python "$abs_srcdir"/tests/d_type-check \
|
||||||
|
+ python3 "$abs_srcdir"/tests/d_type-check \
|
||||||
|
|| skip_ requires d_type support
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/tests/d_type-check b/tests/d_type-check
|
||||||
|
index 1a2f76f..42d3924 100644
|
||||||
|
--- a/tests/d_type-check
|
||||||
|
+++ b/tests/d_type-check
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-#!/usr/bin/python
|
||||||
|
+#!/usr/bin/python3
|
||||||
|
# Exit 0 if "." and "./tempfile" have useful d_type information, else 1.
|
||||||
|
# Intended to exit 0 only on Linux/GNU systems.
|
||||||
|
import os
|
||||||
|
diff --git a/tests/du/move-dir-while-traversing.sh b/tests/du/move-dir-while-traversing.sh
|
||||||
|
index adf482b..cf9214a 100755
|
||||||
|
--- a/tests/du/move-dir-while-traversing.sh
|
||||||
|
+++ b/tests/du/move-dir-while-traversing.sh
|
||||||
|
@@ -21,8 +21,8 @@ print_ver_ du
|
||||||
|
require_trap_signame_
|
||||||
|
|
||||||
|
# We use a python-inotify script, so...
|
||||||
|
-python -m pyinotify -h > /dev/null \
|
||||||
|
- || skip_ 'python inotify package not installed'
|
||||||
|
+python3 -m pyinotify -h > /dev/null \
|
||||||
|
+ || skip_ 'python3 inotify package not installed'
|
||||||
|
|
||||||
|
# Move a directory "up" while du is processing its sub-directories.
|
||||||
|
# While du is processing a hierarchy .../B/C/D/... this script
|
||||||
|
@@ -33,7 +33,7 @@ python -m pyinotify -h > /dev/null \
|
||||||
|
# rename syscall before du finishes processing the subtree under D/.
|
||||||
|
|
||||||
|
cat <<'EOF' > inotify-watch-for-dir-access.py
|
||||||
|
-#!/usr/bin/env python
|
||||||
|
+#!/usr/bin/env python3
|
||||||
|
import pyinotify as pn
|
||||||
|
import os,sys
|
||||||
|
|
||||||
|
--
|
||||||
|
2.51.0
|
||||||
|
|
||||||
|
|
@ -1,136 +0,0 @@
|
||||||
From d70ddb3eb845c494280e7365e2b889242e7e1bb9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: rpm-build <rpm-build>
|
|
||||||
Date: Mon, 4 Oct 2021 08:45:53 +0200
|
|
||||||
Subject: [PATCH] coreutils-selinux.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
doc/coreutils.texi | 5 +++++
|
|
||||||
man/chcon.x | 2 +-
|
|
||||||
man/runcon.x | 2 +-
|
|
||||||
src/cp.c | 16 +++++++++++++++-
|
|
||||||
src/install.c | 10 ++++++++--
|
|
||||||
5 files changed, 30 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
|
|
||||||
index 6810c15..19b535c 100644
|
|
||||||
--- a/doc/coreutils.texi
|
|
||||||
+++ b/doc/coreutils.texi
|
|
||||||
@@ -8766,6 +8766,11 @@ done
|
|
||||||
exit $fail
|
|
||||||
@end example
|
|
||||||
|
|
||||||
+@item -c
|
|
||||||
+@cindex SELinux security context information, preserving
|
|
||||||
+Preserve SELinux security context of the original files if possible.
|
|
||||||
+Some file systems don't support storing of SELinux security context.
|
|
||||||
+
|
|
||||||
@item --copy-contents
|
|
||||||
@cindex directories, copying recursively
|
|
||||||
@cindex copying directories recursively
|
|
||||||
diff --git a/man/chcon.x b/man/chcon.x
|
|
||||||
index 8c1ff6f..c84fb96 100644
|
|
||||||
--- a/man/chcon.x
|
|
||||||
+++ b/man/chcon.x
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
[NAME]
|
|
||||||
-chcon \- change file security context
|
|
||||||
+chcon \- change file SELinux security context
|
|
||||||
[DESCRIPTION]
|
|
||||||
.\" Add any additional description here
|
|
||||||
diff --git a/man/runcon.x b/man/runcon.x
|
|
||||||
index d2df13e..5c5f5d8 100644
|
|
||||||
--- a/man/runcon.x
|
|
||||||
+++ b/man/runcon.x
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
[NAME]
|
|
||||||
-runcon \- run command with specified security context
|
|
||||||
+runcon \- run command with specified SELinux security context
|
|
||||||
[DESCRIPTION]
|
|
||||||
Run COMMAND with completely-specified CONTEXT, or with current or
|
|
||||||
transitioned security context modified by one or more of LEVEL,
|
|
||||||
diff --git a/src/cp.c b/src/cp.c
|
|
||||||
index c97a675..89fb8ec 100644
|
|
||||||
--- a/src/cp.c
|
|
||||||
+++ b/src/cp.c
|
|
||||||
@@ -191,6 +191,9 @@ Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.\n\
|
|
||||||
additional attributes: context, links, xattr,\
|
|
||||||
\n\
|
|
||||||
all\n\
|
|
||||||
+"), stdout);
|
|
||||||
+ fputs (_("\
|
|
||||||
+ -c deprecated, same as --preserve=context\n\
|
|
||||||
"), stdout);
|
|
||||||
fputs (_("\
|
|
||||||
--no-preserve=ATTR_LIST don't preserve the specified attributes\n\
|
|
||||||
@@ -954,7 +957,7 @@ main (int argc, char **argv)
|
|
||||||
selinux_enabled = (0 < is_selinux_enabled ());
|
|
||||||
cp_option_init (&x);
|
|
||||||
|
|
||||||
- while ((c = getopt_long (argc, argv, "abdfHilLnprst:uvxPRS:TZ",
|
|
||||||
+ while ((c = getopt_long (argc, argv, "abcdfHilLnprst:uvxPRS:TZ",
|
|
||||||
long_opts, NULL))
|
|
||||||
!= -1)
|
|
||||||
{
|
|
||||||
@@ -1002,6 +1005,17 @@ main (int argc, char **argv)
|
|
||||||
copy_contents = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
+ case 'c':
|
|
||||||
+ fprintf (stderr, "%s: warning: option '-c' is deprecated, please use '--preserve=context' instead\n", argv[0]);
|
|
||||||
+ if ( x.set_security_context ) {
|
|
||||||
+ (void) fprintf(stderr, "%s: cannot force target context and preserve it\n", argv[0]);
|
|
||||||
+ exit( 1 );
|
|
||||||
+ }
|
|
||||||
+ else if (selinux_enabled) {
|
|
||||||
+ x.preserve_security_context = true;
|
|
||||||
+ x.require_preserve_context = true;
|
|
||||||
+ }
|
|
||||||
+ break;
|
|
||||||
case 'd':
|
|
||||||
x.preserve_links = true;
|
|
||||||
x.dereference = DEREF_NEVER;
|
|
||||||
diff --git a/src/install.c b/src/install.c
|
|
||||||
index c9456fe..2b1bee9 100644
|
|
||||||
--- a/src/install.c
|
|
||||||
+++ b/src/install.c
|
|
||||||
@@ -638,7 +638,7 @@ In the 4th form, create all components of the given DIRECTORY(ies).\n\
|
|
||||||
-v, --verbose print the name of each directory as it is created\n\
|
|
||||||
"), stdout);
|
|
||||||
fputs (_("\
|
|
||||||
- --preserve-context preserve SELinux security context\n\
|
|
||||||
+ -P, --preserve-context preserve SELinux security context (-P deprecated)\n\
|
|
||||||
-Z set SELinux security context of destination\n\
|
|
||||||
file and each created directory to default type\n\
|
|
||||||
--context[=CTX] like -Z, or if CTX is specified then set the\n\
|
|
||||||
@@ -790,7 +790,7 @@ main (int argc, char **argv)
|
|
||||||
dir_arg = false;
|
|
||||||
umask (0);
|
|
||||||
|
|
||||||
- while ((optc = getopt_long (argc, argv, "bcCsDdg:m:o:pt:TvS:Z", long_options,
|
|
||||||
+ while ((optc = getopt_long (argc, argv, "bcCsDdg:m:o:pPt:TvS:Z", long_options,
|
|
||||||
NULL)) != -1)
|
|
||||||
{
|
|
||||||
switch (optc)
|
|
||||||
@@ -851,6 +851,8 @@ main (int argc, char **argv)
|
|
||||||
no_target_directory = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
+ case 'P':
|
|
||||||
+ fprintf (stderr, "%s: warning: option '-P' is deprecated, please use '--preserve-context' instead\n", argv[0]);
|
|
||||||
case PRESERVE_CONTEXT_OPTION:
|
|
||||||
if (! selinux_enabled)
|
|
||||||
{
|
|
||||||
@@ -858,6 +860,10 @@ main (int argc, char **argv)
|
|
||||||
"this kernel is not SELinux-enabled"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
+ if ( x.set_security_context ) {
|
|
||||||
+ (void) fprintf(stderr, "%s: cannot force target context and preserve it\n", argv[0]);
|
|
||||||
+ exit( 1 );
|
|
||||||
+ }
|
|
||||||
x.preserve_security_context = true;
|
|
||||||
use_default_selinux_context = false;
|
|
||||||
break;
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
||||||
246
coreutils.spec
246
coreutils.spec
|
|
@ -1,8 +1,9 @@
|
||||||
Summary: A set of basic GNU tools commonly used in shell scripts
|
Summary: A set of basic GNU tools commonly used in shell scripts
|
||||||
Name: coreutils
|
Name: coreutils
|
||||||
Version: 9.0
|
Version: 9.9
|
||||||
Release: 5%{?dist}
|
Release: 2%{?dist}
|
||||||
License: GPLv3+
|
# some used parts of gnulib are under various variants of LGPL
|
||||||
|
License: GPL-3.0-or-later AND GFDL-1.3-no-invariants-or-later AND LGPL-2.1-or-later AND LGPL-3.0-or-later
|
||||||
Url: https://www.gnu.org/software/coreutils/
|
Url: https://www.gnu.org/software/coreutils/
|
||||||
Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
|
Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
|
||||||
Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig
|
Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig
|
||||||
|
|
@ -10,50 +11,40 @@ Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig
|
||||||
# which is linked as project keyring on https://savannah.gnu.org/projects/coreutils
|
# which is linked as project keyring on https://savannah.gnu.org/projects/coreutils
|
||||||
Source2: coreutils-keyring.gpg
|
Source2: coreutils-keyring.gpg
|
||||||
Source50: supported_utils
|
Source50: supported_utils
|
||||||
Source51: coreutils-provides.inc
|
|
||||||
Source105: coreutils-colorls.sh
|
Source105: coreutils-colorls.sh
|
||||||
Source106: coreutils-colorls.csh
|
Source106: coreutils-colorls.csh
|
||||||
|
|
||||||
# do not make coreutils-single depend on /usr/bin/coreutils
|
# do not make coreutils-single depend on /usr/bin/coreutils
|
||||||
%global __requires_exclude ^%{_bindir}/coreutils$
|
%global __requires_exclude ^%{_bindir}/coreutils$
|
||||||
|
|
||||||
# chmod: fix exit status when ignoring symlinks
|
|
||||||
Patch1: coreutils-9.0-chmod-symlink.patch
|
|
||||||
|
|
||||||
# ls, stat: avoid triggering automounts (#2044981)
|
|
||||||
Patch2: coreutils-9.0-autofs-no-mount.patch
|
|
||||||
|
|
||||||
# disable the test-lock gnulib test prone to deadlock
|
# disable the test-lock gnulib test prone to deadlock
|
||||||
Patch100: coreutils-8.26-test-lock.patch
|
Patch100: coreutils-8.26-test-lock.patch
|
||||||
|
|
||||||
# require_selinux_(): use selinuxenabled(8) if available
|
# require_selinux_(): use selinuxenabled(8) if available
|
||||||
Patch105: coreutils-8.26-selinuxenable.patch
|
Patch101: coreutils-8.26-selinuxenable.patch
|
||||||
|
|
||||||
# downstream changes to default DIR_COLORS
|
# downstream changes to default DIR_COLORS
|
||||||
Patch102: coreutils-8.32-DIR_COLORS.patch
|
Patch102: coreutils-8.32-DIR_COLORS.patch
|
||||||
#do display processor type for uname -p/-i based on uname(2) syscall
|
|
||||||
Patch103: coreutils-8.2-uname-processortype.patch
|
|
||||||
#df --direct
|
|
||||||
Patch104: coreutils-df-direct.patch
|
|
||||||
#add note about mkdir --mode behaviour into info documentation(#610559)
|
|
||||||
Patch107: coreutils-8.4-mkdir-modenote.patch
|
|
||||||
|
|
||||||
# sh-utils
|
# use python3 in tests
|
||||||
#add info about TZ envvar to date manpage
|
Patch103: coreutils-python3.patch
|
||||||
Patch703: sh-utils-2.0.11-dateman.patch
|
|
||||||
Patch713: coreutils-4.5.3-langinfo.patch
|
# df --direct
|
||||||
|
Patch104: coreutils-df-direct.patch
|
||||||
|
|
||||||
|
# gnulib C23 support
|
||||||
|
# https://github.com/coreutils/gnulib/commit/df17f4f37ed3ca373d23ad42eae51122bdb96626
|
||||||
|
Patch105: coreutils-9.9-gnulib-c23.patch
|
||||||
|
|
||||||
|
# fix cut test failure on aarch64 rawhide (rhbz#2424302)
|
||||||
|
# https://github.com/coreutils/coreutils/commit/95044cb5eaea83d02f768feb5ab79fcf5e6ad782
|
||||||
|
Patch106: coreutils-9.9-fix-cut-test-aarch64.patch
|
||||||
|
|
||||||
# (sb) lin18nux/lsb compliance - multibyte functionality patch
|
# (sb) lin18nux/lsb compliance - multibyte functionality patch
|
||||||
Patch800: coreutils-i18n.patch
|
Patch800: coreutils-i18n.patch
|
||||||
|
|
||||||
#getgrouplist() patch from Ulrich Drepper.
|
|
||||||
Patch908: coreutils-getgrouplist.patch
|
|
||||||
|
|
||||||
#SELINUX Patch - implements Redhat changes
|
|
||||||
#(upstream did some SELinux implementation unlike with RedHat patch)
|
|
||||||
Patch950: coreutils-selinux.patch
|
|
||||||
|
|
||||||
Conflicts: filesystem < 3
|
Conflicts: filesystem < 3
|
||||||
|
|
||||||
# To avoid clobbering installs
|
# To avoid clobbering installs
|
||||||
Conflicts: coreutils-single
|
Conflicts: coreutils-single
|
||||||
|
|
||||||
|
|
@ -72,25 +63,40 @@ BuildRequires: libselinux-utils
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
BuildRequires: openssl-devel
|
BuildRequires: openssl-devel
|
||||||
BuildRequires: strace
|
BuildRequires: strace
|
||||||
|
BuildRequires: systemd-devel
|
||||||
BuildRequires: texinfo
|
BuildRequires: texinfo
|
||||||
|
|
||||||
# For gpg verification of source tarball
|
# For gpg verification of source tarball
|
||||||
BuildRequires: gnupg2
|
BuildRequires: gnupg2
|
||||||
|
|
||||||
# test-only dependencies
|
# test-only dependencies
|
||||||
|
BuildRequires: acl
|
||||||
|
BuildRequires: gdb
|
||||||
BuildRequires: perl-interpreter
|
BuildRequires: perl-interpreter
|
||||||
BuildRequires: perl(FileHandle)
|
BuildRequires: perl(FileHandle)
|
||||||
|
BuildRequires: python3
|
||||||
|
BuildRequires: tzdata
|
||||||
|
%ifarch %valgrind_arches
|
||||||
|
BuildRequires: valgrind
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?fedora}
|
||||||
|
BuildRequires: perl(Expect)
|
||||||
|
BuildRequires: python3-inotify
|
||||||
|
%endif
|
||||||
|
|
||||||
%if 23 < 0%{?fedora} || 7 < 0%{?rhel}
|
%if 23 < 0%{?fedora} || 7 < 0%{?rhel}
|
||||||
# needed by i18n test-cases
|
# needed by i18n test-cases
|
||||||
BuildRequires: glibc-langpack-en
|
BuildRequires: glibc-langpack-en
|
||||||
BuildRequires: glibc-langpack-fr
|
BuildRequires: glibc-langpack-fr
|
||||||
BuildRequires: glibc-langpack-ko
|
BuildRequires: glibc-langpack-ko
|
||||||
|
BuildRequires: glibc-langpack-sv
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
Requires: %{name}-common = %{version}-%{release}
|
Requires: %{name}-common = %{version}-%{release}
|
||||||
|
|
||||||
Provides: coreutils-full = %{version}-%{release}
|
Provides: coreutils-full = %{version}-%{release}
|
||||||
%include %{SOURCE51}
|
Provides: bundled(gnulib)
|
||||||
Obsoletes: %{name} < 8.24-100
|
Obsoletes: %{name} < 8.24-100
|
||||||
|
|
||||||
%description
|
%description
|
||||||
|
|
@ -102,7 +108,7 @@ Summary: coreutils multicall binary
|
||||||
Suggests: coreutils-common
|
Suggests: coreutils-common
|
||||||
Provides: coreutils = %{version}-%{release}
|
Provides: coreutils = %{version}-%{release}
|
||||||
Provides: coreutils%{?_isa} = %{version}-%{release}
|
Provides: coreutils%{?_isa} = %{version}-%{release}
|
||||||
%include %{SOURCE51}
|
Provides: bundled(gnulib)
|
||||||
# To avoid clobbering installs
|
# To avoid clobbering installs
|
||||||
Conflicts: coreutils < 8.24-100
|
Conflicts: coreutils < 8.24-100
|
||||||
# Note RPM doesn't support separate buildroots for %files
|
# Note RPM doesn't support separate buildroots for %files
|
||||||
|
|
@ -119,6 +125,9 @@ packaged as a single multicall binary.
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1107973#c7
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1107973#c7
|
||||||
Obsoletes: %{name} < 8.24-100
|
Obsoletes: %{name} < 8.24-100
|
||||||
|
|
||||||
|
# Gnulib translations are maintained seprately since coreutils 9.6 (#2393892)
|
||||||
|
Requires: gnulib-l10n
|
||||||
|
|
||||||
# info doc refers to "Specifying the Time Zone" from glibc-doc (#959597)
|
# info doc refers to "Specifying the Time Zone" from glibc-doc (#959597)
|
||||||
Suggests: glibc-doc
|
Suggests: glibc-doc
|
||||||
|
|
||||||
|
|
@ -153,16 +162,15 @@ sed src/dircolors.hin \
|
||||||
find tests -name '*.sh' -perm 0644 -print -exec chmod 0755 '{}' '+'
|
find tests -name '*.sh' -perm 0644 -print -exec chmod 0755 '{}' '+'
|
||||||
(echo "<<< done") 2>/dev/null
|
(echo "<<< done") 2>/dev/null
|
||||||
|
|
||||||
|
# FIXME: Force a newer gettext version to workaround `autoreconf -i` errors
|
||||||
|
# with coreutils 9.6 and bundled gettext 0.19.2 from gettext-common-devel.
|
||||||
|
sed -i "s/0.19.2/$(rpm -q --queryformat '%%{VERSION}\n' gettext-devel)/" bootstrap.conf configure.ac
|
||||||
|
|
||||||
autoreconf -fiv
|
autoreconf -fiv
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fpic"
|
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fpic"
|
||||||
|
|
||||||
# disable -flto on ppc64le to make test-float pass (#1789115)
|
|
||||||
%ifarch ppc64le
|
|
||||||
CFLAGS="$CFLAGS -fno-lto"
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# Upstream suggests to build with -Dlint for static analyzers:
|
# Upstream suggests to build with -Dlint for static analyzers:
|
||||||
# https://lists.gnu.org/archive/html/coreutils/2018-06/msg00110.html
|
# https://lists.gnu.org/archive/html/coreutils/2018-06/msg00110.html
|
||||||
# ... and even for production binary RPMs:
|
# ... and even for production binary RPMs:
|
||||||
|
|
@ -183,7 +191,7 @@ for type in separate single; do
|
||||||
if test $type = 'single'; then
|
if test $type = 'single'; then
|
||||||
config_single='--enable-single-binary'
|
config_single='--enable-single-binary'
|
||||||
config_single="$config_single --without-openssl" # smaller/slower sha*sum
|
config_single="$config_single --without-openssl" # smaller/slower sha*sum
|
||||||
config_single="$config_single --without-gmp" # expr/factor machine ints
|
config_single="$config_single --without-libgmp" # expr/factor machine ints
|
||||||
else
|
else
|
||||||
config_single='--with-openssl' # faster sha*sum
|
config_single='--with-openssl' # faster sha*sum
|
||||||
fi
|
fi
|
||||||
|
|
@ -191,6 +199,7 @@ for type in separate single; do
|
||||||
--cache-file=../config.cache \
|
--cache-file=../config.cache \
|
||||||
--enable-install-program=arch \
|
--enable-install-program=arch \
|
||||||
--enable-no-install-program=kill,uptime \
|
--enable-no-install-program=kill,uptime \
|
||||||
|
--enable-systemd \
|
||||||
--with-tty-group \
|
--with-tty-group \
|
||||||
DEFAULT_POSIX2_VERSION=200112 alternative=199209 || :
|
DEFAULT_POSIX2_VERSION=200112 alternative=199209 || :
|
||||||
%make_build all V=1
|
%make_build all V=1
|
||||||
|
|
@ -217,14 +226,20 @@ for type in separate single; do
|
||||||
fi
|
fi
|
||||||
(cd $type && make DESTDIR=$RPM_BUILD_ROOT/$subdir $install)
|
(cd $type && make DESTDIR=$RPM_BUILD_ROOT/$subdir $install)
|
||||||
|
|
||||||
|
%if "%{_sbindir}" != "%{_bindir}"
|
||||||
# chroot was in /usr/sbin :
|
# chroot was in /usr/sbin :
|
||||||
mkdir -p $RPM_BUILD_ROOT/$subdir/{%{_bindir},%{_sbindir}}
|
mkdir -p $RPM_BUILD_ROOT/$subdir/%_sbindir
|
||||||
mv $RPM_BUILD_ROOT/$subdir/{%_bindir,%_sbindir}/chroot
|
mv $RPM_BUILD_ROOT/$subdir/{%_bindir,%_sbindir}/chroot
|
||||||
|
%endif
|
||||||
|
|
||||||
# Move multicall variants to *.single.
|
# Move multicall variants to *.single.
|
||||||
# RemovePathPostfixes will strip that later.
|
# RemovePathPostfixes will strip that later.
|
||||||
if test $type = 'single'; then
|
if test $type = 'single'; then
|
||||||
for dir in %{_bindir} %{_sbindir} %{_libexecdir}/%{name}; do
|
for dir in %{_bindir} \
|
||||||
|
%if "%{_sbindir}" != "%{_bindir}"
|
||||||
|
%{_sbindir} \
|
||||||
|
%endif
|
||||||
|
%{_libexecdir}/%{name}; do
|
||||||
for bin in $RPM_BUILD_ROOT/%{_libexecdir}/%{name}/$dir/*; do
|
for bin in $RPM_BUILD_ROOT/%{_libexecdir}/%{name}/$dir/*; do
|
||||||
basebin=$(basename $bin)
|
basebin=$(basename $bin)
|
||||||
mv $bin $RPM_BUILD_ROOT/$dir/$basebin.single
|
mv $bin $RPM_BUILD_ROOT/$dir/$basebin.single
|
||||||
|
|
@ -252,7 +267,9 @@ rm -f $RPM_BUILD_ROOT%{_infodir}/dir
|
||||||
|
|
||||||
%files single
|
%files single
|
||||||
%{_bindir}/*.single
|
%{_bindir}/*.single
|
||||||
|
%if "%{_sbindir}" != "%{_bindir}"
|
||||||
%{_sbindir}/chroot.single
|
%{_sbindir}/chroot.single
|
||||||
|
%endif
|
||||||
%dir %{_libexecdir}/coreutils
|
%dir %{_libexecdir}/coreutils
|
||||||
%{_libexecdir}/coreutils/*.so.single
|
%{_libexecdir}/coreutils/*.so.single
|
||||||
# duplicate the license because coreutils-common does not need to be installed
|
# duplicate the license because coreutils-common does not need to be installed
|
||||||
|
|
@ -269,6 +286,159 @@ rm -f $RPM_BUILD_ROOT%{_infodir}/dir
|
||||||
%license COPYING
|
%license COPYING
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Jan 13 2026 Lukáš Zaoral <lzaoral@redhat.com> - 9.9-2
|
||||||
|
- fix cut test failure on aarch64 rawhide (rhbz#2424302)
|
||||||
|
|
||||||
|
* Wed Nov 26 2025 Lukáš Zaoral <lzaoral@redhat.com> - 9.9-1
|
||||||
|
- rebase to latest upstream release (rhbz#2413803)
|
||||||
|
|
||||||
|
* Mon Sep 29 2025 Lukáš Zaoral <lzaoral@redhat.com> - 9.8-3
|
||||||
|
- require gnulib-l10n for translations of gnulib messages (rhbz#2393892)
|
||||||
|
|
||||||
|
* Thu Sep 25 2025 Lukáš Zaoral <lzaoral@redhat.com> - 9.8-2
|
||||||
|
- tail: fix tailing larger number of lines in regular files (rhbz#2398008)
|
||||||
|
|
||||||
|
* Wed Sep 24 2025 Lukáš Zaoral <lzaoral@redhat.com> - 9.8-1
|
||||||
|
- rebase to latest upstream release (rhbz#2397467)
|
||||||
|
- remove downstream patch for selinux options deprecated since 2009
|
||||||
|
|
||||||
|
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 9.7-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jun 30 2025 Lukáš Zaoral <lzaoral@redhat.com> - 9.7-4
|
||||||
|
- stty: add support for arbitrary baud rates (rhbz#2375439)
|
||||||
|
|
||||||
|
* Wed May 28 2025 Lukáš Zaoral <lzaoral@redhat.com> - 9.7-3
|
||||||
|
- sort: fix buffer under-read (CVE-2025-5278)
|
||||||
|
|
||||||
|
* Mon May 19 2025 Lukáš Zaoral <lzaoral@redhat.com> - 9.7-2
|
||||||
|
- cp/mv: do not fail when copying of trivial NFSv4 ACLs fails (rhbz#2363149)
|
||||||
|
|
||||||
|
* Wed Apr 09 2025 Lukáš Zaoral <lzaoral@redhat.com> - 9.7-1
|
||||||
|
- rebase to latest upstream release (rhbz#2358624)
|
||||||
|
|
||||||
|
* Tue Feb 25 2025 Lukáš Zaoral <lzaoral@redhat.com> - 9.6-2
|
||||||
|
- fix 'who -m' with guessed tty names (rhbz#2343998)
|
||||||
|
|
||||||
|
* Mon Jan 20 2025 Lukáš Zaoral <lzaoral@redhat.com> - 9.6-1
|
||||||
|
- rebase to latest upstream version (rhbz#2338620)
|
||||||
|
- sync i18n patch with SUSE (Kudos to Berny Völker!)
|
||||||
|
|
||||||
|
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 9.5-13
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Jan 12 2025 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 9.5-12
|
||||||
|
- Rebuilt for the bin-sbin merge (2nd attempt)
|
||||||
|
|
||||||
|
* Wed Nov 13 2024 Florian Weimer <fweimer@redhat.com> - 9.5-11
|
||||||
|
- Affinity mask handling in nproc for large CPU counts (rhbz#2325167)
|
||||||
|
|
||||||
|
* Fri Sep 27 2024 Lukáš Zaoral <lzaoral@redhat.com> - 9.5-10
|
||||||
|
- fix fold -b with UTF8 locale (RHEL-60295)
|
||||||
|
|
||||||
|
* Tue Aug 27 2024 Lukáš Zaoral <lzaoral@redhat.com> - 9.5-9
|
||||||
|
- show web sessions in who output (rhbz#2307847)
|
||||||
|
|
||||||
|
* Wed Aug 21 2024 Lukáš Zaoral <lzaoral@redhat.com> - 9.5-8
|
||||||
|
- add missing systemd-devel buildrequires
|
||||||
|
|
||||||
|
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 9.5-7
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jul 15 2024 Lukáš Zaoral <lzaoral@redhat.com> - 9.5-6
|
||||||
|
- Rebuilt for the bin-sbin merge
|
||||||
|
|
||||||
|
* Mon Jul 15 2024 Sohum Mendon <sohum.mendon@proton.me> - 9.5-5
|
||||||
|
- fix incorrect exit status when fold is called with a non-existent file
|
||||||
|
|
||||||
|
* Tue Jul 09 2024 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 9.5-4
|
||||||
|
- Rebuilt for the bin-sbin merge
|
||||||
|
|
||||||
|
* Thu Jul 04 2024 Lukáš Zaoral <lzaoral@redhat.com> - 9.5-3
|
||||||
|
- do not buildrequire perl(Expect) on ELN
|
||||||
|
|
||||||
|
* Tue Jun 04 2024 Lukáš Zaoral <lzaoral@redhat.com> - 9.5-2
|
||||||
|
- enable LTO on ppc64le
|
||||||
|
|
||||||
|
* Tue Apr 02 2024 Lukáš Zaoral <lzaoral@redhat.com> - 9.5-1
|
||||||
|
- rebase to latest upstream version (rhbz#2272063)
|
||||||
|
- sync i18n patch with SUSE (Kudos to Berny Völker!)
|
||||||
|
- add some test dependencies to execute additional part of the upstream test-suite
|
||||||
|
|
||||||
|
* Mon Jan 29 2024 Lukáš Zaoral <lzaoral@redhat.com> - 9.4-6
|
||||||
|
- fix tail on kernels with 64k page sizes (RHEL-22866)
|
||||||
|
|
||||||
|
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 9.4-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 9.4-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jan 18 2024 Lukáš Zaoral <lzaoral@redhat.com> - 9.4-3
|
||||||
|
- fix compilation on i686
|
||||||
|
|
||||||
|
* Thu Jan 18 2024 Lukáš Zaoral <lzaoral@redhat.com> - 9.4-2
|
||||||
|
- fix buffer overflow in split (CVE-2024-0684)
|
||||||
|
|
||||||
|
* Fri Sep 15 2023 Lukáš Zaoral <lzaoral@redhat.com> - 9.4-1
|
||||||
|
- new upstream release 9.4 (#2235759)
|
||||||
|
- enable integration with systemd
|
||||||
|
- fix the license field
|
||||||
|
|
||||||
|
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 9.3-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Apr 18 2023 Kamil Dudka <kdudka@redhat.com> - 9.3-1
|
||||||
|
- remove obsolete Provides for absolute paths
|
||||||
|
- new upstream release 9.3
|
||||||
|
|
||||||
|
* Tue Apr 11 2023 Lukáš Zaoral <lzaoral@redhat.com> - 9.2-4
|
||||||
|
- migrate to SPDX license format
|
||||||
|
|
||||||
|
* Fri Mar 24 2023 Kamil Dudka <kdudka@redhat.com> - 9.2-3
|
||||||
|
- copy: fix --reflink=auto to fallback in more cases (#2180056)
|
||||||
|
- cksum: fix reporting of failed checks (#2180056)
|
||||||
|
|
||||||
|
* Wed Mar 22 2023 Kamil Dudka <kdudka@redhat.com> - 9.2-2
|
||||||
|
- coreutils-getgrouplist.patch: drop a patch no longer needed
|
||||||
|
|
||||||
|
* Wed Mar 22 2023 Kamil Dudka <kdudka@redhat.com> - 9.2-1
|
||||||
|
- new upstream release 9.2
|
||||||
|
|
||||||
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org>
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jan 02 2023 Kamil Dudka <kdudka@redhat.com> - 9.1-10
|
||||||
|
- drop obsolete downstream-only extension of date(1) man page
|
||||||
|
- undocument downstream SELinux options deprecated since 2009
|
||||||
|
|
||||||
|
* Mon Jan 02 2023 Kamil Dudka <kdudka@redhat.com> - 9.1-9
|
||||||
|
- basic support for checking NFSv4 ACLs (#2137866)
|
||||||
|
|
||||||
|
* Mon Sep 19 2022 Kamil Dudka <kdudka@redhat.com> - 9.1-8
|
||||||
|
- remove obsolete extension of mkdir(1) info documentation
|
||||||
|
|
||||||
|
* Tue Aug 23 2022 Kamil Dudka <kdudka@redhat.com> - 9.1-7
|
||||||
|
- remove non-upstream patch for uname -i/-p (#548834)
|
||||||
|
|
||||||
|
* Mon Aug 08 2022 Kamil Dudka <kdudka@redhat.com> - 9.1-6
|
||||||
|
- improve wording of a comment in /etc/DIR_COLORS (#2112593)
|
||||||
|
|
||||||
|
* Mon Aug 08 2022 Kamil Dudka <kdudka@redhat.com> - 9.1-5
|
||||||
|
- improve handling of control characters in unexpand (#2112870)
|
||||||
|
|
||||||
|
* Mon Aug 01 2022 Kamil Dudka <kdudka@redhat.com> - 9.1-4
|
||||||
|
- prevent unexpand from failing on control characters (#2112870)
|
||||||
|
|
||||||
|
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org>
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Apr 23 2022 Pádraig Brady <P@draigBrady.com> - 9.1-2
|
||||||
|
- make simple backups in correct dir; broken in 9.1
|
||||||
|
|
||||||
|
* Tue Apr 19 2022 Kamil Dudka <kdudka@redhat.com> - 9.1-1
|
||||||
|
- new upstream release 9.1
|
||||||
|
|
||||||
* Mon Mar 21 2022 Kamil Dudka <kdudka@redhat.com> - 9.0-5
|
* Mon Mar 21 2022 Kamil Dudka <kdudka@redhat.com> - 9.0-5
|
||||||
- ls, stat: avoid triggering automounts (#2044981)
|
- ls, stat: avoid triggering automounts (#2044981)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
diff -urNp coreutils-5.97-orig/man/date.x coreutils-5.97/man/date.x
|
|
||||||
--- coreutils-5.97-orig/man/date.x 1999-11-02 15:07:36.000000000 +0100
|
|
||||||
+++ coreutils-5.97/man/date.x 2008-10-15 10:13:31.000000000 +0200
|
|
||||||
@@ -11,3 +11,8 @@ calendar date, time of day, time zone, day of week, relative time,
|
|
||||||
relative date, and numbers. An empty string indicates the beginning
|
|
||||||
of the day. The date string format is more complex than is easily
|
|
||||||
documented here but is fully described in the info documentation.
|
|
||||||
+[ENVIRONMENT]
|
|
||||||
+.TP
|
|
||||||
+TZ
|
|
||||||
+Specifies the timezone, unless overridden by command line parameters.
|
|
||||||
+If neither is specified, the setting from /etc/localtime is used.
|
|
||||||
3
sources
3
sources
|
|
@ -1 +1,2 @@
|
||||||
SHA512 (coreutils-9.0.tar.xz) = 9be08212891dbf48e5b22e7689dc27dac50df4631ebf29313470b72b7921f0b2aa5242917d05587785358495ca56e3b21f5b3ca81043d53cab92354da6c53a03
|
SHA512 (coreutils-9.9.tar.xz.sig) = 0a3dfdfa6b4234e2e1d42142269f959bdf3cf8f6605a50270a27eff84dd22588f182121f7dd3eeb04be45f5109d02690215065b3d3b43882874d0e165a1435d0
|
||||||
|
SHA512 (coreutils-9.9.tar.xz) = e7b0e59f7732d2c098ea4934014f470248bd5c4764210e9200a698010a8e3b95bbb26e543f0cd73ed5a4b8e1f8cda932c73f39954d68175e4deaa47526610c65
|
||||||
|
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Makefile of /CoreOS/coreutils/readlink-cannot-handle-recursive-symlink s
|
|
||||||
# Description: Test for readlink cannot handle recursive symlinks
|
|
||||||
# Author: Jan Scotka <jscotka@redhat.com>
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program 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.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
export TEST=/CoreOS/coreutils/readlink-cannot-handle-recursive-symlinks
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
chmod a+x runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@echo "Owner: Jan Scotka <jscotka@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "Description: Test for readlink cannot handle recursive symlinks" >> $(METADATA)
|
|
||||||
@echo "Type: Sanity" >> $(METADATA)
|
|
||||||
@echo "TestTime: 5m" >> $(METADATA)
|
|
||||||
@echo "RunFor: coreutils" >> $(METADATA)
|
|
||||||
@echo "Requires: coreutils" >> $(METADATA)
|
|
||||||
@echo "Priority: Normal" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2" >> $(METADATA)
|
|
||||||
@echo "Confidential: no" >> $(METADATA)
|
|
||||||
@echo "Destructive: no" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
PURPOSE of /CoreOS/coreutils/readlink-cannot-handle-recursive-symlinks
|
|
||||||
Description: Test for readlink cannot handle recursive symlinks
|
|
||||||
Author: Jan Scotka <jscotka@redhat.com>
|
|
||||||
Bug summary: readlink cannot handle recursive symlinks
|
|
||||||
|
|
||||||
Description:
|
|
||||||
|
|
||||||
Description of problem:
|
|
||||||
The readlink command fails with an error "Too many levels of symbolic links", even if there are only 2 levels.
|
|
||||||
|
|
||||||
The readlink command from RHEL 3 and RHEL 4 and from Fedora 11 all work fine.
|
|
||||||
|
|
||||||
Among other changes between RHEL 4 and RHEL 5, RHEL 5's coreutils added calls to cycle_check() in lib/canonicalize.c, but in upstream canonicalize.c (now in gnulib instead of coreutils), we see the comment:
|
|
||||||
/* Detect loops. We cannot use the cycle-check module here,
|
|
||||||
since it's actually possible to encounter the same symlink
|
|
||||||
more than once in a given traversal. However, encountering
|
|
||||||
the same symlink,NAME pair twice does indicate a loop. */
|
|
||||||
|
|
||||||
http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=lib/canonicalize.c;h=4f348398fd69ae516396313d18ac294a4ca3dde3;hb=b653eda3ac4864de205419d9f41eec267cb89eeb#l262
|
|
||||||
|
|
||||||
The latest canonicalize.c uses seen_triple() instead of cycle_check().
|
|
||||||
|
|
||||||
|
|
||||||
Version-Release number of selected component (if applicable):
|
|
||||||
coreutils-5.97-19.el5
|
|
||||||
|
|
||||||
How reproducible:
|
|
||||||
every time
|
|
||||||
|
|
||||||
Steps to Reproduce:
|
|
||||||
1. Create a directory with a symlink to itself
|
|
||||||
mkdir /tmp/dir
|
|
||||||
cd /tmp/dir
|
|
||||||
ln -s ../dir dirlink
|
|
||||||
|
|
||||||
2. Run readlink using the 'dirlink' symlink recursively
|
|
||||||
readlink -v -f dirlink
|
|
||||||
readlink -v -f dirlink/dirlink
|
|
||||||
readlink -v -f dirlink/dirlink/dirlink
|
|
||||||
|
|
||||||
Actual results:
|
|
||||||
The first readlink command on just dirlink succeeds, but the 2nd and 3rd commands fail with
|
|
||||||
readlink: dirlink/dirlink: Too many levels of symbolic links
|
|
||||||
|
|
||||||
Expected results:
|
|
||||||
$ readlink -v -f dirlink
|
|
||||||
/tmp/dir
|
|
||||||
$ readlink -v -f dirlink/dirlink
|
|
||||||
/tmp/dir
|
|
||||||
$ readlink -v -f dirlink/dirlink/dirlink
|
|
||||||
/tmp/dir
|
|
||||||
|
|
||||||
|
|
||||||
Additional info:
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# runtest.sh of /CoreOS/coreutils/readlink-cannot-handle-recursive-symlinks
|
|
||||||
# Description: Test for readlink cannot handle recursive symlinks
|
|
||||||
# Author: Jan Scotka <jscotka@redhat.com>
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program 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.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
# Include rhts environment
|
|
||||||
. /usr/bin/rhts-environment.sh
|
|
||||||
. /usr/lib/beakerlib/beakerlib.sh
|
|
||||||
|
|
||||||
PACKAGE="coreutils"
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup
|
|
||||||
rlAssertRpm $PACKAGE
|
|
||||||
rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory"
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
rlRun "mkdir link" 0 "Creating test directory"
|
|
||||||
rlRun "cd link" 0 "cd to this dir"
|
|
||||||
rlRun "ln -s ../link link" 0 "creating symlink to ../link -> link"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest
|
|
||||||
rlLog "Test of readlink up to 20 iteration"
|
|
||||||
export TMPVAR="link"
|
|
||||||
for foo in `seq 20`
|
|
||||||
do echo $TMPVAR
|
|
||||||
rlRun "readlink -v -f $TMPVAR" 0 "readlink of $TMPVAR"
|
|
||||||
TMPVAR="$TMPVAR/link"
|
|
||||||
done
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartCleanup
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Checks that touch ls rm and foo work
|
|
||||||
# https://www.mankier.com/1/beakerlib#Examples
|
|
||||||
. /usr/share/beakerlib/beakerlib.sh
|
|
||||||
|
|
||||||
# Set the full test name
|
|
||||||
TEST="/examples/beakerlib/Sanity/phases"
|
|
||||||
|
|
||||||
# Package being tested
|
|
||||||
PACKAGE="coreutils"
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
# Setup phase: Prepare test directory
|
|
||||||
rlPhaseStartSetup
|
|
||||||
rlAssertRpm $PACKAGE
|
|
||||||
rlRun 'TmpDir=$(mktemp -d)' 0 'Creating tmp directory' # no-reboot
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
# Test phase: Testing touch, ls and rm commands
|
|
||||||
rlPhaseStartTest
|
|
||||||
rlRun "touch foo" 0 "Creating the foo test file"
|
|
||||||
rlAssertExists "foo"
|
|
||||||
rlRun "ls -l foo" 0 "Listing the foo test file"
|
|
||||||
rlRun "rm foo" 0 "Removing the foo test file"
|
|
||||||
rlAssertNotExists "foo"
|
|
||||||
rlRun "ls -l foo" 2 "Listing foo should now report an error"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
# Cleanup phase: Remove test directory
|
|
||||||
rlPhaseStartCleanup
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalEnd
|
|
||||||
|
|
||||||
# Print the test report
|
|
||||||
rlJournalPrintText
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
---
|
|
||||||
# This first play always runs on the local staging system
|
|
||||||
- hosts: localhost
|
|
||||||
tags:
|
|
||||||
- atomic
|
|
||||||
- classic
|
|
||||||
- container
|
|
||||||
roles:
|
|
||||||
- { role: standard-test-beakerlib, tests: [ test-basics, readlink-cannot-handle-recursive-symlinks ] }
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
# Fedora Continuous Integration: https://fedoraproject.org/wiki/CI
|
|
||||||
- include: test_basics.yml
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue