# # spec file for package coreutils (Version 6.12) # # Copyright (c) 2008 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 # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: coreutils Summary: GNU Core Utilities BuildRequires: help2man libacl-devel libselinux-devel pam-devel Url: http://www.gnu.org/software/coreutils/ License: GNU Free Documentation License, Version 1.2 (GFDL 1.2); GPL v2 or later; GPL v3 or later Group: System/Base Version: 6.12 Release: 30 Provides: fileutils sh-utils stat textutils mktemp Obsoletes: fileutils sh-utils stat textutils mktemp Obsoletes: libselinux <= 1.23.11-3 libselinux-32bit = 9 libselinux-64bit = 9 libselinux-x86 = 9 AutoReqProv: on PreReq: %{install_info_prereq} Requires: %{name}-lang = %version Source: coreutils-%{version}.tar.gz Source1: su.pamd Source2: su.default Patch: coreutils-%{version}.diff Patch1: coreutils-xattr.diff Patch30: coreutils-changelog.diff Patch4: coreutils-5.3.0-i18n-0.1.patch Patch5: i18n-uninit.diff Patch6: i18n-infloop.diff Patch8: coreutils-sysinfo.diff Patch11: i18n-monthsort.diff Patch12: i18n-random.diff Patch16: invalid-ids.diff Patch17: i18n-limfield.diff Patch20: coreutils-6.8-su.diff Patch21: coreutils-6.8.0-pie.diff Patch22: coreutils-5.3.0-sbin4su.diff Patch23: coreutils-getaddrinfo.diff Patch24: utimens.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description Basic file, shell, and text manipulation utilities. The package contains the following programs: [ arch base64 basename cat chcon chgrp chmod chown chroot cksum comm cp csplit cut date dd df dir dircolors dirname du echo env expand expr factor false fmt fold groups head id install join kill link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup od paste pathchk pinky pr printenv printf ptx pwd readlink rm rmdir runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum shred shuf sleep sort split stat stty su sum sync tac tail tee test touch tr true tsort tty uname unexpand uniq unlink uptime users vdir wc who whoami yes Authors: -------- Arnold Robbins Colin Plumb David M. Ihnat David MacKenzie François Pinard H. Peter Anvin Ian Lance Taylor Jay Lepreau Jim Kingdon Jim Meyering Joseph Arceneaux Kaveh Ghazi Kayvan Aghaiepour Larry McVoy Mark Kettenis Michael Meskes Michael Stone Mike Haertel Mike Parker Paul Eggert Paul Rubin Pete TerMaat Randy Smith Richard M. Stallman Richard Mlynarik Roland Huebner Roland McGrath Ross Paterson Scott Bartram Scott Miller Stuart Kemp Torbjorn Granlund Ulrich Drepper %lang_package %prep %setup -q %patch1 -p1 %patch4 -p1 %patch5 %patch6 %patch %patch8 -p1 %patch11 %patch12 %patch16 -p1 %patch17 %patch20 %patch21 %patch22 %patch23 -p1 %patch24 -p1 %build AUTOPOINT=true autoreconf -fi ./configure CFLAGS="$RPM_OPT_FLAGS -Wall" \ --prefix=%{_prefix} --mandir=%{_mandir} \ --infodir=%{_infodir} --without-included-regex \ --enable-install-program=arch,su \ --enable-no-install-program=hostid \ gl_cv_func_printf_directive_n=yes \ gl_cv_func_isnanl_works=yes \ DEFAULT_POSIX2_VERSION=199209 make %{?jobs:-j%jobs} PAMLIBS="-lpam -ldl" %check if test $EUID -eq 0; then su nobody -c make check VERBOSE=yes make check-root VERBOSE=yes else %ifarch %arm make -k check VERBOSE=yes || echo make check failed %else make check VERBOSE=yes %endif fi %install make DESTDIR="$RPM_BUILD_ROOT" install test -f $RPM_BUILD_ROOT%{_bindir}/su || \ install src/su $RPM_BUILD_ROOT%{_bindir}/su install -d $RPM_BUILD_ROOT/bin for i in arch basename cat chgrp chmod chown cp date dd df echo false kill ln ls mkdir mknod mktemp mv pwd rm rmdir sleep sort stty su sync touch true uname readlink md5sum do mv $RPM_BUILD_ROOT%{_bindir}/$i $RPM_BUILD_ROOT/bin/$i test $i = su && echo -n '%%attr(4755,root,root) ' echo /bin/$i done > bin.files ln -sf ../../bin/{basename,sort,touch,readlink,md5sum} $RPM_BUILD_ROOT%{_bindir} install -d -m 755 $RPM_BUILD_ROOT/etc/pam.d install -m 644 $RPM_SOURCE_DIR/su.pamd $RPM_BUILD_ROOT/etc/pam.d/su install -m 644 $RPM_SOURCE_DIR/su.pamd $RPM_BUILD_ROOT/etc/pam.d/su-l install -d -m 755 $RPM_BUILD_ROOT/etc/default install -m 644 $RPM_SOURCE_DIR/su.default $RPM_BUILD_ROOT/etc/default/su %find_lang %name %post %install_info --info-dir=%{_infodir} %{_infodir}/coreutils.info.gz %postun %install_info_delete --info-dir=%{_infodir} %{_infodir}/coreutils.info.gz %clean rm -rf $RPM_BUILD_ROOT %files -f bin.files %defattr(-,root,root) %doc README NEWS %config /etc/pam.d/su %config /etc/pam.d/su-l %config(noreplace) /etc/default/su %{_bindir}/* %doc %{_infodir}/coreutils.info*.gz %doc %{_mandir}/man1/*.1.gz %dir %{_prefix}/share/locale/*/LC_TIME %files lang -f %name.lang %defattr(-,root,root) %changelog * Tue Oct 21 2008 schwab@suse.de - Fix pam cleanup. * Thu Sep 18 2008 schwab@suse.de - Move readlink and md5sum to /bin. * Wed Aug 20 2008 schwab@suse.de - Add libselinux-devel to BuildRequires. * Tue Jun 24 2008 schwab@suse.de - Fix sort field limit in multibyte case. * Wed Jun 04 2008 schwab@suse.de - Update to coreutils 6.12. ** Bug fixes chcon, runcon: --help output now includes the bug-reporting address cp -p copies permissions more portably. For example, on MacOS X 10.5, "cp -p some-fifo some-file" no longer fails while trying to copy the permissions from the some-fifo argument. id with no options now prints the SELinux context only when invoked with no USERNAME argument. id and groups once again print the AFS-specific nameless group-ID (PAG). Printing of such large-numbered, kernel-only (not in /etc/group) group-IDs was suppressed in 6.11 due to ignorance that they are useful. uniq: avoid subtle field-skipping malfunction due to isblank misuse. In some locales on some systems, isblank(240) (aka  ) is nonzero. On such systems, uniq --skip-fields=N would fail to skip the proper number of fields for some inputs. tac: avoid segfault with --regex (-r) and multiple files, e.g., "echo > x; tac -r x x". [bug present at least in textutils-1.8b, from 1992] ** Changes in behavior install once again sets SELinux context, when possible [it was deliberately disabled in 6.9.90] * Sun Apr 20 2008 schwab@suse.de - Update to coreutils 6.11. ** Bug fixes configure --enable-no-install-program=groups now works. "cp -fR fifo E" now succeeds with an existing E. Before this fix, using -fR to copy a fifo or "special" file onto an existing file would fail with EEXIST. Now, it once again unlinks the destination before trying to create the destination file. [bug introduced in coreutils-5.90] dd once again works with unnecessary options like if=/dev/stdin and of=/dev/stdout. [bug introduced in fileutils-4.0h] id now uses getgrouplist, when possible. This results in much better performance when there are many users and/or groups. ls no longer segfaults on files in /proc when linked with an older version of libselinux. E.g., ls -l /proc/sys would dereference a NULL pointer. md5sum would segfault for invalid BSD-style input, e.g., echo 'MD5 (' | md5sum -c - Now, md5sum ignores that line. sha1sum, sha224sum, sha384sum, and sha512sum are affected, too. [bug introduced in coreutils-5.1.0] md5sum -c would accept a NUL-containing checksum string like "abcd\0..." and would unnecessarily read and compute the checksum of the named file, and then compare that checksum to the invalid one: guaranteed to fail. Now, it recognizes that the line is not valid and skips it. sha1sum, sha224sum, sha384sum, and sha512sum are affected, too. [bug present in the original version, in coreutils-4.5.1, 1995] "mkdir -Z x dir" no longer segfaults when diagnosing invalid context "x" mkfifo and mknod would fail similarly. Now they're fixed. mv would mistakenly unlink a destination file before calling rename, when the destination had two or more hard links. It no longer does that. [bug introduced in coreutils-5.3.0] "paste -d'\' file" no longer overruns memory (heap since coreutils-5.1.2, stack before then) [bug present in the original version, in 1992] "pr -e" with a mix of backspaces and TABs no longer corrupts the heap [bug present in the original version, in 1992] "ptx -F'\' long-file-name" would overrun a malloc'd buffer and corrupt the heap. That was triggered by a lone backslash (or odd number of them) at the end of the option argument to --flag-truncation=STRING (-F), --word-regexp=REGEXP (-W), or --sentence-regexp=REGEXP (-S). "rm -r DIR" would mistakenly declare to be "write protected" -- and prompt about -- full DIR-relative names longer than MIN (PATH_MAX, 8192). "rmdir --ignore-fail-on-non-empty" detects and ignores the failure in more cases when a directory is empty. "seq -f %% 1" would issue the erroneous diagnostic "seq: memory exhausted" rather than reporting the invalid string format. [bug introduced in coreutils-6.0] ** New features join now verifies that the inputs are in sorted order. This check can be turned off with the --nocheck-order option. sort accepts the new option --sort=WORD, where WORD can be one of general-numeric, month, numeric or random. These are equivalent to the options --general-numeric-sort/-g, --month-sort/-M, --numeric-sort/-n and --random-sort/-R, resp. ** Improvements id and groups work around an AFS-related bug whereby those programs would print an invalid group number, when given no user-name argument. ls --color no longer outputs unnecessary escape sequences seq gives better diagnostics for invalid formats. ** Portability rm now works properly even on systems like BeOS and Haiku, which have negative errno values. ** Consistency install, mkdir, rmdir and split now write --verbose output to stdout, not to stderr. * Fri Apr 11 2008 schwab@suse.de - Work around a recent glibc/getopt.c diagnostic change. - Fix frexpl test. * Thu Apr 10 2008 ro@suse.de - added baselibs.conf file to build xxbit packages for multilib support * Mon Feb 18 2008 dmueller@suse.de - split off -lang subpackage to reduce one CD media size * Mon Feb 04 2008 kukuk@suse.de - sux is deprecated since 3 years, let's finaly remove symlink. * Wed Jan 23 2008 schwab@suse.de - Update to coreutils 6.10. ** Bug fixes Fix a non-portable use of sed in configure.ac. [bug introduced in coreutils-6.9.92] * Sun Jan 13 2008 rguenther@suse.de - Reapply dropped patch: adjust test-getaddrinfo to not fail w/o network connection * Sat Jan 12 2008 schwab@suse.de - Update to coreutils 6.9.92. ** Bug fixes cp --parents no longer uses uninitialized memory when restoring the permissions of a just-created destination directory. [bug introduced in coreutils-6.9.90] tr's case conversion would fail in a locale with differing numbers of lower case and upper case characters. E.g., this would fail: env LC_CTYPE=en_US.ISO-8859-1 tr '[:upper:]' '[:lower:]' [bug introduced in coreutils-6.9.90] ** Improvements "touch -d now writable-but-owned-by-someone-else" now succeeds whenever that same command would succeed without "-d now". Before, it would work fine with no -d option, yet it would fail with the ostensibly-equivalent "-d now". * Mon Jan 07 2008 schwab@suse.de - Update to coreutils 6.9.91. ** Bug fixes "ls -l" would not output "+" on SELinux hosts unless -Z was also given. "rm" would fail to unlink a non-directory when run in an environment in which the user running rm is capable of unlinking a directory. [bug introduced in coreutils-6.9] * Mon Jan 07 2008 jblunck@suse.de - fix a cp bug with -p --parents * Wed Dec 12 2007 rguenther@suse.de - adjust test-getaddrinfo to not fail w/o network connection * Mon Dec 10 2007 ro@suse.de - change source archive compression back to .bz2 to avoid another dependency in the lowest basesystem * Mon Dec 03 2007 schwab@suse.de - Update to coreutils-6.9.90. ** New programs arch: equivalent to uname -m, not installed by default But don't install this program on Solaris systems. chcon: change the SELinux security context of a file mktemp: create a temporary file or directory (or names) runcon: run a program in a different SELinux security context ** Programs no longer installed by default hostname, su ** Changes in behavior cp, by default, refuses to copy through a dangling destination symlink Set POSIXLY_CORRECT if you require the old, risk-prone behavior. pr -F no longer suppresses the footer or the first two blank lines in the header. This is for compatibility with BSD and POSIX. tr now warns about an unescaped backslash at end of string. The tr from coreutils-5.2.1 and earlier would fail for such usage, and Solaris' tr ignores that final byte. ** New features Add SELinux support, based on the patch from Fedora: * cp accepts new --preserve=context option. * "cp -a" works with SELinux: Now, cp -a attempts to preserve context, but failure to do so does not change cp's exit status. However "cp --preserve=context" is similar, but failure *does* cause cp to exit with nonzero status. * install accepts new "-Z, --context=C" option. * id accepts new "-Z" option. * stat honors the new %%C format directive: SELinux security context string * ls accepts a slightly modified -Z option. * ls: contrary to Fedora version, does not accept --lcontext and --scontext cp -p tries to preserve the GID of a file even if preserving the UID is not possible. uniq accepts a new option: --zero-terminated (-z). As with the sort option of the same name, this makes uniq consume and produce NUL-terminated lines rather than newline-terminated lines. wc no longer warns about character decoding errors in multibyte locales. This means for example that "wc /bin/sh" now produces normal output (though the word count will have no real meaning) rather than many error messages. ** New build options By default, "make install" no longer attempts to install (or even build) su. To change that, use ./configure --enable-install-program=su. If you also want to install the new "arch" program, do this: ./configure --enable-install-program=arch,su. You can inhibit the compilation and installation of selected programs at configure time. For example, to avoid installing "hostname" and "uptime", use ./configure --enable-no-install-program=hostname,uptime Note: currently, "make check" passes, even when arch and su are not built (that's the new default). However, if you inhibit the building and installation of other programs, don't be surprised if some parts of "make check" fail. ** Remove deprecated options df no longer accepts the --kilobytes option. du no longer accepts the --kilobytes or --megabytes options. ls no longer accepts the --kilobytes option. ptx longer accepts the --copyright option. who no longer accepts -i or --idle. ** Improved robustness ln -f can no longer silently clobber a just-created hard link. In some cases, ln could be seen as being responsible for data loss. For example, given directories a, b, c, and files a/f and b/f, we should be able to do this safely: ln -f a/f b/f c && rm -f a/f b/f However, before this change, ln would succeed, and thus cause the loss of the contents of a/f. stty no longer silently accepts certain invalid hex values in its 35-colon commmand-line argument ** Bug fixes chmod no longer ignores a dangling symlink. Now, chmod fails with a diagnostic saying that it cannot operate on such a file. [bug introduced in coreutils-5.1.0] cp attempts to read a regular file, even if stat says it is empty. Before, "cp /proc/cpuinfo c" would create an empty file when the kernel reports stat.st_size == 0, while "cat /proc/cpuinfo > c" would "work", and create a nonempty one. [bug introduced in coreutils-6.0] cp --parents no longer mishandles symlinks to directories in file name components in the source, e.g., "cp --parents symlink/a/b d" no longer fails. Also, 'cp' no longer considers a destination symlink to be the same as the referenced file when copying links or making backups. For example, if SYM is a symlink to FILE, "cp -l FILE SYM" now reports an error instead of silently doing nothing. The behavior of 'cp' is now better documented when the destination is a symlink. "cp -i --update older newer" no longer prompts; same for mv "cp -i" now detects read errors on standard input, and no longer consumes too much seekable input; same for ln, install, mv, and rm. cut now diagnoses a range starting with zero (e.g., -f 0-2) as invalid; before, it would treat it as if it started with 1 (-f 1-2). "cut -f 2-0" now fails; before, it was equivalent to "cut -f 2-" cut now diagnoses the '-' in "cut -f -" as an invalid range, rather than interpreting it as the unlimited range, "1-". date -d now accepts strings of the form e.g., 'YYYYMMDD +N days', in addition to the usual 'YYYYMMDD N days'. du -s now includes the size of any stat'able-but-inaccessible directory in the total size. du (without -s) prints whatever it knows of the size of an inaccessible directory. Before, du would print nothing for such a directory. ls -x DIR would sometimes output the wrong string in place of the first entry. [introduced in coreutils-6.8] ls --color would mistakenly color a dangling symlink as if it were a regular symlink. This would happen only when the dangling symlink was not a command-line argument and in a directory with d_type support. [introduced in coreutils-6.0] ls --color, (with a custom LS_COLORS envvar value including the ln=target attribute) would mistakenly output the string "target" before the name of each symlink. [introduced in coreutils-6.0] od's --skip (-j) option now works even when the kernel says that a nonempty regular file has stat.st_size = 0. This happens at least with files in /proc and linux-2.6.22. "od -j L FILE" had a bug: when the number of bytes to skip, L, is exactly the same as the length of FILE, od would skip *no* bytes. When the number of bytes to skip is exactly the sum of the lengths of the first N files, od would skip only the first N-1 files. [introduced in textutils-2.0.9] ./printf %%.10000000f 1 could get an internal ENOMEM error and generate no output, yet erroneously exit with status 0. Now it diagnoses the error and exits with nonzero status. [present in initial implementation] seq no longer mishandles obvious cases like "seq 0 0.000001 0.000003", so workarounds like "seq 0 0.000001 0.0000031" are no longer needed. seq would mistakenly reject some valid format strings containing %%, and would mistakenly accept some invalid ones. e.g., %%g%% and %%g, resp. "seq .1 .1" would mistakenly generate no output on some systems Obsolete sort usage with an invalid ordering-option character, e.g., "env _POSIX2_VERSION=199209 sort +1x" no longer makes sort free an invalid pointer [introduced in coreutils-6.5] sorting very long lines (relative to the amount of available memory) no longer provokes unaligned memory access split --line-bytes=N (-C N) no longer creates an empty file [this bug is present at least as far back as textutils-1.22 (Jan, 1997)] tr -c no longer aborts when translating with Set2 larger than the complement of Set1. [present in the original version, in 1992] tr no longer rejects an unmatched [:lower:] or [:upper:] in SET1. [present in the original version] * Thu Nov 29 2007 schwab@suse.de - Update to coreutils-6.9.89.48 snapshot. * Mon Jul 23 2007 schwab@suse.de - Fix random sort. - Fix invalid free. - Fix misalignment. * Sun May 20 2007 schwab@suse.de - Fix compiling with glibc 2.6. * Sun May 20 2007 schwab@suse.de - Fix fchownat test. * Mon Apr 02 2007 schwab@suse.de - Fix ls -x. * Fri Mar 23 2007 schwab@suse.de - Update to coreutils 6.9. ** Bug fixes cp -x (--one-file-system) would fail to set mount point permissions The default block size and output format for df -P are now unaffected by the DF_BLOCK_SIZE, BLOCK_SIZE, and BLOCKSIZE environment variables. It is still affected by POSIXLY_CORRECT, though. Using pr -m -s (i.e. merging files, with TAB as the output separator) no longer inserts extraneous spaces between output columns. * Wed Mar 14 2007 lnussel@suse.de - su: actually use /etc/pam.d/su-l when running su - (#254428) * Mon Mar 05 2007 lnussel@suse.de - su: don't chdir("/") before fork() (#251287) * Fri Mar 02 2007 lnussel@suse.de - split off and rework PAM patch for su: * run pam_open_session as root (#245706) * use separate pam configs for "su" and "su -" (RedHat #198639) * detect pam libs in configure script, add option to disable it * don't set argv[0] to "-su", use upstream behavior instead * don't use getlogin() for setting PAM_RUSER * Sun Feb 25 2007 schwab@suse.de - Update to coreutils 6.8. ** Bug fixes chgrp, chmod, and chown now honor the --preserve-root option. Before, they would warn, yet continuing traversing and operating on /. chmod no longer fails in an environment (e.g., a chroot) with openat support but with insufficient /proc support. "cp --parents F/G D" no longer creates a directory D/F when F is not a directory (and F/G is therefore invalid). "cp --preserve=mode" would create directories that briefly had too-generous permissions in some cases. For example, when copying a directory with permissions 777 the destination directory might temporarily be setgid on some file systems, which would allow other users to create subfiles with the same group as the directory. Fix similar problems with 'install' and 'mv'. cut no longer dumps core for usage like "cut -f2- f1 f2" with two or more file arguments. This was due to a double-free bug, introduced in coreutils-5.3.0. dd bs= operands now silently override any later ibs= and obs= operands, as POSIX and tradition require. "ls -FRL" always follows symbolic links on Linux. Introduced in coreutils-6.0. A cross-partition "mv /etc/passwd ~" (by non-root) now prints a reasonable diagnostic. Before, it would print this: "mv: cannot remove `/etc/passwd': Not a directory". pwd and "readlink -e ." no longer fail unnecessarily when a parent directory is unreadable. "rm -rf /etc/passwd" (run by non-root) now prints a diagnostic. Before it would print nothing. "rm --interactive=never F" no longer prompts for an unwritable F ** New features sort's new --compress-program=PROG option specifies a compression program to use when writing and reading temporary files. This can help save both time and disk space when sorting large inputs. ** New features sort accepts the new option -C, which acts like -c except no diagnostic is printed. Its --check option now accepts an optional argument, and --check=quiet and --check=silent are now aliases for -C, while --check=diagnose-first is an alias for -c or plain --check. * Tue Jan 09 2007 schwab@suse.de - Fix localized month sorting [#231790]. * Wed Dec 13 2006 schwab@suse.de - Fix acl tests. * Sat Dec 09 2006 schwab@suse.de - Update to coreutils 6.7. ** Bug fixes When cp -p copied a file with special mode bits set, the same bits were set on the copy even when ownership could not be preserved. This could result in files that were setuid to the wrong user. To fix this, special mode bits are now set in the copy only if its ownership is successfully preserved. Similar problems were fixed with mv when copying across file system boundaries. This problem affects all versions of coreutils through 6.6. cp --preserve=ownership would create output files that temporarily had too-generous permissions in some cases. For example, when copying a file with group A and mode 644 into a group-B sticky directory, the output file was briefly readable by group B. Fix similar problems with cp options like -p that imply --preserve=ownership, with install -d when combined with either -o or -g, and with mv when copying across file system boundaries. This bug affects coreutils 6.0 through 6.6. du --one-file-system (-x) would skip subdirectories of any directory listed as second or subsequent command line argument. This bug affects coreutils-6.4, 6.5 and 6.6. * Wed Nov 22 2006 schwab@suse.de - Update to coreutils 6.6. ** Bug fixes ls would segfault (dereference a NULL pointer) for a file with a nameless group or owner. This bug was introduced in coreutils-6.5. A bug in the latest official m4/gettext.m4 (from gettext-0.15) made configure fail to detect gettext support, due to the unusual way in which coreutils uses AM_GNU_GETTEXT. ** Improved robustness Now, du (and the other fts clients: chmod, chgrp, chown) honor a trailing slash in the name of a symlink-to-directory even on Solaris 9, by working around its buggy fstatat implementation. * Mon Nov 20 2006 schwab@suse.de - Update to coreutils 6.5. ** Bug fixes du (and the other fts clients: chmod, chgrp, chown) would exit early when encountering an inaccessible directory on a system with native openat support (i.e., linux-2.6.16 or newer along with glibc-2.4 or newer). This bug was introduced with the switch to gnulib's openat-based variant of fts, for coreutils-6.0. "ln --backup f f" now produces a sensible diagnostic ** New features rm accepts a new option: --one-file-system * Mon Oct 23 2006 schwab@suse.de - Update to coreutils 6.4. ** Bug fixes chgrp and chown would malfunction when invoked with both -R and -H and with one or more of the following: --preserve-root, --verbose, --changes, --from=o:g (chown only). This bug was introduced with the switch to gnulib's openat-based variant of fts, for coreutils-6.0. cp --backup dir1 dir2, would rename an existing dir2/dir1 to dir2/dir1~. This bug was introduced in coreutils-6.0. With --force (-f), rm no longer fails for ENOTDIR. For example, "rm -f existing-non-directory/anything" now exits successfully, ignoring the error about a nonexistent file. * Mon Oct 09 2006 schwab@suse.de - Update to coreutils 6.3. ** Improved robustness pinky no longer segfaults on Darwin 7.9.0 (MacOS X 10.3.9) due to a buggy native getaddrinfo function. rm works around a bug in Darwin 7.9.0 (MacOS X 10.3.9) that would sometimes keep it from removing all entries in a directory on an HFS+ or NFS-mounted partition. sort would fail to handle very large input (around 40GB) on systems with a mkstemp function that returns a file descriptor limited to 32-bit offsets. ** Bug fixes chmod would fail unnecessarily in an unusual case: when an initially- inaccessible argument is rendered accessible by chmod's action on a preceding command line argument. This bug also affects chgrp, but it is harder to demonstrate. It does not affect chown. The bug was introduced with the switch from explicit recursion to the use of fts in coreutils-5.1.0 (2003-10-15). cp -i and mv -i occasionally neglected to prompt when the copy or move action was bound to fail. This bug dates back to before fileutils-4.0. With --verbose (-v), cp and mv would sometimes generate no output, or neglect to report file removal. For the "groups" command: "groups" no longer prefixes the output with "user :" unless more than one user is specified; this is for compatibility with BSD. "groups user" now exits nonzero when it gets a write error. "groups" now processes options like --help more compatibly. shuf would infloop, given 8KB or more of piped input ** Portability Versions of chmod, chown, chgrp, du, and rm (tools that use openat etc.) compiled for Solaris 8 now also work when run on Solaris 10. * Thu Oct 05 2006 agruen@suse.de - cp: Replace the old --attributes=regex option with --preserve=xattrs. Only copy extended attributes if this option is given. Use libattr's new copy_attr_action() function to check which attributes to copy in /etc/xattr.conf. * Tue Sep 19 2006 schwab@suse.de - Disable broken autopoint. * Mon Sep 18 2006 schwab@suse.de - Update to coreutils 6.2. ** Changes in behavior mkdir -p and install -d (or -D) now use a method that forks a child process if the working directory is unreadable and a later argument uses a relative file name. This avoids some race conditions, but it means you may need to kill two processes to stop these programs. rm now rejects attempts to remove the root directory, e.g., `rm -fr /' now fails without removing anything. Likewise for any file name with a final `./' or `../' component. tail now ignores the -f option if POSIXLY_CORRECT is set, no file operand is given, and standard input is any FIFO; formerly it did this only for pipes. ** Infrastructure changes Coreutils now uses gnulib via the gnulib-tool script. If you check the source out from CVS, then follow the instructions in README-cvs. Although this represents a large change to the infrastructure, it should cause no change in how the tools work. ** Bug fixes cp --backup no longer fails when the last component of a source file name is "." or "..". "ls --color" would highlight other-writable and sticky directories no differently than regular directories on a file system with dirent.d_type support. "mv -T --verbose --backup=t A B" now prints the " (backup: B.~1~)" suffix when A and B are directories as well as when they are not. mv and "cp -r" no longer fail when invoked with two arguments where the first one names a directory and the second name ends in a slash and doesn't exist. E.g., "mv dir B/", for nonexistent B, now succeeds, once more. This bug was introduced in coreutils-5.3.0. * Fri Sep 01 2006 schwab@suse.de - Fix sbin patch [#202632]. * Mon Aug 21 2006 schwab@suse.de - Update to coreutils 6.1. ** Changes in behavior df now considers BSD "kernfs" file systems to be dummies ** Bug fixes cp --sparse preserves sparseness at the end of a file, even when the file's apparent size is not a multiple of its block size. [introduced with the original design, in fileutils-4.0r, 2000-04-29] df (with a command line argument) once again prints its header [introduced in coreutils-6.0] ls -CF would misalign columns in some cases involving non-stat'able files [introduced in coreutils-6.0] * Tue Aug 15 2006 schwab@suse.de - Update to coreutils 6.0. ** Improved robustness df: if the file system claims to have more available than total blocks, report the number of used blocks as being "total - available" (a negative number) rather than as garbage. dircolors: a new autoconf run-test for AIX's buggy strndup function prevents malfunction on that system; may also affect cut, expand, and unexpand. fts no longer changes the current working directory, so its clients (chmod, chown, chgrp, du) no longer malfunction under extreme conditions. pwd and other programs using lib/getcwd.c work even on file systems where dirent.d_ino values are inconsistent with those from stat.st_ino. rm's core is now reentrant: rm --recursive (-r) now processes hierarchies without changing the working directory at all. ** Changes in behavior basename and dirname now treat // as different from / on platforms where the two are distinct. chmod, install, and mkdir now preserve a directory's set-user-ID and set-group-ID bits unless you explicitly request otherwise. E.g., `chmod 755 DIR' and `chmod u=rwx,go=rx DIR' now preserve DIR's set-user-ID and set-group-ID bits instead of clearing them, and similarly for `mkdir -m 755 DIR' and `mkdir -m u=rwx,go=rx DIR'. To clear the bits, mention them explicitly in a symbolic mode, e.g., `mkdir -m u=rwx,go=rx,-s DIR'. To set them, mention them explicitly in either a symbolic or a numeric mode, e.g., `mkdir -m 2755 DIR', `mkdir -m u=rwx,go=rx,g+s' DIR. This change is for convenience on systems where these bits inherit from parents. Unfortunately other operating systems are not consistent here, and portable scripts cannot assume the bits are set, cleared, or preserved, even when the bits are explicitly mentioned. For example, OpenBSD 3.9 `mkdir -m 777 D' preserves D's setgid bit but `chmod 777 D' clears it. Conversely, Solaris 10 `mkdir -m 777 D', `mkdir -m g-s D', and `chmod 0777 D' all preserve D's setgid bit, and you must use something like `chmod g-s D' to clear it. `cp --link --no-dereference' now works also on systems where the link system call cannot create a hard link to a symbolic link. This change has no effect on systems with a Linux-based kernel. csplit and nl now use POSIX syntax for regular expressions, not Emacs syntax. As a result, character classes like [[:print:]] and interval expressions like A\{1,9\} now have their usual meaning, . no longer matches the null character, and \ must precede the + and ? operators. date: a command like date -d '2006-04-23 21 days ago' would print the wrong date in some time zones. (see the test for an example) df now considers "none" and "proc" file systems to be dummies and therefore does not normally display them. Also, inaccessible file systems (which can be caused by shadowed mount points or by chrooted bind mounts) are now dummies, too. expr no longer complains about leading ^ in a regular expression (the anchor is ignored), or about regular expressions like A** (the second "*" is ignored). expr now exits with status 2 (not 3) for errors it detects in the expression's values; exit status 3 is now used only for internal errors (such as integer overflow, which expr now checks for). install and mkdir now implement the X permission symbol correctly, e.g., `mkdir -m a+X dir'; previously the X was ignored. install now creates parent directories with mode u=rwx,go=rx (755) instead of using the mode specified by the -m option; and it does not change the owner or group of parent directories. This is for compatibility with BSD and closes some race conditions. ln now uses different (and we hope clearer) diagnostics when it fails. ln -v now acts more like FreeBSD, so it generates output only when successful and the output is easier to parse. ls now defaults to --time-style='locale', not --time-style='posix-long-iso'. However, the 'locale' time style now behaves like 'posix-long-iso' if your locale settings appear to be messed up. This change attempts to have the default be the best of both worlds. mkfifo and mknod no longer set special mode bits (setuid, setgid, and sticky) with the -m option. nohup's usual diagnostic now more precisely specifies the I/O redirections, e.g., "ignoring input and appending output to nohup.out". Also, nohup now redirects stderr to nohup.out (or $HOME/nohup.out) if stdout is closed and stderr is a tty; this is in response to Open Group XCU ERN 71. rm --interactive now takes an optional argument, although the default of using no argument still acts like -i. rm no longer fails to remove an empty, unreadable directory seq changes: seq defaults to a minimal fixed point format that does not lose information if seq's operands are all fixed point decimal numbers. You no longer need the `-f%%.f' in `seq -f%%.f 1048575 1024 1050623', for example, since the default format now has the same effect. seq now lets you use %%a, %%A, %%E, %%F, and %%G formats. seq now uses long double internally rather than double. sort now reports incompatible options (e.g., -i and -n) rather than silently ignoring one of them. stat's --format=FMT option now works the way it did before 5.3.0: FMT is automatically newline terminated. The first stable release containing this change was 5.92. stat accepts the new option --printf=FMT, where FMT is *not* automatically newline terminated. stat: backslash escapes are interpreted in a format string specified via --printf=FMT, but not one specified via --format=FMT. That includes octal (\ooo, at most three octal digits), hexadecimal (\xhh, one or two hex digits), and the standard sequences (\a, \b, \f, \n, \r, \t, \v, \", \\). With no operand, 'tail -f' now silently ignores the '-f' only if standard input is a FIFO or pipe and POSIXLY_CORRECT is set. Formerly, it ignored the '-f' when standard input was a FIFO, pipe, or socket. ** Scheduled for removal ptx's --copyright (-C) option is scheduled for removal in 2007, and now evokes a warning. Use --version instead. rm's --directory (-d) option is scheduled for removal in 2006. This option has been silently ignored since coreutils 5.0. On systems that support unlinking of directories, you can use the "unlink" command to unlink a directory. Similarly, we are considering the removal of ln's --directory (-d, -F) option in 2006. Please write to if this would cause a problem for you. On systems that support hard links to directories, you can use the "link" command to create one. ** New programs base64: base64 encoding and decoding (RFC 3548) functionality. sha224sum: print or check a SHA224 (224-bit) checksum sha256sum: print or check a SHA256 (256-bit) checksum sha384sum: print or check a SHA384 (384-bit) checksum sha512sum: print or check a SHA512 (512-bit) checksum shuf: Shuffle lines of text. ** New features chgrp now supports --preserve-root, --no-preserve-root (default), as it was documented to do, and just as chmod, chown, and rm do. New dd iflag= and oflag= flags: 'directory' causes dd to fail unless the file is a directory, on hosts that support this (e.g., Linux kernels, version 2.1.126 and later). This has limited utility but is present for completeness. 'noatime' causes dd to read a file without updating its access time, on hosts that support this (e.g., Linux kernels, version 2.6.8 and later). 'nolinks' causes dd to fail if the file has multiple hard links, on hosts that support this (e.g., Solaris 10 and later). ls accepts the new option --group-directories-first, to make it list directories before files. rm now accepts the -I (--interactive=once) option. This new option prompts once if rm is invoked recursively or if more than three files are being deleted, which is less intrusive than -i prompting for every file, but provides almost the same level of protection against mistakes. shred and sort now accept the --random-source option. sort now accepts the --random-sort (-R) option and `R' ordering option. sort now supports obsolete usages like "sort +1 -2" unless POSIXLY_CORRECT is set. However, when conforming to POSIX 1003.1-2001 "sort +1" still sorts the file named "+1". wc accepts a new option --files0-from=FILE, where FILE contains a list of NUL-terminated file names. ** Bug fixes cat with any of the options, -A -v -e -E -T, when applied to a file in /proc or /sys (linux-specific), would truncate its output, usually printing nothing. cp -p would fail in a /proc-less chroot, on some systems When `cp -RL' encounters the same directory more than once in the hierarchy beneath a single command-line argument, it no longer confuses them with hard-linked directories. fts-using tools (chmod, chown, chgrp, du) no longer fail due to a double-free bug -- it could be triggered by making a directory inaccessible while e.g., du is traversing the hierarchy under it. fts-using tools (chmod, chown, chgrp, du) no longer misinterpret a very long symlink chain as a dangling symlink. Before, such a misinterpretation would cause these tools not to diagnose an ELOOP error. ls --indicator-style=file-type would sometimes stat a symlink unnecessarily. ls --file-type worked like --indicator-style=slash (-p), rather than like --indicator-style=file-type. mv: moving a symlink into the place of an existing non-directory is now done atomically; before, mv would first unlink the destination. mv -T DIR EMPTY_DIR no longer fails unconditionally. Also, mv can now remove an empty destination directory: mkdir -p a b/a; mv a b rm (on systems with openat) can no longer exit before processing all command-line arguments. rm is no longer susceptible to a few low-probability memory leaks. rm -r no longer fails to remove an inaccessible and empty directory rm -r's cycle detection code can no longer be tricked into reporting a false positive (introduced in fileutils-4.1.9). shred --remove FILE no longer segfaults on Gentoo systems sort would fail for large inputs (~50MB) on systems with a buggy mkstemp function. sort and tac now use the replacement mkstemp function, and hence are no longer subject to limitations (of 26 or 32, on the maximum number of files from a given template) on HP-UX 10.20, SunOS 4.1.4, Solaris 2.5.1 and OSF1/Tru64 V4.0F&V5.1. tail -f once again works on a file with the append-only attribute (affects at least Linux ext2, ext3, xfs file systems) * Tue Aug 08 2006 schwab@suse.de - Move sux to %%{_bindir}. * Mon Jun 26 2006 schwab@suse.de - Update to coreutils 5.97. ** Bug fixes rebuild with better autoconf test for when the lstat replacement function is needed -- required for Solaris 9 cat with any of the options, -A -v -e -E -T, when applied to a file in /proc or /sys (linux-specific), would truncate its output, usually printing nothing. ** Improved robustness dircolors: a new autoconf run-test for AIX's buggy strndup function prevents malfunction on that system; may also affect cut, expand, and unexpand. ** New features chgrp now supports --preserve-root, --no-preserve-root (default), as it was documented to do, and just as chmod, chown, and rm do. * Thu Jun 22 2006 schwab@suse.de - Fix conflict with . * Mon May 22 2006 schwab@suse.de - Update to coreutils 5.96. * Sat May 13 2006 schwab@suse.de - Update to coreutils 5.95. * Fri Apr 07 2006 cthiel@suse.de - added Obsoletes: libselinux (hack for bug #156519) * Mon Feb 13 2006 schwab@suse.de - Fix spurious failure with cp -LR. - Move check for /proc. * Mon Jan 30 2006 schwab@suse.de - Always print newline after format in stat [#145905]. - Barf if /proc is not mounted. * Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires * Thu Jan 19 2006 meissner@suse.de - Do not strip /bin/su. * Wed Jan 11 2006 schwab@suse.de - Fix infloop when ignoring characters [#141756]. * Mon Dec 19 2005 kukuk@suse.de - Add fallback if futimesat does not work * Mon Dec 05 2005 ke@suse.de - Fix typo in German translation file; reported by Olaf Hering [#105863]. * Mon Dec 05 2005 schwab@suse.de - Drop SELinux support. * Tue Nov 15 2005 uli@suse.de - some tests fail on ARM (QEMU problem?); ignore for now * Sun Nov 06 2005 schwab@suse.de - Update to coreutils 5.93. * Wed Nov 02 2005 schwab@suse.de - Update to coreutils 5.92. - Fix invalid use of va_list. - Add some fixes from cvs. * Thu Oct 20 2005 schwab@suse.de - Reenable DEFAULT_POSIX2_VERSION. * Wed Oct 19 2005 agruen@suse.de - Add acl and xattr patches. * Mon Oct 17 2005 schwab@suse.de - Update to coreutils 5.91. * Sat Oct 01 2005 schwab@suse.de - Update to coreutils 5.90. - Disable acl patches for now. * Sun Sep 25 2005 schwab@suse.de - Fix warning. * Wed Aug 24 2005 werner@suse.de - Let `su' handle /sbin and /usr/sbin in path * Mon Aug 01 2005 kukuk@suse.de - And yet another uninitialized variable fix. * Fri Jul 29 2005 schwab@suse.de - Fix another uninitialized variable. * Wed Jul 06 2005 schwab@suse.de - Fix uninitialized variable. * Mon Jul 04 2005 schwab@suse.de - Update i18n patch. * Tue Jun 21 2005 schwab@suse.de - Fix last change. * Wed Jun 15 2005 kukuk@suse.de - Compile/link su with -fpie/-pie * Sat May 21 2005 kukuk@suse.de - Add support for /etc/default/su * Mon May 02 2005 kukuk@suse.de - Don't overwrite PATH if su is called with "-" option. * Wed Mar 02 2005 schwab@suse.de - Fix merge error [#67103]. * Mon Feb 28 2005 schwab@suse.de - Call pam_getenvlist before pam_end. * Mon Feb 28 2005 schwab@suse.de - Link su to sux [#66830]. * Wed Feb 02 2005 schwab@suse.de - Handle xfs and jfs in stat [#50415]. * Wed Feb 02 2005 schwab@suse.de - Handle subfs like autofs. * Tue Jan 25 2005 schwab@suse.de - Fix path_concat. * Thu Jan 20 2005 schwab@suse.de - Use pam_xauth [#42238]. * Sat Jan 15 2005 schwab@suse.de - Fix merge error [#49853]. * Tue Jan 11 2005 schwab@suse.de - Update to coreutils 5.3.0. * Mon Nov 08 2004 kukuk@suse.de - Use common-* PAM config files for su PAM configuration * Mon Oct 25 2004 schwab@suse.de - Fix last change. - Fix selinux patch. * Wed Oct 20 2004 ro@suse.de - remove no language support (nb is already there) * Sat Oct 02 2004 agruen@suse.de - #46609: Fix chown and chgrp utilities for uid == (uid_t) -1 and gid == (gid_t) -1 case. - Add missing #include to have NULL defined in lib/acl.c * Fri Sep 10 2004 schwab@suse.de - Fix uninitialized variable [#44929]. - Fix selinux patch. * Wed Aug 25 2004 schwab@suse.de - Fix hardlink accounting patch. * Mon May 24 2004 schwab@suse.de - Update testsuite for change in chown. * Mon May 24 2004 schwab@suse.de - Precompute length in caller of ismbblank to avoid quadratic behaviour [#40741]. * Mon May 17 2004 schwab@suse.de - Fix handling of symlinks in chown [#40691]. * Sat Apr 17 2004 schwab@suse.de - Pacify autobuild. * Fri Apr 02 2004 schwab@suse.de - Add support for IUTF8 in stty. * Tue Mar 30 2004 schwab@suse.de - Fix merge error in selinux patch [#37431]. * Mon Mar 29 2004 schwab@suse.de - Fix hardlink accounting in du. * Mon Mar 22 2004 schwab@suse.de - Fix race in the testsuite. * Mon Mar 15 2004 kukuk@suse.de - Update SELinux patch to new libselinux interface * Mon Mar 15 2004 schwab@suse.de - Fix date parsing. * Sat Mar 13 2004 schwab@suse.de - Update to coreutils 5.2.1. * Includes mv fix. * Fix sparse handling in cp. * Fix descriptor leak in nohup. * Fix POSIX issues in expr. * Always allow user.group in chown. * Fri Mar 12 2004 schwab@suse.de - Fix sysinfo patch [#35337]. * Fri Mar 12 2004 schwab@suse.de - Fix preserving links in mv. * Wed Mar 03 2004 schwab@suse.de - Fix help output from mkdir. * Fri Feb 20 2004 schwab@suse.de - Update to coreutils 5.2.0. * Mon Feb 09 2004 schwab@suse.de - Update to coreutils 5.1.3. * Mon Feb 02 2004 agruen@suse.de - Update acl and xattr patches, and add some Changelog text. * Mon Jan 26 2004 schwab@suse.de - Update to coreutils 5.1.2. * Fri Jan 23 2004 schwab@suse.de - Don't link [ to test. * Mon Jan 19 2004 schwab@suse.de - Update to coreutils 5.1.1. - Default to POSIX.2-1992. * Fri Jan 16 2004 kukuk@suse.de - Add pam-devel to neededforbuild * Fri Jan 09 2004 schwab@suse.de - Fix spurious test failure. * Thu Jan 08 2004 schwab@suse.de - Update to coreutils 5.1.0. * Sat Dec 13 2003 schwab@suse.de - Fix use of AC_SEARCH_LIBS. * Tue Dec 09 2003 schwab@suse.de - Cleanup SELinux patch. * Tue Dec 09 2003 kukuk@suse.de - Add SELinux patch. * Wed Nov 26 2003 schwab@suse.de - Fix sorting of months in multibyte case [#33299]. * Wed Oct 22 2003 schwab@suse.de - Fix building without extended attributes. * Wed Oct 15 2003 schwab@suse.de - Cleanup sysinfo patch. * Fri Sep 19 2003 kukuk@suse.de - Add missing textutil to Provides * Mon Aug 25 2003 agruen@suse.de - Fix uname command to report reasonable processor and platform information (coreutils-sysinfo.diff: based on similar RedHat patch). * Mon Jul 21 2003 schwab@suse.de - Fix typo in i18n patch for join. * Fri Jul 18 2003 schwab@suse.de - Avoid abort in sort on inconsistent locales [#26506]. * Tue Jul 15 2003 okir@suse.de - make su export variables declared via pam_putenv * Wed May 28 2003 kukuk@suse.de - PAM fixes for su: - Move pam_open_session call before dropping privilegs, session management needs max. possible credentials and needs to be done before we change into the home directory of the user. - Don't set PAM_TTY and PAM_RUSER to fake names. - Use conversion function from libpam_misc. * Fri May 16 2003 schwab@suse.de - Fix exit status from su. * Thu Apr 24 2003 ro@suse.de - fix head calling syntax * Mon Apr 07 2003 schwab@suse.de - Only delete info entries when removing last version. * Fri Apr 04 2003 schwab@suse.de - Update to coreutils 5.0. * Mon Mar 31 2003 schwab@suse.de - Update to coreutils 4.5.12. * Thu Mar 20 2003 schwab@suse.de - Update to coreutils 4.5.11. * Mon Mar 10 2003 schwab@suse.de - Fix LFS bug in du [#24960]. * Thu Feb 27 2003 schwab@suse.de - Readd textutils i18n patches. * Thu Feb 27 2003 agruen@suse.de - Per hint from Andreas Schwab, don't use awk in autoconf. (The improved test is simpler, too.) * Thu Feb 27 2003 agruen@suse.de - Fix autoconf test for attr_copy_file that caused all binaries to be linked needlessly against libattr.so. * Tue Feb 25 2003 agruen@suse.de - Extended attribute copying: Use the newly exported attr_copy_check_permissions() callback exported by libattr.so, so that the EA copying done by coreutils is consistent with other apps [#24244]. * Mon Feb 24 2003 schwab@suse.de - Update to coreutils 4.5.8. * Fixes bugs in du. * Mon Feb 17 2003 agruen@suse.de - Add extended attribute copying patch: Affects cp, mv, install. See the cp manual page for details on the changes in cp. The mv utility always tries to copy extended attributes; install never does. * Mon Feb 10 2003 schwab@suse.de - Update to coreutils 4.5.7. * Fri Feb 07 2003 kukuk@suse.de - Use pam_unix2.so instead of pam_unix.so, use same rules for password changing as passwd. * Thu Feb 06 2003 schwab@suse.de - Use %%install_info. * Thu Feb 06 2003 schwab@suse.de - Update to coreutils 4.5.6. * Mon Feb 03 2003 schwab@suse.de - Package created, combining textutils, sh-utils and fileutils.