** Bug fixes
* dd supports more robust SIGINFO/SIGUSR1 handling for outputting statistics.
Previously those signals may have inadvertently terminated the process.
* df --local no longer hangs with inaccessible remote mounts.
[bug introduced in coreutils-8.21]
* du now silently ignores all directory cycles due to bind mounts.
Previously it would issue a warning and exit with a failure status.
[bug introduced in coreutils-8.1 and partially fixed in coreutils-8.23]
* chroot again calls chroot(DIR) and chdir("/"), even if DIR is "/".
This handles separate bind mounted "/" trees, and environments
depending on the implicit chdir("/").
[bugs introduced in coreutils-8.23]
* cp no longer issues an incorrect warning about directory hardlinks when a
source directory is specified multiple times. Now, consistent with other
file types, a warning is issued for source directories with duplicate names,
or with -H the directory is copied again using the symlink name.
* factor avoids writing partial lines, thus supporting parallel operation.
[the bug dates back to the initial implementation]
* head, od, split, tac, tail, and wc no longer mishandle input from files in
/proc and /sys file systems that report somewhat-incorrect file sizes.
* mkdir --parents -Z now correctly sets the context for the last component,
even if the parent directory exists and has a different default context.
[bug introduced with the -Z restorecon functionality in coreutils-8.22]
* numfmt no longer outputs incorrect overflowed values seen with certain
large numbers, or with numbers with increased precision.
[bug introduced when numfmt was added in coreutils-8.21]
* numfmt now handles leading zeros correctly, not counting them when
settings processing limits, and making them optional with floating point.
[bug introduced when numfmt was added in coreutils-8.21]
* paste no longer truncates output for large input files. This would happen
for example with files larger than 4GiB on 32 bit systems with a '\n'
character at the 4GiB position.
[the bug dates back to the initial implementation]
* rm indicates the correct number of arguments in its confirmation prompt,
on all platforms. [bug introduced in coreutils-8.22]
* shuf -i with a single redundant operand, would crash instead of issuing
a diagnostic. [bug introduced in coreutils-8.22]
* tail releases inotify resources when unused. Previously it could exhaust
resources with many files, or with -F if files were replaced many times.
[bug introduced in coreutils-7.5]
* tail -f again follows changes to a file after it's renamed.
[bug introduced in coreutils-7.5]
* tail --follow no longer misses changes to files if those files were
replaced before inotify watches were created.
[bug introduced in coreutils-7.5]
* tail --follow consistently outputs all data for a truncated file.
[bug introduced in the beginning]
* tail --follow=name correctly outputs headers for multiple files
when those files are being created or renamed.
[bug introduced in coreutils-7.5]
** New features
* chroot accepts the new --skip-chdir option to not change the working directory
to "/" after changing into the chroot(2) jail, thus retaining the current wor-
king directory. The new option is only permitted if the new root directory is
the old "/", and therefore is useful with the --group and --userspec options.
* dd accepts a new status=progress level to print data transfer statistics
on stderr approximately every second.
* numfmt can now process multiple fields with field range specifications similar
to cut, and supports setting the output precision with the --format option.
* split accepts a new --separator option to select a record separator character
other than the default newline character.
* stty allows setting the "extproc" option where supported, which is
a useful setting with high latency links.
* sync no longer ignores arguments, and syncs each specified file, or with the
--file-system option, the file systems associated with each specified file.
* tee accepts a new --output-error option to control operation with pipes
and output errors in general.
** Changes in behavior
* df no longer suppresses separate exports of the same remote device, as
these are generally explicitly mounted. The --total option does still
suppress duplicate remote file systems.
[suppression was introduced in coreutils-8.21]
* mv no longer supports moving a file to a hardlink, instead issuing an error.
The implementation was susceptible to races in the presence of multiple mv
instances, which could result in both hardlinks being deleted. Also on case
insensitive file systems like HFS, mv would just remove a hardlinked 'file'
if called like `mv file File`. The feature was added in coreutils-5.0.1.
* numfmt --from-unit and --to-unit options now interpret suffixes as SI units,
and IEC (power of 2) units are now specified by appending 'i'.
* tee will exit early if there are no more writable outputs.
* tee does not treat the file operand '-' as meaning standard output any longer,
for better conformance to POSIX. This feature was added in coreutils-5.3.0.
* timeout --foreground no longer sends SIGCONT to the monitored process,
which was seen to cause intermittent issues with GDB for example.
** Improvements
* cp,install,mv will convert smaller runs of NULs in the input to holes,
and cp --sparse=always avoids speculative preallocation on XFS for example.
* cp will read sparse files more efficiently when the destination is a
non regular file. For example when copying a disk image to a device node.
* mv will try a reflink before falling back to a standard copy, which is
more efficient when moving files across BTRFS subvolume boundaries.
* stat and tail now know about IBRIX. stat -f --format=%T now reports the file
system type, and tail -f uses polling for files on IBRIX file systems.
* wc -l processes short lines much more efficiently.
* References from --help and the man pages of utilities have been corrected
in various cases, and more direct links to the corresponding online
documentation are provided.
- Patches adapted because of changed sources:
coreutils-disable_tests.patch
coreutils-i18n.patch
coreutils-misc.patch
coreutils-ocfs2_reflinks.patch
coreutils-remove_hostname_documentation.patch
coreutils-remove_kill_documentation.patch
coreutils-skip-gnulib-test-tls.patch
coreutils-tests-shorten-extreme-factor-tests.patch
sort-keycompare-mb.patch
- Patches removed because they're included in 8.24:
coreutils-chroot-perform-chdir-unless-skip-chdir.patch
coreutils-df-doc-df-a-includes-duplicate-file-systems.patch
coreutils-df-improve-mount-point-selection.patch
coreutils-df-show-all-remote-file-systems.patch
coreutils-df-total-suppress-separate-remotes.patch
coreutils-doc-adjust-reference-to-info-nodes-in-man-pages.patch
coreutils-fix_false_du_failure_on_newer_xfs.patch
coreutils-fix-man-deps.patch
coreutils-tests-aarch64-env.patch
coreutils-tests-make-inotify-rotate-more-robust-and-efficient.patch
coreutils-tests-rm-ext3-perf-increase-timeout.patch
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=262
- Add coreutils-fix_false_du_failure_on_newer_xfs.patch that fixes a false
negative in the testsuite.
- Add coreutils-disable_tests.patch to not run a tests that fail inside the OBS.
- Add coreutils-test_without_valgrind.patch to not use valgrind in shuf-reservoir.
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=236
- 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.
OBS-URL: https://build.opensuse.org/request/show/213254
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=221
The "gnulib" package contains a number of floating-point test cases
that do not work correctly with the PowerPC long double ("double double")
format. These tests "accidentally" succeeded anyway in the big-endian
variant, but are now actually failing in little-endian mode.
As is usual for gnulib, those tests end up copied into the source code
of various packages that use gnulib, including coreutils, findutils,
grep, and libunistring.
A patch to fix the tests for ppc64le has been submitted to upstream
to the bug-gnulib mailing list. We'll work with upstream of the
other affected packages to make sure the copies are refreshed.
- coreutils-gnulib-tests-ppc64le.patch: Fix imported gnulib long double
math tests for little-endian PowerPC.
OBS-URL: https://build.opensuse.org/request/show/211829
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=217
- Update I18N patch from Fedora:
(coreutils-i18n.patch)
* sort: fix multibyte incompabilities (rh#821264)
* pr -e, with a mix of backspaces and TABs, could corrupt the
heap in multibyte locales (analyzed by J.Koncicky)
* path in the testsuite to cover i18n regressions
* Enable cut and sort-merge perl tests for multibyte as well
- Refresh longlong-aarch64.patch.
OBS-URL: https://build.opensuse.org/request/show/209118
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=209
- Undo the previous change.
Remove configure options gl_cv_func_printf_directive_n and
gl_cv_func_printf_infinite_long_double again because of constant
factory build failures on x86_64 and i586. The argument for
adding them was that the fortify checks would be bypassed
by the gnulib "reimplementation of printf", but that is not
the case: instead, gnulib just adds some wrapping code to ensure
a consistent behaviour on all supported platforms.
OBS-URL: https://build.opensuse.org/request/show/184097
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=201
- Add systemd to build and use requires
- Make pam configuration for command su using the systemd login
manager for ordinary users as this allows to use all services
provided by systemd login manager
- change the buildrequire system to pkgconfig(systemd) to fix bootstrap
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=192
* src/join.c: Instead of usig unreliable alloca() stack allocation,
use heap allocation via xmalloc()+free().
(coreutils-i18n.patch, from Philipp Thomas <pth@suse.de>)
- Avoid segmentation fault in "sort -d" and "sort -M" with long line input
(bnc#798538, VUL-1)
* src/sort.c: Instead of usig unreliable alloca() stack allocation,
use heap allocation via xmalloc()+free().
(coreutils-i18n.patch, from Philipp Thomas <pth@suse.de>)
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=173
* src/cut.c: Instead of usig unreliable alloca() stack allocation,
use heap allocation via xmalloc()+free().
(coreutils-i18n.patch)
- Fix test-suite errors (bnc#798261).
* tests/cp/fiemap-FMR: Fix path to src directory and declare
require_valgrind_ function.
(coreutils-cp-corrupt-fragmented-sparse.patch)
* tests/misc/cut:
Fix src/cut.c to properly pass output-delimiter tests.
Synchronize cut.c related part of the i18n patch with Fedora's.
Merge coreutils-i18n-infloop.patch into coreutils-i18n.patch.
Merge coreutils-i18n-uninit.patch into coreutils-i18n.patch.
In tests/misc/cut, do not replace the non-i18n error messages.
(coreutils-i18n.patch)
* tests/rm/ext3-perf:
This test failed due to heavy parallel CPU and/or disk load because it
is based on timeouts. Do not run the test-suite with 'make -jN.
(coreutils.spec, coreutils-testsuite.spec)
* Further spec changes:
Run more tests: also run "very expensive" tests; add acl, python-pyinotify,
strace and valgrind to the build requirements.
Remove patch5 and patch6 as they are now merged into coreutils-i18n.patch
(see above).
(coreutils.spec, coreutils-testsuite.spec)
- Maintenance changes:
(coreutils.spec, coreutils-testsuite.spec)
* Add perl and texinfo to the build requirements as they are needed to
re-generate the man pages and the texinfo documentation.
* Remove already-active "-Wall" compiler option from CFLAGS variable.
* Install the compressed test-suite.log into the documentation directory
of the coreutils-testsuite package (section %check and %files).
* Properly guard the spec sections for the coreutils and the
coreutils-testsuite package.
* Update patches to reflect new line numbers.
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=172
coreutils-testsuite too.
- Don't call autoreconf on distributions older then 12.0
because their autoconf is too old.
- Update default posix version to 200112 (bnc#783352).
- Add coreutils-df-always-hide-rootfs.patch:
Hide rootfs in df (df not using yet /proc/self/mountinfo).
- Statically link to gmp otherwise expr depends on gmp and gmp
configure script depends on expr which creates a build cycle.
- Add the missing parts in coreutil.spec so that the testsuite is
only run when coreutils-testsuite is built. Also add additional
BuildRequires for the testsuite.
- Hardcode the name passed to find_lang so that it works for
coreutils-testsuite too.
- Don't call autoreconf on distributions older then 12.0
because their autoconf is too old.
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=171
coreutils-testsuite from their coreutils counterparts.
A coreutils-testsuite.changes
A coreutils-testsuite.spec
M coreutils.changes
M coreutils.spec
A pre_checkin.sh
Diff for working copy: .
Index: coreutils.changes
===================================================================
--- coreutils.changes (revision 73894b9fdb176dd50b0dc070b1aaa6c6)
+++ coreutils.changes (working copy)
@@ -1,3 +1,9 @@
+-------------------------------------------------------------------
+Tue Nov 6 13:23:45 CET 2012 - pth@suse.de
+
+- Add script pre_checkin.sh that creates spec and changes for
+ coreutils-testsuite from their coreutils counterparts.
+
-------------------------------------------------------------------
Sun Oct 28 20:31:28 UTC 2012 - mail@bernhard-voelker.de
Index: coreutils.spec
===================================================================
--- coreutils.spec (revision 73894b9fdb176dd50b0dc070b1aaa6c6)
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=162
* cp could read from freed memory and could even make corrupt copies.
This could happen with a very fragmented and sparse input file,
on GNU/Linux file systems supporting fiemap extent scanning.
This bug also affects mv when it resorts to copying, and install.
[bug introduced in coreutils-8.11]
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=160
** Bug fixes
* stat no longer reports a negative file size as a huge positive
number. [bug present since 'stat' was introduced in
fileutils-4.1.9]
** New features
* split and truncate now allow any seekable files in situations
where the file size is needed, instead of insisting on regular
files.
* fmt now accepts the --goal=WIDTH (-g) option.
* stat -f recognizes new file system types: bdevfs, inodefs, qnx6
** Changes in behavior
* cp,mv,install,cat,split: now read and write a minimum of 64KiB at
a time. This was previously 32KiB and increasing to 64KiB was
seen to increase throughput by about 10% when reading cached
files on 64 bit GNU/Linux.
* cp --attributes-only no longer truncates any existing destination
file, allowing for more general copying of attributes from one
file to another.
- Bring german message catalog up-to-date
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=156
* id and groups, when invoked with no user name argument, would
print the default group ID listed in the password database, and
sometimes that ID would be neither real nor effective. For
example, when run set-GID, or in a session for which the default
group has just been changed, the new group ID would be listed,
even though it is not yet effective.
* 'cp S D' is no longer subject to a race: if an existing D were
removed between the initial stat and subsequent
open-without-O_CREAT, cp would fail with a confusing diagnostic
saying that the destination, D, was not found. Now, in this
unusual case, it retries the open (but with O_CREAT), and hence
usually succeeds. With NFS attribute caching, the condition was
particularly easy to trigger, since there, the removal of D could
precede the initial stat. [This bug was present in "the
beginning".] (bnc#760926).
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=152
- Improvements:
* As a GNU extension, 'chmod', 'mkdir', and 'install' now accept
operators '-', '+', '=' followed by octal modes;
* Also, ordinary numeric modes with five or more digits no longer
preserve setuid and setgid bits, so that 'chmod 00755 FOO' now
clears FOO's setuid and setgid bits.
* dd now accepts the count_bytes, skip_bytes iflags and the
seek_bytes oflag, to more easily allow processing portions of a
file.
* dd now accepts the conv=sparse flag to attempt to create sparse
output, by seeking rather than writing to the output file.
* ln now accepts the --relative option, to generate a relative
symbolic link to a target, irrespective of how the target is
specified.
* split now accepts an optional "from" argument to
--numeric-suffixes, which changes the start number from the
default of 0.
* split now accepts the --additional-suffix option, to append an
additional static suffix to output file names.
* basename now supports the -a and -s options, which allow
processing of more than one argument at a time. Also the
complementary -z option was added to delimit output items with
the NUL character.
* dirname now supports more than one argument. Also the complementary
z option was added to delimit output items with the NUL character.
- Bug fixes
* du --one-file-system (-x) would ignore any non-directory
specified on the command line. For example, "touch f; du -x f"
would print nothing. [bug introduced in coreutils-8.15]
* mv now lets you move a symlink onto a same-inode destination
file that has two or more hard links.
* "mv A B" could succeed, yet A would remain.
* realpath no longer mishandles a root directory.
- Improvements
* ls can be much more efficient, especially with large directories
on file systems for which getfilecon-, ACL-check- and XATTR-
check-induced syscalls fail with ENOTSUP or similar.
* 'realpath --relative-base=dir' in isolation now implies
'--relative-to=dir' instead of causing a usage failure.
* split now supports an unlimited number of split files as default
behavior.
For a detaild list se NEWS in the documentation.
- Add up-to-date german translation.
- Add two upstream patches that speed up ls (bnc#752943):
* Cache (l)getfilecon calls to avoid the vast majority of the failing
underlying getxattr syscalls.
* Avoids always-failing queries for whether a file has a nontrivial
ACL and for whether a file has certain "capabilities".
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=147
vulnerability. The newly added options -C/--session-command do not
do that.
- Add support for environment variable SU_COMMAND_OPENS_SESSION
that makes su option -c behave like -C (bnc#697897) and document it
in coreutils.info.
- Change name of environment variable to SU_C_SAME_SESSION and
document it properly (bnc#697897).
- Update german translation.
- Add upstream patch that fixes the output of 'ln --help'.
- Fix typo in su.c.
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=146
** New programs
realpath: print resolved file names.
** Bug fixes
du --one-file-system (-x) would ignore any non-directory specified on
the command line. For example, "touch f; du -x f" would print nothing.
[bug introduced in coreutils-8.14]
du -x no longer counts root directories of other file systems.
[bug introduced in coreutils-5.1.0]
ls --color many-entry-directory was uninterruptible for too long
[bug introduced in coreutils-5.2.1]
ls's -k option no longer affects how ls -l outputs file sizes.
It now affects only the per-directory block counts written by -l,
and the sizes written by -s. This is for compatibility with BSD
and with POSIX 2008. Because -k is no longer equivalent to
--block-size=1KiB, a new long option --kibibyte stands for -k.
[bug introduced in coreutils-4.5.4]
ls -l would leak a little memory (security context string) for each
nonempty directory listed on the command line, when using SELinux.
[bug probably introduced in coreutils-6.10 with SELinux support]
split -n 1/2 FILE no longer fails when operating on a growing file, or
(on some systems) when operating on a non-regular file like /dev/zero.
It would report "/dev/zero: No such file or directory" even though
the file obviously exists. Same for -n l/2.
[bug introduced in coreutils-8.8, with the addition of the -n option]
stat -f now recognizes the FhGFS and PipeFS file system types.
tac no longer fails to handle two or more non-seekable inputs
[bug introduced in coreutils-5.3.0]
tail -f no longer tries to use inotify on GPFS or FhGFS file systems
[you might say this was introduced in coreutils-7.5, along with inotify
support, but the new magic numbers weren't in the usual places then.]
** Changes in behavior
df avoids long UUID-including file system names in the default listing.
With recent enough kernel/tools, these long names would be used, pushing
second and subsequent columns far to the right. Now, when a long name
refers to a symlink, and no file systems are specified, df prints the
usually-short referent instead.
tail -f now uses polling (not inotify) when any of its file arguments
resides on a file system of unknown type. In addition, for each such
argument, tail -f prints a warning with the FS type magic number and a
request to report it to the bug-reporting address.
- Bring german message catalog up to date.
- Include upstream fix for du.
- Include upstream patch fixing basename documentation.
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=144
Bug fixes:
- ls --dereference no longer outputs erroneous "argetm" strings for
dangling symlinks when an 'ln=target' entry is in $LS_COLORS.
[bug introduced in fileutils-4.0]
- ls -lL symlink once again properly prints "+" when the referent has
an ACL. [bug introduced in coreutils-8.13]
- sort -g no longer infloops for certain inputs containing NaNs [bug
introduced in coreutils-8.5]
- chown and chgrp with the -v --from= options, now output the correct
owner. I.E. for skipped files, the original ownership is output,
not the new one. [bug introduced in sh-utils-2.0g]
- cp -r could mistakenly change the permissions of an existing
destination directory. [bug introduced in coreutils-6.8]
- cp -u -p would fail to preserve one hard link for each up-to-date
copy of a src-hard-linked name in the destination tree. I.e., if
s/a and s/b are hard-linked and dst/s/a is up to date, "cp -up s
dst" would copy s/b to dst/s/b rather than simply linking dst/s/b
to dst/s/a. [This bug appears to have been present in "the
beginning".]
- fts-using tools (rm, du, chmod, chgrp, chown, chcon) no longer use
memory proportional to the number of entries in each directory they
process. Before, rm -rf 4-million-entry-directory would consume
about 1GiB of memory. Now, it uses less than 30MB, no matter how
many entries there are. [this bug was inherent in the use of fts:
thus, for rm the bug was introduced in coreutils-8.0. The prior
implementation of rm did not use as much memory. du, chmod, chgrp
and chown started using fts in 6.0. chcon was added in
coreutils-6.9.91 with fts support. ]
- pr -T no longer ignores a specified LAST_PAGE to stop at. [bug
introduced in textutils-1.19q]
- printf '%d' '"' no longer accesses out-of-bounds memory in the
diagnostic. [bug introduced in sh-utils-1.16]
- split --number l/... no longer creates extraneous files in certain
cases. [bug introduced in coreutils-8.8]
- timeout now sends signals to commands that create their own process
group. timeout is no longer confused when starting off with a
child process. [bugs introduced in coreutils-7.0]
- unexpand -a now aligns correctly when there are spaces spanning a
tabstop, followed by a tab. In that case a space was dropped,
causing misalignment. We also now ensure that a space never
precedes a tab. [bug introduced in coreutils-5.3.0]
New features:
- date now accepts ISO 8601 date-time strings with "T" as the
separator. It has long parsed dates like "2004-02-29 16:21:42"
with a space between the date and time strings. Now it also parses
"2004-02-29T16:21:42" and fractional-second and time-zone-annotated
variants like "2004-02-29T16:21:42.333-07:00"
- md5sum accepts the new --strict option. With --check, it makes the
tool exit non-zero for any invalid input line, rather than just warning.
This also affects sha1sum, sha224sum, sha384sum and sha512sum.
- split accepts a new --filter=CMD option. With it, split filters
output through CMD. CMD may use the $FILE environment variable,
which is set to the nominal output file name for each invocation of
CMD. For example, to split a file into 3 approximately equal
parts, which are then compressed:
split -n3 --filter='xz > $FILE.xz' big
Note the use of single quotes, not double quotes. That creates
files named xaa.xz, xab.xz and xac.xz.
- timeout accepts a new --foreground option, to support commands not
started directly from a shell prompt, where the command is
interactive or needs to receive signals initiated from the
terminal.
Improvements:
- md5sum --check now supports the -r format from the corresponding
BSD tool. This also affects sha1sum, sha224sum, sha384sum and
sha512sum.
- pwd now works also on systems without openat. On such systems, pwd
would fail when run from a directory whose absolute name contained
more than PATH_MAX / 3 components. The df, stat and readlink
programs are also affected due to their use of the canonicalize_*
functions.
- join --check-order now prints "join: FILE:LINE_NUMBER: bad_line"
for an unsorted input, rather than e.g., "join: file 1 is not in
sorted order".
- shuf outputs small subsets of large permutations much more
efficiently. For example `shuf -i1-$((2**32-1)) -n2` no longer
exhausts memory.
- stat -f now recognizes the GPFS, MQUEUE and PSTOREFS file system
types.
- timeout now supports sub-second timeouts.
Changes in behavior:
- chmod, chown and chgrp now output the original attributes in
messages, when -v or -c specified.
- cp -au (where --preserve=links is implicit) may now replace newer
files in the destination, to mirror hard links from the source.
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=128
* Bug fixes
tail's --follow=name option no longer implies --retry on systems
with inotify support. [bug introduced in coreutils-7.5]
* Changes in behavior
cp's extent-based (FIEMAP) copying code is more reliable in the face
of varying and undocumented file system semantics:
- it no longer treats unwritten extents specially
- a FIEMAP-based extent copy always uses the FIEMAP_FLAG_SYNC flag.
Before, it would incur the performance penalty of that sync only
for 2.6.38 and older kernels. We thought all problems would be
resolved for 2.6.39.
- it now attempts a FIEMAP copy only on a file that appears sparse.
Sparse files are relatively unusual, and the copying code incurs
the performance penalty of the now-mandatory sync only for them.
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=112
* Bug fixes
cp -a --link would not create a hardlink to a symlink, instead
copying the symlink and then not preserving its timestamp.
[bug introduced in coreutils-8.0]
cp now avoids FIEMAP issues with BTRFS before Linux 2.6.38,
which could result in corrupt copies of sparse files.
[bug introduced in coreutils-8.10]
cut could segfault when invoked with a user-specified output
delimiter and an unbounded range like "-f1234567890-".
[bug introduced in coreutils-5.3.0]
du would infloop when given --files0-from=DIR
[bug introduced in coreutils-7.1]
sort no longer spawns 7 worker threads to sort 16 lines
[bug introduced in coreutils-8.6]
touch built on Solaris 9 would segfault when run on Solaris 10
[bug introduced in coreutils-8.8]
wc would dereference a NULL pointer upon an early out-of-memory error
[bug introduced in coreutils-7.1]
** New features
dd now accepts the 'nocache' flag to the iflag and oflag options,
which will discard any cache associated with the files, or
processed portion thereof.
dd now warns that 'iflag=fullblock' should be used,
in various cases where partial reads can cause issues.
** Changes in behavior
cp now avoids syncing files when possible, when doing a FIEMAP copy.
The sync is only needed on Linux kernels before 2.6.39.
[The sync was introduced in coreutils-8.10]
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=109
* Bug fixes
- du would abort with a failed assertion when two conditions are
met: part of the hierarchy being traversed is moved to a higher
level in the directory tree, and there is at least one more
command line directory argument following the one containing
the moved sub-tree. [bug introduced in coreutils-5.1.0]
- join --header now skips the ordering check for the first line
even if the other file is empty. [bug introduced in
coreutils-8.5]
- rm -f no longer fails for EINVAL or EILSEQ on file systems that
reject file names invalid for that file system.
- uniq -f NUM no longer tries to process fields after end of
line. [bug introduced in coreutils-7.0]
* New features
- cp now copies sparse files efficiently on file systems with
FIEMAP support (ext4, btrfs, xfs, ocfs2). Before, it had to
read 2^20 bytes when copying a 1MiB sparse file. Now, it
copies bytes only for the non-sparse sections of a file.
Similarly, to induce a hole in the output file, it had to
detect a long sequence of zero bytes. Now, it knows precisely
where each hole in an input file is, and can reproduce them
efficiently in the output file. mv also benefits when it
resorts to copying, e.g., between file systems.
- join now supports -o 'auto' which will automatically infer the
output format from the first line in each file, to ensure the
same number of fields are output for each line.
* Changes in behavior
- join no longer reports disorder when one of the files is empty.
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=85
** Bug fixes
cp -u no longer does unnecessary copying merely because the source
has finer-grained time stamps than the destination.
od now prints floating-point numbers without losing information, and
it no longer omits spaces between floating-point columns in some cases.
sort -u with at least two threads could attempt to read through a
corrupted pointer. [bug introduced in coreutils-8.6]
sort with at least two threads and with blocked output would busy-loop
(spinlock) all threads, often using 100% of available CPU cycles to
do no work. I.e., "sort < big-file | less" could waste a lot of power.
[bug introduced in coreutils-8.6]
sort with at least two threads no longer segfaults due to use of pointers
into the stack of an expired thread. [bug introduced in coreutils-8.6]
sort --compress no longer mishandles subprocesses' exit statuses,
no longer hangs indefinitely due to a bug in waiting for subprocesses,
and no longer generates many more than NMERGE subprocesses.
sort -m -o f f ... f no longer dumps core when file descriptors are limited.
csplit no longer corrupts heap when writing more than 999 files,
nor does it leak memory for every chunk of input processed
[the bugs were present in the initial implementation]
tail -F once again notices changes in a currently unavailable
remote directory [bug introduced in coreutils-7.5]
** Changes in behavior
sort will not create more than 8 threads by default due to diminishing
performance gains. Also the --parallel option is no longer restricted
to the number of available processors.
cp --attributes-only now completely overrides --reflink.
Previously a reflink was needlessly attempted.
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=77
o bugfixes
* du no longer multiply counts a file that is a directory or whose
link count is 1.
* du -H and -L now consistently count pointed-to files instead of
symbolic links, and correctly diagnose dangling symlinks.
* du --ignore=D now ignores directory D even when that directory is
found to be part of a directory cycle.
* split now diagnoses read errors rather than silently exiting.
* tac would perform a double-free when given an input line longer
than 16KiB.
* tail -F once again notices changes in a currently unavailable
directory, and works around a Linux kernel bug where inotify runs
out of resources.
* tr now consistently handles case conversion character classes.
o New features
* cp now accepts the --attributes-only option to not copy file data.
* du recognizes -d N as equivalent to --max-depth=N
* sort now accepts the --debug option, to highlight the part of the
line significant in the sort, and warns about questionable options.
* sort now supports -d, -f, -i, -R, and -V in any combination.
* stat now accepts the %m format directive to output the mount point
for a file. It also accepts the %w and %W format directives for
outputting the birth time of a file, if one is available.
o Changes in behavior
* df now consistently prints the device name for a bind mounted file,
rather than its aliased target.
* du now uses less than half as much memory when operating on trees
with many hard-linked files.
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=18
Bug fixes
* cp and mv once again support preserving extended attributes.
* cp now preserves "capabilities" when also preserving file ownership.7
* ls --color once again honors the 'NORMAL' dircolors directive.
[bug introduced in coreutils-6.11]
* sort -M now handles abbreviated months that are aligned using
blanks in the locale database. Also locales with 8 bit characters
are handled correctly, including multi byte locales with the caveat
that multi byte characters are matched case sensitively.
* sort again handles obsolescent key formats (+POS -POS) correctly.
Previously if -POS was specified, 1 field too many was used in the
sort. [bug introduced in coreutils-7.2]
New features
* join now accepts the --header option, to treat the first line of
each file as a header line to be joined and printed
unconditionally.
* timeout now accepts the --kill-after option which sends a kill
signal to the monitored command if it's still running the specified
duration after the initial signal was sent.
* who: the "+/-" --mesg (-T) indicator of whether a user/tty is
accepting messages could be incorrectly listed as "+", when in
fact, the user was not accepting messages (mesg no). Before, who
would examine only the permission bits, and not consider the group
of the TTY device file. Thus, if a login tty's group would change
somehow e.g., to "root", that would make it unwritable (via
write(1)) by normal users, in spite of whatever the permission bits
might imply. Now, when configured using the
--with-tty-group[=NAME] option, who also compares the group of the
TTY device with NAME (or "tty" if no group name is specified).
Changes in behavior
* ls --color no longer emits the final 3-byte color-resetting escape
sequence when it would be a no-op.
* join -t '' no longer emits an error and instead operates on each
line as a whole (even if they contain NUL characters).
For other changes since 7.1 see NEWS.
- Split-up coreutils-%%{version}.diff as far as possible.
- Prefix all patches with coreutils-.
- All patches have the .patch suffix.
- Use the i18n patch from Archlinux as it fixes at least one test
suite failure.
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=9