SHA256
1
0
forked from pool/coreutils

Accepting request 213255 from Base:System

* Update to 8.22.
* Pull in two I18N fixes for cut and sort from Fedora.
* Add new SELinux patch for cp from upstream.
* Avoid some testsuite failures by adding 4 other patches.

Supersedes 
https://build.opensuse.org/request/show/212842

OBS-URL: https://build.opensuse.org/request/show/213255
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/coreutils?expand=0&rev=99
This commit is contained in:
Stephan Kulow 2014-01-10 20:15:22 +00:00 committed by Git OBS Bridge
commit 45c42e96e5
22 changed files with 1051 additions and 1483 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4b28dba154ded8117dc043125a7e0fae2e7b613a7d287c46e9faa6866a81d377
size 102904

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:adaa44bdab3fa5eb352e80d8a31fdbf957b78653d0c2cd30d63e161444288e18
size 5357988

3
coreutils-8.22.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5b3e94998152c017e6c75d56b9b994188eb71bf46d4038a642cb9141f6ff1212
size 5335124

View File

@ -16,8 +16,8 @@ independent executable (PIE). This is enforced via RPMLINT.
Index: src/local.mk
===================================================================
--- src/local.mk.orig
+++ src/local.mk
--- src/local.mk.orig 2013-12-04 15:48:30.000000000 +0100
+++ src/local.mk 2014-01-09 01:26:38.363704044 +0100
@@ -17,7 +17,7 @@
## along with this program. If not, see <http://www.gnu.org/licenses/>.
@ -27,7 +27,7 @@ Index: src/local.mk
# The list of all programs (separated in different variables to express
# the how and when they should be installed) is defined in this makefile
@@ -266,6 +266,9 @@ src_factor_LDADD += $(LIB_GMP)
@@ -271,6 +271,9 @@ src_factor_LDADD += $(LIB_GMP)
# for getloadavg
src_uptime_LDADD += $(GETLOADAVG_LIBS)

View File

@ -0,0 +1,90 @@
Upstream patch on top of 8.22:
http://lists.gnu.org/archive/html/coreutils/2014-01/msg00012.html
Stripped down to the relevant part: NEWS and THANKS.in chunks removed.
Original NEWS entry:
cp -a again sets the correct SELinux context for existing directories in
the destination. Previously it set the context of an existing directory
to that of its last copied descendent.
[bug introduced in coreutils-8.22]
Originally reported for Fedora by Michal Trunecka in rh#1045122:
https://bugzilla.redhat.com/show_bug.cgi?id=1045122
______________________________________________________________________
From f2f8b688b87b94ed3551f47f9a6422c873acf5d1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
Date: Sun, 5 Jan 2014 15:00:55 +0000
Subject: [PATCH] copy: fix SELinux context preservation for existing
directories
* src/copy.c (copy_internal): Use the global process context
to set the context of existing directories before they're populated.
This is more consistent with the new directory case, and fixes
a bug for existing directories where we erroneously set the
context to the last copied descendent, rather than to that of
the source directory itself.
* tests/cp/cp-a-selinux.sh: Add a test for this case.
---
src/copy.c | 13 ++++++++++++-
tests/cp/cp-a-selinux.sh | 15 +++++++++++++++
2 files changed, 27 insertions(+), 1 deletion(-)
Index: src/copy.c
===================================================================
--- src/copy.c.orig 2013-12-05 01:59:36.000000000 +0100
+++ src/copy.c 2014-01-09 02:47:33.108744454 +0100
@@ -2408,6 +2408,17 @@ copy_internal (char const *src_name, cha
else
{
omitted_permissions = 0;
+
+ /* For directories, the process global context could be reset for
+ descendents, so use it to set the context for existing dirs here.
+ This will also give earlier indication of failure to set ctx. */
+ if (x->set_security_context || x->preserve_security_context)
+ if (! set_file_security_ctx (dst_name, x->preserve_security_context,
+ false, x))
+ {
+ if (x->require_preserve_context)
+ goto un_backup;
+ }
}
/* Decide whether to copy the contents of the directory. */
@@ -2598,7 +2609,7 @@ copy_internal (char const *src_name, cha
/* With -Z or --preserve=context, set the context for existing files.
Note this is done already for copy_reg() for reasons described therein. */
- if (!new_dst && !x->copy_as_regular
+ if (!new_dst && !x->copy_as_regular && !S_ISDIR (src_mode)
&& (x->set_security_context || x->preserve_security_context))
{
if (! set_file_security_ctx (dst_name, x->preserve_security_context,
Index: tests/cp/cp-a-selinux.sh
===================================================================
--- tests/cp/cp-a-selinux.sh.orig 2013-12-04 15:48:30.000000000 +0100
+++ tests/cp/cp-a-selinux.sh 2014-01-09 02:47:33.109744597 +0100
@@ -41,6 +41,21 @@ test -s err && fail=1 #there must be n
ls -Z e | grep $ctx || fail=1
ls -Z f | grep $ctx || fail=1
+# Check handling of existing dirs which requires specific handling
+# due to recursion, and was handled incorrectly in coreutils-8.22
+mkdir -p backup/existing_dir/ || framework_failure_
+ls -Zd backup/existing_dir | grep $ctx && framework_failure_
+touch backup/existing_dir/file || framework_failure_
+chcon $ctx backup/existing_dir/file || framework_failure_
+# Set the dir context to ensure it is reset
+mkdir -p --context="$ctx" restore/existing_dir || framework_failure_
+# Set the permissions of the source to show they're reset too
+chmod o+rw restore/existing_dir
+# Copy and ensure existing directories updated
+cp -a backup/. restore/
+ls -Zd restore/existing_dir | grep $ctx &&
+ { ls -lZd restore/existing_dir; fail=1; }
+
# Check restorecon (-Z) functionality for file and directory
get_selinux_type() { ls -Zd "$1" | sed -n 's/.*:\(.*_t\):.*/\1/p'; }
# Also make a dir with our known context

View File

@ -1,37 +0,0 @@
From: Bernhard Voelker <mail@bernhard-voelker.de>
Date: Mon, 20 May 2013 00:03:20 +0200
Subject: [PATCH] tests/nap.h: increase delay multiplier to avoid problems in
VMs like OBS
The gnulib change http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=5191133e
(available upstreams with >= 8.22, applied to openSUSE's coreutils
package with "coreutils-gnulib-tests-fix-nap-race.patch", decreased the
probability of lost races to about a third, however such problems could
still be observed in virtual machines like OBS.
Increasing the factor from 1.125 to 3 seems to close the race window.
* tests/nap.h (nap): Change the multiplier for the delay from 1.125
to 3.
---
gnulib-tests/nap.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Index: gnulib-tests/nap.h
===================================================================
--- gnulib-tests/nap.h.orig
+++ gnulib-tests/nap.h
@@ -126,9 +126,11 @@ nap (void)
/* Multiply by 1.125 (rounding up), to avoid problems if the
file system's clock is a bit slower than nanosleep's.
+ OBS: use 3 as multiplier to avoid this race a bit better
+ which is even more likely in VMs.
Ceiling it at INT_MAX, though. */
- int delta = (d >> 3) + ((d & 7) != 0);
- d = delta < INT_MAX - d ? d + delta : INT_MAX;
+ int d2 = 3 * d;
+ d = d2 < INT_MAX ? d2 : INT_MAX;
delay.tv_sec = d / 1000000000;
delay.tv_nsec = d % 1000000000;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,12 @@
diff --git a/gnulib-tests/test-isnanl.h b/gnulib-tests/test-isnanl.h
index 06e6a7c..2df10f8 100644
--- a/gnulib-tests/test-isnanl.h
+++ b/gnulib-tests/test-isnanl.h
---
gnulib-tests/test-isnanl.h | 9 +++++++++
gnulib-tests/test-signbit.c | 10 ++++++++++
2 files changed, 19 insertions(+)
Index: gnulib-tests/test-isnanl.h
===================================================================
--- gnulib-tests/test-isnanl.h.orig 2013-12-04 15:53:33.000000000 +0100
+++ gnulib-tests/test-isnanl.h 2014-01-09 01:26:40.271972672 +0100
@@ -51,6 +51,15 @@ main ()
/* A bit pattern that is different from a Quiet NaN. With a bit of luck,
it's a Signalling NaN. */
@ -18,10 +23,10 @@ index 06e6a7c..2df10f8 100644
memory_long_double m;
m.value = NaNl ();
# if LDBL_EXPBIT0_BIT > 0
diff --git a/gnulib-tests/test-signbit.c b/gnulib-tests/test-signbit.c
index e8ea097..7e24292 100644
--- a/gnulib-tests/test-signbit.c
+++ b/gnulib-tests/test-signbit.c
Index: gnulib-tests/test-signbit.c
===================================================================
--- gnulib-tests/test-signbit.c.orig 2013-12-04 15:53:33.000000000 +0100
+++ gnulib-tests/test-signbit.c 2014-01-09 01:26:40.271972672 +0100
@@ -151,6 +151,16 @@ test_signbitl ()
#define NWORDS \
((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))

File diff suppressed because it is too large Load Diff

View File

@ -11,10 +11,14 @@ Test cases:
Andreas Gruenbacher <agruen@suse.de>
---
src/chgrp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: src/chgrp.c
===================================================================
--- src/chgrp.c.orig
+++ src/chgrp.c
--- src/chgrp.c.orig 2013-12-04 15:48:30.000000000 +0100
+++ src/chgrp.c 2014-01-09 01:26:29.066362326 +0100
@@ -88,7 +88,7 @@ parse_group (const char *name)
{
unsigned long int tmp;

View File

@ -1,7 +1,11 @@
---
doc/coreutils.texi | 38 +-------------------------------------
1 file changed, 1 insertion(+), 37 deletions(-)
Index: doc/coreutils.texi
===================================================================
--- doc/coreutils.texi.orig
+++ doc/coreutils.texi
--- doc/coreutils.texi.orig 2013-12-13 03:43:10.000000000 +0100
+++ doc/coreutils.texi 2014-01-09 01:25:54.832410969 +0100
@@ -66,7 +66,6 @@
* groups: (coreutils)groups invocation. Print group names a user is in.
* head: (coreutils)head invocation. Output the first part of files.
@ -19,7 +23,7 @@ Index: doc/coreutils.texi
* SELinux context:: chcon runcon
* Modified command invocation:: chroot env nice nohup stdbuf timeout
* Process control:: kill
@@ -419,7 +418,6 @@ System context
@@ -417,7 +416,6 @@ System context
* date invocation:: Print or set system date and time
* nproc invocation:: Print the number of processors
* uname invocation:: Print system information
@ -27,7 +31,7 @@ Index: doc/coreutils.texi
* hostid invocation:: Print numeric host identifier
* uptime invocation:: Print system uptime and load
@@ -14626,7 +14624,6 @@ information.
@@ -14852,7 +14850,6 @@ information.
* arch invocation:: Print machine hardware name.
* nproc invocation:: Print the number of processors.
* uname invocation:: Print system information.
@ -35,7 +39,7 @@ Index: doc/coreutils.texi
* hostid invocation:: Print numeric host identifier.
* uptime invocation:: Print system uptime and load.
@end menu
@@ -15448,15 +15445,6 @@ easily available, as is the case with Li
@@ -15674,15 +15671,6 @@ easily available, as is the case with Li
Print the machine hardware name (sometimes called the hardware class
or hardware type).
@ -51,7 +55,7 @@ Index: doc/coreutils.texi
@item -p
@itemx --processor
@opindex -p
@@ -15510,30 +15498,6 @@ Print the kernel version.
@@ -15736,30 +15724,6 @@ Print the kernel version.
@exitstatus

View File

@ -1,7 +1,11 @@
---
doc/coreutils.texi | 90 -----------------------------------------------------
1 file changed, 90 deletions(-)
Index: doc/coreutils.texi
===================================================================
--- doc/coreutils.texi.orig
+++ doc/coreutils.texi
--- doc/coreutils.texi.orig 2014-01-09 01:25:54.832410969 +0100
+++ doc/coreutils.texi 2014-01-09 01:26:25.779767542 +0100
@@ -69,7 +69,6 @@
* id: (coreutils)id invocation. Print user identity.
* install: (coreutils)install invocation. Copy and change attributes.
@ -18,7 +22,7 @@ Index: doc/coreutils.texi
* Delaying:: sleep
* Numeric operations:: factor seq
* File permissions:: Access modes
@@ -446,10 +444,6 @@ Modified command invocation
@@ -444,10 +442,6 @@ Modified command invocation
* stdbuf invocation:: Run a command with modified I/O buffering
* timeout invocation:: Run a command with a time limit
@ -29,7 +33,7 @@ Index: doc/coreutils.texi
Delaying
* sleep invocation:: Delay for a specified time
@@ -16380,90 +16374,6 @@ the exit status of @var{command} otherwi
@@ -16606,90 +16600,6 @@ the exit status of @var{command} otherwi
@end display

View File

@ -0,0 +1,37 @@
Subject: Skip the gnulib test 'test-tls' on some platforms
On i586, x86_64, ppc and ppc64, this test is known to sometimes fail
with a diagnostic like:
Starting test_tls ...*** Error in `./test-tls': free(): invalid pointer: 0x00007f21500008c0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7406f)[0x7f215845006f]
/lib64/libc.so.6(+0x7989e)[0x7f215845589e]
/lib64/libpthread.so.0(+0x7ee2)[0x7f215878fee2]
/lib64/libpthread.so.0(+0x813e)[0x7f215879013e]
/lib64/libc.so.6(clone+0x6d)[0x7f21584c3d6d]
* gnulib-tests/gnulib.mk (test-tls): Comment to skip for now.
---
gnulib-tests/gnulib.mk | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
Index: gnulib-tests/gnulib.mk
===================================================================
--- gnulib-tests/gnulib.mk.orig 2013-12-04 16:02:24.000000000 +0100
+++ gnulib-tests/gnulib.mk 2014-01-09 01:28:13.401082108 +0100
@@ -2303,9 +2303,10 @@ EXTRA_DIST += test-time.c
## begin gnulib module tls-tests
-TESTS += test-tls
-check_PROGRAMS += test-tls
-test_tls_LDADD = $(LDADD) @LIBMULTITHREAD@ @YIELD_LIB@
+# Fails on i586 and x86_64.
+#TESTS += test-tls
+#check_PROGRAMS += test-tls
+#test_tls_LDADD = $(LDADD) @LIBMULTITHREAD@ @YIELD_LIB@
EXTRA_DIST += test-tls.c

View File

@ -0,0 +1,52 @@
Subject: tests: skip some valgrind-ed tests of sort on ppc/ppc64
Valgrind diagnoses problems in 'mkstemp64' deep down in glibc on PowerPC:
Conditional jump or move depends on uninitialised value(s)
at 0xFDB37DC: __udivmoddi4 (in /lib/libc-2.18.90.so)
by 0xFDB3DD7: __umoddi3@GLIBC_2.0 (in /lib/libc-2.18.90.so)
by 0xFDFDF9F: __gen_tempname (in /lib/libc-2.18.90.so)
by 0xFE77563: mkstemp64 (in /lib/libc-2.18.90.so)
by 0x100135D3: mkstemp_safer (mkstemp-safer.c:33)
by 0x10006ECF: create_temp_file (sort.c:942)
by 0x1000A427: maybe_create_temp (sort.c:1176)
by 0x100031BF: main (sort.c:1223)
* tests/misc/sort-stale-thread-mem.sh: Skip on ppc/ppc64.
* tests/misc/sort-u-FMR.sh: Likewise.
---
tests/misc/sort-stale-thread-mem.sh | 4 ++++
tests/misc/sort-u-FMR.sh | 4 ++++
2 files changed, 8 insertions(+)
Index: tests/misc/sort-stale-thread-mem.sh
===================================================================
--- tests/misc/sort-stale-thread-mem.sh.orig 2013-12-04 15:48:30.000000000 +0100
+++ tests/misc/sort-stale-thread-mem.sh 2014-01-09 01:27:05.735557168 +0100
@@ -27,6 +27,10 @@ require_valgrind_
grep '^#define HAVE_PTHREAD_T 1' "$CONFIG_HEADER" > /dev/null ||
skip_ 'requires pthreads'
+case "$( uname -m )" in
+ ppc | ppc64) skip_ "SUSE: disabled for now on ppc/ppc64";;
+esac
+
# gensort output seems to trigger the failure more often,
# so prefer gensort if it is available.
(gensort -a 10000 in) 2>/dev/null ||
Index: tests/misc/sort-u-FMR.sh
===================================================================
--- tests/misc/sort-u-FMR.sh.orig 2013-12-04 15:48:30.000000000 +0100
+++ tests/misc/sort-u-FMR.sh 2014-01-09 01:27:05.736557309 +0100
@@ -20,6 +20,10 @@
print_ver_ sort
require_valgrind_
+case "$( uname -m )" in
+ ppc | ppc64) skip_ "SUSE: disabled for now on ppc/ppc64";;
+esac
+
{ echo 0; printf '%0900d\n' 1; } > in || framework_failure_
valgrind --error-exitcode=1 sort --p=1 -S32b -u in > out || fail=1

View File

@ -1,7 +1,11 @@
---
src/uname.c | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
Index: src/uname.c
===================================================================
--- src/uname.c.orig
+++ src/uname.c
--- src/uname.c.orig 2013-12-04 15:48:30.000000000 +0100
+++ src/uname.c 2014-01-09 01:26:27.130914660 +0100
@@ -337,6 +337,36 @@ main (int argc, char **argv)
# endif
}

View File

@ -0,0 +1,36 @@
From 84e67a5bd239179e2faded424861dce5718fa12c Mon Sep 17 00:00:00 2001
From: Bernhard Voelker <mail@bernhard-voelker.de>
Date: Tue, 7 Jan 2014 19:18:25 +0100
Subject: [PATCH] tests: avoid FP failure when cp fails for /proc/cpuinfo
On aarch64, cp fails to copy /proc/cpuinfo because the inode number
seems to change between the initial stat() call and copying the file:
$ cp /proc/cpuinfo exp
cp: skipping file '/proc/cpuinfo', as it was \
replaced while being copied
* tests/cp/proc-zero-len.sh: When cp fails, check on the above
error message to skip the test.
---
tests/cp/proc-zero-len.sh | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
Index: tests/cp/proc-zero-len.sh
===================================================================
--- tests/cp/proc-zero-len.sh.orig 2013-12-04 15:48:30.000000000 +0100
+++ tests/cp/proc-zero-len.sh 2014-01-09 01:28:38.447905329 +0100
@@ -27,7 +27,12 @@ test -r $f || f=empty
cat $f > out || fail=1
# With coreutils-6.9, this would create a zero-length "exp" file.
-cp $f exp || fail=1
+# Skip this test on architectures like aarch64 where the inode
+# number of the file changed during the cp run.
+cp $f exp 2>err \
+ || { fail=1;
+ grep 'replaced while being copied' \
+ && skip_ "File $f is being replaced while being copied"; }
# Don't simply compare contents; they might differ,
# e.g., if CPU freq changes between cat and cp invocations.

View File

@ -0,0 +1,36 @@
From d3b433bd41c8978c31fee085cc7e6b0554a4c03e Mon Sep 17 00:00:00 2001
From: Bernhard Voelker <mail@bernhard-voelker.de>
Date: Wed, 8 Jan 2014 01:15:58 +0100
Subject: [PATCH] tests: shorten extreme-expensive factor tests
The extended factor tests alone can take several hours on e.g. i586
or arm6l. Strip the tests down from 37 to 3.
* tests/local.mk (factor_tests): From the sequence of the tests
00..36, remove all but t00, t05 and t36.
---
tests/local.mk | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
Index: tests/local.mk
===================================================================
--- tests/local.mk.orig 2014-01-09 00:22:09.652388317 +0100
+++ tests/local.mk 2014-01-09 01:29:51.697680994 +0100
@@ -649,14 +649,9 @@ all_tests = \
# See tests/factor/create-test.sh.
tf = tests/factor
factor_tests = \
- $(tf)/t00.sh $(tf)/t01.sh $(tf)/t02.sh $(tf)/t03.sh $(tf)/t04.sh \
- $(tf)/t05.sh $(tf)/t06.sh $(tf)/t07.sh $(tf)/t08.sh $(tf)/t09.sh \
- $(tf)/t10.sh $(tf)/t11.sh $(tf)/t12.sh $(tf)/t13.sh $(tf)/t14.sh \
- $(tf)/t15.sh $(tf)/t16.sh $(tf)/t17.sh $(tf)/t18.sh $(tf)/t19.sh \
- $(tf)/t20.sh $(tf)/t21.sh $(tf)/t22.sh $(tf)/t23.sh $(tf)/t24.sh \
- $(tf)/t25.sh $(tf)/t26.sh $(tf)/t27.sh $(tf)/t28.sh $(tf)/t29.sh \
- $(tf)/t30.sh $(tf)/t31.sh $(tf)/t32.sh $(tf)/t33.sh $(tf)/t34.sh \
- $(tf)/t35.sh $(tf)/t36.sh
+ $(tf)/t00.sh \
+ $(tf)/t05.sh \
+ $(tf)/t36.sh
$(factor_tests): $(tf)/run.sh $(tf)/create-test.sh
$(AM_V_GEN)$(MKDIR_P) $(tf)

View File

@ -1,3 +1,196 @@
-------------------------------------------------------------------
Thu Jan 9 01:55:08 UTC 2014 - mail@bernhard-voelker.de
- Add upstream patch (coreutils-copy-fix-selinux-existing-dirs.patch):
cp -a: set the correct SELinux context on already existing
destination directories (rh#1045122).
- Merge I18n fixes from Fedora (coreutils-i18n.patch):
* sort: fix sorting by non-first field (rh#1003544)
* cut: avoid using slower multi-byte code in non-UTF-8 locales
(rh#1021403, rh#499220).
- Testsuite: skip some tests:
* coreutils-skip-some-sort-tests-on-ppc.patch: Add patch to
skip 2 valgrind'ed sort tests on ppc/ppc64.
* coreutils-skip-gnulib-test-tls.patch: Add patch to skip
the gnulib test 'test-tls' on i586, x86_64, ppc and ppc64.
* coreutils-tests-avoid-FP-cp-cpuinfo.patch: Add patch to skip a
test when cp fails for /proc/cpuinfo which happens on aarch64.
* coreutils-tests-shorten-extreme-factor-tests.patch: Add patch
to skip most of the extreme-expensive factor tests.
-------------------------------------------------------------------
Sat Jan 4 23:05:46 UTC 2014 - mail@bernhard-voelker.de
- Refresh patches to match the new version.
* coreutils-build-timeout-as-pie.patch: Update line number.
* coreutils-gnulib-tests-ppc64le.patch: Likewise.
* coreutils-invalid-ids.patch: Likewise.
* coreutils-remove_hostname_documentation.patch: Likewise.
* coreutils-remove_kill_documentation.patch: Likewise.
* coreutils-sysinfo.patch: Likewise.
* coreutils-i18n.patch: Likewise.
- Additional changes in coreutils-i18n.patch:
* Accommodate to upstream changes in cut.c and uniq.c.
* Fix some compiler warnings.
* Fix 145-mb test in tests/misc/uniq.pl.
* Skip sort's "2[01]a" test cases for now
to avoid a test failure on i586/x86_64.
- Remove now-upstream and therefore obsolete patches.
* coreutils-8.21.de.po.xz: Remove, upstream is latest.
* coreutils-gnulib-tests-fix-nap-race-obs.patch:
Remove, now upstream.
* coreutils-gnulib-tests-fix-nap-race.patch: Likewise.
* longlong-aarch64.patch: Likewise.
- Update to 8.22 (2013-12-13) [stable]
** Bug fixes
df now processes the mount list correctly in the presence of unstatable
mount points. Previously it may have failed to output some mount points.
[bug introduced in coreutils-8.21]
df now processes symbolic links and relative paths to special files containing
a mounted file system correctly. Previously df displayed the statistics about
the file system the file is stored on rather than the one inside.
[This bug was present in "the beginning".]
df now processes disk device nodes correctly in the presence of bind mounts.
Now df shows the base mounted file system rather than the last one mounted.
[This bug was present in "the beginning".]
install now removes the target file if the strip program failed for any
reason. Before, that file was left behind, sometimes even with wrong
permissions.
[This bug was present in "the beginning".]
ln --relative now updates existing symlinks correctly. Previously it based
the relative link on the dereferenced path of an existing link.
[This bug was introduced when --relative was added in coreutils-8.16.]
ls --recursive will no longer exit with "serious" exit code (2), if there
is an error reading a directory not specified on the command line.
[Bug introduced in coreutils-5.3.0]
mkdir, mkfifo, and mknod now work better when creating a file in a directory
with a default ACL whose umask disagrees with the process's umask, on a
system such as GNU/Linux where directory ACL umasks override process umasks.
[bug introduced in coreutils-6.0]
mv will now replace empty directories in the destination with directories
from the source, when copying across file systems.
[This bug was present in "the beginning".]
od -wN with N larger than 64K on a system with 32-bit size_t would
print approximately 2*N bytes of extraneous padding.
[Bug introduced in coreutils-7.0]
rm -I now prompts for confirmation before removing a write protected file.
[Bug introduced in coreutils-6.8]
shred once again uses direct I/O on systems requiring aligned buffers.
Also direct I/O failures for odd sized writes at end of file are now handled.
[The "last write" bug was introduced in coreutils-5.3.0 but masked
by the alignment bug introduced in coreutils-6.0]
tail --retry -f now waits for the files specified to appear. Before, tail
would immediately exit when such a file is initially inaccessible.
[This bug was introduced when inotify support was added in coreutils-7.5]
tail -F has improved handling of symlinks. Previously tail didn't respond
to the symlink target (re)appearing after being (re)created.
[This bug was introduced when inotify support was added in coreutils-7.5]
** New features
cp, install, mkdir, mknod, mkfifo and mv now support "restorecon"
functionality through the -Z option, to set the SELinux context
appropriate for the new item location in the file system.
csplit accepts a new option: --suppressed-matched, to elide the lines
used to identify the split points.
df --output now accepts a 'file' field, to propagate a specified
command line argument through to the output.
du accepts a new option: --inodes to show the number of inodes instead
of the blocks used.
id accepts a new option: --zero (-z) to delimit the output entries by
a NUL instead of a white space character.
id and ls with -Z report the SMACK security context where available.
mkdir, mkfifo and mknod with -Z set the SMACK context where available.
id can now lookup by user ID, in addition to the existing name lookup.
join accepts a new option: --zero-terminated (-z). As with the sort,uniq
option of the same name, this makes join consume and produce NUL-terminated
lines rather than newline-terminated lines.
uniq accepts a new option: --group to print all items, while separating
unique groups with empty lines.
shred accepts new parameters to the --remove option to give greater
control over that operation, which can greatly reduce sync overhead.
shuf accepts a new option: --repeat (-r), which can repeat items in
the output.
** Changes in behavior
cp --link now dereferences a symbolic link as source before creating the
hard link in the destination unless the -P,--no-deref option is specified.
Previously, it would create a hard link of the symbolic link, even when
the dereferencing options -L or -H were specified.
cp, install, mkdir, mknod and mkfifo no longer accept an argument to the
short -Z option. The --context equivalent still takes an optional argument.
dd status=none now suppresses all non fatal diagnostic messages,
not just the transfer counts.
df no longer accepts the long-obsolescent --megabytes option.
stdbuf now requires at least one buffering mode option to be specified,
as per the documented interface.
** Improvements
base64 encoding throughput for bulk data is increased by about 60%.
md5sum can use libcrypto hash routines where allowed to potentially
get better performance through using more system specific logic.
sha1sum for example has improved throughput by 40% on an i3-2310M.
This also affects sha1sum, sha224sum, sha256sum, sha384sum and sha512sum.
stat and tail work better with EFIVARFS, EXOFS, F2FS, HOSTFS, SMACKFS, SNFS
and UBIFS. stat -f --format=%T now reports the file system type, and tail -f
now uses inotify for files on all those except SNFS, rather than the default
(for unknown file system types) of issuing a warning and reverting to polling.
shuf outputs subsets of large inputs much more efficiently.
Reservoir sampling is used to limit memory usage based on the number of
outputs, rather than the number of inputs.
shred increases the default write block size from 12KiB to 64KiB
to align with other utilities and reduce the system call overhead.
split --line-bytes=SIZE, now only allocates memory as needed rather
than allocating SIZE bytes at program start.
stty now supports configuring "stick" (mark/space) parity where available.
** Build-related
factor now builds on aarch64 based systems [bug introduced in coreutils-8.20]
-------------------------------------------------------------------
Thu Dec 19 23:37:39 UTC 2013 - uweigand@de.ibm.com

View File

@ -1,7 +1,7 @@
#
# spec file for package coreutils-testsuite
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -21,7 +21,7 @@ Summary: GNU Core Utilities
License: GPL-3.0+
Group: System/Base
Url: http://www.gnu.org/software/coreutils/
Version: 8.21
Version: 8.22
Release: 0
#################################################################
@ -87,28 +87,38 @@ Source: coreutils-%{version}.tar.xz
%endif
Source1: baselibs.conf
Source2: coreutils-%{version}.de.po.xz
Patch1: coreutils-remove_hostname_documentation.patch
Patch3: coreutils-remove_kill_documentation.patch
Patch4: coreutils-i18n.patch
Patch8: coreutils-sysinfo.patch
Patch16: coreutils-invalid-ids.patch
Patch17: longlong-aarch64.patch
# OBS / RPMLINT require /usr/bin/timeout to be built with the -fpie option.
Patch100: coreutils-build-timeout-as-pie.patch
# Fix gnulib-test failures related to gnulib-tests/nap.h.
Patch200: coreutils-gnulib-tests-fix-nap-race.patch
# Fix gnulib-test failures: increase nap() delay multiplier even
# a bit more to avoid failures on OBS.
Patch201: coreutils-gnulib-tests-fix-nap-race-obs.patch
# Upstream patch to 8.22: cp -a: set the correct SELinux context
# on already existing destination directories.
Patch110: coreutils-copy-fix-selinux-existing-dirs.patch
# Fix imported gnulib long double math tests for little-endian PowerPC
Patch202: coreutils-gnulib-tests-ppc64le.patch
# Skip 2 valgrind'ed sort tests on ppc/ppc64 which would fail due to
# a glibc issue in mkstemp.
Patch300: coreutils-skip-some-sort-tests-on-ppc.patch
%ifarch %ix86 x86_64 ppc ppc64
Patch301: coreutils-skip-gnulib-test-tls.patch
%endif
# tests: avoid FP failure when cp fails for /proc/cpuinfo
# which happens e.g. on aarch64.
Patch302: coreutils-tests-avoid-FP-cp-cpuinfo.patch
# tests: shorten extreme-expensive factor tests
Patch303: coreutils-tests-shorten-extreme-factor-tests.patch
# ================================================
%description
These are the GNU core utilities. This package is the union of
@ -133,15 +143,19 @@ the GNU fileutils, sh-utils, and textutils packages.
%patch3
%patch8
%patch16
%patch17 -p1
#
%patch100
%patch110
%patch202
%patch200
%patch201
%patch202 -p1
%patch300
xz -dc %{S:2} >po/de.po
%ifarch %ix86 x86_64 ppc ppc64
%patch301
%endif
%patch302
%patch303
#???## We need to statically link to gmp, otherwise we have a build loop
#???#sed -i s,'$(LIB_GMP)',%%{_libdir}/libgmp.a,g Makefile.in

View File

@ -1,3 +1,196 @@
-------------------------------------------------------------------
Thu Jan 9 01:55:08 UTC 2014 - mail@bernhard-voelker.de
- Add upstream patch (coreutils-copy-fix-selinux-existing-dirs.patch):
cp -a: set the correct SELinux context on already existing
destination directories (rh#1045122).
- Merge I18n fixes from Fedora (coreutils-i18n.patch):
* sort: fix sorting by non-first field (rh#1003544)
* cut: avoid using slower multi-byte code in non-UTF-8 locales
(rh#1021403, rh#499220).
- Testsuite: skip some tests:
* coreutils-skip-some-sort-tests-on-ppc.patch: Add patch to
skip 2 valgrind'ed sort tests on ppc/ppc64.
* coreutils-skip-gnulib-test-tls.patch: Add patch to skip
the gnulib test 'test-tls' on i586, x86_64, ppc and ppc64.
* coreutils-tests-avoid-FP-cp-cpuinfo.patch: Add patch to skip a
test when cp fails for /proc/cpuinfo which happens on aarch64.
* coreutils-tests-shorten-extreme-factor-tests.patch: Add patch
to skip most of the extreme-expensive factor tests.
-------------------------------------------------------------------
Sat Jan 4 23:05:46 UTC 2014 - mail@bernhard-voelker.de
- Refresh patches to match the new version.
* coreutils-build-timeout-as-pie.patch: Update line number.
* coreutils-gnulib-tests-ppc64le.patch: Likewise.
* coreutils-invalid-ids.patch: Likewise.
* coreutils-remove_hostname_documentation.patch: Likewise.
* coreutils-remove_kill_documentation.patch: Likewise.
* coreutils-sysinfo.patch: Likewise.
* coreutils-i18n.patch: Likewise.
- Additional changes in coreutils-i18n.patch:
* Accommodate to upstream changes in cut.c and uniq.c.
* Fix some compiler warnings.
* Fix 145-mb test in tests/misc/uniq.pl.
* Skip sort's "2[01]a" test cases for now
to avoid a test failure on i586/x86_64.
- Remove now-upstream and therefore obsolete patches.
* coreutils-8.21.de.po.xz: Remove, upstream is latest.
* coreutils-gnulib-tests-fix-nap-race-obs.patch:
Remove, now upstream.
* coreutils-gnulib-tests-fix-nap-race.patch: Likewise.
* longlong-aarch64.patch: Likewise.
- Update to 8.22 (2013-12-13) [stable]
** Bug fixes
df now processes the mount list correctly in the presence of unstatable
mount points. Previously it may have failed to output some mount points.
[bug introduced in coreutils-8.21]
df now processes symbolic links and relative paths to special files containing
a mounted file system correctly. Previously df displayed the statistics about
the file system the file is stored on rather than the one inside.
[This bug was present in "the beginning".]
df now processes disk device nodes correctly in the presence of bind mounts.
Now df shows the base mounted file system rather than the last one mounted.
[This bug was present in "the beginning".]
install now removes the target file if the strip program failed for any
reason. Before, that file was left behind, sometimes even with wrong
permissions.
[This bug was present in "the beginning".]
ln --relative now updates existing symlinks correctly. Previously it based
the relative link on the dereferenced path of an existing link.
[This bug was introduced when --relative was added in coreutils-8.16.]
ls --recursive will no longer exit with "serious" exit code (2), if there
is an error reading a directory not specified on the command line.
[Bug introduced in coreutils-5.3.0]
mkdir, mkfifo, and mknod now work better when creating a file in a directory
with a default ACL whose umask disagrees with the process's umask, on a
system such as GNU/Linux where directory ACL umasks override process umasks.
[bug introduced in coreutils-6.0]
mv will now replace empty directories in the destination with directories
from the source, when copying across file systems.
[This bug was present in "the beginning".]
od -wN with N larger than 64K on a system with 32-bit size_t would
print approximately 2*N bytes of extraneous padding.
[Bug introduced in coreutils-7.0]
rm -I now prompts for confirmation before removing a write protected file.
[Bug introduced in coreutils-6.8]
shred once again uses direct I/O on systems requiring aligned buffers.
Also direct I/O failures for odd sized writes at end of file are now handled.
[The "last write" bug was introduced in coreutils-5.3.0 but masked
by the alignment bug introduced in coreutils-6.0]
tail --retry -f now waits for the files specified to appear. Before, tail
would immediately exit when such a file is initially inaccessible.
[This bug was introduced when inotify support was added in coreutils-7.5]
tail -F has improved handling of symlinks. Previously tail didn't respond
to the symlink target (re)appearing after being (re)created.
[This bug was introduced when inotify support was added in coreutils-7.5]
** New features
cp, install, mkdir, mknod, mkfifo and mv now support "restorecon"
functionality through the -Z option, to set the SELinux context
appropriate for the new item location in the file system.
csplit accepts a new option: --suppressed-matched, to elide the lines
used to identify the split points.
df --output now accepts a 'file' field, to propagate a specified
command line argument through to the output.
du accepts a new option: --inodes to show the number of inodes instead
of the blocks used.
id accepts a new option: --zero (-z) to delimit the output entries by
a NUL instead of a white space character.
id and ls with -Z report the SMACK security context where available.
mkdir, mkfifo and mknod with -Z set the SMACK context where available.
id can now lookup by user ID, in addition to the existing name lookup.
join accepts a new option: --zero-terminated (-z). As with the sort,uniq
option of the same name, this makes join consume and produce NUL-terminated
lines rather than newline-terminated lines.
uniq accepts a new option: --group to print all items, while separating
unique groups with empty lines.
shred accepts new parameters to the --remove option to give greater
control over that operation, which can greatly reduce sync overhead.
shuf accepts a new option: --repeat (-r), which can repeat items in
the output.
** Changes in behavior
cp --link now dereferences a symbolic link as source before creating the
hard link in the destination unless the -P,--no-deref option is specified.
Previously, it would create a hard link of the symbolic link, even when
the dereferencing options -L or -H were specified.
cp, install, mkdir, mknod and mkfifo no longer accept an argument to the
short -Z option. The --context equivalent still takes an optional argument.
dd status=none now suppresses all non fatal diagnostic messages,
not just the transfer counts.
df no longer accepts the long-obsolescent --megabytes option.
stdbuf now requires at least one buffering mode option to be specified,
as per the documented interface.
** Improvements
base64 encoding throughput for bulk data is increased by about 60%.
md5sum can use libcrypto hash routines where allowed to potentially
get better performance through using more system specific logic.
sha1sum for example has improved throughput by 40% on an i3-2310M.
This also affects sha1sum, sha224sum, sha256sum, sha384sum and sha512sum.
stat and tail work better with EFIVARFS, EXOFS, F2FS, HOSTFS, SMACKFS, SNFS
and UBIFS. stat -f --format=%T now reports the file system type, and tail -f
now uses inotify for files on all those except SNFS, rather than the default
(for unknown file system types) of issuing a warning and reverting to polling.
shuf outputs subsets of large inputs much more efficiently.
Reservoir sampling is used to limit memory usage based on the number of
outputs, rather than the number of inputs.
shred increases the default write block size from 12KiB to 64KiB
to align with other utilities and reduce the system call overhead.
split --line-bytes=SIZE, now only allocates memory as needed rather
than allocating SIZE bytes at program start.
stty now supports configuring "stick" (mark/space) parity where available.
** Build-related
factor now builds on aarch64 based systems [bug introduced in coreutils-8.20]
-------------------------------------------------------------------
Thu Dec 19 23:37:39 UTC 2013 - uweigand@de.ibm.com

View File

@ -1,7 +1,7 @@
#
# spec file for package coreutils
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -21,7 +21,7 @@ Summary: GNU Core Utilities
License: GPL-3.0+
Group: System/Base
Url: http://www.gnu.org/software/coreutils/
Version: 8.21
Version: 8.22
Release: 0
#################################################################
@ -87,28 +87,38 @@ Source: coreutils-%{version}.tar.xz
%endif
Source1: baselibs.conf
Source2: coreutils-%{version}.de.po.xz
Patch1: coreutils-remove_hostname_documentation.patch
Patch3: coreutils-remove_kill_documentation.patch
Patch4: coreutils-i18n.patch
Patch8: coreutils-sysinfo.patch
Patch16: coreutils-invalid-ids.patch
Patch17: longlong-aarch64.patch
# OBS / RPMLINT require /usr/bin/timeout to be built with the -fpie option.
Patch100: coreutils-build-timeout-as-pie.patch
# Fix gnulib-test failures related to gnulib-tests/nap.h.
Patch200: coreutils-gnulib-tests-fix-nap-race.patch
# Fix gnulib-test failures: increase nap() delay multiplier even
# a bit more to avoid failures on OBS.
Patch201: coreutils-gnulib-tests-fix-nap-race-obs.patch
# Upstream patch to 8.22: cp -a: set the correct SELinux context
# on already existing destination directories.
Patch110: coreutils-copy-fix-selinux-existing-dirs.patch
# Fix imported gnulib long double math tests for little-endian PowerPC
Patch202: coreutils-gnulib-tests-ppc64le.patch
# Skip 2 valgrind'ed sort tests on ppc/ppc64 which would fail due to
# a glibc issue in mkstemp.
Patch300: coreutils-skip-some-sort-tests-on-ppc.patch
%ifarch %ix86 x86_64 ppc ppc64
Patch301: coreutils-skip-gnulib-test-tls.patch
%endif
# tests: avoid FP failure when cp fails for /proc/cpuinfo
# which happens e.g. on aarch64.
Patch302: coreutils-tests-avoid-FP-cp-cpuinfo.patch
# tests: shorten extreme-expensive factor tests
Patch303: coreutils-tests-shorten-extreme-factor-tests.patch
# ================================================
%description
These are the GNU core utilities. This package is the union of
@ -133,15 +143,19 @@ the GNU fileutils, sh-utils, and textutils packages.
%patch3
%patch8
%patch16
%patch17 -p1
#
%patch100
%patch110
%patch202
%patch200
%patch201
%patch202 -p1
%patch300
xz -dc %{S:2} >po/de.po
%ifarch %ix86 x86_64 ppc ppc64
%patch301
%endif
%patch302
%patch303
#???## We need to statically link to gmp, otherwise we have a build loop
#???#sed -i s,'$(LIB_GMP)',%%{_libdir}/libgmp.a,g Makefile.in

View File

@ -1,48 +0,0 @@
From 9fe7c5b6eb373d859390dd5a7844a666d8b7818b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Torbj=C3=B6rn=20Granlund?= <tg@gmplib.org>
Date: Mon, 4 Mar 2013 17:57:33 +0000
Subject: [PATCH] build: fix factor build failure on aarch64
* src/longlong.h (__aarch64__): Make add_ssaaaa and sub_ddmmss work.
* NEWS: Mention the build fix.
Reported at https://bugzilla.redhat.com/917735
---
NEWS | 4 ++++
src/longlong.h | 21 +++++++--------------
2 files changed, 11 insertions(+), 14 deletions(-)
Index: coreutils-8.21/src/longlong.h
===================================================================
--- coreutils-8.21.orig/src/longlong.h
+++ coreutils-8.21/src/longlong.h
@@ -529,23 +529,16 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype
#endif /* __arm__ */
#if defined (__aarch64__) && W_TYPE_SIZE == 64
+/* FIXME: Extend the immediate range for the low word by using both
+ ADDS and SUBS, since they set carry in the same way. */
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
- __asm__ ("adds\t%1, %4, %5\n\tadc\t%0, %2, %3" \
+ __asm__ ("adds\t%1, %x4, %5\n\tadc\t%0, %x2, %x3" \
: "=r" (sh), "=&r" (sl) \
- : "r" (ah), "rZ" (bh), "%r" (al), "rI" (bl) __CLOBBER_CC)
+ : "rZ" (ah), "rZ" (bh), "%r" (al), "rI" (bl) __CLOBBER_CC)
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
- do { \
- if (__builtin_constant_p (bl)) \
- { \
- __asm__ ("subs\t%1, %4, %5\n\tsbc\t%0, %2, %3" \
- : "=r" (sh), "=&r" (sl) \
- : "r" (ah), "r" (bh), "r" (al), "rI" (bl) __CLOBBER_CC); \
- } \
- else /* only bh might be a constant */ \
- __asm__ ("subs\t%1, %4, %5\n\tsbc\t%0, %2, %3" \
- : "=r" (sh), "=&r" (sl) \
- : "r" (ah), "rZ" (bh), "r" (al), "rI" (bl) __CLOBBER_CC);\
- } while (0)
+ __asm__ ("subs\t%1, %x4, %5\n\tsbc\t%0, %x2, %x3" \
+ : "=r,r" (sh), "=&r,&r" (sl) \
+ : "rZ,rZ" (ah), "rZ,rZ" (bh), "r,Z" (al), "rI,r" (bl) __CLOBBER_CC)
#define umul_ppmm(ph, pl, m0, m1) \
do { \
UDItype __m0 = (m0), __m1 = (m1); \