diff options
-rw-r--r-- | ChangeLog | 9026 | ||||
-rw-r--r-- | ChangeLog-2005 | 605 | ||||
-rw-r--r-- | ChangeLog-2006 | 4040 | ||||
-rw-r--r-- | ChangeLog-2007 | 4022 | ||||
-rw-r--r-- | ChangeLog-2008 | 374 |
5 files changed, 9041 insertions, 9026 deletions
diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index 253db6f3f..000000000 --- a/ChangeLog +++ /dev/null @@ -1,9026 +0,0 @@ -2008-02-07 Jim Meyering <meyering@redhat.com> - - We *do* need two different version files. - One for tarball-only, the other to be updated any time we - get a new value of $(VERSION). - * Makefile.am (dist-hook): Create .tarball-version in dist tarball. - * GNUmakefile (_curr-ver): Make git-version-gen use it. - * .gitignore: Ignore it. - - Fix a typo in description of size suffixes: s/GB/G/. - * doc/coreutils.texi (od invocation, head invocation, tail invocation): - Spotted by Bert Wesarg. - - * NEWS [6.9.90]: Mention the added feature that head, od, split and - tail now accept the standard size suffixes (kB, M, MB, G, GB, and - so on for T, P, Y, Z, and Y) on arguments to selected options. - -2008-02-06 Steven Schubiger <schubiger@gmail.com> - - mkdir, split: write --verbose output to stdout, not stderr. - * src/mkdir.c (verbose_output): New function. - (announce_mkdir): Use it. - * src/split.c (usage): Update. - * src/split.c (cwrite): Write to stdout, not stderr. - * doc/coreutils.texi (split invocation): Remove the mention - of --verbose output being printed to stderr. - * tests/mkdir/p-v: Redirect stdout, not stderr. - * tests/misc/split-a: Likewise. - * NEWS: Mention this change. - * TODO: Remove this item. - -2008-02-04 Jim Meyering <meyering@redhat.com> - - * Makefile.maint (announcement): Remove stale comment. - -2008-02-02 Jim Meyering <meyering@redhat.com> - - Clarify a comment. - * tests/sort/Test.pm: Replace a vague ChangeLog reference with a URL. - -2008-01-31 Bob Proulx <bob@proulx.com> - - Improve wording of date and time man page. - * man/date.x: Improve compact description of the --date=STRING. - * man/touch.x: Likewise. - Suggested by A. Costa. - -2008-01-31 Jim Meyering <meyering@redhat.com> - - Remove alignment constraint from the sha*_read_ctx functions. - * lib/sha256.c (set_uint32): New function. - (sha256_read_ctx, sha224_read_ctx): Use it. - * lib/sha512.c (set_uint64): New function. - (sha512_read_ctx, sha384_read_ctx): Use it. - * lib/sha256.h: Remove warning about alignment constraint. - * lib/sha512.h: Likewise. - Prompted by similar changes in gnulib's sha1 and md[45] modules. - - Adapt to new version of vc-list-files. - * tests/check.mk (vc_exe_in_TESTS): Adapt to new constraint - that vc-list-files be run only from $(top_srcdir). - - Pull vc-list-files from gnulib. - * bootstrap.conf (gnulib_modules): Add vc-list-files. - * build-aux/vc-list-files: Remove file. - - Improve the cp/parent-perm test. - * tests/cp/parent-perm: Also check that perms of existing dest - dirs are changed to match those of corresponding src dir - -2008-01-30 Paul Eggert <eggert@cs.ucla.edu> - - Don't modify argv in dd due to ',' in arguments. - * src/dd.c: Include quotearg.h. - (operand_matches): New function. - (parse_symbols, operand_is): Use it. - (parse_symbols): 1st arg is now const pointer. Don't modify it. - msgid arg is now just the message, not a format. - (scanargs): Add some 'const's to check for problems like the above. - -2008-01-30 Jim Meyering <meyering@redhat.com> - - * src/c99-to-c89.diff: Adjust remove.c offsets, again. - - Now that system.h defines is_empty_dir, include "openat.h". - * src/system.h: Include "openat.h" here, ... - * src/chcon.c: ... not here. - * src/chmod.c: Likewise. - * src/chown-core.c: Likewise. - * src/remove.c: Likewise. - - * src/c99-to-c89.diff: Adjust remove.c offsets. - - Improve "rmdir --ignore-fail-on-non-empty" - * src/rmdir.c (remove_parents, main): With --ignore-fail-on-non-empty, - suppress a diagnostic also for other errno values, which can arise - with read-only media or when the parent directory has the immutable - attribute (set via chattr +i). - (errno_may_be_empty, ignorable_failure): New functions. - * src/remove.c (is_empty_dir): Move function to ... - * src/system.h (is_empty_dir): ...here, and make it inline. - Suggested by Josselin Mouette in <http://bugs.debian.org/363011> - via Bob Proulx. - * NEWS: Mention the improvement. - -2008-01-29 Paul Eggert <eggert@cs.ucla.edu> - - Don't modify argv in dd. - * src/dd.c (operand_is): New function. - (scanargs): Use it so that we don't need to modify argv, as a nicety. - Problem reported by Adam Goode in - <http://lists.gnu.org/archive/html/bug-coreutils/2008-01/msg00264.html>. - -2008-01-29 Jim Meyering <meyering@redhat.com> - - * Makefile.am (BUILT_SOURCES): Ensure that .version exists. - Reported by Bob Proulx. - -2008-01-29 Bob Proulx <bob@proulx.com> - - Improve the man pages of --date=STRING for 'date' and 'touch'. - * man/date.x: Add a compact description of the --date=STRING. - * man/touch.x: Likewise. - Reported by A. Costa in http://bugs.debian.org/363011 - -2008-01-29 Michael Stone <mstone@debian.org> - - Improve the description of when dd outputs its final statistics. - * doc/coreutils.texi (dd invocation): Say that dd prints stats - upon normal termination and upon SIGINT. - -2008-01-29 Jim Meyering <meyering@redhat.com> - - Avoid "make distcheck" failure: newly-created man/*.1 files not removed - * Makefile.am (EXTRA_DIST): Add .version. - (.version): New rule. - (dist-hook): Don't create $(distdir)/.version here, now that it's - being distributed. - * man/Makefile.am (common_dep): Use ../.version, not ../VERSION. - (../VERSION): Remove rule. - * GNUmakefile (dummy): Create .version, not VERSION. - Add an extra "...:= $(shell..." statement to ensure that - .version exists even when the preceding code is not run. - * .gitignore: Remove both .version and VERSION. - - ls: don't segfault on files in /proc with an old libselinux - * src/ls.c (gobble_file): Work around a bug in libselinux1-2.0.15 - whereby getfilecon returns 0 yet sets the context to NULL. - Reported by Jan Moringen via Michael Stone in - http://bugs.debian.org/463043 - * tests/ls/Makefile.am (TESTS): Add proc-selinux-segfault. - * tests/ls/proc-selinux-segfault: Test for the above fix. - * NEWS: Mention the fix. - -2008-01-26 Jim Meyering <meyering@redhat.com> - - Work around Darwin9's set-GID-like group ownership inheritance. - This avoids another spurious Mac OS 10.5.1 (Darwin 9.1) test failure. - * tests/cp/preserve-gid: Accept a group ID of 0, as well. - Reported by Elias Pipping. - - Emit "info coreutils 'PROG invocation'" into the man page, - rather than just "info PROG". The latter would often fail - or simply display the man page. - * man/help2man: Change the template. - Prompted by http://bugs.debian.org/399684 - - chcon: correct description of --no-dereference (-h) option. - * src/chcon.c (usage): Remove invalid reference to lchown. - Reported by Göran Uddeborg. - - Ensure that each version string change propagates to man pages. - * man/Makefile.am (common_dep): Don't depend on configure.ac for - version changes. Instead, depend on ../VERSION. - (../VERSION): New rule. - * Makefile.am (DISTCLEANFILES): Define. - * GNUmakefile: Update ./VERSION. - * .gitignore: List VERSION. - Reported by Sven Joachim. - - Avoid cp/preserve-gid test failure on Mac OS 10.5.1 (Darwin 9.1) - * tests/cp/preserve-gid: Set group as well as owner on ".". - Reported by Elias Pipping. - - Improve a warning about non-portable "mv" usage. - * doc/coreutils.texi (mv invocation): Adjust the warning: moving a - dir-symlink-specified-with-a-trailing-slash works in a surprising - manner only on some systems. Reported by Tomas Pospisek in - http://bugs.debian.org/343652. - -2008-01-26 Mike Frysinger <vapier@gentoo.org> - - * src/dircolors.hin (TERM): Add jfbterm. - -2008-01-23 Jim Meyering <meyering@redhat.com> - - Clean up build-related rules. - * Makefile.cfg (gnulib_dir): Update comment. - * Makefile.maint (announcement) [cl_date, utc_date]: Don't set - now-unused variables. - - * TODO: Update the note on getgrouplist. - -2008-01-23 Zvi Har'El <rl@math.technion.ac.il> - - Add a ";", so "make install" works with --enable-install-program=su. - * src/Makefile.am (install_su): Add a semicolon. (tiny change) - -2008-01-23 Jim Meyering <meyering@redhat.com> - - Avoid misinterpreting mgetgroups failure in running root-only tests. - * src/setuidgid.c (main): Don't misinterpret as size_t an error - return from mgetgroups. Reported by Theodoros V. Kalamatianos. - - * README: Remove/convert a few stray mentions of CVS. - -2008-01-22 Jim Meyering <meyering@redhat.com> - - Require automake-1.10.1, for its support of dist-lzma. - * configure.ac (AM_INIT_AUTOMAKE): Require 1.10.1. - - Version 6.10. - - * NEWS: Record release date. - - * README-hacking: Update to reflect existence of automake-1.10.1. - -2008-01-18 Jim Meyering <meyering@redhat.com> - - Update README. - * README: Remove a note about failing tests on SunOS 4. - On Mac OS 10.5.1 (Darwin 9.1), you'll need --disable-acl. - (Running tests as root): Recommend using "check-root", not "check". - -2008-01-17 Jim Meyering <meyering@redhat.com> - - Do not define-away __attribute__ when __STRICT_ANSI__ is set. - * src/system.h (__attribute__): Remove the __STRICT_ANSI__ disjunct. - It has been unnecessary since approximately gcc-2.6, and now, leaving - it would cause gcc -Werror -ansi to fail to compile csplit.c. - * gl/lib/randread.c (__attribute__): Likewise. - -2008-01-16 Jim Meyering <meyering@redhat.com> - - * NEWS: Mention the configure.ac fix. - - * TODO: Add an introduction. - Remove a few entries. Update a few others. - -2008-01-13 Jim Meyering <meyering@redhat.com> - - Remove each output redirection target before writing to it. - * tests/check.mk (vc_exe_in_TESTS): Remove t1 and t2 _first_, - in case they exist beforehand and are not writable. - * build-aux/check.mk (am__check_pre): Likewise, remove $@-t. - -2008-01-13 Elias Pipping <pipping@gentoo.org> - - * configure.ac: Correct a non-portable use of sed. - -2008-01-12 Mike Frysinger <vapier@gentoo.org> - - * src/dircolors.hin (image formats): Add the .svg suffix. - -2008-01-12 Jim Meyering <meyering@redhat.com> - - Use new version of announce-gen. - * Makefile.maint (announcement): Remove use of the - --gnulib-snapshot-time-stamp option. - Use new --gnulib-version option instead. - (gnulib-version): New variable. - -2008-01-11 Jim Meyering <meyering@redhat.com> - - * Version 6.9.92. - - * tests/tr/Test.pm: Prefer en_US.ISO-8859-1 to en_US.iso88591. - Suggestions from James Youngman and Pádraig Brady in - http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12218/focus=12227 - -2008-01-10 Jim Meyering <meyering@redhat.com> - - * README-hacking: Add Git to the list of required tools. - -2008-01-08 Paul Eggert <eggert@cs.ucla.edu> - - Fix a minor race condition when using cp -p --parents. - * src/cp.c (make_dir_parents_private): If stat fails on the parent - directory, do not add it to the list of directories whose modes - might need fixing later. Also, do not bother invoking 'stat' - unless the stat results might be needed later. - -2008-01-08 Jim Meyering <meyering@redhat.com> - - parent-perm: avoid a bizarre test failure. - * tests/cp/parent-perm: Accommodate the situation in which - chmod ("dir", 02755) returns 0 yet fails to set the S_ISGID bit. - - Remove uses of now-undefined Makefile variable. - * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): Remove uses - of no-longer-defined variable, $(LIB_ACL_TRIVIAL). - -2008-01-07 Jim Meyering <meyering@redhat.com> - - cp (but not copy.c): plug a small leak. - * src/cp.c (do_copy) [--parents]: Free the attribute list. - - Make a racy test failure less likely to happen. - * tests/misc/tty-eof: Uncomment a debug "warn". - This change happens to make this test far less likely to fail. - With that statement commented out, this test would fail about - 20% of the time on my desktop. Now, it's gone 100 iterations - in a row with no failure. - - * NEWS: Mention the cp bug fix. - -2008-01-07 Jan Blunck <jblunck@suse.de> - - cp --parents: don't use uninitialized memory when restoring permissions - * src/cp.c (make_dir_parents_private): Always stat each source - directory, in case its permissions are required in re_protect, - when setting permissions of a just-created destination directory. - -2008-01-07 Jim Meyering <meyering@redhat.com> - - cp: add a test for today's bug fix. - * tests/cp/parent-perm: New script. Test today's change. - Based on reproducer from Jan Blunck. - * tests/cp/Makefile.am (TESTS): Add parent-perm. - -2008-01-06 Jim Meyering <meyering@redhat.com> - - touch: add a test for today's change. - * tests/touch/now-owned-by-other: New script. Test today's change. - * tests/touch/Makefile.am (TESTS): Add now-owned-by-other. - * tests/Makefile.am (all_t): Add td, a new root-only test. - (td): New target. - * NEWS: Mention the improvement. - -2008-01-06 Paul Eggert <eggert@cs.ucla.edu> - - touch: ignore "-d now" option, when appropriate - * src/touch.c (main): Treat "-d now" as if it were absent, if - neither -a nor -m is specified. Problem reported by Dan Jacobson in: - http://lists.gnu.org/archive/html/bug-coreutils/2008-01/msg00010.html - -2008-01-05 Jim Meyering <meyering@redhat.com> - - Avoid tr case-conversion failure in some locales. - * src/tr.c (skip_construct): New function. - (main): When processing a pair of case-converting classes, don't - iterate through the elements of each [:upper:] or [:lower:] class. - Reported by Gerald Pfeifer in - <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12218>. - * tests/tr/Test.pm [tolower-F]: New test for the above fix. - [upcase-xtra, dncase-xtra]: New tests, for a related code path. - * NEWS: Mention the tr bug fix. - -2008-01-02 Jim Meyering <jim@meyering.net> - - * .gitignore: Ignore lzma-compressed files, too. - - Update copyright date. - * tests/sample-test: Likewise. - * doc/coreutils.texi: Likewise. - -2007-12-31 Jim Meyering <jim@meyering.net> - - * doc/coreutils.texi (Block size): Put braces around multi-digit - exponents. Reported by Darrel Francis. - - Add a syntax check, so this doesn't recur. Reorganize existing checks. - * doc/Makefile.am (sc-exponent-grouping): - (syntax_checks): New variable. - (sc-avoid-io, sc-avoid-non-zero, sc-avoid-timezone): - (sc-avoid-zeroes, sc-use-small-caps-NUL): New rules, extracted - from check-texinfo. - (check-texinfo): Depend on $(syntax_checks). - -2007-12-30 Mike Frysinger <vapier@gentoo.org> - - * src/dircolors.hin (TERM): Add gnome-256color. - -2007-12-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - - * doc/coreutils.texi: Fix a typo. Avoid the term `relationals'. - -2007-12-20 Jim Meyering <meyering@redhat.com> - - Use comma-separated list in ./configure --help output. - * configure.ac: Map commas to spaces in excluded-program list. - Use a comma-separated list, not a space-separated one. - * m4/include-exclude-prog.m4 (gl_INCLUDE_EXCLUDE_PROG): - Expect list of program names to be comma-separated. - Reported by Jan Bauke Douma. - - Avoid another "make check" failure due to omitted programs. - * tests/test-lib.sh (require_built_): New function. - * tests/misc/groups-version: Use it to skip this test if - either groups or id is not built. - - Avoid spurious "make check" failures due to omitted programs. - * man/Makefile.am (distcheck-hook): Make check rules dependents of - this target, not of check-local, so that people aren't distracted by - failures due to programs omitted via --enable-no-install-program=... - -2007-12-19 Paul Eggert <eggert@cs.ucla.edu> - - * src/uniq.c (usage): Improve wording in --help "Note". - -2007-12-18 Jim Meyering <meyering@redhat.com> - - * src/uniq.c (usage): Note that sorting uniq's input is often useful. - Suggested by Eric Blake. - (usage): Say "key-selection", not "field-selection". - Quote example commands consistently. - -2007-12-15 Jim Meyering <meyering@redhat.com> - - Version 6.9.91. - - * Makefile.cfg (gpg_key_ID): Use new, longer signing subkey. - -2007-12-12 Jim Meyering <meyering@redhat.com> - - * tests/mv/part-symlink: Redirect diff output to stderr. - -2007-12-11 Jim Meyering <meyering@redhat.com> - - Add a test to exercise today's bug fix. - * tests/misc/selinux: Test for today's bug fix. - * NEWS: Mention the SELinux "ls -l" fix. - -2007-12-11 Paul Eggert <eggert@cs.ucla.edu> - - "ls -l" wouldn't output "+" on SELinux hosts unless -Z was also given. - * src/ls.c (gobble_file): Also get the file context if -l is specified. - Treat getfilecon failures like file_has_acl failures. - (UNKNOWN_SECURITY_CONTEXT): New constant. - (clear_files): Don't free it. - (gobble_file): Set unknown security contexts to it; that way, we - don't have to have special cases for unknown contexts. - (print_long_format, print_file_name_and_frills): Don't worry - about scontext being null, since it's always some string now. - -2007-12-11 Jim Meyering <meyering@redhat.com> - - * NEWS: Add the "Bug fixes" heading. - -2007-12-09 Jim Meyering <meyering@redhat.com> - - "rm" as root would fail to unlink a non-directory on OS X 10.4.x - * src/remove.c (remove_entry) ["can unlink directories"]: Fix a - mistakenly reversed condition. - * NEWS: Mention this bug fix. - Reported by Pieter Bowman. - -2007-12-08 Jim Meyering <meyering@redhat.com> - - * src/c99-to-c89.diff: Adjust shred.c offsets. - -2007-12-04 Jim Meyering <meyering@rho.meyering.net> - - Reflect change in gnulib: don't include getpagesize.h, - now that it's provided by unistd.h. - * src/cat.c: Don't include getpagesize.h. - * src/copy.c: Likewise. - * src/dd.c: Likewise. - * src/shred.c: Likewise. - * src/split.c: Likewise. - -2007-12-02 Jim Meyering <meyering@redhat.com> - - Copy a .po file into place also when the target doesn't exist. - * bootstrap (gnulib_tool): ... not just when the checksum differs. - So now, if I manually remove po/xx.po, rerunning bootstrap will - copy the latest into place. - - Make my-distcheck depend on "check". - * Makefile.maint (my-distcheck): Also depend on "check", so I can't tag - and release something that fails "make check" (however harmless) when - run in a checked-out-from-git dir, but not in the distributed tarball. - - * NEWS: Add the usual "Noteworthy changes in release 6.9.91..." line. - - Remove just-installed su, if unable to make it set-UID root. - Normally, su isn't even installed. However, if you configure with - --enable-install-program=su, and then install with insufficient - privileges, we now make sure to remove the just-installed binary. - * src/Makefile.am (install-exec-hook): Rename from install-exec-local, - so that this rule is guaranteed to be run *after* installation. - If unable to chown and chmod the installed "su" program, remove it. - Reported by Greg Schaefer. - -2007-12-01 Bob Proulx <bob@proulx.com> - - Make existing-perm-race executable. - * tests/cp/existing-perm-race: Update file mode. - -2007-12-01 Jim Meyering <meyering@redhat.com> - - Version 6.9.90. - - * NEWS: Remove the now-untrue statement about cp vs. dangling symlinks - - Change release procedure: tag *before* running e.g., "make stable". - * Makefile.maint (vc-dist): Don't tag. Now, you must apply the tag - before running "make beta", "make stable", etc. - (vc-tag-check): Remove rule. No longer makes sense. - - * Makefile.maint (vc-tag-check): Correct check for existing git tag. - - Defer NEWS and ChangeLog checks until after the version-changing tag. - * Makefile.maint (alpha beta major): Don't depend on the - news-date-check changelog-check targets. They must fail before - applying the version-changing tag. Instead, run them after "vc-dist". - - * NEWS: Record release date and new version number. - Mention some of the SELinux changes. - * src/stat.c (main): Adjust a comment. - - * TODO: Add some entries (documentation needed), - and remove the one for mktemp. - - Add "extern" keyword to declaration of cp_options_default. - * src/copy.c (cp_options_default): Mark as "extern", so the - "sc_tight_scope" part of "make distcheck" passes. - -2007-12-01 Jim Meyering <meyering@redhat.com> - - Change comments: say bug present up to coreutils-6.9, not fixed in 6.10. - * tests/cut/Test.pm: Adjust comment. - * tests/misc/cut: Likewise. - * tests/misc/ls-misc: Likewise. - * tests/misc/od: Likewise. - * tests/misc/stty-invalid: Likewise. - * tests/tr/Test.pm: Likewise. - -2007-11-29 Paul Eggert <eggert@cs.ucla.edu> - - Add a test for cp -p and existing file permissions. - * tests/cp/Makefile.am (TESTS): Add existing-perm-race. - * tests/cp/existing-perm-race: New test. It isn't much of a - test yet, since it's hard to catch the race, but it has a FIXME - that will let us do a better test later. - -2007-11-28 Paul Eggert <eggert@cs.ucla.edu> - - Fix a security race with "cp -p A B" when B already exists. - * src/copy.h (struct cp_options): New member owner_privileges. - * src/copy.c (USE_ACL): Define to 0 if not defined, for convenience. - (owner_failure_ok): New function. - (set_owner): Avoid a security-related race by doing an extra chmod - first if it looks like there might be trouble right after a chown. - Accept a source struct stat rather than a uid and gid, and - accept a boolean NEW_DST and destination struct stat. - All callers changed. - * src/copy.h (cp_options_default): New function, replacing the - old chown_privileges. - * src/copy.c (cp_options_default): Likewise. - * src/cp.c (cp_option_init): Use it. - * src/install.c (cp_option_init): Likewise. - * src/mv.c (cp_option_init): Likewise. - -2007-11-30 Jim Meyering <meyering@redhat.com> - - Move the very-expensive file into test-lib.sh. - * tests/very-expensive: Remove file. - * tests/test-lib.sh (very_expensive_): New function. - * tests/Makefile.am (EXTRA_DIST): Remove very-expensive. - * tests/cp/perm: Call the new function, rather than sourcing the file. - * tests/tail-2/assert: Likewise. - * tests/tail-2/assert-2: Likewise. - * tests/du/2g: Likewise. - - Avoid a spurious test failure when build directory is set-GID. - * tests/cp/fail-perm: Ensure that '.'s set-GID bit is off. - - Be extra careful to quote $abs_top_builddir-derived names. - * tests/misc/ls-misc (shell_quote): New function. - Use it to quote file names derived from $abs_top_builddir, - in case it contains shell meta-characters. This is not currently - needed, since CuTmpdir detects the fishy name and skips the test. - But it's important enough to add the extra protection. - Reported by Ralf Wildenhues. - - Include test name in the "unsafe working directory name" diagnostic. - * tests/CuTmpdir.pm (import): If $ME is '-', use $prefix. - -2007-11-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - - Add quotes to protect against white space in build dir name. - * tests/check.mk (TESTS_ENVIRONMENT): Quote $(abs_srcdir). - * tests/chmod/setgid: Quote absolute names. - * tests/misc/help-version: Likewise. - * tests/misc/pwd-unreadable-parent: Likewise. - * tests/rmdir/ignore: Likewise. - * tests/test-lib.sh: Likewise. - - Define `tst', for CU_TEST_NAME. - * build-aux/check.mk (am__check_pre): Set `tst', for - CU_TEST_NAME in tests/check.mk. - - * tests/CuTmpdir.pm (END): Do not do the cleanup if $dir is not - defined, because it then goes wild and changes the mode of all - directories below $HOME. Undefined $dir can happen if the test - is to be skipped because of an unsafe working directory name. - -2007-11-28 Paul Eggert <eggert@cs.ucla.edu> - - Close a file descriptor leak when cp --preserve=context fails. - * src/copy.c (copy_reg): Close dest_desc too, if getfscreatecon - or fsetfilecon fail. - -2007-11-28 Jim Meyering <meyering@redhat.com> - - * README: Document the known problem with gettext <= 0.17. - -2007-11-28 Paul Eggert <eggert@cs.ucla.edu> - - * gl/modules/randread (Depends-on): Remove nonexistent rand-isaac. - -2007-11-27 Jim Meyering <meyering@redhat.com> - - Don't block use of 'cat' or 'wc' in "make check". - * Makefile.maint (my-distcheck): Add "cat" and "wc" to the list - of programs that we can't blacklist. - - Fix md5sum+sha*sum on sparc: regenerate files with latest autoconf. - * configure et al: Regenerate with very latest version of autoconf - (v2.61a-312-gb524b0f), to fix md5sum and sha*sum miscompilation - on big-endian systems (like sparc) due to lack of the required - definition in of WORDS_BIGENDIAN in lib/config.h. - -2007-11-26 Jim Meyering <meyering@redhat.com> - - setuidgid.c: more cleanup - * src/setuidgid.c: Include "mgetgroups.h". - (main): Don't presume there's a fixed limit on the maximum number - of group IDs. Don't use NGROUPS; it's artificially low. - Change the name of a local: s/gids_count/n_gids/. - Remove non-portable "const": s/const int tmp =.../int tmp =.../ - -2007-11-25 Jim Meyering <meyering@redhat.com> - - Document install's -D option. - * doc/coreutils.texi (install invocation): Document -D. - Reported by Akim Demialle. - - setuidgid: Update --help output. - * src/setuidgid.c (usage): Describe -g GID[,GID1...] option. - Mention that USER may be a numeric ID or a user name. - -2007-11-24 Jim Meyering <meyering@redhat.com> - - Tweak new test. - * tests/cp/preserve-gid: Split some long lines. - Prepend "+" to numeric uid and gid chown arguments, on principle. - Use skip_test_. - - setuidgid: minor clean-up. - * setuidgid.c: Include "xstrtoul.h". - (main): Detect overflow in string-to-gid_t and -to-uid_t conversions. - Improve diagnostics. - - * src/setuidgid.c: Normalize leading white space: no more TABs. - - Test the new feature: cp -p preserves the GID whenever possible. - * tests/cp/preserve-gid: New file. Test for today's change. - * tests/cp/Makefile.am (TESTS): Add preserve-gid. - * tests/Makefile.am (all_t): Add tc. - (tc): New target. - - setuidgid: accept numeric UID, and new option -g GID,GID1,GID2,... - * src/setuidgid.c: Add functionality for the new test above. - - "cp -p" tries to preserve GID even if preserving the UID fails. - * NEWS: Mention this new feature. - * src/copy.c (set_owner): Try to preserve just the GID, - when initial fchown/lchown fails. - * src/cp.c (re_protect): Likewise. - -2007-11-23 Jim Meyering <meyering@redhat.com> - - * src/runcon.c (main): Remove unused parameter, "envp". - - Add tests to show new class of strings accepted by date -d. - * tests/misc/date (rel-1day, rel-plus1): New tests for the recent - change in gnulib's getdate.y. - * NEWS: Mention the fix. - -2007-11-22 Jim Meyering <meyering@redhat.com> - - Quiet warnings about unused parameters. - * src/copy.c (set_author) [!HAVE_STRUCT_STAT_ST_AUTHOR]: - "Use" each of the parameters. - - * GNUmakefile: Correct the "rerunning..." diagnostic. - - Make it easier to diagnose PATH-induced "make distcheck" failures. - * Makefile.maint (write_loser): Define. - (my-distcheck): Use an always-failing wrapper script, that gives - a diagnostic, not "false". - Run only "make -C tests check" with the restrictive PATH. - Run the new gnulib-tests/ with the usual PATH. - - cp: by default, refuse to copy through a dangling destination symlink - * NEWS: Mention this change. - * doc/coreutils.texi (cp invocation): Describe the new behavior. - * src/copy.c: No longer include "canonicalize.h". - (copy_reg): Upon failure to open a dangling destination symlink, - don't canonicalize the name, but rather fail (default) or, with - POSIXLY_CORRECT, repeat the open call without O_EXCL (potentially - dangerous). - * src/copy.h (struct cp_options) [open_dangling_dest_symlink]: - New member. Reorder the others, grouping "bool" and "enum" - members together. - * tests/cp/thru-dangling: Test for changed and new behavior. - * src/cp.c (cp_option_init): Initialize new member. - * src/install.c (cp_option_init): Likewise. - * src/mv.c (cp_option_init): Likewise. - -2007-11-21 Pádraig Brady <P@draigBrady.com> - - * doc/coreutils.texi (split invocation): Improve the - descriptions of the split command options. - -2007-11-21 Jim Meyering <meyering@redhat.com> - - * src/c99-to-c89.diff: Adjust seq.c offsets. - -2007-11-18 Paul Eggert <eggert@cs.ucla.edu> - - * src/seq.c (print_numbers): Rewrite in an attempt to avoid the - more-general rounding issues exposed by the previous patch. - -2007-11-18 Jim Meyering <meyering@redhat.com> - - * src/c99-to-c89.diff: Adjust seq.c offsets. - - Remove unused parameter in remove.c. - * src/remove.c (fd_to_subdirp): Remove unused parameter. - (remove_cwd_entries, remove_dir): Update callers. - - bootstrap: work also with 4-argument variant of AC_INIT (from gnulib) - 2007-11-18 Sergey Poznyakoff <gray@gnu.org.ua> - * bootstrap (gnulib_extra_files): Adjust sed command. - -2007-11-17 Jim Meyering <meyering@redhat.com> - - Correct preceding patch. - * src/seq.c (print_numbers): Also handle first < last && step < 0. - * tests/misc/seq [empty-rev]: New test for this case. - - "seq .1 .1" would mistakenly generate no output on some systems - * NEWS: Say this. - * src/seq.c (print_numbers): Handle another floating point corner case. - This avoids failure of seq's eq-wid-7 test on FreeBSD 6.1. - -2007-11-16 Paul Eggert <eggert@cs.ucla.edu> - - Port tests/rmdir/ignore away from GNU/Linux. - * tests/rmdir/ignore: Don't assume that rmdir($PWD) will fail - with errno==ENOTEMPTY when $PWD is not empty; Posix also allows - rmdir to fail with errno==EBUSY. - -2007-11-16 Jim Meyering <meyering@redhat.com> - - Avoid an obscure new "make distcheck" failure. - * Makefile.maint (my-distcheck): Also allow 'mv', for its use - in gnulib-tests/Makefile. - -2007-11-16 Paul Eggert <eggert@cs.ucla.edu> - - Port readlink-fp-loop to Solaris. - * tests/misc/readlink-fp-loop (symlink_loop_msg): New var, - which records the symlink-loop message, whose wording is - not standardized by Posix. Do not rely on "echo x > p/1" - to work when p/1 has a lot of indirect symlinks. (I'm surprised - that it works on Linux. Perhaps a Linux bug?) - -2007-11-15 Paul Eggert <eggert@cs.ucla.edu> - - Port to Solaris 'make' and use a Posixish shell on Solaris. - * bootstrap.conf (gnulib_modules): Add gnu-make, posix-shell. - * build-aux/check.mk (SHELL): Set to $(PREFERABLY_POSIX_SHELL), - so that commands can assume Posix syntax. - (ENABLE_HARD_ERRORS, TEST_LOGS): Don't use GNU Make's "?=" syntax. - (SH_E_WORKAROUND): New macro. - (am__check_pre, $(TEST_SUITE_LOG)): Use it. - (am__check_pre): Fail if "mkdir" fails. Use $(SHELL) - rather than relying on the "#!/bin/sh" in the file, so that tests - can use Posix syntax. - (am__check_pre, am__tty_colors): Use $$src rather than $$<, to - support the Posix-make $(TEST_LOGS) rule. - (%.log: %.test, %.log: %$(EXEEXT)): Remove unused inference rules - that rely on a GNU Make extension and cause Solaris 'make' to fail. - (SUFFIXES): New macro, so that we can use Posix style inference rules. - (%.log: %): Use this rule only if GNU_MAKE. - Set $$src so that macros can use $$src rather than $$<. - (CHECK-FORCE, DEPENDENCY, $(TEST_LOGS)): New macros and rules, - which rely only on Posix 'make' semantics, and are used only with - non-GNU 'make' implementations. $(TEST_LOGS) invokes 'make' - recursively (and a bit inefficiently) to simulate the GNU 'make' - rules. - (.log.html): Renamed from "%.html: %.log", so that it relies only - on Posix 'make' semantics. - (check-clean, .PHONY): Do not depend on check-clean-local, since - Solaris 'make' complains about nonexistent rules like that. - * src/Makefile.am (SUFFIXES): Remove; no longer needed. - (groups): Use a specific rule rather than an inference rule that - is only instantiated once. The inference-rule approach does not - work with Solaris 'make', which gets confused by the "groups: - Makefile" line. It's not clear from the Posix spec that Solaris - 'make' is buggy here, so instead of worrying about it, rewrite - the makefile so that it clearly conforms to Posix. - * tests/check.mk (TESTS_ENVIRONMENT): Export PACKAGE_BUGREPORT. - GNU 'make' does this automatically for us, but Solaris 'make' - doesn't. - -2007-11-15 Paul Eggert <eggert@cs.ucla.edu> - - Port to Solaris 8 perl, which does not support "use warnings;". - * tests/dd/skip-seek: Skip test if "use warnings;" fails. - * tests/du/files0-from: Likewise. - * tests/misc/base64: Likewise. - * tests/misc/basename: Likewise. - * tests/misc/cut: Likewise. - * tests/misc/date: Likewise. - * tests/misc/dircolors: Likewise. - * tests/misc/dirname: Likewise. - * tests/misc/expand: Likewise. - * tests/misc/expr: Likewise. - * tests/misc/factor: Likewise. - * tests/misc/fmt: Likewise. - * tests/misc/fold: Likewise. - * tests/misc/head-elide-tail: Likewise. - * tests/misc/ls-misc: Likewise. - * tests/misc/md5sum: Likewise. - * tests/misc/md5sum-newline: Likewise. - * tests/misc/mktemp: Likewise. - * tests/misc/od: Likewise. - * tests/misc/paste-no-nl: Likewise. - * tests/misc/pr: Likewise. - * tests/misc/seq: Likewise. - * tests/misc/sha1sum: Likewise. - * tests/misc/sha1sum-vec: Likewise. - * tests/misc/sha224sum: Likewise. - * tests/misc/sha256sum: Likewise. - * tests/misc/sha384sum: Likewise. - * tests/misc/sha512sum: Likewise. - * tests/misc/sort-merge: Likewise. - * tests/misc/stat-printf: Likewise. - * tests/misc/sum: Likewise. - * tests/misc/test-diag: Likewise. - * tests/misc/tsort: Likewise. - * tests/misc/unexpand: Likewise. - * tests/misc/wc-files0-from: Likewise. - * tests/misc/xstrtol: Likewise. - * tests/mv/i-1: Likewise. - * tests/rm/empty-name: Likewise. - * tests/rm/unreadable: Likewise. - -2007-11-15 Andreas Schwab <schwab@suse.de> - - * m4/include-exclude-prog.m4 (gl_REMOVE_PROG): Fix syntax error. - Remove trailing space from result. - -2007-11-15 Jim Meyering <meyering@redhat.com> - - Avoid misbehavior of a cross-device "mv" or "install". - Those programs must not dereference a destination symlink. - * src/copy.c (copy_reg): Don't treat a dangling destination symlink - differently in move mode. In move mode, the only way the added - O_EXCL can cause failure is when some other process has recreated - the file this code unlinked a few instructions before. - -2007-11-14 Jim Meyering <meyering@redhat.com> - - Another bootstrap kludge. - * bootstrap: Ensure gnulib-tests/test-*.sh are executable - - #ifdef-out matchpathcon-related code, for now. - * src/install.c (setdefaultfilecon): #ifdef-out all of the - matchpathcon-related code, until it's more efficient. - (setdefaultfilecon): Instead of the above, stub-out the entire function. - - Use gnulib's stpncpy module, now required by install.c - * bootstrap.conf (gnulib_modules): Add stpncpy. - - Enable gnulib-tool's --with-tests option. - * bootstrap: After all is done, transform the generated - gnulib-tests/gnulib.mk. - * bootstrap.conf (gnulib_tool_option_extras): Set it here. - * gnulib-tests/Makefile.am: New file. - * Makefile.am (SUBDIRS): Add gnulib-tests. - * configure.ac (AC_CONFIG_FILES): Add gnulib-tests/Makefile. - * m4/jm-macros.m4 (coreutils_MACROS) [ARGMATCH_DIE_DECL]: Omit the - "extern " prefix to "void usage ()", so that the macro string value can - be used to construct a function definition in gnulib's test-argmatch.c. - -2007-11-12 Benno Schulenberg <bensberg@justemail.net> - - Clarify description of cp's -a option. - * src/cp.c (usage) [-a]: Remove unnecessary 'P'. - Since option -d of 'cp' includes the function of -P, mentioning the - latter in the description of option -a is redundant and therefore - slightly confusing, as the reader tries to figure out what it adds. - * doc/coreutils.texi (cp invocation): Likewise: s/-dpPR/-dpR/. - -2007-11-09 Jim Meyering <meyering@redhat.com> - - bootstrap: fix typo to enable use of $gnulib_tool_option_extras. - * bootstrap (gnulib_tool_options): Add a space before the use - of $gnulib_tool_option_extras, so that it's separated from the - preceding argument. - - install+SELinux: reduce a 12x performance hit to ~1.5x - * src/install.c (setdefaultfilecon): Call matchpathcon_init_prefix, - to mitigate what would otherwise be a large performance hit due to - the use of matchpathcon. - Dan Walsh suggested the use of matchpathcon_init_prefix. - * gl/lib/se-selinux.in.h (matchpathcon_init_prefix): Define. - -2007-11-08 Jim Meyering <meyering@redhat.com> - - Adapt to gnulib's s/jm_/gl_/ cache variable renaming. - * configure.ac: Change the cache variable name prefix "jm_" to "gl_", - to match today's change in gnulib. - -2007-11-05 Jim Meyering <meyering@redhat.com> - - Fix bootstrap failure to handle files like lib/uniwidth/cjk.h. - * bootstrap (cp_mark_as_generated): Create any required parent - destination directories before copying a file into place. - - * src/c99-to-c89.diff: Adjust offsets. - - Don't use GNU-sed-specific \< \> operators here, either. - * m4/include-exclude-prog.m4 (gl_REMOVE_PROG): Use a loop, as below. - - Use tighter regexps when performing name substitution. - * man/Makefile.am (mapped_name): Add ^ and $$ anchors. - - Don't use GNU-sed-specific \< \> operators. - * configure.ac (MAN): Transform ginstall.1 to install.1 using - a loop, rather than sed with \<...\>. - Problem reported by Bruno Haible. - Andreas Schwab reminded me that \< and \> are not portable. - - Get git-version-gen from gnulib. - * build-aux/git-version-gen: Remove file. - * build-aux/.gitignore: Add git-version-gen. - * bootstrap.conf (gnulib_modules): Add git-version-gen. - -2007-11-03 Jim Meyering <meyering@redhat.com> - - git-version-gen: Sync from autoconf's version. - * build-aux/git-version-gen: Run git-status - - Sync copyright and scriptversion bits from gnulib. - * build-aux/git-version-gen: No semantic change. - - Change the first '-' to '.' in the snapshot version string, - e.g., 6.9-377-08144 -> 6.9.377-08144 - * build-aux/git-version-gen: ... and add comments. - - seq: add another test for the %% bug. - * tests/misc/seq (fmt-c): Test the other fixed case, too. - -2007-11-03 Paul Eggert <eggert@cs.ucla.edu> - - Fix bug with "seq 10.8 0.1 10.95", plus another bug with %% in format. - - * NEWS: Mention the %%-in-format bug fix. - * src/seq.c (struct layout): New type. - (long_double_format): New arg LAYOUT. Fill it in. Fix mishandling - of %% in formats. - (print_numbers): New arg LAYOUT. Don't convert LAST to output format - when deciding whether to go slightly past LAST. Instead, convert - X to output format and back. This fixes a bug reported by - Andreas Schwab in - <http://lists.gnu.org/archive/html/bug-coreutils/2007-10/msg00237.html> - where "seq 10.8 0.1 10.95" would output 11.0 on platforms where - 10.95 rounds to a value that prints as 11.0 when only one digit - past the decimal point is asked for. - (main): Compute layout, for benefit of print_numbers. - * tests/misc/seq (float-3): Undo previous change, since the bug - should be fixed now. - (fmt-b): New test, for the %% bug. - -2007-11-01 Jim Meyering <meyering@redhat.com> - - * tests/misc/printf-surprise: Correct sed transform. - Reported by Bob Proulx. - - Add example inspired by "make dist" running gzip and lzma in sequence. - * doc/coreutils.texi (tee invocation): Show how to run tar just - once, compressing the tee'd output streams in parallel. - - Say that the first process substitution example is contrived. - * doc/coreutils.texi (tee invocation): ... and show how to do - it properly. Pointed out by James Antill. - - Use mktemp, not mkdtemp, to create test directories. - * tests/test-lib.sh: Use the mktemp binary we've just built, - not the mkdtemp script. - * tests/mkdtemp: Remove file. - * tests/Makefile.am (EXTRA_DIST): Remove mkdtemp. - - Adjust a seq subtest not to depend on the vagaries of floating point. - * tests/misc/seq (float-3): Use 10.94 as the endpoint, not 10.95, - since 10.95 was precisely in the middle of the interval, and with - a %.1f format could map to either 10.9 or 11.0. - Reported by Mike Frysinger - - Make the new printf-surprise test more precise. - * tests/test-lib.sh (require_ulimit_): New function. - * tests/misc/printf-surprise: Use ulimit -v to trigger the fixed bug, - and rather than checking printf's exit status (which would go wrong - on FreeBSD 6.1, since their printf(3) function doesn't require - lots of memory in this case) simply test whether it outputs - the first 10 bytes. - - Accommodate FreeBSD 6.1 hard-link-to-symlink differences. - * tests/cp/same-file: Detect when linking to a symlink links to - the target of the symlink (FreeBSD 6.1 does this, Linux does not), - and skip the few tests that would otherwise fail. - Redirect output of final comparison to stderr, since all stdout - is already redirected. - -2007-10-31 Jim Meyering <meyering@redhat.com> - - Fix a "make distcheck" failure. - * Makefile.maint (my-distcheck): Don't stub-out dirname, - since build-aux/check.mk now uses it. - - * bootstrap.conf (gnulib_modules): Add xprintf-posix. - -2007-10-30 Jim Meyering <meyering@redhat.com> - - Avoid seq floating-point test failure on FreeBSD 6.1. - * tests/misc/seq (float-4): Also accept -0.0. - -2007-10-29 Jim Meyering <meyering@redhat.com> - - Change a "make dist" diagnostic. - * GNUmakefile: Don't imply that $(_curr-ver) is the new version string. - -2007-10-29 Bob Proulx <bob@proulx.com> - - Improve color terminal escape usage. - * build-aux/check.mk (am__tty_colors): Use 'tput' to deduce - terminal color capabilities. - -2007-10-29 Jim Meyering <meyering@redhat.com> - - Don't try to colorize a dumb terminal. - * build-aux/check.mk (am__tty_colors): Skip colors if $TERM is "dumb". - Thanks to Bob Proulx. - - Remove gnulib's printf-posix module, for now. - * bootstrap.conf (gnulib_modules): It caused too many test failures. - - Remove spurious semicolon after "else". - * build-aux/check.mk (am__tty_colors): Fix syntax error. - - If $TERM is empty, don't use colors. This helps the buildbot, - since it produces its result in an environment with a tty, but - we don't want color codes in that case. - * build-aux/check.mk (am__tty_colors): Test for nonempty $TERM. - Suggestion from Bob Proulx. - - Always initialize terminal colorization string variables. - * build-aux/check.mk (am__tty_colors): Always initialize red, grn, etc., - In case they're defined in the environment. - - Avoid test failure in non-srcdir build vs. the git tree. - * tests/check.mk (vc_exe_in_TESTS): Run this test only in a - srcdir build directory. Reported by Andreas Schwab. - -2007-10-28 Jim Meyering <meyering@redhat.com> - - Define ENOTSUP, not ENOSYS. Needed on OpenBSD 3.9. - * gl/lib/se-context.in.h (ENOTSUP): Define if missing. - * gl/lib/se-selinux.in.h: Likewise. - - Define ENODATA, for FreeBSD 5.0 and 6.1. - * src/system.h (ENODATA): Define, if missing. - - Run autoreconf, not just autoconf, to avoid warnings. - * GNUmakefile (dummy): Otherwise, we'd sometimes get a warning - about autoconf version mismatch between what was used to generate - aclocal.m4 and the currently-running autoconf. - - Require gnulib's printf-posix module, to support Interix. - * bootstrap.conf (gnulib_modules): Add printf-posix. - - Help xgettext recognize more printf-style format strings. - * bootstrap.conf (XGETTEXT_OPTIONS): Add directives for - error, error_at_line, xasprintf, xfprintf and xprintf. - -2007-10-27 Jim Meyering <meyering@redhat.com> - - Adjust format string so msgfmt doesn't object. - * src/df.c (main): Use "%s%s" (not %smsg) to print "msg" with or - without a "Warning: " prefix. Reported by Clytie Siddall. - - Clean up tests/Makefile.am. - * tests/Makefile.am (EXTRA_DIST): Remove $(TESTS). No longer defined. - (TESTS_ENVIRONMENT): Remove definition. - -2007-10-26 Jim Meyering <meyering@redhat.com> - - * build-aux/check.mk: Merge with latest from Akim. - - Add a test for the printf fix of 2007-10-21. - * tests/misc/printf-surprise: New file. Test for 2007-10-21's fix. - * tests/misc/Makefile.am (TESTS): Add printf-surprise. - -2007-10-24 Micah Cowan <micah@cowan.name> - - Remove vestiges of cvs-gnulib-checkout process. Now we use git. - * bootstrap: Remove support for now-unnecessary option, --cvs-user, - and envvars CVS_USER, CVS_RSH. - -2007-10-24 Micah Cowan <micah@cowan.name> - - Tell xgettext that "ARG1 % ARG2" is not a C format string. - * src/expr.c (usage): Add a comment to override xgettext's default - behavior, which would classify "ARG1 % ARG2" as a fprintf-style - format string. Reported by Clytie Siddall. - -2007-10-24 Jim Meyering <meyering@redhat.com> - - Avoid diagnostics from sha1sum when there is no cached checksum. - * bootstrap (update_po_files): Skip the sha1sum check if the po.s1 - file hasn't been created yet. - - Get gnulib from the git repository, not from an obsolete cvs one. - * bootstrap: Suggestion from Micah Cowan. - - Doc improvements. - * README-hacking: Prefer the no-hyphen variant of git commands, - e.g., use "git pull" not "git-pull". - Don't presume that the only way to read this document is via a - prior git clone: provide instructions for cloning coreutils, too. - - * README-hacking: Add "cd automake" in build instructions. - From Bob Proulx. - - Don't fail part 2 of tests/rm/unreadable when run as root. - * tests/rm/unreadable: With UID == 0, expect different results. - Reported by Mike Frysinger. - -2007-10-23 Jim Meyering <meyering@redhat.com> - - * README-hacking: Refer to LZMA Utils <http://tukaani.org/lzma/>. - -2007-10-22 Paul Eggert <eggert@cs.ucla.edu> - - * README-hacking: Describe how to build with LZMA. - -2007-10-22 Jim Meyering <meyering@redhat.com> - - Remove git-version-gen's first parameter. - * build-aux/git-version-gen: Add comments. - Remove first command-line parameter. - * configure.ac: Remove corresponding first argument. - * GNUmakefile (_curr-ver): Likewise. - -2007-10-21 Jim Meyering <meyering@redhat.com> - - * NEWS: Mention the printf fix. - - Reorder tests to run more basic ones earlier. - * tests/misc/Makefile.am (TESTS): Reorder. - * tests/Makefile.am (SUBDIRS): Reorder. - - tr: do not reject an unmatched [:lower:] or [:upper:] in SET1. - * NEWS: Mention this. - * src/tr.c (get_next) [RE_CHAR_CLASS]: Don't skip the loop when - processing [:lower:] and [:upper:]. - (main): Require [:lower:] or [:upper:] in SET1 only when - when one of those is specified in SET2. - * tests/tr/Test.pm: Add tests for this fix. - Reported by Per Starbäck. - -2007-10-20 Jim Meyering <meyering@redhat.com> - - * tests/misc/help-version: Add a comment. - - Detect printf(3) failure due to ENOMEM. - * src/printf.c: Include "xprintf.h" - (print_direc): Use xprintf, rather than printf. - * bootstrap.conf (gnulib_modules): Add xprintf. - * po/POTFILES.in: Add lib/xprintf.c. - Reported by Bruno Haible. - - Put always-failing programs first in PATH, so tests cannot mistakenly - run installed versions. - * Makefile.maint (my-distcheck): Set up a bogus bin/ dir, to be used - for "make check". - - * doc/coreutils.texi (tee invocation): Fix typo. Add a little. - Add a cross-reference to bashref's Process Substitution node. - - Adjust tests to pass, now that Test.pm ones use check.mk. - * tests/check.mk (vc_exe_in_TESTS): Adjust regexp not to match the - "TESTS = $x-tests" line in each Test.pm-derived Makefile.am file. - * tests/sort/main: Remove this unused file. - - Ensure that Test.pm-derived tests use the right $PATH. - * tests/Makefile.am.in: Include $(top_srcdir)/tests/check.mk. - -2007-10-20 Bob Proulx <bob@proulx.com> - - Prevent "make check" from leaving mktemp /tmp/tmp.* files behind. - * tests/misc/help-version (mktemp_args): Tell mktemp to create - its temporary file in the current directory. - -2007-10-16 Jim Meyering <meyering@redhat.com> - - Show how to make tee redirect to multiple processes. - * doc/coreutils.texi (tee invocation): Tee can redirect output - to multiple _processes_, too. - -2007-10-14 Jim Meyering <meyering@redhat.com> - - Pull all TESTS_ENVIRONMENT settings "up" into tests/check.mk. - * tests/Makefile.am.in (TESTS_ENVIRONMENT): Remove definition. - * tests/chgrp/Makefile.am: Likewise. - * tests/chmod/Makefile.am: Likewise. - * tests/chown/Makefile.am: Likewise. - * tests/cp/Makefile.am: Likewise. - * tests/dd/Makefile.am: Likewise. - * tests/du/Makefile.am: Likewise. - * tests/install/Makefile.am: Likewise. - * tests/ln/Makefile.am: Likewise. - * tests/ls/Makefile.am: Likewise. - * tests/misc/Makefile.am: Likewise. - * tests/mkdir/Makefile.am: Likewise. - * tests/mv/Makefile.am: Likewise. - * tests/readlink/Makefile.am: Likewise. - * tests/rm/Makefile.am: Likewise. - * tests/rmdir/Makefile.am: Likewise. - * tests/tail-2/Makefile.am: Likewise. - * tests/touch/Makefile.am: Likewise. - * tests/check.mk (TESTS_ENVIRONMENT) [EXEEXT, EGREP, MAKE, PERL]: - [CONFIG_HEADER, build_programs, host_os, host_triplet, PATH]: - [REPLACE_GETCWD, CU_TEST_NAME]: Add definitions here. - * tests/misc/pwd-long: Use $abs_top_builddir/src, not $BUILD_SRC_DIR. - * tests/dd/skip-seek: Don't use $ENV{PROG}. - * tests/rm/empty-name: Likewise. - * tests/rm/unreadable: Likewise. - * tests/mv/i-1: Likewise. - - Fix a minor typo. - * configure.ac (AC_INIT): Fix a typo (s/9.6/6.9/) that makes a - difference only when running "make dist" without a .git/ subdir. - -2007-10-09 Jim Meyering <meyering@redhat.com> - - Move the help-version test into misc/. - * tests/help-version: Move to... - * tests/misc/help-version: ...here. - Source test-lib.sh, as usual. - Use $abs_top_builddir, rather than ".." and "../..". - - Make the runcon-no-reorder test slightly more general. - * tests/misc/runcon-no-reorder: Don't hard-code "unconstrained_t". - Use slightly more general "runcon $(id -Z)". - Suggestion from Stephen Smalley. - - Skip the chcon test on a system with no SELinux support. - * tests/test-lib.sh (require_selinux_): New function. - * tests/misc/chcon: Use it. - * tests/misc/selinux: Use it here, too. - * tests/cp/cp-a-selinux: and here. - * tests/selinux: Remove file. - * tests/Makefile.am (EXTRA_DIST): Remove selinux. - Reported by Mike Frysinger and Bauke Jan Douma. - - * src/dircolors.hin: Recognize .lzma as a compressed-file suffix. - - * configure.ac (AM_INIT_AUTOMAKE): Use dist-lzma, rather than dist-bzip2. - - Now that we don't install su, don't make misleading suggestions. - * src/Makefile.am (install-exec-local) [$(INSTALL_SU) != yes]: - Don't suggest running "make install-root". - (uninstall-local) [$(INSTALL_SU) != yes]: Don't even check - the installed binary. - -2007-10-08 Jim Meyering <meyering@redhat.com> - - When forming a truncated name, use the "[...]" prefix even for - an extremely long name in the current directory - * src/remove.c (full_filename_): Rename a local variable. - Use two separate "truncated" variables, in case the second - call to right_justify does not indicate any truncation -- which - would happen only if the single component FILENAME were longer - than 511 bytes and DIR_NAME were empty. - - rm could malfunction under unusual circumstances: - When operating on a relative name longer than 511 bytes, - and (when either processing a directory that is neither writable - nor readable (but still searchable) or when determining whether - to prompt), and encountering an ENOMEM error while forming the - file name, rm would operate on a truncated-to-511-byte name - starting with "[...]" rather than the intended one. - * NEWS: Describe the bugs. - * src/remove.c: Correct two misuses of full_filename: - (full_filename0, xfull_filename): New functions. - (full_filename_): Rewrite to use full_filename0. - (AD_pop_and_chdir): Use xfull_filename, not full_filename. - (write_protected_non_symlink): Likewise. - -2007-10-07 Jim Meyering <meyering@redhat.com> - - Don't let a helper function modify errno. - * src/remove.c (full_filename_): Save and restore errno. - Spotted by Bruno Haible. - - Reflect 2->3 GPL copyright version update in gnulib. - * gl/lib/tempname.h: Update copyright from gnulib. - * gl/lib/tempname.c: Likewise. - * .x-sc_GPL_version: Don't make an exception for those two files. - - * configure.ac (AM_INIT_AUTOMAKE): Don't use dist-lzma just yet. - - New program: mktemp. - * NEWS: Mention this. - * README: Add mktemp to the list. - * AUTHORS: Add this: mktemp: Jim Meyering - * src/mktemp.c: New file. - * src/Makefile.am (bin_PROGRAMS): Add mktemp. - (mktemp_LDADD): Add $(LIB_GETHRXTIME). - * man/mktemp.x: New file. - * man/Makefile.am (dist_man_MANS): Add mktemp.1. - (mktemp.1): New dependency. - * man/.cvsignore: Add mktemp.1. - * man/.gitignore: New file. - * src/.cvsignore, src/.gitignore: Add mktemp. - * tests/misc/mktemp: New file. - * tests/misc/Makefile.am (TESTS): Add mktemp. - * tests/Coreutils.pm (run_tests): Give the POST-test function - access to stdout and stderr contents, so it can verify that - the named-on-stdout file/dir does indeed exist and has proper - permissions, etc. - [po/ChangeLog] - * POTFILES.in: Add src/mktemp.c. - - Make tempname more random, via the randint module. - * gl/modules/tempname (Depends-on): Add randint and stdbool. - * gl/lib/tempname.c: Include randint.h and stdbool.h. - (uint64_t): Remove definition. Not needed. - [_LIBC] (RANDOM_BITS): Remove this block, now that we have proper - random bits. - (check_x_suffix): New function. - (gen_tempname_len): Rename from __gen_tempname. - Add a parameter, x_suffix_len, telling how many X's there must be at - the end of the template. - Use pseudo-random numbers all the way, rather than adding 7777 - from one iteration to the next. - (__gen_tempname): New function, to call gen_tempname_len, requiring a - suffix length of 6. - * gl/lib/tempname.h: Add prototype for gen_tempname_len. - - Convert coreutils' rand*.{c,h,m4} into modules. - First step: move these files to gl/lib: - * lib/rand-isaac.c, lib/rand-isaac.h - * lib/randint.c, lib/randint.h - * lib/randperm.c, lib/randperm.h - * lib/randread.c, lib/randread.h - Step 2: add modules/rand* and remove now-unneeded .m4 files. - * gl/modules/randint: New file. - * gl/modules/randperm: New file. - * gl/modules/randread: New file. - * m4/randint.m4: Remove file. - * m4/randperm.m4: Remove file. - * m4/randread.m4: Remove file. - Step 3: use the new modules - * bootstrap.conf (gnulib_modules): Add randint and randperm. - * m4/prereq.m4 (gl_RANDINT, gl_RANDREAD, gl_RANDPERM): Don't require; - These have been removed. - (gl_ROOT_DEV_INO): Don't require; already handled via bootstrap.conf. - - Copy from gnulib the parts of tempname that we'll modify. - * gl/lib/tempname.c: Copy from gnulib. - * gl/lib/tempname.h: Likewise. - * gl/modules/tempname: Likewise. - Allow GPLv2 on temporarily(?)-imported file from gnulib/libc. - * .x-sc_GPL_version: New file. - * Makefile.am (EXTRA_DIST): Add .x-sc_GPL_version - -2007-10-07 Jim Meyering <meyering@redhat.com> - - Avoid a pseudo-leak in sort. - * src/sort.c (main) [lint]: Avoid a nominal leak. - - Use puts, rather than printf ("%s\n". Slightly cleaner. - * src/tsort.c (tsort): ...and more efficient. - - Avoid seq malfunction on non-POSIX systems: mingw, BeOS, Interix. - * bootstrap.conf (gnulib_modules): Add vasprintf-posix. - Suggestion from Bruno Haible. - - Avoid a used-uninitialized error. - * src/copy.c (copy_internal): Don't overload "use_stat". - -2007-10-05 Jim Meyering <meyering@redhat.com> - - Make a failing cross-partition mv give a sensible diagnostic. - A cross-partition move of a file in a sticky tmpdir and owned by - another user would evoke an invalid diagnostic after copying it: - mv: cannot remove `x': Operation not permitted - Either of the following (mv.c, remove.c) changes would fix the bug by - itself. I think it's slightly better to use both; the added cost is - minimal: mv: an extra lstat-per-mv-cmdline-arg-that-goes-cross-partition, - rm: an extra lstat-per-unlink-that-fails-w/EPERM. - * src/remove.c (remove_entry): Also lstat the file upon EPERM. - * src/mv.c (rm_option_init): Initialize root_dev_ino just as is done - in rm, so that a cross-partition invoked remove.c:rm call works the - same way as one invoked from the command-line use of "rm". That - setting of root_dev_ino makes rm() do the equivalent of an additional - lstat for each argument, which in turn gives rm enough information to - issue the right diagnostic. - * tests/mv/sticky-to-xpart (version): New file. Test for the above. - * tests/mv/Makefile.am (TESTS): Add sticky-to-xpart. - Arrange for "make check-root" to run the new root-only test. - * tests/Makefile.am (tb): New target, to run the new root-only test. - (all_t): Add tb. - * src/c99-to-c89.diff: Adjust offsets. - - Add PACKAGE_VERSION to TESTS_ENVIRONMENT via check.mk. - * tests/check.mk (TESTS_ENVIRONMENT): Add PACKAGE_VERSION here, - rather than in every Makefile.am that needs it. - * tests/rm/Makefile.am (TESTS_ENVIRONMENT): Remove PACKAGE_VERSION. - * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Likewise. - -2007-10-04 Jim Meyering <jim@meyering.net> - - Adapt to new gnulib naming scheme. - * gl/lib/se-context.in.h: Rename from gl/lib/se-context_.h. - * gl/lib/se-selinux.in.h: Rename from gl/lib/se-selinux_.h. - * gl/m4/selinux-context-h.m4: Remove use of AC_LIBSOURCES. - * gl/m4/selinux-selinux-h.m4: Likewise. - * gl/modules/selinux-h (Files, Makefile.am): Reflect renaming. - (Makefile.am) [lib_SOURCES]: Add se-context.in.h and se-selinux.in.h. - - * lib/search_.h: Remove unused file. - - * bootstrap (slurp): Adapt to _.h -> .in.h name change. - (update_po_files): Work also when there are no .po files in po/. - - Remove test program: lib/t-fpending.c. - * lib/t-fpending.c: Remove file. Now, this test is in gnulib. - * lib/Makefile.am: Remove associated rules. - * .gitignore: Remove lib/t-fpending. - -2007-10-03 Jim Meyering <jim@meyering.net> - - * tests/misc/selinux: Skip this test if the initial chcon fails. - -2007-10-02 Jim Meyering <jim@meyering.net> - - Never copy through a symlink that cp has just created. - * src/copy.c (copy_internal): When same-file detection requires - 'stat'ing the destination file, also 'lstat' it and ensure that - it wasn't the destination of a preceding copy operation. - This bug was introduced on 2007-06-18. - * tests/cp/abuse: New test for the above. - * tests/cp/Makefile.am (TESTS): Add abuse. - -2007-09-30 Jim Meyering <jim@meyering.net> - - cp: do not abbreviate in --help output. - * src/cp.c (usage): Don't abbreviate: s/=link/=links/. - Reported by Géraud Meyer in <http://bugs.debian.org/444137>. - -2007-09-29 Eric Blake <ebb9@byu.net> - - Test previous patch. - * tests/misc/groups-dash: New test. - * tests/misc/Makefile.am (TESTS): Add it. - -2007-09-28 Eric Blake <ebb9@byu.net> - - * src/groups.sh: Don't ignore first argument if later argument is --. - -2007-09-27 Jim Meyering <jim@meyering.net> - - Avoid spurious test failure when SELinux stats "selinux/class". - * tests/ls/stat-free-symlinks: Grep for more precise /^stat("x"/. - - Move file-set and hash-triple modules to gnulib. - * bootstrap.conf (gnulib_modules): Remove file-set, now that - it's in gnulib, and the canonicalize module requires it there. - * gl/lib/file-set.c, gl/lib/file-set.h, gl/modules/hash-triple: Remove. - * gl/lib/hash-triple.c, gl/lib/hash-triple.h, gl/modules/file-set: - Remove. - - Add a test to exercise a readlink bug. - * tests/misc/readlink-fp-loop: New file. Test for the readlink bug - fixed through today's change to Gnulib's canonicalize module. - * tests/misc/Makefile.am (TESTS): Add readlink-fp-loop. - Bug report and a test case from mpb.mail@gmail.com. - -2007-09-25 Pádraig Brady <P@draigBrady.com> - - * doc/coreutils.texi (date invocation): - Make "Date input formats" easier to navigate to. - -2007-09-25 Jim Meyering <jim@meyering.net> - - Use XOR, not OR to combine bits. - * gl/lib/hash-triple.c (triple_hash): Use XOR (^), not OR (|), to - combine the bits from hashing the name and those of the inode number. - Add a few comments and remove out-of-context ones. - -2007-09-24 Jim Meyering <jim@meyering.net> - - * NEWS: The recent rm-diagnostic fix also affects cross-partition "mv". - - copy.c: Remove definitions of factored-out functions. - * src/copy.c: Include "file-set.h". - (seen_file, record_file): Remove functions that I factored - out on 2007-08-23. - -2007-09-22 Jim Meyering <jim@meyering.net> - - Don't print the commands of a 10-line script that's run in each subdir. - * tests/check.mk (vc_exe_in_TESTS): Add a leading "@", to reduce noise. - - rm: give a sensible diagnostic when failing to remove a symlink - On some systems (those with openat et al), when rm would fail to - remove a symlink, it would fail with the misleading diagnostic, - "Too many levels of symbolic links". - * NEWS: Mention the bug fix. - * src/remove.c (is_nondir_lstat): New function. - (remove_entry): Use it to catch failed-to-remove symlink (and any - other non-dir) here so that we don't fall through and try to treat - it as directory, which -- with a symlink -- would provoke the bogus - ELOOP failure. - * tests/rm/fail-eacces: Add a test for the above. - * src/c99-to-c89.diff: Adjust offsets. - - rm: fix a tiny, nearly inconsequential bug. - Don't perform a "."-relative lstat, when the file in question - may well not be in ".". Although this is a bug, a few attempts - to exercise it on a linux-2.6.22 system failed. You probably need - a pre-openat system to trigger the failure. The consequence of this - bug would be a lower-quality diagnostic upon failed dir removal. - * src/remove.c (is_dir_lstat): Add a parameter, fd_cwd. - Use it instead of hard-coding AT_FDCWD. - (remove_entry): Call is_dir_lstat with fd_cwd. - -2007-09-22 Karl Berry <karl@freefriends.org> - - * TODO: It'd be nice to add renice. - -2007-09-21 Jim Meyering <jim@meyering.net> - - Avoid test failure due to now-parallelized tests. - * tests/du/two-args: Run "du .." from a sub-directory one level deeper. - -2007-09-16 Jim Meyering <jim@meyering.net> - - * tests/misc/tac-continue: Arrange to remove a temporary file. - - * tests/check.mk (vc_exe_in_TESTS): Don't rely on the value of - $(TESTS), so that "make check TESTS=test-name" works once again. - - * tests/CuTmpdir.pm: Use File::Find + chmod syscall, not chmod -R. - - Revamp most test scripts. - - * tests/rm/v-slash: Avoid test failure with non-C locale. - Reported by Michael Stone. - - Enable some previously omitted test scripts. Add a test cross-check. - * tests/rm/Makefile.am (TESTS): Add empty-name and unreadable. - * tests/rm/empty-name: Likewise. - * tests/rm/unreadable: Reenable this test. Adjust for new rm. - * tests/mkdir/Makefile.am: Add writable-under-readonly. - * tests/mkdir/writable-under-readonly: Add some comments. - This test is always skipped, for now. - * tests/Makefile.am (ta): Hook up the new root-only script. - * tests/tail-2/infloop-1: Make this test pass. - * tests/tail-2/Makefile.am (TESTS): Add infloop-1. - * tests/tail-2/fflush: Remove unused file. - * tests/check.mk (vc_executable_is_in_TESTS): More portable. - * tests/check.mk (check): Depend on the above. - * build-aux/check.mk: Remove comment mentioning AUTHORS file. - - Factor out definitions in TESTS_ENVIRONMENT of srcdir, top_srcdir, etc. - tests/check.mk (top_srcdir): Define. - tests/*/Makefile.am: Remove definitions of $(srcdir), $(top_srcdir), - $(abs_top_srcdir), and $(abs_top_builddir), since they're - defined via the included tests/check.mk. - - tests/general: Remove from VC, this long-unused directory and contents. - - Adapt tests/tail-2/ to use test-lib.sh. - Adapt tests/readlink/ to use test-lib.sh. - - Move the sole test in tests/ls-2/ to tests/misc/. - * tests/ls-2/basic-1: Move this file to ... - * tests/misc/ls-misc: ...here. Don't rely on $PROG in env. - * tests/misc/Makefile.am (TESTS): Add ls-misc. - * tests/Makefile.am (SUBDIRS): Remove ls-2. - * tests/ls-2: Remove the directory. - * configure.ac (AC_CONFIG_FILES): Remove tests/ls-2/Makefile. - - More misc, test-related changes. (some to allow running tests as root) - - Move all tests from test/{od,sha1sum,shred,stty} to tests/misc/. - Reflect these renamings: - od/od-N misc/od-N - od/x8 misc/od-x8 - sha1sum/basic-1 misc/sha1sum - sha1sum/sample-vec misc/sha1sum-vec - shred/exact misc/shred-exact - shred/remove misc/shred-remove - stty/basic-1 misc/stty - stty/invalid misc/stty-invalid - stty/row-col-1 misc/stty-row-col - * tests/misc/Makefile.am (TESTS): Add the new files. - * tests/Makefile.am (SUBDIRS): Remove the dir names. - * tests/od, tests/sha1sum, tests/shred, tests/stty: Remove the - directories. - * configure.ac (AC_CONFIG_FILES): Remove the corresponding Makefile - names. - - Move the two tests in tests/tee to tests/misc/. - * tests/tee/basic: Move this file to ... - * tests/misc/tee: ...here. Don't rely on $PROG in env. - * tests/tee/dash: Move this file to ... - * tests/misc/tee-dash: ...here. Don't rely on $PROG in env. - * tests/misc/Makefile.am (TESTS): Add tee. - * tests/Makefile.am (SUBDIRS): Remove tee. - * tests/tee: Remove the directory. - * configure.ac (AC_CONFIG_FILES): Remove tests/tee/Makefile - - Move the two tests in tests/sum/ to tests/misc/. - * tests/sum/basic-1: Move this file to ... - * tests/misc/sum: ...here. Don't rely on $PROG in env. - * tests/sum/sysv: Move this file to ... - * tests/misc/sum-sysv: ...here. Adapt it to use test-lib.sh. - * tests/misc/Makefile.am (TESTS): Add sum and sum-sysv. - * tests/Makefile.am (SUBDIRS): Remove sum. - * tests/sum: Remove the directory. - * configure.ac (AC_CONFIG_FILES): Remove tests/sum/Makefile. - - Move the sole test in tests/tsort/ to tests/misc/tsort. - * tests/tsort/basic-1: Move this file to ... - * tests/misc/tsort: ...here. Don't rely on $PROG in env. - * tests/misc/Makefile.am (TESTS): Add tsort. - * tests/Makefile.am (SUBDIRS): Remove tsort. - * tests/tsort: Remove the directory. - * configure.ac (AC_CONFIG_FILES): Remove tests/tsort/Makefile. - - Move the sole test in tests/unexpand to tests/misc/unexpand. - * tests/unexpand/basic-1: Move this file to ... - * tests/misc/unexpand: ...here. Don't rely on $PROG in env. - * tests/misc/Makefile.am (TESTS): Add unexpand. - * tests/Makefile.am (SUBDIRS): Remove unexpand. - * tests/unexpand: Remove the directory. - * configure.ac (AC_CONFIG_FILES): Remove tests/unexpand/Makefile. - - Move the sole test in tests/seq to tests/misc/seq. - * tests/seq/basic: Move this file to ... - * tests/misc/seq: ...here. Don't rely on $PROG in env. - * tests/misc/Makefile.am (TESTS): Add seq. - * tests/Makefile.am (SUBDIRS): Remove seq. - * tests/seq: Remove the directory. - * configure.ac (AC_CONFIG_FILES): Remove tests/seq/Makefile - - Convert tests/mkdir/ to use test-lib.sh. - - Move the two tests in tests/md5sum to tests/misc/md5sum. - * tests/md5sum/basic-1: Move this file to ... - * tests/misc/md5sum: ...here. Don't rely on $PROG in env. - * tests/md5sum/newline-1: Move this file to ... - * tests/misc/md5sum-newline: ...here. Don't rely on $PROG in env. - * tests/misc/Makefile.am (TESTS): Add md5sum. - * tests/Makefile.am (SUBDIRS): Remove md5sum. - * tests/md5sum: Remove the directory. - * configure.ac (AC_CONFIG_FILES): Remove tests/md5sum/Makefile - - tests/sample-test: Update to use test-lib.sh. - - Convert tests/misc/ to use test-lib.sh, too. - Convert tests/ls/, too. - Convert tests/ln/, too. - Convert tests/install/, too. - - Move the two tests in tests/fmt to tests/misc/fmt. - * tests/fmt/basic: Move this file to ... - * tests/misc/fmt: ...here. Don't rely on $PROG in env. - * tests/fmt/long-line: Move this file to ... - * tests/misc/fmt-long-line: ...here. - * tests/misc/Makefile.am (TESTS): Add fmt. - * tests/Makefile.am (SUBDIRS): Remove fmt. - * tests/fmt: Remove the directory. - * configure.ac (AC_CONFIG_FILES): Remove tests/fmt/Makefile - - Move the sole test in tests/factor to tests/misc/factor. - * tests/factor/basic: Move this file to ... - * tests/misc/factor: ...here. Don't rely on $PROG in env. - * tests/misc/Makefile.am (TESTS): Add factor. - * tests/Makefile.am (SUBDIRS): Remove factor. - * tests/factor: Remove the directory. - * configure.ac (AC_CONFIG_FILES): Remove tests/factor/Makefile - - Move the sole test in tests/expr to tests/misc/expr. - * tests/expr/basic: Move this file to ... - * tests/misc/expr: ...here. Don't rely on $PROG in env. - * tests/misc/Makefile.am (TESTS): Add expr. - * tests/Makefile.am (SUBDIRS): Remove expr. - * tests/expr: Remove the directory. - * configure.ac (AC_CONFIG_FILES): Remove tests/expr/Makefile - - Convert tests/du/*, too. - - Move the sole test in tests/dircolors to tests/misc/dircolors. - * tests/dircolors/simple: Move this file to... - * tests/misc/dircolors: ...here. Don't rely on $PROG in env. - * tests/misc/Makefile.am (TESTS): Add dircolors. - * tests/Makefile.am (SUBDIRS): Remove dircolors. - * tests/dircolors: Remove the directory. - * configure.ac (AC_CONFIG_FILES): Remove tests/dircolors/Makefile - - Convert tests/dd/*, too. - - Convert tests/mv, too. - * tests/other-fs-tmpdir: Before, all callers would exit 77 upon - failure to find the required dir. Now, exit 77 in this script so - callers don't have to. Adjust callers. - - Adjust chgrp, chmod, chown, cp tests to use test-lib.sh. - * tests/check.mk: Also define abs_top_builddir. - - Parallel "make check" support. - * build-aux/check.mk: New file, from The Vaucanson Group. - * .x-sc_GPL_version: New file, to allow "version 2 or later" - in build-aux/check.mk. - * Makefile.am (EXTRA_DIST): Add .x-sc_GPL_version. - * tests/check.mk: New file. - * tests/Makefile.am (EXTRA_DIST): Add check.mk, mkdtemp and test-lib.sh. - - Begin factoring "sample-test" out of test scripts. - * tests/test-lib.sh: New file, to be sourced by all tests that - were previously derived from the "sample-test" template. - * tests/mkdtemp: New file. - * tests/touch/dir-1: Use test-lib.sh. - * tests/touch/empty-file: Likewise. - * tests/touch/fail-diag: Likewise. - * tests/touch/fifo: Likewise. - * tests/touch/no-create-missing: Likewise. - * tests/touch/no-rights: Likewise. Also, don't sleep. - * tests/touch/not-owner: Likewise. - * tests/touch/obsolescent: Likewise. - * tests/touch/read-only: Likewise. - * tests/touch/relative: Likewise. - * tests/touch/Makefile.am: Include $(top_srcdir)/tests/check.mk, - to get the parallel-"make check" bits. - - Move a slow test into tests/misc. - * tests/check.mk: Wrapper. - * tests/ls/time-1: Move this file to tests/misc/ls-time. - * tests/misc/ls-time: New file. From tests/ls/time-1. - * tests/ls/Makefile.am (TESTS): Remove time-1. - * tests/misc/Makefile.am (TESTS): Add ls-time. - - Add support for parallel "make check" (in tests/misc, for now) - -2007-09-08 Jim Meyering <jim@meyering.net> - - Accommodate gnulib's renaming: __fpending.h -> fpending.h. - * lib/t-fpending.c: Include "fpending.h", not "__fpending.h". - -2007-09-07 Jim Meyering <jim@meyering.net> - - chmod: don't ignore a dangling symlink - * NEWS: Mention the bug fix. - * src/chmod.c (process_file): Handle the case of FTS_SLNONE, - i.e., give a diagnostic saying we cannot operate on such a file. - * tests/chmod/thru-dangling: Compare new stderr output with expected. - -2007-09-07 Bob Proulx <bob@proulx.com> - - Add a test: demonstrate that chmod ignores a dangling symlink - * tests/chmod/thru-dangling: New test. Fails. - * tests/chmod/Makefile.am (TESTS): Add thru-dangling. - -2007-09-05 Jim Meyering <jim@meyering.net> - - Adapt to new SELinux behavior: "?" vs. new "unlabeled" - * src/ls.c (gobble_file): Interpret the new "unlabeled" indicator - from getfilecon/lgetfilecon the same way we interpret a negative - return value: no security context. So we don't print the "+". - * tests/selinux: Recognize that "unlabeled" means insufficient - support for SELinux, just like "?". - -2007-09-03 Jim Meyering <jim@meyering.net> - - Invoke $(AUTOCONF) manually, if needed to get an updated version string. - * GNUmakefile: Don't actually touch configure.ac. - That would make git-version-gen always print "...-dirty". - - Don't change '-'s to '.'s in the string from git-describe. - * build-aux/git-version-gen: Leave '-'s in the string from git-describe. - Otherwise, s/-/./g would make it too hard to distinguish the base - version number from the appended .DD suffixes. - -2007-09-03 Jim Meyering <jim@meyering.net> - - * README-hacking: Require rsync, rather than wget. - -2007-09-02 Jim Meyering <jim@meyering.net> - - * bootstrap (WGET_COMMAND): Remove code to set this variable. - - Ensure that $(VERSION) is up to date for dist-related targets. - * GNUmakefile: Arrange to rerun autoconf, if the version reported by - git-version-gen doesn't match $(VERSION), but only for dist targets. - - bootstrap: uses rsync to download the .po files - * bootstrap (po_download_command_format): New global. - (download_po_files): Use rsync. - (update_po_files): Don't remove .po files after download, - so future rsync runs can take advantage of the copies. - -2007-09-01 Jim Meyering <jim@meyering.net> - - * bootstrap (gnulib_tool): Make sha1sum check quietly. - - Ensure that snapshot version changes make it to groups, too. - * src/Makefile.am (groups): Depend on Makefile. - - Make groups-version executable, - * tests/misc/groups-version: ... as it was in the patch. - -2007-08-31 Eric Blake <ebb9@byu.net> - - Test yesterday's change to groups. - * tests/misc/groups-version: New test. - * tests/misc/Makefile.am (TESTS): Add groups-version. - -2007-08-31 Jim Meyering <jim@meyering.net> - - Solve the unnecessary-.po-file-regeneration problem once and for all. - * bootstrap (download_po_files): New function, renamed from - get_translations. Now, downloads, but doesn't update LINGUAS. - (update_po_files): New function. - -2007-08-30 Jim Meyering <jim@meyering.net> - - Shorten the snapshot version string by removing the "g". - * build-aux/git-version-gen: Remove git-describe's "g" that would - always precede the abbreviated SHA1. Suggestion from Dmitry V. Levin. - - Perform the s,rm,/bin/rm, fix-up properly. No more kludge. - * Makefile.am (EXTRA_DIST): Remove .kludge-stamp. - (.kludge-stamp): Remove rule. Instead, ... - (dist-hook): Do the job here, operating on the file in $(distdir). - (rm_subst): Adjust regexp to match "rm -f rm$(EXEEXT)", not "rm -f rm". - (MAINTAINERCLEANFILES): s/+=/=/, now that this is the sole use. - (dist-hook): Remove the legacy-from-cvs install-sh is-executable check. - * .gitignore: Remove .kludge-stamp. - - Make inter-release --version output more useful. - Now, each snapshot has a version "number" like 6.9-219-g58ddd, - which indicates that it is built using the 219th change set - (in _some_ repository) following the "v6.9" tag, and that 58ddd - is a prefix of the commit SHA1. - * build-aux/git-version-gen: New file. - * configure.ac: Run it to set the version. - * Makefile.am (dist-hook): Arrange so that .version appears only - in distribution tarballs, never in a checked-out repository. - * .gitignore: Add .version here, too. Just in case. - -2007-08-30 Eric Blake <ebb9@byu.net> - - * src/.gitignore: Ignore *.exe for platforms with non-empty $(EXEEXT). - -2007-08-30 Eric Blake <ebb9@byu.net> - - Use PACKAGE_NAME instead of GNU_PACKAGE. - * src/Makefile.am (.sh, uninstall-local): Adjust all users of - hand-rolled GNU_PACKAGE to instead use autoconf-provided - PACKAGE_NAME. - * src/basename.c (main): Likewise. - * src/chroot.c (main): Likewise. - * src/dirname.c (main): Likewise. - * src/echo.c (main): Likewise. - * src/expr.c (main): Likewise. - * src/factor.c (main): Likewise. - * src/groups.sh (version): Likewise. Also, reflect change in - --version output due to GPLv3. - * src/hostid.c (main): Likewise. - * src/hostname.c (main): Likewise. - * src/link.c (main): Likewise. - * src/logname.c (main): Likewise. - * src/nice.c (main): Likewise. - * src/nohup.c (main): Likewise. - * src/printenv.c (main): Likewise. - * src/printf.c (main): Likewise. - * src/pwd.c (main): Likewise. - * src/setuidgid.c (main): Likewise. - * src/sleep.c (main): Likewise. - * src/system.h (case_GETOPT_VERSION_CHAR): Likewise. - * src/test.c (main): Likewise. - * src/true.c (main): Likewise. - * src/unlink.c (main): Likewise. - * src/uptime.c (main): Likewise. - * src/users.c (main): Likewise. - * src/whoami.c (main): Likewise. - * src/yes.c (main): Likewise. - * configure.ac (AC_CHECK_DECLS): No need to check strtoimax, - strtoumax, since gnulib does this. - -2007-08-30 Jim Meyering <jim@meyering.net> - - Ensure that TMPDIR is valid. Otherwise, it would cause test failures. - * tests/misc/tty-eof: Set TMPDIR=. - * tests/misc/sort-compress: Likewise. - - Use EXIT_FAILURE, not EXIT_FAIL, now that EXIT_FAILURE is always 1. - * src/system.h (EXIT_FAIL): Remove definition. - * src/chroot.c (main): EXIT_FAIL -> EXIT_FAILURE. - * src/env.c (main): Likewise. - * src/nice.c (main): Likewise. - * src/su.c (change_identity, main): Likewise. - * src/tty.c (main): Likewise. - Suggestion from Eric Blake. - -2007-08-28 Jim Meyering <jim@meyering.net> - - * src/test.c (usage): Note that [ honors --help and --version, - but that test does not. Suggestion from Dan Jacobson. - - By default, do not install hostname anymore; no kidding, this time. - * src/Makefile.am (EXTRA_PROGRAMS): Remove hostname from this list, - now that it's no longer being installed by default. This should - have been part of the 2007-08-21 change. - (check-duplicate-no-install): New rule to ensure this doesn't - happen again. - (check): Depend on it. - - Reflect renaming: mreadlink-with-size -> areadlink-with-size. - * bootstrap.conf: Update module name. - * src/copy.c (copy_internal): Update header and function names. - * src/ls.c (get_link_name): Likewise. - * src/readlink.c (main): Likewise. - * src/stat.c (print_stat): Likewise. - - Add file system type names and magic numbers from "man 2 statfs". - * src/stat.c (human_fstype): Also handle BEFS, BFS, BINFMT_MISC, - FUSECTL, HUGETLBFS, NFSD and OPENPROM. - -2007-08-27 Jim Meyering <jim@meyering.net> - - Add some file system type names and magic numbers from glibc. - * src/stat.c (human_fstype): Add any file system names and values - present in glibc's linux_fsinfo.h but not in this list. - Alphabetize the S_* names and capitalize the hexadecimal constants. - -2007-08-26 Jim Meyering <jim@meyering.net> - - * tests/misc/fold: Fix a typo: missing \ in a diagnostic - no one is likely ever to see. - -2007-08-25 Jim Meyering <jim@meyering.net> - - * src/dircolors.hin: Add .dz and .svgz as archive suffixes. - - Remove all .cvsignore files from version control. - -2007-08-24 Jim Meyering <jim@meyering.net> - - bootstrap: Ignore more. - * bootstrap (symlink_to_dir): Add a directory name like - uniwidth to e.g., lib/.gitignore. - (slurp): Handle the sys_stat_.h -> sys mapping, too. - * .hgignore: Remove this file, too. - * Makefile.am (EXTRA_DIST): Remove .gitignore and .hgignore. - - No longer version-control .???ignore files in lib/, m4/, and po/. - * .gitignore: Ignore a few files in lib/, m4/, and po/ that are not - picked up automatically. - * lib/.gitignore, lib/.cvsignore: Remove files. - * m4/.gitignore, m4/.cvsignore: Remove files. - * po/.gitignore, po/.cvsignore: Remove files. - - bootstrap: when fetching .po files, do not remove .gmo files. - * bootstrap (get_translations): Don't remove *.gmo files! - They can be expensive to regenerate. - - Create .gitignore and/or .cvsignore from scratch, if absent. - This is in preparation for my removing those files from version - control in the directories managed by gnulib-tool. - * bootstrap: New setting: vc_ignore. - (insert_sorted_if_absent): Create $file if absent. - Adapt to new, possibly empty, list: $vc_ignore. - - * src/system.h (fseeko, ftello): Remove now-unneeded definitions. - * src/od.c (LDBL_DIG): Remove now-unneeded definition. - - Arrange to use tag names like vM.N, rather than COREUTILS-M_N. - * Makefile.maint (this-vc-tag) [git]: Simply use v$(VERSION). - (this-vc-tag-regexp): New variable. - (vc-tag-check): Use it, rather than $(this-vc-tag). - -2007-08-23 Jim Meyering <jim@meyering.net> - - * src/dircolors.hin: Add xterm-16color, xterm-88color and eterm-color. - Suggestion from Dan Nicolaescu. - - Don't let ln be a party to destroying user data. - * src/ln.c: Include "file-set.h", "hash.h" and "hash-triple.h". - (dest_set, DEST_INFO_INITIAL_CAPACITY): New globals. - (do_link): Refuse to remove a just-created link. - Record a name,dev,ino triple for each link we create. - (main): Initialize dest_set, if needed. - * tests/mv/childproof: Test for the above fix. - * NEWS: Document this. - Reported by Eric Blake. - - Move functions from copy.c into new modules, since ln needs them, too. - * bootstrap.conf (gnulib_modules): Add file-set. - * gl/lib/file-set.c (record_file, seen_file): Functions from copy.c. - * gl/lib/file-set.h: Add prototypes. - * gl/lib/hash-triple.c (triple_hash, triple_hash_no_name): - (triple_compare, triple_free): Functions from copy.c. - * gl/lib/hash-triple.h (struct F_triple): Define. From copy.c. - Add prototypes. - * gl/modules/file-set: New module. - * gl/modules/hash-triple: New module. - * src/Makefile.am (copy_sources): New variable. - (ginstall_SOURCES, cp_SOURCES, mv_SOURCES): Use it. - * src/copy.c: Include hash-triple.h. - No longer include hash-pjw.h. - (copy_internal): Don't pass a NULL third argument to record_file, - since that function no longer accepts that. - (record_file): Move this function to file-set.c. - Along the way, remove the code to allow a NULL stat-buffer pointer. - Adjust sole caller. - (seen_file): Move this function to file-set.c. - (struct F_triple): Move declaration to hash-triple.h. - (triple_compare, triple_free, triple_hash, triple_hash_no_name): - Move these functions to hash-triple.c. - - bootstrap: generate more ignorable names - * bootstrap (slurp): When generating ignorable names, also map - .sin to .sed, .gperf to .c, and .y to .c. - - * Makefile.maint (patch-check): Don't remove temporaries upon failure. - -2007-08-22 Jim Meyering <jim@meyering.net> - - * src/c99-to-c89.diff: Adjust offsets. - - Change "rm --verbose -r a//" not to print extra slashes in a///b - * src/remove.c (push_dir): Don't copy trailing slashes onto the stack. - Reported by François Pinard. - * tests/rm/v-slash: New file. Test for the above change. - * tests/rm/Makefile.am (TESTS): Add v-slash. - - * src/date.c: Don't include "getline.h", now removed from gnulib; - its declarations are now in <stdio.h>. - * src/md5sum.c: Likewise. - * src/dircolors.c: Likewise. - - * src/copy.c (DEST_INFO_INITIAL_CAPACITY): Correct a comment. - -2007-08-21 Jim Meyering <jim@meyering.net> - - By default, do not install hostname anymore. - * configure.ac: Add "hostname" to the list of not-installed programs. - * src/Makefile.am (no_install__progs): Add "hostname" here, too. - * NEWS: Mention this. - -2007-08-20 Bob Proulx <bob@proulx.com> - - Clarify touch documentation of file arguments. - * src/touch.c (usage): Improve wording of documentation regarding - file argument handling and special handling of - argument. - * doc/coreutils.texi (touch invocation): Likewise. - Documentation problem reported by Vincent Lefevre. - -2007-08-20 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: The old cp -p bug affected coreutils releases before 6.0. - Problem reported by Soren Spies in - <http://lists.gnu.org/archive/html/bug-coreutils/2007-08/msg00106.html>. - To be conservative, just say the bug was in all versions through 6.6. - -2007-08-19 Eric Blake <ebb9@byu.net> - - Avoid consuming too much seekable input when yesno is used. - * bootstrap.conf (gnulib_modules): Add closein. - * src/system.h (includes): Also include closein.h. - * src/mv.c (main): Use close_stdin, not close_stdout. - * src/cp.c (main): Likewise. - * src/ln.c (main): Likewise. - * src/rm.c (main): Likewise. - * src/install.c (main): Likewise. - * NEWS: Document the fix. - -2007-08-20 Jim Meyering <jim@meyering.net> - - Parallel "make check" support. - * build-aux/check.mk: New file, from The Vaucanson Group. - * .x-sc_GPL_version: New file, to allow "version 2 or later" - in build-aux/check.mk. - * Makefile.am (EXTRA_DIST): Add .x-sc_GPL_version. - * tests/check.mk: New file. - * tests/Makefile.am (EXTRA_DIST): Add check.mk, mkdtemp and test-lib.sh. - - Begin factoring "sample-test" out of test scripts. - * tests/test-lib.sh: New file, to be sourced by all tests that - were previously derived from the "sample-test" template. - * tests/mkdtemp: New file. - * tests/touch/dir-1: Use test-lib.sh. - * tests/touch/empty-file: Likewise. - * tests/touch/fail-diag: Likewise. - * tests/touch/fifo: Likewise. - * tests/touch/no-create-missing: Likewise. - * tests/touch/no-rights: Likewise. Also, don't sleep. - * tests/touch/not-owner: Likewise. - * tests/touch/obsolescent: Likewise. - * tests/touch/read-only: Likewise. - * tests/touch/relative: Likewise. - * tests/touch/Makefile.am: Include $(top_srcdir)/tests/check.mk, - to get the parallel-"make check" bits. - -2007-08-18 Jim Meyering <jim@meyering.net> - - Use new "idcache.h" header. - * src/ls.c: Remove ancient declarations of getuser and getgroup. - Include "idcache.h", instead. - - Run each Coreutils.pm-based test in its own subdirectory. - * tests/CuTmpdir.pm: New file. - * tests/Makefile.am (EXTRA_DIST): Add CuTmpdir.pm. - * tests/misc/od, tests/misc/base64, tests/misc/basename: - * tests/misc/cut, tests/misc/date, tests/misc/dirname: - * tests/misc/expand, tests/misc/fold, tests/misc/head-elide-tail: - * tests/misc/paste-no-nl, tests/misc/pr, tests/misc/sha224sum: - * tests/misc/sha256sum, tests/misc/sha384sum, tests/misc/sha512sum: - * tests/misc/sort-merge, tests/misc/stat-printf, tests/misc/test-diag: - * tests/misc/wc-files0-from, tests/misc/xstrtol: - * tests/dd/skip-seek, tests/dircolors/simple, tests/du/files0-from: - * tests/expr/basic, tests/factor/basic, tests/fmt/basic: - * tests/ls-2/tests, tests/md5sum/basic-1, tests/md5sum/newline-1: - * tests/seq/basic, tests/sha1sum/basic-1, tests/sha1sum/sample-vec: - * tests/sum/basic-1, tests/tsort/basic-1, tests/unexpand/basic-1: - * tests/mv/i-1, tests/rm/empty-name, tests/rm/unreadable: Use it. - * tests/misc/test-diag: Use "$ENV{abs_top_builddir}/src/test", - not "../../src/test", so it works when run from a subdirectory. - * tests/ls-2/tests: Create temp files and dirs from within the perl - script, so that they're removed, when run from a subdirectory. - * tests/ls-2/Makefile.am (TESTS_ENVIRONMENT): Define abs_top_builddir, - so we can use "$ENV{abs_top_builddir}/src/test" in a test script. - -2007-08-16 Jim Meyering <jim@meyering.net> - - Consolidate od tests. - * tests/misc/od: Perform od-zero-len's test here. - Include boilerplate code, so tests run in a subdirectory. - * tests/misc/od-zero-len: Remove this file. - - * tests/ls/time-1: Include sample-test boilerplate code. - Remove the then-unnecessary, hard-coded envvar "unset" commands. - -2007-08-15 Jim Meyering <jim@meyering.net> - - Move a slow test into tests/misc. - * tests/ls/time-1: Move this file to tests/misc/ls-time. - * tests/misc/ls-time: New file. From tests/ls/time-1. - * tests/ls/Makefile.am (TESTS): Remove time-1. - * tests/misc/Makefile.am (TESTS): Add ls-time. - - od --skip (-j) works even on files in /proc, when the kernel lies - * src/od.c (skip): Don't let kernel misinformation (nonempty files - in /proc with stat.st_size == 0) make "od -j N" misbehave. - Patch by Paul Eggert. - * NEWS: Document this work-around. - * tests/misc/od-zero-len: New file, test for the above. - - * src/printf.c (usage): Adjust summary to also mention OPTIONs. - From Karl Berry. - -2007-08-14 Jim Meyering <jim@meyering.net> - - od: fix a bug that arises when skipping exact length of file - * NEWS: Document the bug fix. - * src/od.c (skip): Call fseek even when n_skip is exactly the - same as the length of the current file. Otherwise, the next - iteration would use unadjusted input stream pointer, thus ignoring - the desired "skip". Report and patch by Paul GHALEB. - - * tests/misc/od: New file, test for the above. - * tests/misc/Makefile.am (TESTS): Add od. - -2007-08-10 Paul Eggert <eggert@cs.ucla.edu> - - Accommodate more xstrtol changes. - * src/df.c (long_options): Don't bother prepending "--" to long - options that OPT_STR might decode, as that hack is no longer needed. - (main): Invoke xstrtol_fatal rather than STRTOL_FATAL_ERROR. - * src/du.c (long_options, main): Likewise. - * src/ls.c (decode_switches): Likewise. - * src/od.c (long_options, main): Likewise. - * src/pr.c (first_last_page, main): Likewise. - * src/sort.c (long_options, specify_sort_size): Likewise. - * src/pr.c (first_last_page): Accept option index and option char - instead of an assembled option string. All callers changed. - * src/sort.c (specify_sort_size): Likewise. - * src/system.h (OPT_STR, LONG_OPT_STR, short_opt_str, OPT_STR_INIT): - Remove. - -2007-08-05 Jim Meyering <jim@meyering.net> - - Encapsulate a static variable. - * src/system.h (opt_str_storage): Move static var into... - (short_opt_str): ... new static inline function. - (OPT_STR): Use the new function. - -2007-08-04 Jim Meyering <jim@meyering.net> - - Exercise xstrtol's diagnostics via pr's --pages option. - * tests/misc/xstrtol: New file. - * tests/misc/Makefile.am (TESTS): Add xstrtol. - -2007-08-04 Paul Eggert <eggert@cs.ucla.edu> - - Adapt to new human and xstrtol API. - * src/df.c (long_options): Prepend "--" to long options that - OPT_STR might decode. - * src/du.c (long_options): Likewise. - * src/od.c (long_options): Likewise. - * src/sort.c (long_options): Likewise. - * src/df.c (main): Adjust to new human and xstrtol API. - * src/du.c (main): Likewise. - * src/ls.c (decode_switches): Likewise. - * src/od.c (main): Likewise. - * src/pr.c (first_last_page): Likewise. New argument OPTION. - All callers changed. - * src/sort.c (specify_sort_size): New arg OPTION. All callers - changed. Adjust to new xstrtol API. - * src/system.h (opt_str_storage): New static var. - (OPT_STR, LONG_OPT_STR, OPT_STR_INIT): New macros. - -2007-08-02 Jim Meyering <jim@meyering.net> - - Adjust one more test to accommodate the recent fts change. - This matters only on systems with insufficient openat support. - * tests/du/inacc-dest: Adjust expected diagnostic. - - Adjust the other two "no-x" tests and unify all three. - * tests/du/no-x: Factor out du-specific bits. - * tests/chmod/no-x: Use the same code. - * tests/chgrp/no-x: Use the same code. - - Adapt du's no-x test not to fail on older Linux systems. - * tests/du/no-x: Accept a third variant of the diagnostic. - -2007-07-31 Jim Meyering <jim@meyering.net> - - du: print size (probably incomplete) of each inaccessible directory - * src/du.c (process_file): Print what we know of the size of a - directory even when it is inaccessible. What we print is just the - size of the directory itself, not counting any of its contents. - * tests/du/inacc-dir: Test for this. - * NEWS: Mention this change. - - Add a test for du not counting size of inaccessible directories. - * tests/du/inacc-dir: New file. Test for fts.c bug fixed yesterday. - * tests/du/Makefile.am (TESTS): Add inacc-dir. - * NEWS: Mention the bug fix. - -2007-07-28 Jim Meyering <jim@meyering.net> - - Attempt to copy a regular file, even if stat says it is empty. - * NEWS: Document this bug fix. - * src/copy.c (copy_reg): Read from a regular file, even if it - appears (stat.st_size == 0) to be empty. This reverts an - optimization introduced on 2005-11-23 for coreutils-6.0. - Otherwise, "cp /proc/cpuinfo /tmp" creates an empty file, - on e.g., linux-2.6.20. - * tests/cp/proc-zero-len: New file. Test for the above. - * tests/cp/Makefile.am (TESTS): Add proc-zero-len. - Reported by Dan Berrangé. - -2007-07-26 Bob Proulx <bob@proulx.com> - - sort: Improve sort --random-sort test. - * tests/misc/sort-rand: If "locale" is available pick a random - non-C locale and check "sort --random-sort" behavior using it. - -2007-07-24 Jim Meyering <jim@meyering.net> - - sort: add a test to exercise the affected code. - * tests/sort/Test.pm (realloc-buf): Exercise the code that changed - yesterday. No other test in all of "make check" does this. - * NEWS: Mention the fix. - -2007-07-23 Paul Eggert <eggert@cs.ucla.edu> - - sort: avoid unaligned access. - * src/sort.c (fillbuf): When enlarging the line buffer, ensure that - the new size is a multiple of "sizeof (struct line)". This avoids - alignment problems when indexing from the end of the buffer. - Problem reported by Andreas Schwab in - <http://lists.gnu.org/archive/html/bug-coreutils/2007-07/msg00158.html>. - -2007-07-23 Jim Meyering <jim@meyering.net> - - Update all copyright notices to use the newer form (e.g., remove - the postal address, and add the 'licenses' URL). - - * COPYING: Update to Version 3. - - Update c99/c89 patch for new, copyright-change-induced offsets. - * Makefile.maint (patch-check): Filter out '^Only in...' lines. - * src/c99-to-c89.diff: Handle new c99'isms in seq.c. - -2007-07-22 Jim Meyering <jim@meyering.net> - - * configure.ac: Arrange to rerun configure whenever src/Makefile.am - changes. That file contains the list of program names that must be - substituted into files like man/Makefile. - Add quotes around AC_SUBST arguments. - -2007-07-21 Paul Eggert <eggert@cs.ucla.edu> - - * bootstrap (slurp): Work even in environments where "ls" defaults - to "ls -A". Put in a FIXME, though, since the current code does - not slurp files whose names start with ".", and this looks like - it might be a troublesome area. - -2007-07-20 Jim Meyering <jim@meyering.net> - - Document and add a test for today's sort bug fix. - * NEWS: Describe the bug fix. - * tests/sort/Test.pm (obs-inval): Add a test for today's fix. - -2007-07-20 Andreas Schwab <schwab@suse.de> - - * src/sort.c (main): Don't free a pointer to non-malloc'd memory. - -2007-07-19 Jim Meyering <jim@meyering.net> - - Fix a portability bug in the new ls-color test. - * tests/ls/stat-free-symlinks: Don't rely on the ability of - a built-in printf to interpolate '\e'. Use '\033' instead. - -2007-07-18 Jim Meyering <jim@meyering.net> - - "cp -i --update older newer" no longer prompts; same for mv - * src/copy.c (copy_internal): Perform "update" check before the - possible interactive prompt. Reported by zeno_AT_biyg_DOT_org - in <http://bugzilla.redhat.com/248591> - * tests/mv/update: Add tests for the above. - * NEWS: Mention the bug fix. - -2007-07-15 Jim Meyering <jim@meyering.net> - - ls --color: Don't stat symlinks when neither ORPHAN nor MISSING - attribute has a color. - * src/ls.c (main): Don't set check_symlink_color when C_EXEC is - colored, unless ln=target (aka color_symlink_as_referent) is set. - (gobble_file): Set f->linkok = true also when !check_symlink_color. - http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/10608/focus=10927 - Reported by Jeremy Maitin-Shepard. - * tests/strace: New file, contents extracted from... - * tests/mv/atomic: ...here. Source strace. - * tests/ls/stat-free-symlinks: New file. Test for the above. - Use strace to ensure that in this corner case, ls does not call stat. - * tests/ls/Makefile.am (TESTS): Add stat-free-symlinks. - * tests/Makefile.am (EXTRA_DIST): Add strace. - -2007-07-14 Jim Meyering <jim@meyering.net> - - Remove long-deprecated options. - * NEWS: Mention this. - * src/df.c, src/ls.c: Remove --kilobytes option. - * src/du.c: Remove --kilobytes and --megabytes options. - * src/who.c: Remove -i and --idle options. - * src/ptx.c: Remove --copyright option. - - Change interface: make 2nd param _space_-separated, not comma-separated - * m4/include-exclude-prog.m4 (gl_INCLUDE_EXCLUDE_PROG): Remove now- - unnecessary use of tr. - Improve comments. - * configure.ac: Adjust caller, as well as the code that ensures the - 2nd parameter stays in sync with the list in src/Makefile.am. - -2007-07-14 Karel Zak <kzak@redhat.com> - - * m4/include-exclude-prog.m4 (gl_REMOVE_PROG): Fix typo: s/$2/$1/. - (gl_INCLUDE_EXCLUDE_PROG): Quote first use of $2 parameter. - Don't mix comma- and space-separated lists. - Patch from Karel Zak. - -2007-07-13 Jim Meyering <jim@meyering.net> - - Warn about non-portable use of unescaped backslash at end of string, - and treat it as if it were escaped. - * src/tr.c (unquote): Considering that such usage would make GNU tr - from coreutils-5.2.1 and earlier *fail*, the least we can do now is - to warn about it. Solaris' tr ignores it. - * NEWS: Mention this. - - Use proper backslash-quoting inside backticks. - * configure.ac: Otherwise we run afoul of strict GNU tr: - a string ending in a lone backslash would provoke a failure. - -2007-07-12 Jim Meyering <jim@meyering.net> - - Expand default-no-install prog list in ./configure --help output, - and fix some []-quoting bugs in sed expressions. - * configure.ac: Hard-code the list, "arch,su" here as well - as in src/Makefile.am, and ensure the two stay in sync. - * m4/include-exclude-prog.m4 (gl_INCLUDE_EXCLUDE_PROG): Use $2, - rather than the nearly-equivalent shell variable. - Karel Zak reported that ./configure --help's output included - the literal string, $gl_no_install_progs_default. - - Clean up include-exclude-prog.m4. - * m4/include-exclude-prog.m4 (gl_ADD_PROG): Don't modify MAN. - (gl_REMOVE_PROG): Likewise. - Add omitted "\>" in sed regexp. - Remove any leading or trailing spaces. - (gl_ADD_PROG): Remove any leading space. - * configure.ac: Instead, derive $MAN from $optional_bin_progs. - Append $(EXEEXT) to *all* names, not just the first one. - -2007-07-11 Jim Meyering <jim@meyering.net> - - If there's a GPL vN copyright comment, require that N == 3. - * Makefile.maint (sc_GPL_version): New rule. - * tests/misc/arch: Fix the sole violation. - -2007-07-10 Jim Meyering <jim@meyering.net> - - Skip "arch" test if it's not built. - * tests/misc/Makefile.am (built_programs): Define. - (TESTS_ENVIRONMENT): Add $(built_programs), for... - * tests/misc/arch: ...this: skip the test if arch is not built. - * src/Makefile.am (built_programs.list): New rule. - * tests/Makefile.am (built_programs): Rename from all_programs. - (TESTS_ENVIRONMENT): Use built_programs, not all_programs. - * tests/help-version: Likewise. - * NEWS: Mention that using --enable-no-install-program=X may - cause "make check" to fail. - - Add support for enabling/disabling installation of specified programs. - * NEWS: Mention new configure-time options. - Mention that neither arch nor su is built/installed, by default. - * m4/include-exclude-prog.m4: New file. - * configure.ac: Use new macro, gl_ADD_PROG, rather than - manually appending to OPTIONAL_BIN_PROGS and MAN. - Move the code that adds "df" to the list of programs to build from - m4/jm-macros into this file. - Use gl_INCLUDE_EXCLUDE_PROG, then handle special cases: ginstall, [. - (NO_INSTALL_PROGS_DEFAULT): AC_SUBST it. Used by man/Makefile.am. - * man/Makefile.am (dist_man_MANS): Remove from this list all man pages - corresponding to "bin" programs. Add $(MAN) instead. - (optional_mans): Remove all uses. - (check-x-vs-1): Adapt to work even though arch and su are typically - no longer built (and neither are their .1 files). - * src/Makefile.am (install_su): Rename from INSTALL_SU, now that - INSTALL_SU has a different meaning. Use the new $(INSTALL_SU) value. - -2007-07-10 Karel Zak <kzak@redhat.com> - - New program: arch - * NEWS: Mention arch. - * README: Add arch to the list of programs. - * AUTHORS: Add arch. - * src/uname.c: Include "uname.h". - (PROGRAM_NAME): Handle arch, too. - (ARCH_AUTHORS): Define. - (uname_long_options, arch_long_options): Renamed and new globals. - (usage): Handle arch-mode as well as uname-mode. - (decode_switches): New function, extracted from main, - to handle arch-mode as well as uname-mode. - (main): Handle both modes. - * src/uname-arch.c: New program, alias for "uname -m". - * src/uname-uname.c: New file, default uname mode. - * src/uname.h: New file, uname modes. - * src/Makefile.am (EXTRA_PROGRAMS): Add arch. - (uname_SOURCES, arch_SOURCES): Define. - * man/arch.x: New file. - * man/Makefile.am (dist_man_MANS): Add arch.1. - (arch.1): New dependency. - * tests/misc/arch: New test, compare "arch" with "uname -m" - * configure.ac (OPTIONAL_BIN_PROGS): Add arch. - (MAN): Add arch.1. - * .x-sc_require_config_h: Exempt uname-arch.c and uname-uname.c - from the always-include-<config.h> rule. - -2007-07-10 Jim Meyering <jim@meyering.net> - - Change "version 2" to "version 3" in all copyright notices. - -2007-07-09 Jim Meyering <jim@meyering.net> - - Compensate for new c99'isms in seq.c. - * Makefile.maint (patch-check): Use -p1, not -p2, so a patch - generated via "make patch-check REGEN=1" actually works. - * src/c99-to-c89.diff: Handle new c99'isms in seq.c. - -2007-07-09 Pádraig Brady <P@draigBrady.com> - - Fix the automatic number width formatting in seq. - * src/seq.c: Fix the -w logic. Ignore spaces and '+' - characters of input numbers when determining width. - Set format correctly for input numbers in scientific notation. - * tests/seq/basic: Add various number width tests. - Details: <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/10903> - -2007-07-08 Jim Meyering <jim@meyering.net> - - Run the coreutils-specific code only if tests/Makefile.am.in exists. - * bootstrap (mam_template): Move definition out of loop. - - Create symlinks for gl/{lib,m4}/*, just as for gnulib/{lib,m4}/*. - * bootstrap (symlink_to_dir): Rename function from symlink_to_gnulib. - Add a directory parameter. Update all callers. - (cp_mark_as_generated): Also check for -- and link to -- files in gl/. - - * THANKS: Add Pádraig Brady. - -2007-07-08 Jim Meyering <jim@meyering.net> - - Adapt to deeper hierarchy in gnulib. - * bootstrap (symlink_to_dir): If the destination directory doesn't - exist, create it. This is required at least for "lib/uniwidth/cjk.h". - - Use <wchar.h>, not "wcwidth.h". - * src/wc.c: Now that gnulib provides the POSIX-specified <wchar.h>, - include it and <wctype.h>, rather than "wcwidth.h". - * src/ls.c: Include <wchar.h>, rather than "wcwidth.h". - -2007-07-05 Jim Meyering <jim@meyering.net> - - setuidgid: set all groups, not just the primary one. - I wanted to use the xgetgroups function from id.c, so factored - it out and made it into a non-exiting function (hence the "m" - prefix rather than "x"). - * src/setuidgid.c (main): Use mgetgroups. - Include "mgetgroups.h". - - * src/id.c (xgetgroups): Remove function. - Include "mgetgroups.h". - (print_group_list): Use mgetgroups, not xgetgroups. - - * gl/modules/mgetgroups: New module. - * gl/lib/mgetgroups.c: New file. mgetgroups is derived from - id.c's xgetgroups function. - * bootstrap.conf (gnulib_modules): Add mgetgroups. - * gl/m4/mgetgroups.m4: New file. - * gl/lib/mgetgroups.h: New file. - - * bootstrap: Merge in changes from gnulib. - - * src/id.c: Include "getugroups.h" rather than declaring manually. - -2007-07-04 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: pr -F no longer suppresses the footer or the first two blank - lines in the header. - * doc/coreutils.texi (pr invocation): Likewise. Also, a too-short - page length implies -t, not -T. - * src/pr.c (lines_per_header, lines_per_footer): Now constants. - (init_parameters): Don't try to change them. - (print_header): Use the same header and footer format regardless of - wither form feeds are being used. - (usage): Adjust to above change when describing too-short page length. - Too-short page length impliesy -t, not -T. - * tests/pr/2-S_f-t_notab: Adjust to the fact that -F now affects - only formfeed handling; it does not change the header. - * tests/pr/2-Sf-t_notab: Likewise. - * tests/pr/2f-t_notab: Likewise. - * tests/pr/2s_f-t_notab: Likewise. - * tests/pr/2s_w60f-t_nota: Likewise. - * tests/pr/2sf-t_notab: Likewise. - * tests/pr/2sw60f-t_notab: Likewise. - * tests/pr/2w60f-t_notab: Likewise. - * tests/pr/3a3f-0F: Likewise. - * tests/pr/3b3f-0F: Likewise. - * tests/pr/3b3f-0FF: Likewise. - * tests/pr/3b3f-FF: Likewise. - * tests/pr/3f-0F: Likewise. - * tests/pr/3f-FF: Likewise. - * tests/pr/Test.pm: Likewise. - * tests/pr/a3f-0F: Likewise. - * tests/pr/a3f-0FF: Likewise. - * tests/pr/a3f-FF: Likewise. - * tests/pr/b3f-0F: Likewise. - * tests/pr/b3f-0FF: Likewise. - * tests/pr/b3f-FF: Likewise. - * tests/pr/3-5l17f-t: Remove, since it's been renamed to another - file whose name has a line count 7 larger, - reflecting the new line count needed for this behavior. - * tests/pr/3a3l8f-t: Likewise. - * tests/pr/3b3l8f-t: Likewise. - * tests/pr/3l17f-t: Likewise. - * tests/pr/3ml17f-t: Likewise. - * tests/pr/Ja3l17f-lm: Likewise. - * tests/pr/Jb3l17f-lm: Likewise. - * tests/pr/Jml17f-lm-lo: Likewise. - * tests/pr/W-72l17f-ll: Likewise. - * tests/pr/W20l17f-ll: Likewise. - * tests/pr/W26l17f-ll: Likewise. - * tests/pr/W27l17f-ll: Likewise. - * tests/pr/W28l17f-ll: Likewise. - * tests/pr/W35Ja3l17f-lm: Likewise. - * tests/pr/W35Jb3l17f-lm: Likewise. - * tests/pr/W35Jml17f-lmlo: Likewise. - * tests/pr/W35a3l17f-lm: Likewise. - * tests/pr/W35b3l17f-lm: Likewise. - * tests/pr/W35ml17f-lm-lo: Likewise. - * tests/pr/W72Jl17f-ll: Likewise. - * tests/pr/a3l17f-lm: Likewise. - * tests/pr/a3l8f-t: Likewise. - * tests/pr/b3l17f-lm: Likewise. - * tests/pr/b3l8f-t: Likewise. - * tests/pr/l17f-t: Likewise. - * tests/pr/ml17f-0F: Likewise. - * tests/pr/ml17f-lm-lo: Likewise. - * tests/pr/ml17f-t: Likewise. - * tests/pr/ml17f-t-0F: Likewise. - * tests/pr/n+2-5l17f-0FF: Likewise. - * tests/pr/n+2l17f-0FF: Likewise. - * tests/pr/n+2l17f-bl: Likewise. - * tests/pr/n+3l17f-0FF: Likewise. - * tests/pr/n+3l17f-bl: Likewise. - * tests/pr/n+3ml13f-bl-FF: Likewise. - * tests/pr/n+3ml17f-bl-tn: Likewise. - * tests/pr/n+3ml17f-tn-bl: Likewise. - * tests/pr/n+4b2l10f-0FF: Likewise. - * tests/pr/n+5-8b3l10f-FF: Likewise. - * tests/pr/n+5a3l6f-0FF: Likewise. - * tests/pr/n+6b3l6f-FF: Likewise. - * tests/pr/nJml17f-lmlmlo: Likewise. - * tests/pr/nJml17f-lmlolm: Likewise. - * tests/pr/nN1+3l17f-bl: Likewise. - * tests/pr/nN15l17f-bl: Likewise. - * tests/pr/nSml13-bl-FF: Likewise. - * tests/pr/nSml13-t-t-FF: Likewise. - * tests/pr/nSml13-t-tFFFF: Likewise. - * tests/pr/nSml17-bl-FF: Likewise. - * tests/pr/nSml17-t-t-FF: Likewise. - * tests/pr/nSml17-t-tFFFF: Likewise. - * tests/pr/nl17f-bl: Likewise. - * tests/pr/o3Jml17f-lm-lo: Likewise. - * tests/pr/o3a3Sl17f-tn: Likewise. - * tests/pr/o3a3Snl17f-tn: Likewise. - * tests/pr/o3a3l17f-tn: Likewise. - * tests/pr/o3b3Sl17f-tn: Likewise. - * tests/pr/o3b3Snl17f-tn: Likewise. - * tests/pr/o3b3l17f-tn: Likewise. - * tests/pr/o3mSl17f-bl-tn: Likewise. - * tests/pr/o3mSnl17fbltn: Likewise. - * tests/pr/o3ml17f-bl-tn: Likewise. - * tests/pr/w72l17f-ll: Likewise. - * tests/pr/3-5l24f-t: New file, containing the contents of the - file with the same name but with the line count smaller by 7, - reflecting the new behavior with -F. - * tests/pr/3a3l15f-t: Likewise. - * tests/pr/3b3l15f-t: Likewise. - * tests/pr/3l24f-t: Likewise. - * tests/pr/3ml24f-t: Likewise. - * tests/pr/Ja3l24f-lm: Likewise. - * tests/pr/Jb3l24f-lm: Likewise. - * tests/pr/Jml24f-lm-lo: Likewise. - * tests/pr/W-72l24f-ll: Likewise. - * tests/pr/W20l24f-ll: Likewise. - * tests/pr/W26l24f-ll: Likewise. - * tests/pr/W27l24f-ll: Likewise. - * tests/pr/W28l24f-ll: Likewise. - * tests/pr/W35Ja3l24f-lm: Likewise. - * tests/pr/W35Jb3l24f-lm: Likewise. - * tests/pr/W35Jml24f-lmlo: Likewise. - * tests/pr/W35a3l24f-lm: Likewise. - * tests/pr/W35b3l24f-lm: Likewise. - * tests/pr/W35ml24f-lm-lo: Likewise. - * tests/pr/W72Jl24f-ll: Likewise. - * tests/pr/a3l15f-t: Likewise. - * tests/pr/a3l24f-lm: Likewise. - * tests/pr/b3l15f-t: Likewise. - * tests/pr/b3l24f-lm: Likewise. - * tests/pr/l24f-t: Likewise. - * tests/pr/ml24f-0F: Likewise. - * tests/pr/ml24f-lm-lo: Likewise. - * tests/pr/ml24f-t: Likewise. - * tests/pr/ml24f-t-0F: Likewise. - * tests/pr/n+2-5l24f-0FF: Likewise. - * tests/pr/n+2l24f-0FF: Likewise. - * tests/pr/n+2l24f-bl: Likewise. - * tests/pr/n+3l24f-0FF: Likewise. - * tests/pr/n+3l24f-bl: Likewise. - * tests/pr/n+3ml20f-bl-FF: Likewise. - * tests/pr/n+3ml24f-bl-tn: Likewise. - * tests/pr/n+3ml24f-tn-bl: Likewise. - * tests/pr/n+4b2l17f-0FF: Likewise. - * tests/pr/n+5-8b3l17f-FF: Likewise. - * tests/pr/n+5a3l13f-0FF: Likewise. - * tests/pr/n+6b3l13f-FF: Likewise. - * tests/pr/nJml24f-lmlmlo: Likewise. - * tests/pr/nJml24f-lmlolm: Likewise. - * tests/pr/nN1+3l24f-bl: Likewise. - * tests/pr/nN15l24f-bl: Likewise. - * tests/pr/nSml20-bl-FF: Likewise. - * tests/pr/nSml20-t-t-FF: Likewise. - * tests/pr/nSml20-t-tFFFF: Likewise. - * tests/pr/nSml24-bl-FF: Likewise. - * tests/pr/nSml24-t-t-FF: Likewise. - * tests/pr/nSml24-t-tFFFF: Likewise. - * tests/pr/nl24f-bl: Likewise. - * tests/pr/o3Jml24f-lm-lo: Likewise. - * tests/pr/o3a3Sl24f-tn: Likewise. - * tests/pr/o3a3Snl24f-tn: Likewise. - * tests/pr/o3a3l24f-tn: Likewise. - * tests/pr/o3b3Sl24f-tn: Likewise. - * tests/pr/o3b3Snl24f-tn: Likewise. - * tests/pr/o3b3l24f-tn: Likewise. - * tests/pr/o3mSl24f-bl-tn: Likewise. - * tests/pr/o3mSnl24fbltn: Likewise. - * tests/pr/o3ml24f-bl-tn: Likewise. - * tests/pr/w72l24f-ll: Likewise. - -2007-06-23 Jim Meyering <jim@meyering.net> - - Prefer "STREQ (a, b)" over "strcmp (a, b) == 0"; similar for != 0. - * src/base64.c (main): Likewise. - * src/install.c (setdefaultfilecon): Likewise. - * src/sort.c (main): Likewise. - * Makefile.maint (sc_prohibit_strcmp): New rule. - * .x-sc_prohibit_strcmp: New file, to list the few exceptions. - * Makefile.am (EXTRA_DIST): Add .x-sc_prohibit_strcmp. - -2007-06-22 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: seq no longer mishandles obvious cases like - "seq 0 0.000001 0.000003" by omitting the last output number. - * doc/coreutils.texi (seq invocation): Remove advice about workaround - for seq off-by-one problem, since the bug is fixed now. Replace - it with more-generic advice about rounding errors. - * src/seq.c (long_double_format, print_numbers): - New arg NUMERIC_FORMAT. All uses changed. - -2007-06-22 Pádraig Brady <P@draigBrady.com> (trivial change) - - * tests/seq/basic: Add test cases for seq off-by-one problem. - -2007-06-22 Jim Meyering <jim@meyering.net> - - * src/stat.c (long_options): Add a FIXME comment to help ensure - that the deprecated and undocumented "--filesystem" option is - removed someday. - -2007-06-18 Paul Eggert <eggert@cs.ucla.edu> - - A few more symlink-related fixes. Fix a bug triggered by cp - --parents and symlinks. Close some race conditions possible when - the destination replaces a newly-created file with a symlink. - * NEWS: Document that 'cp --parents' no longer mishandles - symlinks in file name components of source. - * src/copy.c (HAVE_LCHOWN): Default to false. - (lchown) [!defined HAVE_LCHOWN]: Define to chown, for convenience. - * src/cp.c (lchown) [!HAVE_LCHOWN]: Likewise. - * src/install.c (lchown [!HAVE_LCHOWN]: Likewise. - * src/copy.c (set_owner): Use lchown instead of chown, for safety - in case the file got replaced by a symlink in the meantime. - * src/cp.c (re_protect): Likewise. - * src/install.c (change_attributes): Likewise. - * src/copy.c (copy_internal): Use ordinary C rather than an #if. - * src/cp.c (lchown) [!HAVE_LCHOWN]: Define to chown, for convenience. - (struct dir_attr): Cache the entire struct stat of the directory, - rather than just its mode, so that we needn't stat the directory - twice (which can lead to races). - (re_protect): Don't use XSTAT as that's not appropriate in - this context (symlinks should be followed here). Instead, use - the cached stat value. - (make_dir_parents_private): Save dir's entire struct stat, not - just its mode. - * tests/cp/cp-parents: Add test to check against bug with - cp --parents and symlinks. - -2007-06-18 Jim Meyering <jim@meyering.net> - - Use mreadlink_with_size (doesn't exit), not xreadlink_with_size. - * bootstrap.conf (gnulib_modules): Add readlink-with-size. - Remove xreadlink and xreadlink-with-size. - * src/copy.c (copy_internal): Use mreadlink_with_size, - not xreadlink_with_size. - * src/ls.c (get_link_name): Likewise. - * src/readlink.c (main): Likewise. - * src/stat.c (print_stat): Likewise. - - * README-hacking: Don't mention Gzip 1.2.4, now that 1.3.12 is out. - -2007-06-16 Jim Meyering <jim@meyering.net> - - Make chgrp and chown diagnostics consistent. - * src/chown.c (main): Emit the diagnostic before the file name, - not after it, to be consistent with chgrp's diagnostic. - * src/chgrp.c (parse_group): Emit a ":" between the diagnostic - and the file name. - Reported by Egmont Koblinger. - * THANKS: Add Egmont Koblinger. - -2007-06-15 Paul Eggert <eggert@cs.ucla.edu> - - Correct cp's handling of destination symlinks in some cases. - * NEWS: "cp" no longer considers a destination symlink to be the - same as the referenced file when copying links or making backups. - * src/copy.c (copy_reg): When following a symlink, use the - followed name in later chown etc. requests, so that the created - file is affected, rather than the symlink. Use O_NOFOLLOW on - source when not dereferencing symlinks; this avoids a race. - Preserve errno correctly when doing multiple open attempts on the - destination. - (copy_internal): Follow destination symlinks only when copying a - regular file and only when we don't intend to remove or rename the - destination first, regardless of whether following source - symlinks; this is because since POSIX and tradition (e.g., - FreeBSD) say we should ordinarily follow destination symlinks if - the system calls would ordinarily do so. - * src/copy.h (struct cp_options): Add comment that 'dereference' - is only for source files. - * src/cp.c (usage): Note that --derereference etc. are only for - source files. - (make_dir_parents_private): Follow symlinks, regardless of whether - --dereference is specified, because these are destination symlinks. - * tests/cp/same-file: Adjust tests to match revised behavior. - Filter out perror output since it might vary from host to host. - Use sed alone instead of also using echo. - - * doc/coreutils.texi (cp invocation): Document the behavior better when - the destination is a symlink. Clarify source versus destination - symlinks. Describe the new behavior for destination symlinks. - -2007-06-15 Jim Meyering <jim@meyering.net> - - * src/copy.c: Include "canonicalize.h". - (copy_reg): Use canonicalize_filename_mode to follow the symlink, - so that we can always open with O_EXCL and avoid a race. - -2007-06-15 Jim Meyering <jim@meyering.net> - - Don't include "quote.h" when it is not used. - * src/md5sum.c: Remove unnecessary inclusion of "quote.h". - * src/expr.c: Likewise. - * src/shred.c: Likewise. - * Makefile.maint (sc_prohibit_quote_without_use): New rule. - * src/c99-to-c89.diff: Adjust offsets. - -2007-06-14 Paul Eggert <eggert@cs.ucla.edu> - - Clarify what "cat" documentation means by "blank" lines. - * doc/coreutils.texi (cat invocation): "Blank" lines actually mean - empty lines. - * src/cat.c (usage): Say that "nonblank" means nonempty. Clarify - --squeeze-blank. - -2007-06-13 Jim Meyering <jim@meyering.net> - - rmdir: give better diagnostics - * src/rmdir.c (remove_parents): Give a more descriptive/consistent - diagnostic upon failure. - (main): Likewise. - Suggestion from Joey Hess. - * THANKS: Add Joey Hess. - - Don't include "quotearg.h" when it is not used. - * Makefile.maint (sc_prohibit_quotearg_without_use): New rule. - * src/cp.c: Don't include "quotearg.h". It wasn't used. - - * README-hacking: List Gperf as a build-requirement, too. - Reported by Steve Ward. - -2007-06-11 Jim Meyering <jim@meyering.net> - - * README: Mention README-hacking, for whose who start from - cloned/checked-out sources rather than from a distribution tarball. - Reported by Steve Ward. - * THANKS: Add Steve Ward. - -2007-06-10 Jim Meyering <jim@meyering.net> - - bug-fix: cp would fail to write through a dangling symlink - * NEWS: Mention the bug fix. - * src/copy.c (copy_reg): When open fails with EEXIST, the destination - is lstat'able, and a symlink, call open again, but now without O_EXCL. - * tests/cp/thru-dangling: New file, to test for the above fix. - * tests/cp/Makefile.am (TESTS): Add thru-dangling. - * THANKS: Add Michael McLagan. - Bug report from Michael McLagan in <http://bugzilla.redhat.com/243588>. - -2007-06-04 Paul Eggert <eggert@cs.ucla.edu> - - * doc/coreutils.texi (Common options): Mention that -h and - --human-readable are equivalent to --block-size=human-readable. - Documentation problem reported by Steve Ward in - <http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00007.html>. - (du invocation): Use optSi rather than duplicating the macro's - contents (incorrectly, since we claimed a "B" was output). - -2007-05-31 Jim Meyering <jim@meyering.net> - - Pull printf-related code from gnulib, rather than using forked copy. - * bootstrap.conf (gnulib_modules): Don't avoid size_max and xsize - modules. While I dislike xsize-style overflow avoidance, maintaining - a forked version of e.g., vasnprintf.c was too much work. - -2007-05-29 Jim Meyering <jim@meyering.net> - - * src/dircolors.hin: Add screen-256color. - Suggested by sdl.web@gmail.com in <http://bugzilla.redhat.com/239266>. - -2007-05-26 Jim Meyering <jim@meyering.net> - - * TODO: Add an entry for comm --output-delimiter=STR - -2007-05-25 James Youngman <jay@gnu.org> - - wc: ignore multibyte-character decoding errors - * src/wc.c (wc): Don't issue an error message when mbrtowc - indicates that we have seen an invalid byte sequence. This - makes "wc /bin/sh" bearable (though the word and line counts - are likely not to be useful). - * NEWS: Mention the change. - -2007-05-22 Jim Meyering <jim@meyering.net> - - Check for an up-to-date copyright year in coreutils.texi. - * Makefile.maint (copyright-check): Also check for an up-to-date - copyright year in doc/$().texi, if that file exists. - * doc/coreutils.texi: Add 2007 to list of Copyright years. - Reported by Karl Berry. - - cut: diagnose a range starting with 0 (-f 0-2) as invalid, and - give a better diagnostic for a field-number/offset of 0. - * NEWS: Mention the fix. - * src/cut.c (ADD_RANGE_PAIR): Add an explicit check. - Based on a patch from James Youngman. - * tests/misc/cut: Add tests for the above. - - "cut -f 2-0" now fails; before, it was equivalent to "cut -f 2-" - Also, diagnose the '-' in "cut -f -" as an invalid range, rather - than interpreting it as the unlimited range, "1-". - * NEWS: Mention these changes. - * src/cut.c (set_fields): Don't interpret an accumulator "value" - of 0 as an unspecified range endpoint. - Give better diagnostics. - Adjust a comment so that it is true also for 64-bit size_t. - - * tests/cut/Test.pm: Add tests for the above. - - stty: fix a harmless syntax nit - * src/stty.c (visible): Use ";" as the statement terminator - between two assignments, not ",". - (integer_arg): Join an unnecessarily wrapped line. - -2007-05-20 Jim Meyering <jim@meyering.net> - - stty: diagnose an invalid hex value in 35-colon commmand-line argument - * NEWS: Mention this. - * src/stty.c (strtoul_tcflag_t, strtoul_cc_t): New functions. - (recover_mode): Use those functions (not sscanf), to parse the - string robustly. - * tests/stty/invalid: New file. Test for the above. - * tests/stty/Makefile.am (TESTS): Add invalid. - * .x-sc_prohibit_atoi_atof: Don't exempt stty.c from this check. - Add tests/stty/invalid so we don't have to obfuscate the comment - about sscanf therein. - * Makefile.maint (sc_prohibit_atoi_atof): Mention sscanf in the - diagnostic, too. - - * TODO: Remove some now-completed or no longer relevant items. - -2007-05-19 Jim Meyering <jim@meyering.net> - - Rename uses of futimens -> gl_futimens; glibc now declares the former. - * src/copy.c (copy_reg): Reflect renaming: futimens -> gl_futimens. - * src/touch.c (touch): Likewise. - -2007-05-18 Jim Meyering <jim@meyering.net> - - * Makefile.maint (my-distcheck): Remove -pedantic from $(CFLAGS) - for now, to avoid c89-check failure due to use of #include_next. - -2007-05-15 Jim Meyering <jim@meyering.net> - - Generate a dozen test-related Makefile.am files at bootstrap-time. - * README-hacking: Build-from-checkout now require Perl, too. - * bootstrap: Now that these generated Makefile.am files are no longer - under version control, they must be created at bootstrap time. - -2007-05-14 Paul Eggert <eggert@cs.ucla.edu> - - * man/chmod.x: Document chmod's behavior with setuid and setgid bits. - Remove misleading implication about leading zero. Problem - reported by Jan Engelhardt in - <http://lists.gnu.org/archive/html/bug-coreutils/2007-05/msg00134.html>. - -2007-05-13 Jim Meyering <jim@meyering.net> - - Remove the generated tests/*/Makefile.am files from version control. - * tests/cut/Makefile.am: git-remove this generated file. - * tests/head/Makefile.am: Likewise. - * tests/join/Makefile.am: Likewise. - * tests/pr/Makefile.am: Likewise. - * tests/sort/Makefile.am: Likewise. - * tests/tac/Makefile.am: Likewise. - * tests/tail/Makefile.am: Likewise. - * tests/test/Makefile.am: Likewise. - * tests/tr/Makefile.am: Likewise. - * tests/uniq/Makefile.am: Likewise. - * tests/wc/Makefile.am: Likewise. - * .cvsignore, .gitignore: Ignore these generated files. - - * src/.cvsignore, src/.gitignore: Add chcon here, ... - * .cvsignore, .gitignore: ... not here. - - Test uniq's new --zero-terminated (-z) option. - * tests/uniq/Test.pm: When possible, create a "-z"-testing variant - of each existing test. - (2z, 3z, 4z, 5z, 20z, 122, 123): New tests from James Youngman. - -2007-05-12 James Youngman <jay@gnu.org> - - Add -z option to uniq. Originally proposed by Egmont Koblinger. - * NEWS: Mention uniq's new option: --zero-terminated (-z). - * src/uniq.c: Add new option, --zero-terminated (-z), to make - uniq use the NUL byte as separator/delimiter rather than newline. - (check_file): Add a parameter: delimiter. Update caller. - Use readlinebuffer_delim in place of readlinebuffer everywhere. - (main): Handle the new option. - (usage): Describe new option the same way sort does. - * doc/coreutils.texi (uniq invocation): Describe the new option. - -2007-05-07 Jim Meyering <jim@meyering.net> - - * NEWS: Mention that last week's tr bug dates back to 1992. - -2007-05-04 Jim Meyering <jim@meyering.net> - - Avoid test failure when run with an unusual umask. - * tests/ls/color-dtype-dir: Set umask to 022. - Suggestion from AIDA Shinra. - - Avoid failure of root-only test when run with a restrictive umask. - * tests/rm/no-give-up: Ensure that non-root can access "d/" through - root-owned ".". Reported by AIDA Shinra. - - tr -c: don't abort when translating with S2 larger than complement of S1 - * src/tr.c (main): Remove invalid assertion triggered by e.g., - tr -c a '[b*256]'. There's nothing wrong with having Set2 larger - than Set1. Reported by Guntram Blohm. - * tests/tr/Test.pm (no-abort-1): Test for the above. - * NEWS: Mention this bug fix. - * THANKS: Add Guntram Blohm. - -2007-05-03 Jim Meyering <jim@meyering.net> - - Avoid test failure when run with a permissive umask. - * tests/rm/no-give-up: Set permissions of test directory properly, - i.e., not depending on umask prohibiting go=w. - Reported by AIDA Shinra. - -2007-05-02 Paul Eggert <eggert@cs.ucla.edu> - - The following commands and options now support the standard size - suffixes kB, M, MB, G, GB, and so on for T, P, Y, Z, and Y: - head -c, head -n, od -j, od -N, od -S, split -b, split -C, - tail -c, tail -n. - * doc/coreutils.texi (od invocation, head invocation, tail invocation): - Document support for new size suffixes. - (head invocation, tail invocation): - Document that -n uses the same suffixes as -c. - (tail invocation): More-clearly document what leading "+" does. - * src/head.c (usage, string_to_integer): Support new suffixes. - * src/od.c (usage, main): Likewise. - * src/split.c (usage, main): Likewise. - * src/tail.c (usage, parse_options): Likewise. - Prompted by a patch from Evan Hunt. - -2007-05-02 Jim Meyering <jim@meyering.net> - - * src/du.c (usage): Tweak description of --dereference-args (-D) again. - Prompted by another request for clarification from Justin Pryzby. - - Invoke rm via 'setuidgid ... env PATH="$PATH" ...', as in fail-eperm. - * tests/rm/fail-2eperm: Patch from AIDA Shinra. - Reported by Peter Dyballa. - * THANKS: Add AIDA Shinra and Peter Dyballa. - -2007-04-28 Paul Eggert <eggert@cs.ucla.edu> - - * src/nohup.c (usage): Describe how standard input and output - are redirected. - -2007-04-25 Jim Meyering <jim@meyering.net> - - * src/du.c (usage): Clarify description of --dereference-args (-D). - Prompted by a report from Justin Pryzby. - - * bootstrap.conf (gnulib_modules): Add fseeko and ftello. - (gnulib_modules): Add autobuild. - -2007-04-24 Jim Meyering <jim@meyering.net> - - * THANKS: Add Andreas Frische. - * NEWS: Mention today's ls --color fix. - * tests/ls-2/tests (sl-dangle): Add a test for today's fix. - -2007-04-24 Eric Blake <ebb9@byu.net> - - ls --color once again colors dangling symlinks correctly - * src/ls.c (gobble_file): Much like the 2007-04-07 fix, - add a term to the expression that decides whether we need - stat and/or lstat calls. Reported by Andreas Frische. - -2007-04-16 Jim Meyering <jim@meyering.net> - - * src/cut.c (usage): Adjust synopsis to show that an OPTION is required. - Reported by Rudolf Kastl. - * THANKS: Add Rudolf Kastl. - -2007-04-11 Paul Eggert <eggert@cs.ucla.edu> - - split --line-bytes=N (-C N): don't create an empty file. - * src/split.c (line_bytes_split): Don't create an empty line - afterwards if the last buffer happens to be exactly full. - * tests/misc/split-fail: Add a test case for this. - * NEWS: mention this. - -2007-04-10 Jim Meyering <jim@meyering.net> - - ls: don't form or compute the length of strings that won't be used. - * src/ls.c (gobble_file): Form and compute length of strings for - block size, owner, group, author, major+minor numbers and file size - only if they'll actually be used. I.e., don't form most of them - when not producing long format output. - -2007-04-07 Jim Meyering <jim@meyering.net> - - Add a test for, and document, today's fix. - * NEWS: Mention today's ls --color fix. - * tests/ls-2/tests (sl-target): Add a test for today's fix. - * THANKS: Add Kirk Kelsey. - -2007-04-07 Eric Blake <ebb9@byu.net> - - Fix a bug in how the LS_COLORS ln=target attribute is handled. - * src/ls.c (gobble_file): Use "stat" (not lstat) also when the - ln=target attribute applies. Reported by Kirk Kelsey. - -2007-04-02 Jim Meyering <jim@meyering.net> - - * src/copy.c (copy_reg): Initialize local "con", before calling - getfscreatecon, in case that function (or its inline stub) does - not set it. - -2007-04-01 Paul Eggert <eggert@cs.ucla.edu> - - * src/ls.c (print_horizontal): Fix bug reported by Mike Frysinger: - ls -x DIR would sometimes output the wrong string in place of the - first entry. - * NEWS: Mention the bug fix. - * tests/ls/x-option: New file. - * tests/ls/Makefile.am (TESTS): Add x-option. - - gnulib moved md5 and sha1 modules into a new crypt/ directory; adapt - * bootstrap.conf (gnulib_modules): Adjust to gnulib's renaming of - md5 to crypt/md5 and sha1 to crypt/sha1. - -2007-03-30 Jim Meyering <jim@meyering.net> - - * NEWS: Mention these SELinux changes. - - * ChangeLog-selinux: Remove file. - Move its contents into this file, removing old dates. - - * src/runcon.c (main): Don't reorder arguments. Reported by - Ulrich Drepper in <http://bugzilla.redhat.com/232652>. - * tests/misc/runcon-no-reorder: New file. Test for the above. - * tests/misc/Makefile.am (TESTS): Add runcon-no-reorder. - - * src/runcon.c (main): Remove "." at end of a diagnostic. - - * src/runcon.c: New program. - * src/Makefile.am (bin_PROGRAMS): Add runcon. - (runcon_LDADD): Define. - * README: Add runcon to the list of programs. - * AUTHORS: Add this: runcon: Russell Coker - * tests/help-version: Add runcon as an exception. - * man/Makefile.am (dist_man_MANS): Add runcon.1. - (runcon.1): New dependency. - - mkfifo, mknod: Accept new "-Z, --context=C" option. - * src/mkfifo.c, src/mknod.c: Include <selinux/selinux.h>. - (main): Honor it. - * src/Makefile.am (mkfifo_LDADD, mknod_LDADD): Use $(LIB_SELINUX). - - mkdir: Accept new "-Z, --context=C" option. - * src/mkdir.c: Include <selinux/selinux.h>. - (main): Honor it. - * src/Makefile.am (mkdir_LDADD): Use $(LIB_SELINUX). - - * tests/cp/cp-a-selinux: New file. Test for the bug reported in - <http://bugzilla.redhat.com/219900>. - * tests/cp/Makefile.am (TESTS): Add cp-a-selinux. - - * tests/selinux: New file. - * tests/Makefile.am (EXTRA_DIST): Add selinux. - * tests/misc/selinux: Source the new script, rather than open coding it. - - Change how "cp -a" and "cp --preserve=context" work 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. - * src/copy.h (struct cp_options) [require_preserve_context]: New member. - * src/copy.c (copy_reg, copy_internal): Implement the above. - * src/mv.c (cp_option_init): Initialize the new member. - * src/install.c (cp_option_init): Likewise. - * src/cp.c (cp_option_init): Likewise. - (decode_preserve_arg): Set it or reset it. - - cp, mv, install: add SELinux support, but unlike with the Red Hat - patch, mv and cp do not provide the "-Z context" option. - * src/copy.c: Include <selinux/selinux.h>. - (restore_default_fscreatecon): New function. - (copy_reg): Make cp --preserve=context work for existing destination. - (copy_internal): Likewise for new destinations. - * src/copy.h (cp_options) [preserve_security_context]: New member. - * src/cp.c: Include <selinux/selinux.h>. - (selinux_enabled): New global. - (usage): Mention new --preserve=context option. - (PRESERVE_CONTEXT): Define/use. - (decode_preserve_arg): Handle PRESERVE_CONTEXT. - (main): Remove an obsolete comment. - If --preserve=context is specified on a system without SELinux - enabled, give a diagnostic and fail. - * src/mv.c: Include <selinux/selinux.h>. - Set x->preserve_security_context if SELinux is enabled. - * src/install.c: Accept new "-Z, --context=C" option. - Accept --preserve-context option (but not -P option). - Accept alternate spelling: --preserve_context, for now. - Include <selinux/selinux.h> and "quotearg.h". - (selinux_enabled, use_default_selinux_context): New globals. - (PRESERVE_CONTEXT_OPTION): Define. - (cp_option_init): Default: do not preserve security context. - (setdefaultfilecon): New function. - (main): Honor new options. - * src/Makefile.am (mv_LDADD, cp_LDADD, ginstall_LDADD): - Add $(LIB_SELINUX). - * src/system.h (GETOPT_SELINUX_CONTEXT_OPTION_DECL): Define. - - * tests/misc/selinux [VERBOSE]: Print version info for each - of the tested tools, not just ls. - - * src/c99-to-c89.diff: Remove the ls.c patch, now that I've - temporarily removed the offending c99'ism. - - * src/chcon.c (usage): Split a string literal that was longer than 509. - - * src/ls.c (gobble_file): Don't call getfilecon unless print_scontext. - Upon failed getfilecon, accept not just ENOTSUP, but also ENODATA. - - * src/c99-to-c89.diff: Adjust offsets. - - * AUTHORS: Add chcon. - - * src/c99-to-c89.diff: Remove trailing blanks. - - * src/chcon.c: Don't include "dirname.h". system.h already includes it. - - * gl/lib/selinux-at.c: Remove a use of HAVE_CONFIG_H. - - * src/c99-to-c89.diff: Handle a new c99'ism in ls.c. - - * src/id.c (main): Tweak id -Z diagnostic. - - id: Add SELinux support: -Z option. - * src/id.c (main): Apply patches from Fedora, with these changes: - Remove #ifdef WITH_SELINUX. - Use error (EXIT_FAILURE, not fprintf+exit(1). - * src/Makefile.am (id_LDADD): Define, so as to add $(LIB_SELINUX). - - stat: Add support for SELinux in the form of a %C format directive. - * src/stat.c (follow_links): Make this variable file-global. - (out_file_context): New function. - (print_statfs): Honor %C. - (print_stat): Honor %C. - (do_stat): Remove follow_links parameter. - (usage): Document the two %C directives. - (main): Accept -Z (though it's a no-op). - * src/Makefile.am (stat_LDADD): Define. - - ls: Add support for SELinux and a slightly modified -Z option. - I started with the patches from Red Hat. - The entries below tell how the code evolved. - - * src/ls.c (print_long_format, print_file_name_and_frills): When - there is no security context (due to getfilecon/lgetfilecon failing - with e.g. ENOTSUP), print it as "?", not "". - * src/ls.c (print_file_name_and_frills): Make -Z work without -l. - (length_of_file_name_and_frills): Likewise. - - * src/ls.c: Remove the --lcontext and --scontext options. - Change the way -Z, --context work so that it no longer implies -l. - Thus, -Z -l will work like -lcontext and -Z without -l will work - like --scontext. - - Adjust tests to reflect new 'ls -l' syntax -- affects only - systems with SELinux when operating on a file with no ACL. - These tests assumed that everything before the first space on - each line is the 10-byte mode string. But there may also be a "+" - in the 11th column, just before the space. However, note that this - is not new. The same thing would have happened even without the - change below, when listing a file with an ACL. - * tests/chmod/equals, tests/cp/cp-parents, tests/cp/fail-perm: - * tests/cp/link-preserve, tests/install/basic-1, tests/misc/mknod: - * tests/mkdir/parents, tests/mkdir/special-1, tests/mv/partition-perm: - - Don't make compilation depend on USE_ACL. An SELinux security - context counts as an "alternate access control method", so ls - must output a "+" for each file with a security context. - * src/ls.c [struct fileinfo] (have_acl): Declare unconditionally. - (FILE_HAS_ACL): Remove macro definition. Use f->have_acl directly. - (gobble_file): Record whether a file has a security context, and - update the condition used to determine whether to print the "+". - (gobble_file): Call getfilecon/lgetfilecon also when - format == long_format, so that we get the "+". - - * src/ls.c (gobble_file): Add a comment explaining why (with a - security context option) ls doesn't exit nonzero due to e.g., - getfilecon failing with errno == ENOTSUP. - - * src/ls.c (gobble_file): Ignore failure of getfilecon if it's due - to ENOTSUP. - - * src/ls.c (gobble_file): Factor out three small blocks using - getfilecon and lgetfilecon. - Don't ignore return value from getfilecon and lgetfilecon. - - * src/ls.c (print_long_format): Don't use ?: (empty 2nd arg with C - ternary operator). - (print_scontext_format): Likewise. - (print_scontext): Declare to be "bool", not int. Adjust uses. - - * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): Add $(LIB_SELINUX). - - * tests/misc/chcon: New file. - * tests/misc/chcon-fail: New file. - * tests/Makefile.am (check-root): Run new, root-only misc/chcon test. - * tests/misc/Makefile.am (TESTS): Add chcon and chcon-fail. - - * tests/misc/Makefile.am (TESTS): Add selinux. - * tests/misc/selinux: New file. - * tests/help-version: Skip chcon. - * man/chcon.x: New file. - * man/Makefile.am: Build chcon.1. - - New program: chcon - * gl/modules/selinux-at: New module. Check for libselinux and set - LIB_SELINUX here, unconditionally, rather than depending on - the configure-time --enable-selinux option. - * gl/modules/selinux-h: New module. - * bootstrap.conf (gnulib_modules): Add selinux-at. - * gl/lib/selinux-at.c, gl/lib/selinux-at.h: New files. - * gl/lib/se-selinux_.h: New file. - * gl/lib/se-context_.h: New file. - * gl/m4/selinux-selinux-h.m4: New file. - * gl/m4/selinux-context-h.m4: New file. - * src/Makefile.am (bin_PROGRAMS): Add chcon. - (chcon_LDADD): Define. - * README: Add chcon to the list of programs. - * src/chcon.c: Rewrite the original (Red Hat) chcon to use fts. - -2007-03-29 Jim Meyering <jim@meyering.net> - - * .vg-suppressions: Add libc-getpwuid-leak. - -2007-03-28 Jim Meyering <jim@meyering.net> - - Help translators include translation team's web or email address. - * src/system.h (emit_bug_reporting_address): New function. - * src/base64.c: Use it rather than a literal printf. - * src/basename.c, src/cat.c, src/chgrp.c, src/chmod.c: - * src/chown.c, src/chroot.c, src/cksum.c, src/comm.c, src/cp.c: - * src/csplit.c, src/cut.c, src/date.c, src/dd.c, src/df.c: - * src/dircolors.c, src/dirname.c, src/du.c, src/echo.c, src/env.c: - * src/expand.c, src/expr.c, src/factor.c, src/fmt.c, src/fold.c: - * src/head.c, src/hostid.c, src/hostname.c, src/id.c, src/install.c: - * src/join.c, src/kill.c, src/link.c, src/ln.c, src/logname.c: - * src/ls.c, src/md5sum.c, src/mkdir.c, src/mkfifo.c, src/mknod.c: - * src/mv.c, src/nice.c, src/nl.c, src/nohup.c, src/od.c: - * src/paste.c, src/pathchk.c, src/pinky.c, src/pr.c, src/printenv.c: - * src/printf.c, src/ptx.c, src/pwd.c, src/readlink.c, src/rm.c: - * src/rmdir.c, src/seq.c, src/setuidgid.c, src/shred.c, src/shuf.c: - * src/sleep.c, src/sort.c, src/split.c, src/stat.c, src/stty.c: - * src/su.c, src/sum.c, src/sync.c, src/system.h, src/tac.c: - * src/tail.c, src/tee.c, src/test.c, src/touch.c, src/tr.c: - * src/true.c, src/tsort.c, src/tty.c, src/uname.c, src/unexpand.c: - * src/uniq.c, src/unlink.c, src/uptime.c, src/users.c, src/wc.c: - * src/who.c, src/whoami.c, src/yes.c: Likewise. - - * src/stty.c: Don't include "vasprintf.h", now that its - declarations are guaranteed to be in gnulib's stdio.h. - * src/who.c: Likewise. - -2007-03-27 Jim Meyering <jim@meyering.net> - - * README: Use "install", not "ginstall" in the list of program names. - * src/Makefile.am (check-README): Substitute s/ginstall/install/. - -2007-03-25 Jim Meyering <jim@meyering.net> - - * src/c99-to-c89.diff: Regenerate. - -2007-03-25 Paul Eggert <eggert@cs.ucla.edu> - - Avoid the need for euidaccess and/or lstat on every directory entry - with 'rm -r dir' (without -f), if we are root, or if we are removing - a directory tree that is full of symbolic links. - * bootstrap.conf (gnulib_modules): Add write-any-file. - * src/copy.c: Include write-any-file.h. - (UNWRITABLE): Remove macro, replacing with.... - (writable_destination): New function, which uses can_write_any_file - to avoid the need for euidaccess when we are privileged. - (overwrite_prompt, abandon_move): Use it. - * src/remove.c: Include write-any-file.h. - (D_TYPE): New macro. - (DT_UNKNOWN, DT_DIR, DT_LNK) [!HAVE_STRUCT_DIRENT_D_TYPE]: New macros. - (write_protected_non_symlink): Don't bother to stat if we can write - any file. - (prompt): New arg PDIRENT_TYPE. All callers changed. - Use readdir dirent type to avoid the need for 'lstat' on each directory - entry in cases like 'rm -r dir', if we are root, or if the tree is - full of symbolic links. - (DT_IS_KNOWN, DT_MUST_BE): Remove. - (remove_entry): New arg DIRENT_TYPE_ARG. All callers changed. - -2007-03-24 Jim Meyering <jim@meyering.net> - - If strace malfunctions, skip the test rather than failing it. - * tests/mv/atomic: Required on a mips-unknown-linux-gnu system - running the aging linux-2.4.27-mipscvs-20040814. - -2007-03-23 Paul Eggert <eggert@cs.ucla.edu> - - * src/pathchk.c: Don't include euidaccess.h, as we don't call - euidaccess. - -2007-03-23 Jim Meyering <jim@meyering.net> - - * README-package-renamed-to-coreutils: Add a URL for the FAQ, - and a couple more archive links. - -2007-03-22 Jim Meyering <jim@meyering.net> - - Post-release version change. - * NEWS: Add a line for 6.9+. - * configure.ac (AC_INIT): Set new version string. - - Version 6.9. - * NEWS: Record release date and new version number. - * configure.ac (AC_INIT): New version number. - - * tests/mv/hard-3: Correct the preceding change: $3 -> $2. - -2007-03-22 Paul Eggert <eggert@cs.ucla.edu> - - Improve a test script. - * tests/mv/hard-3: Check for 'ls' failure, too. - Generate more-useful debugging output when 'ls' fails. - -2007-03-21 Jim Meyering <jim@meyering.net> - - Fix a test script not to claim an ext2 file system is of type xfs. - * tests/du/slink: When using df --local and df --type=TYPE, - test only the exit code. Don't bother with stdout. - Prompted by a report by Thomas Schwinge of an inaccurate diagnostic. - - * gl/lib/savewd.c: Remove this file, since the savewd_save change - is now in gnulib. The other wasn't useful. - -2007-03-20 Jim Meyering <jim@meyering.net> - - * gl/lib/acl.c: Remove this file, now that gnulib's version subsumes it. - - Skip part of this test when "." is not a local file system. - * tests/install/basic-1: Otherwise, it would fail on some NFS - file systems. - * tests/mkdir/p-3: Likewise. - -2007-03-19 Paul Eggert <eggert@cs.ucla.edu> - - * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): - Add $(LIB_ACL_TRIVIAL). - -2007-03-18 Jim Meyering <jim@meyering.net> - - Fix a generic NFS-related test failure. - * tests/mkdir/p-3: When setting up an unreadable "." in an - inaccessible parent, make the parent inaccessible *after* making "." - unreadable. Otherwise, running "chmod a-r ." in an already- - inaccessible parent would fail on NFS with "Stale NFS file handle". - - Fix a bug in how pr -m -s works. - * NEWS: Describe how the fix affects pr. - * src/pr.c (init_parameters): The --merge (-m) option does - not imply --expand-tabs (-e), so don't set "untabify_input". - Reported by Wis Macomson. - * tests/misc/pr: New file. Test for the above fix. - * tests/misc/Makefile.am (TESTS): Add pr. - * THANKS: Update. - -2007-03-17 Jim Meyering <jim@meyering.net> - - Detect use of AC_CONFIG_AUX_DIR also when its argument is quoted. - * bootstrap: Put ""s around use of $build_aux, in case - someone uses a name containing shell meta-characters. - Reported by Alfred M. Szmidt. - * tests/misc/tty-eof: Add shuf to the list of tested commands. - - Avoid test failure on NFS-mounted Solaris ZFS file system. - * tests/du/basic: Skip a test if "." is on a non-local file system. - - Avoid an obscure build failure, prefer waitpid over wait. - * src/install.c (strip): Use waitpid, not wait. It's equivalent, - but feels less obsolescent. - - * bootstrap: Don't use \> in grep regexp. For HP-UX. - -2007-03-16 Jim Meyering <jim@meyering.net> - - Begin adding support for Solaris ZFS (4 entries per trivial ACL) - * gl/lib/acl.c (ACL_NOT_WELL_SUPPORTED): New macro. - (file_has_acl, copy_acl): Use it, rather than enumerating errno values. - (is_trivial_acl): New function. Incomplete, for now. - (file_has_acl, copy_acl): Use the new function, rather than - counting the number of entries in an ACL. - - * bootstrap: Update from gnulib. - - * .x-sc_prohibit_atoi_atof: Add TODO here, too. - -2007-03-16 Paul Eggert <eggert@cs.ucla.edu> - - * src/copy.c: Include filemode.h. - (overwrite_prompt): Say "try to overwrite", not "overwrite", to - make it clearer that the attempt may fail. Problem reported by - Dan Jacobson in: - http://lists.gnu.org/archive/html/bug-coreutils/2007-03/msg00130.html - Output symbolic mode as well as numeric. - * tests/mv/i-2 (fail): Adjust to new prompt format. - -2007-03-15 Jim Meyering <jim@meyering.net> - - Enforce policy: don't use *scanf functions. - * Makefile.maint (sc_prohibit_atoi_atof): Add to regexp and diagnostic. - * .x-sc_prohibit_atoi_atof: Give stty a temporary pass. - * TODO: note that stty.c needs this small clean-up. - -2007-03-13 Jim Meyering <jim@meyering.net> - - Prepare to work on ACL-related failure when using Solaris ZFS. - * gl/lib/acl.c: New file, copied from gnulib. - - Work around a failing test due to an NFS-based race condition. - * tests/cp/sparse: Accept a report that the copy is *smaller*. - -2007-03-12 Jim Meyering <jim@meyering.net> - - Make bootstrap.conf a tiny bit more generic. - * bootstrap.conf (XGETTEXT_OPTIONS): Exclude gettext-related .m4 - files when e.g., AM_GNU_GETTEXT([external] appears in configure.ac. - -2007-03-10 Jim Meyering <jim@meyering.net> - - Try to fix today's NFS-related failure: Treat ESTALE like EACCES. - * gl/lib/savewd.c: Copy this file from gnulib, then change - "errno != EACCES" to (errno != EACCES && errno != ESTALE). - The symptom was this failure in tests/install/basic-1: - ginstall: cannot create directory `rel/a': Stale NFS file handle - - The preceding change solved part of the problem. Now ginstall fails. - * tests/install/basic-1: Temporarily, don't redirect ginstall's - stderr to /dev/null, so I can see why the NFS autobuilder's NFS test - is failing. - - * tests/install/basic-1: When setting up an unreadable "." in an - inaccessible parent, make the parent inaccessible *after* making "." - unreadable. Otherwise, running "chmod a-r ." in an already- - inaccessible parent would fail on NFS with "Stale NFS file handle". - Reported by Bob Proulx. - - * Makefile.maint (po-check): Exclude c99-to-c89.diff. - -2007-03-09 Jim Meyering <jim@meyering.net> - - Avoid test failures on Darwin 7.9.0 (MacOS X 10.3.9) - * tests/chgrp/basic: Don't let failure by chgrp to set the - group of a symlink make this test fail. Do give a diagnostic. - In the chgrp-no-change-ctime test, add darwin7.9.0 as another - known-failing system. - When failing on some other system, print $host_triplet, too. - Also avoid test failures on Darwin 8.8.x (MacOS X 10.4). - Reported by Peter Fales. - -2007-03-08 Jim Meyering <jim@meyering.net> - - * src/c99-to-c89.diff: Reflect the new c99'ism, update offsets. - -2007-03-08 Paul Eggert <eggert@cs.ucla.edu> - - rm without -f: give a better diagnostic when euidaccess fails. - * src/remove.c (write_protected_non_symlink): Return int, not bool, - so that we can indicate failure too (as a postive error number). - (prompt): If write_protected_non_symlink fails, report that error - number and fail rather than charging ahead and removing the dubious - entry. Redo the logic of printing a diagnostic so that we need to - invoke quote (full_filename (...)) only once. More details at: - <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9952/focus=9996> - -2007-03-08 Jim Meyering <jim@meyering.net> - - Generalize a few more cvs-isms. - * bootstrap (checkout_only_file): Rename from CVS_only_file. - Change comments and diagnostics not to say "CVS". - - * bootstrap: Run libtool, if necessary. - - Make bootstrap a little more general. - * bootstrap (build_aux): Factor out/use this definition. - Formally require a "AC_CONFIG_AUX_DIR($build_aux)" line in configure.ac. - (insert_sorted_if_absent): Move function definition "up", to - precede new first use. - If $build_aux/ doesn't exist initially, create it, and - mark it as ignored. - -2007-03-03 Andrew Church <achurch@achurch.org> (tiny change) - Paul Eggert <eggert@cs.ucla.edu> - - Fix a bug: cp -x would fail to set mount point permissions. - * NEWS: mention cp -x bug fix - * src/copy.c (copy_internal): Don't return immediately after - copying a mount point that we do not intend to recurse under. - Based on a patch by Andrew Church. - -2007-03-03 Jim Meyering <jim@meyering.net> - - pwd-unreadable-parent: Skip test on ia64/Linux, too. - * tests/misc/pwd-unreadable-parent: Also skip when $REPLACE_GETCWD. - Reported by Bob Proulx. - -2007-03-02 Jim Meyering <jim@meyering.net> - - pwd-unreadable-parent: Skip test on non-Linux/GNU systems. - * tests/misc/pwd-unreadable-parent: Rather than trying to decide - whether this test has a chance of succeeding, run it only when - $(host_os) is linux-gnu. It was failing on powerpc-apple-darwin8.8.0 - * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Add host_os=$(host_os). - - * tests/misc/pwd-long: Also allow "+" in $PWD. - - Remove another coreutils-ism. Formatting cleanup. - * Makefile.maint (my-distcheck): Update an outdated comment. - (emit_upload_commands): Use $(PACKAGE) rather than "coreutils". - (my-distcheck): Skip the c99/c89 check if there's no such .diff file. - -2007-03-01 Jim Meyering <jim@meyering.net> - - * Makefile.maint (warn_cflags): Hoist, adding "-Dlint -O". - (my-distcheck): Use the new variable, instead of too-long literal. - - Make "make syntax-check" rules less coreutils-specific. - * Makefile.maint (sc_cast_of_x_alloc_return_value): Use CVS_LIST_EXCEPT. - (sc_cast_of_alloca_return_value): Likewise. - (sc_root_tests): Do nothing if there is no check-root target - in tests/Makefile.am. - - Run the writable-files check only for release-building targets. - * Makefile.maint (local-checks-available): Remove writable-files. - (alpha beta major): Put it here, instead. - - "make syntax-check" now runs only Makefile.cfg-selected tests - * Makefile.maint (syntax-check-rules): Hoist this definition so that - it precedes the indirect use in the definition of $(local-check). - (local-check): Use :=, not just "=". - (syntax-check): Depend on $(local-check), not $(syntax-check-rules). - -2007-02-28 Bruno Haible <bruno@clisp.org> - - * bootstrap.conf (gnulib_modules): Replace xreadlink with - xreadlink-with-size. Add xreadlink. - * src/copy.c (copy_internal): Update. - * src/ls.c (is_directory): Update. - * src/stat.c (print_stat): Update. - * src/readlink.c (main): Use the one-argument xreadlink function. - -2007-02-28 Paul Eggert <eggert@cs.ucla.edu> - - * doc/coreutils.texi (Common options): --si outputs "M", not "MB". - Problem reported by Philip Rowlands in - <http://lists.gnu.org/archive/html/bug-coreutils/2007-02/msg00283.html>. - -2007-02-28 Jim Meyering <jim@meyering.net> - - * .x-sc_file_system: Add the new test, tests/misc/df-P, to this - list of exceptions, for the "make distcheck" sc_file_system rule. - - * Makefile.maint (gnulib_snapshot_date): Remove now-unused definition. - -2007-02-27 Paul Eggert <eggert@cs.ucla.edu> - - Make df -P immune to effects of e.g., the BLOCK_SIZE envvar. - * NEWS: With -P, the default block size and output format is not - affected by DF_BLOCK_SIZE, BLOCK_SIZE, or BLOCKSIZE. - * src/df.c (main): Implement this. - -2007-02-27 Jim Meyering <jim@meyering.net> - - Add a test for the above. - * tests/misc/df-P: New file. - * tests/misc/Makefile.am (TESTS): Add df-P. - -2007-02-25 Jim Meyering <jim@meyering.net> - - * Makefile.maint (announcement): Adjust so that it works with - announce-gen's --gnulib-snapshot-time-stamp option. - Indent one of the command lines using TAB, not 8 spaces. - - Post-release version change. - * NEWS: Add a line for 6.8+. - * configure.ac (AC_INIT): Set new version string. - -2007-02-24 Jim Meyering <jim@meyering.net> - - Version 6.8. - * NEWS: Record release date and new version number. - * configure.ac (AC_INIT): New version number. - - Don't skip this test on new-enough Linux/GNU systems. - * tests/misc/pwd-unreadable-parent: Test $REPLACE_GETCWD = 0, - rather than for __GETCWD_PREFIX in config.h (the latter is no - longer defined, ever, due to gnulib changes). - * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Define REPLACE_GETCWD. - - Remove the "gnits" option; it prohibits my using "+" as a version - string suffix, and all it does (beyond the default "gnu" option) - is to _require_ the THANKS file. - * configure.ac (AM_INIT_AUTOMAKE): Remove it. - - Remove all AUTOMAKE_OPTIONS settings in Makefile.am files. - * tests/chgrp/Makefile.am, tests/chmod/Makefile.am: - * tests/chown/Makefile.am, tests/cp/Makefile.am: - * tests/du/Makefile.am, tests/expr/Makefile.am: - * tests/factor/Makefile.am, tests/general/Makefile.am: - * tests/install/Makefile.am, tests/ln/Makefile.am: - * tests/ls/Makefile.am, tests/mkdir/Makefile.am: - * tests/mv/Makefile.am, tests/readlink/Makefile.am: - * tests/rm/Makefile.am, tests/rmdir/Makefile.am: - * tests/seq/Makefile.am, tests/stty/Makefile.am: - * tests/tee/Makefile.am, tests/touch/Makefile.am: - - * README: Document the OSF/1 4.0d build failure and work-around. - Reported by Bruno Haible. - - * NEWS: Use a simple "+" suffix to denote pre-release, not "-dirty". - Nicer connotations. - * configure.ac: Use 6.7+, not 6.7-dirty. - -2007-02-24 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: sort no longer compresses temporaries by default. - * bootstrap.conf: Remove findprog. - * doc/coreutils.texi (sort invocation): The default is to not - compress. Don't treat "" specially. - * src/sort.c: Don't include findprog.h. - (create_temp): Compress only if the user specified --compress-program. - * tests/misc/sort-compress: Adjusts tests to match new behavior. - -2007-02-24 Jim Meyering <jim@meyering.net> - - Avoid a shell syntax error, when building with an inadequate Perl. - * man/Makefile.am (.x.1): Add quotes around $(PERL) in case, since - it can expand to "/.../missing perl". - - * man/Makefile.am (.x.1): Warn when unable to update a man page. - Suggestion from Bruno Haible. - -2007-02-23 Bruno Haible <bruno@clisp.org> - - Handle better the combination of old Perl and a pre-c99 compiler. - * man/Makefile.am (.x.1): If the autoconf test has determined that - perl is missing or not a sufficient version, do nothing. - - * tests/readlink/can-e: Put the closing double-quote at the end of a - backquoted word, not in the middle. Works around a bug in sh on - OSF/1 4.0d. - * tests/readlink/can-f: Likewise. - * tests/readlink/can-m: Likewise. - - * tests/du/slink: Skip the test if executing on an nfsv3 file system. - This avoids a test failure at least on OSF/1 4.0d. - -2007-02-23 Jim Meyering <jim@meyering.net> - - * src/date.c (usage): Split a diagnostic that had grown to be - longer than the C89 maximum of 509 bytes. - -2007-02-23 Ed Santiago <ed@edsantiago.com> - - * src/date.c (usage): Mention that --rfc-3339 uses space, not 'T', - for a separator. Include sample RFC 2822 and 3339 output. - -2007-02-23 Jim Meyering <jim@meyering.net> - - With -Dlint, make shuf free all heap-allocated storage. - * src/shuf.c (main): Move declaration of input_lines to - function scope, and initialize to NULL, so we can free it. - [lint]: Free all malloc'd memory. - * tests/misc/shuf: Also test shuf's -e and -i options. - -2007-02-22 Jim Meyering <jim@meyering.net> - - Merge in a change from some other incarnation of this file (gzip?) - * bootstrap (gnulib_tool): Skip get_translations if there is no po/ dir. - - Adjust preceding change not to perform an unaligned access. - * src/copy.c (copy_reg): Undo previous change. Instead, make - it clearer that we're using a single-byte sentinel, and - [lint]: Initialize sizeof (uintptr_t) - 1 bytes after the sentinel. - Reported by Andreas Schwab. - - Placate valgrind, wrt ./cp --sparse=always - * src/copy.c (copy_reg): Place the sentinel by setting a - full word's worth of bits, not just a single byte's worth. - This avoids a harmless (but distracting) case of memory being - used-uninitialized. - -2007-02-21 Paul Eggert <eggert@cs.ucla.edu> - - Honor dd's noatime flag if possible, even if not supported on build fs - * doc/coreutils.texi (dd invocation): Warn that noatime might not be - reliable. - * src/dd.c (flags, usage): Look at O_NOATIME, not - HAVE_WORKING_O_NOATIME, to decide whether to support the noatime - flag, so that dd attempts O_NOATIME even if the build file system - does not support it. Problem reported by Jim Meyering today in - bug-coreutils. - * tests/dd/misc: Generate a warning, not a failure, if noatime - exists but fails. - -2007-02-21 Jim Meyering <jim@meyering.net> - - * tests/misc/date: Remove vestigial use of Data::Dumper. - -2007-02-20 Paul Eggert <eggert@cs.ucla.edu> - - * src/copy.c (cached_umask): Cast -1 to mode_t to avoid a warning - about out-of-range initializer with Sun C 5.8. - -2007-02-20 Jim Meyering <jim@meyering.net> - - * bootstrap (CVS_only_file): Use README-hacking. - - Now that we use GIT, not cvs, rename README-cvs. - * README-hacking: Renamed from... - Update to reflect that we now use git. - - * README-cvs: ...this. - - * src/env.c (main): When invoked with no arguments (i.e. when printing - the environment), use a local variable to iterate through the global - "environ" array, rather than "environ" itself. This is solely to - avoid changing the environment for an LD_PRELOAD-substituted "puts" - or "exit" function. Tiny patch by Harvey Eneman. See - <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9735>. - * THANKS: Update. - - * bootstrap: Move definitions of temporary directory names and the - new bt_regex "up" to precede all uses, so it's clearer what their - scope is. Also, use [.], rather than \\., since the former works - even if eval'd. - - * bootstrap: Remove occurrences of $bt (._bootmp) from lib/Makefile. - Based on the bison 2007-02-19 change by Joel E. Denny. - -2007-02-19 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: sort now uses a --compress-program option rather than - an environment variable. - * doc/coreutils.texi (sort invocation): Document this. - * src/sort.c (usage): Likewise. - (COMPRESS_PROGRAM_OPTION): New const. - (long_options, create_temp, main): Support new option. - * tests/misc/sort-compress: Test it. - -2007-02-19 Jim Meyering <jim@meyering.net> - - * bootstrap: Fix typo s/dowloading/downloading/ in --help output. - -2007-02-18 Jim Meyering <jim@meyering.net> - - * src/system.h: Don't include exit.h, now that it's subsumed - by the gnulib-generated stdlib.h. - - * tests/rm/fail-eacces: Skip this test when running as root. - Reported by Matthew Woehlke. - - * bootstrap: Use "._bootmp" as the temporary directory name, - not ".#bootmp". The latter's "#" caused trouble with the new, - gnulib-added "LINK_WARNING_H = $(top_srcdir)/.#bootmp/..." line. - -2007-02-14 Paul Eggert <eggert@cs.ucla.edu> - - * bootstrap.conf (gnulib_modules): Add c-strcase. Remove strcase. - * src/dircolors.c: Include c-strcase.h. - (dc_parse_stream): Use c_strcasecmp rather than - strcasecmp to avoid unreliable results in locales like Turkish - where strcasecmp is incompatible with the C locale. - -2007-02-13 Jim Meyering <jim@meyering.net> - - Also check for and print stderr output, in case a program fails. - * tests/misc/tty-eof: Occasionally (not reproducible), this - test would fail, with one or more programs exiting nonzero, e.g., - tty-eof: sha224sum exited with status 1 (expected 0) - Now, maybe we'll get a clue, the next time that happens. - -2007-02-12 Jim Meyering <jim@meyering.net> - - * .x-sc_useless_cpp_parens: Ignore a false-positive in a shell script. - - * tests/misc/pwd-unreadable-parent: Skip the test if we're - definitely using the replacement. - * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Define CONFIG_HEADER. - -2007-02-10 Jim Meyering <jim@meyering.net> - - Remove excess leading spaces that would make help2man misbehave. - * src/printf.c (usage): Remove excess spaces on 2nd line of %b desc. - * src/nl.c (usage): Remove excess spaces on 2nd line of pBRE desc. - * src/dd.c (usage): Remove excess spaces on 2nd line of sync desc. - * src/date.c (usage): Use two spaces after each optional flag, not one. - Reported by Thomas Huriaux in <http://bugs.debian.org/410407>. - - * Makefile.maint (longopt_re): Relax the regexp, making square - brackets optional, so it matches the newly reported violations, too. - - * src/csplit.c (usage): Use two spaces (not one) to separate - each option string from its description, so help2man formats - the derived man page properly. Reported by Thomas Huriaux in - <http://bugs.debian.org/410407>. - * src/df.c (usage): Likewise. - * src/du.c (usage): Likewise. - * src/install.c (usage): Likewise. - * src/ls.c (usage): Likewise. - -2007-02-03 Jim Meyering <jim@meyering.net> - - Test for today's gnulib/lib/getcwd.c fix affecting pwd and readlink - * NEWS: Mention the bug fix. - * tests/misc/pwd-unreadable-parent: New file. - * tests/misc/Makefile.am (TESTS): Ad pwd-unreadable-parent. - -2007-02-02 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: Document fix for cp --preserve=mode. - * src/copy.c (copy_internal): Omit the group- or other-writeable - permissions when creating a directory, to avoid a race condition - if the special mode bits aren't right just after the directory is - created. - * src/cp.c (make_dir_parents_private): Likewise. - * tests/cp/parent-perm-race: Test for the "cp --preserve=mode" - race fix in copy.c. - - * NEWS: Document fix for cp --parents. - * src/cp.c (make_dir_parents_private): Report the error sooner with - "cp --parents DIR/FILE DEST" when DIR is a non-directory, thus not - creating the directory, DEST/DIR. - * tests/cp/cp-parents: Test for the non-race-condition bug fixed - by the above change. - -2007-02-02 Jim Meyering <jim@meyering.net> - - * src/nl.c (proc_text): Use "NULL", not "(struct re_registers *) 0". - - * src/c99-to-c89.diff: Make shred.c Index: and a/b prefixes - consistent, so this can be applied with patch -p0. - Reported by Matthew Woehlke. - - Arrange for "make check-root" to run the new root-only test. - * tests/Makefile.am (t9): New target, to run tests/cp/cp-a-selinux. - (all_t): Add t9. - - * Makefile.maint (patch-check): Use patch with its -p2 option, - since that makes this check slightly more strict. - - Use a directory on a loopback device mounted with -o context=... - * tests/cp/cp-a-selinux: Since this test now runs mount and umount, - it is a root-only one. - -2007-01-29 Jim Meyering <jim@meyering.net> - - Plug a leak in ls. - * src/ls.c (print_dir): Don't leak a "DIR"+fd upon failure to - determine dev/inode or upon detecting a symlink loop. - - * src/ls.c: Rename three global variables. - (cwd_file): Rename from 'files'. - (cwd_n_alloc): Rename from 'nfiles'. - (cwd_n_used): Rename from 'files_index'. - - Shave 8 bytes off the size of "struct fileinfo". - * src/ls.c (fileinfo): Put all members of type "bool" together. - -2007-01-28 Paul Eggert <eggert@cs.ucla.edu> - - Modify "ls" to sort its data faster, using the new gnulib mpsort - module rather than qsort. This is particularly a win in - environments where strcoll is slow, since mpsort typically calls - strcoll less often than qsort does. - * bootstrap.conf (gnulib_modules): Add mpsort. - * src/ls.c: Include mpsort.h. - (sorted_file, sorted_file_alloc): New vars, for a new vector of - pointers to the file info, for speed. - (clear_files, extract_dirs_from_files, sort_files, print_current_files): - (print_many_per_line, print_horizontal, print_with_commas): - (calculate_columns): Set and use new vector. - (initialize_ordering_vector): New function. - -2007-01-26 Paul Eggert <eggert@cs.ucla.edu> - - Adjust to today's change to gnulib, which added a module for - string.h to replace the little include files like strcase.h. - * src/dircolors.c: Don't include strcase.h. - * src/system.h: Don't include mempcpy.h, memrchr.h, stpcpy.h, strpbrk.h. - -2007-01-26 Jim Meyering <jim@meyering.net> - - * src/dd.c (advance_input_after_read_error): Change diagnostic to - say "invalid file offset" rather than "screwy file offset". - - * .x-sc_cast_of_argument_to_free: Remove this file. - * Makefile.am (EXTRA_DIST): Likewise. - -2007-01-25 Dan Hipschman <dsh@linux.ucla.edu> - - * src/sort.c (create_temp): Remove superfluous access-X_OK - check. find_in_path does this for us. - -2007-01-24 Jim Meyering <jim@meyering.net> - - Remove usually-skipped test. - * tests/cp/open-perm-race: Remove this file. It is subsumed - by parent-perm-race. - * tests/cp/Makefile.am (TESTS): Remove open-perm-race. - * tests/sort/Makefile.am: Regenerate. - - Pass "make distcheck" again. - * src/sort.c (usage): Split a diagnostic that had grown to be - longer than the C89 maximum of 509 bytes. - * .x-sc_cast_of_argument_to_free: New file. Allow a cast in sort.c. - FIXME: this is just temporary, while we wait to remove the offending - access-calling code. - * Makefile.am (EXTRA_DIST): Add .x-sc_cast_of_argument_to_free. - * Makefile.maint (sc_cast_of_argument_to_free): Use the - canonical, $$($(CVS_LIST_EXCEPT)). - * m4/.gitignore, m4/.cvsignore, lib/.gitignore, lib/.cvsignore: Update. - -2007-01-24 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: New option sort -C, proposed by XCU ERN 127, which looks - like it will be approved. Also add --check=quiet, --check=silent - as long aliases, and --check=diagnose-first as an alias for -c. - * doc/coreutils.texi (sort invocation): Document this. - Also, mention that sort -c can take at most one file. - * src/sort.c: Implement this. - Include argmatch.h. - (usage): Document the change. - (CHECK_OPTION): New constant. - (long_options): --check now takes an optional argument, and is now - treated differently from 'c'. - (check_args, check_types): New constant arrays. - (check): New arg CHECKONLY, which suppresses diagnostic if -C. - (main): Parse the new options. - * tests/sort/Test.pm (02d, 02d, incompat5, incompat6): - New tests for -C. - -2007-01-24 Jim Meyering <jim@meyering.net> - - Fix a typo. - * tests/misc/sort-compress: Use $abs_top_builddir, not $top_builddir. - * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Likewise. - - Don't depend on "which". - * tests/misc/sort-compress (SORT): Use $abs_builddir, now which. - * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Export top_builddir. - -2007-01-24 Dan Hipschman <dsh@linux.ucla.edu> - - Test sort compression. - * tests/misc/Makefile.am: Add the test. - * tests/misc/sort-compress: New file containing the tests. - -2007-01-24 Jim Meyering <jim@meyering.net> - - * NEWS: sort temp file compression: tweak wording. - * src/sort.c (struct sortfile) [name]: Declare member to be const. - -2007-01-21 Jim Meyering <jim@meyering.net> - - * src/sort.c (MAX_FORK_RETRIES_COMPRESS, MAX_FORK_RETRIES_DECOMPRESS): - In pipe_fork callers, use these named constants, not "2" and "8". - (proctab, nprocs): Declare to be "static". - (pipe_fork) [lint]: Initialize local, pid, - to avoid unwarranted may-be-used-uninitialized warning. - (create_temp): Use the active voice. Describe parameters, too. - -2007-01-21 James Youngman <jay@gnu.org> - - Centralize all the uses of sigprocmask(). Don't restore an invalid - saved mask. - * src/sort.c (enter_cs, leave_cs): New functions for protecting - code sequences against signal delivery. - * (exit_cleanup): Use enter_cs and leave_cs instead of - calling sigprocmask directly. - (create_temp_file, pipe_fork, zaptemp): Likewise - -2007-01-21 Dan Hipschman <dsh@linux.ucla.edu> - - Add compression of temp files to sort. - * NEWS: Mention this. - * bootstrap.conf: Import findprog. - * configure.ac: Add AC_FUNC_FORK. - * doc/coreutils.texi: Document GNUSORT_COMPRESSOR environment - variable. - * src/sort.c (compress_program): New global, holds the name of the - external compression program. - (struct sortfile): New type used by mergepfs and friends instead - of filenames to hold PIDs of compressor processes. - (proctab): New global, holds compressor PIDs on which to wait. - (enum procstate, struct procnode): New types used by proctab. - (proctab_hasher, proctab_comparator): New functions for proctab. - (nprocs): New global, number of forked but unreaped children. - (reap, reap_some): New function, wait for/cleanup forked processes. - (register_proc, update_proc, wait_proc): New functions for adding, - modifying and removing proctab entries. - (create_temp_file): Change parameter type to pointer to file - descriptor, and return type to pointer to struct tempnode. - (dup2_or_die): New function used in create_temp and open_temp. - (pipe_fork): New function, creates a pipe and child process. - (create_temp): Creates a temp file and possibly a compression - program to which we filter output. - (open_temp): Opens a compressed temp file and creates a - decompression process through which to filter the input. - (mergefps): Change FILES parameter type to struct sortfile array - and update access accordingly. Use open_temp and reap_some. - (avoid_trashing_input, merge): Change FILES parameter like - mergefps and call create_temp instead of create_temp_file. - (sort): Call create_temp instead of create_temp_file. - Use reap_some. - (avoid_trashing_input, merge, sort, main): Adapt to mergefps. - - The idea of compressing sorts temporary files was first - suggested/implemented by Jay Soffian in 1998, and again - by Charles Randall in 2001. - -2007-01-20 Jim Meyering <jim@meyering.net> - - * tests/misc/pwd-long: Work properly even when run from the - wrong one of two or more bind-mounted sibling directories. - Suggestion from Mike Stone in <http://bugs.debian.org/380552>. - -2007-01-20 Paul Eggert <eggert@cs.ucla.edu> - - Standardize on list of signals when an app catches signals. - * src/csplit.c (main): Also catch SIGALRM, SIGPIPE, SIGPOLL, - SIGPROF, SIGVTALRM, SIGXCPU, SIGXFSZ. - * src/ls.c (main): Likewise (except SIGPIPE was already caught). - Note that ls.c is special, as it also catches SIGTSTP. - * src/sort.c (main): Likewise. Also catch SIGQUIT. More details in - <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9510>. - -2007-01-19 Dan Hipschman <dsh@linux.ucla.edu> - and Paul Eggert <eggert@cs.ucla.edu> - - * src/sort.c (cleanup): Clear temphead at the end. - (exit_cleanup): New function. - (main): Don't invoke atexit until we're ready. - Invoke it with exit_cleanup, not with cleanup and close_stdout, - to avoid a race condition with cleanup and signal handling. More - details: http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9508 - -2007-01-18 Jim Meyering <jim@meyering.net> - - * src/c99-to-c89.diff: Adjust remove.c offsets. - -2007-01-17 Jim Meyering <jim@meyering.net> - - Make "rm --interactive=never ..." never prompt. - * NEWS: Mention this. - * src/remove.h (enum rm_interactive): New ternary type. - (struct rm_options) [interactive]: Use it, here -- rather than bool. - * src/remove.c (prompt): Reflect type change. - * src/mv.c (rm_option_init): Initialize to RMI_NEVER now. - * src/rm.c (main): Add a FIXME comment for '-d' option. - Adapt to type change of rm_options.interactive. - - * tests/rm/i-never: New file. Test for the above fix. - * tests/rm/Makefile.am (TESTS): Add i-never. - -2007-01-15 Jim Meyering <jim@meyering.net> - - * bootstrap (gnulib_tool): When adding to .cvsignore and .gitignore, - emit foo.h, for each foo_.h. This yields one false-positive, fts.h, - but that's ok, since fts_.h will eventually be renamed. - - * src/remove.c (remove_dir): Don't use errno in diagnostic. - Root-only test failure reported by Alex van Hout and Jon Grosshart in - <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9415/focus=9415>. - - * bootstrap.conf (avoided_gnulib_modules): Fix my typo: - s/--avoid=canonicalize-lgpl/--avoid=canonicalize-gpl/ - -2007-01-14 Bruno Haible <bruno@clisp.org> - - Enable use of gnulib's new fchdir module. - * bootstrap.conf (avoided_gnulib_modules): Avoid canonicalize-lgpl, - since we use canonicalize. - (gnulib_modules): Add fchdir. - * m4/jm-macros.m4 (coreutils_MACROS): Remove fchdir-stub. - -2007-01-13 Jim Meyering <jim@meyering.net> - - * tests/cp/open-perm-race: Remove gdb-based test. - It would run only when compiled with -g, and besides is now - subsumed by file-perm-race. - * tests/cp/Makefile.am (TESTS): Remove open-perm-race. - - * Transform all Makefile.am files so that when running "make check", - CU_TEST_NAME is set to the name of the test. This is so that when I - run valgrind-enabled (--log-file-qualifier=CU_TEST_NAME) "make check" - on the entire package it is more convenient to map a leak or error - found in a valgrind log file back to the offending test. - Use this command: - (echo tests/Makefile.am.in; find tests -name Makefile.am) \ - |xargs perl -pi -e '/^(\s*)PATH=...VG_PATH_PREFIX/ and ' \ - -e 'print $1,q|CU_TEST_NAME=`basename $(abs_srcdir)`,$$tst |,"\\\n"' - -2007-01-11 Jim Meyering <jim@meyering.net> - - Avoid a leak in expr's implementation of the ":" (match) operator. - * src/expr.c (docolon): Free the regexp buffer using regfree, rather - than doing it manually, being careful to set fastmap to NULL first. - Free any re_regs.start and .end members, if necessary. - - * tests/misc/test-diag: Work also when libc's error function - reports the entire program name ("../../src/test"), rather than - just the final component. - -2007-01-10 Jim Meyering <jim@meyering.net> - - Don't use fts_statp uninitialized for "chown -RLh --preserve-root ...". - * src/chown-core.c (FTSENT_IS_DIRECTORY): New macro. - (change_file_owner): Perform the ROOT_DEV_INO_CHECK only for a - directory. Non-directory entries lack fts_statp data when using - the FTS_NOSTAT option. - -2007-01-07 Jim Meyering <jim@meyering.net> - - * tests/sample-test: Update copyright date to 2007. - * Makefile.maint (copyright-check): Also check the copyright date - in tests/sample-test. - -2007-01-06 Jim Meyering <jim@meyering.net> - - * tests/fmt/basic (pfx-only, pfx-of-pfx): New tests, - based on examples from G.P. Halkes in - <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/9388>. - -2007-01-06 G.P. Halkes <buscom@ghalkes.nl> - - * src/fmt.c (copy_rest): Correct prefix handling. - Don't elide a line with the prefix followed by only white space. - (get_line): Move EOF-check to loop-termination condition. - * tests/fmt/basic (pfx-1): Adjust test to expect desired result. - (pfx-2): Remove test; its premise was contrary to the documentation. - -2007-01-05 Jim Meyering <jim@meyering.net> - - Avoid a used-uninitialized bug for invalid input, i.e., when the size - of the input, not counting newlines, is 1 % 4. - * gl/lib/base64.c (base64_decode): Don't hard-code inlen==4. - It may be smaller when flushing. - -2007-01-05 Mike Frysinger <vapier@gentoo.org> - - * src/dircolors.hin: Add a TERM directive for cons25. - -2007-01-04 Jim Meyering <jim@meyering.net> - - * Makefile.cfg (local-checks-to-skip): Skip strftime-check, in - case you don't have convenient access to glibc info documentation. - - Use the release year, not the current year. - * src/groups.sh (version): Use a better name: @RELEASE_YEAR@. - * src/Makefile.am (RELEASE_YEAR): Define it. - (.sh): Use it. - Thanks to a prod from Eric Blake. - - Ensure that "group --version" always prints the current year. - * src/groups.sh (version): Use @CURRENT_YEAR@, rather than 2006. - * src/Makefile.am (.sh): Also substitute for @CURRENT_YEAR@. - Suggestion from Eric Blake. - - When decoding, always allow newlines in input, with almost no - performance impact. - * src/base64.c (do_decode): Initialize decode context. - Call base64_decode one more time, after all input is processed. - (usage): When decoding, newlines are always accepted. - - * tests/misc/base64: Add a bunch of tests, for the above. - * gl/lib/base64.c: Include <string.h>. - (base64_decode_ctx_init, get_4, decode_4): New functions. - (base64_decode): Efficiently handle interspersed newlines. - (base64_decode_alloc): Update signature. - * gl/lib/base64.h (struct base64_decode_context): Define. - (base64_decode_ctx_init): Add prototype. - (base64_decode, base64_decode_alloc): Update prototypes. - - * gl/lib/base64.c: Copied from gnulib. - * gl/lib/base64.h: Likewise. - -2007-01-03 Jim Meyering <jim@meyering.net> - - * THANKS: Add Evan Hunt. - -2007-01-03 Bruno Haible <bruno@clisp.org> - - Avoid spurious test failures on MacOS X 10.3.9, in a German locale. - * tests/chown/deref: Apply lang-default. - * tests/misc/split-a: Likewise. - * tests/mv/reply-no: Likewise. - - * src/copy.c (copy_internal): Use mkfifo as a fallback if mknod fails. - Needed on MacOS X. - -2007-01-02 Paul Eggert <eggert@cs.ucla.edu> - - Now, "ls -FRL" always follows symbolic links on Linux. - * NEWS: Mention this bug fix. - * src/ls.c (gobble_file): Fix bug reported by - Nobuyuki Tsuchimura in - http://lists.gnu.org/archive/html/bug-coreutils/2006-12/msg00152.html - where "ls -FRL" didn't follow a symbolic link in some cases on Linux. - * tests/ls/follow-slink: Add a test for this case. - -2007-01-01 Jim Meyering <jim@meyering.net> - - * tests/rm/fail-eperm: Revert last change. The PATH=... setting - is not honored at least on HP-UX 11.23 systems. - Instead, simply transform the actual output diagnostic. - Test failure reported by Bob Proulx. - -2006-12-30 Jim Meyering <jim@meyering.net> - - * bootstrap (gnulib_extra_files): Remove announce-gen. - * bootstrap.conf (gnulib_modules): Add it here instead, now that - it's a module. - - * tests/misc/base64: Factor a long, repetitive string. - - * src/c99-to-c89.diff: Adjust remove.c offsets. - - Clean up after the change of 2006-12-28. - * src/remove.c (AD_pop_and_chdir): Change **DIRP parameter to *DIRP, - now that this function never modifies the pointer. Adjust comments - and code accordingly. - (remove_dir): Set "dirp" to NULL right after AD_pop_and_chdir call, - now that AD_pop_and_chdir no longer does that. - - * tests/rm/fail-eperm: Avoid spurious differences (the error function - from latest glibc no longer prints the full program_name): so don't - invoke rm via ../../src/rm. Instead, invoke it via "PATH=../../src rm". - - * tests/mv/acl (skip): Skip this test also if the destination - directory, which is on a different file system, lacks ACL support. - - * src/copy.c (copy_reg): Rewrite a comment that was rendered - inaccurate by the 2006-10-18 change. - -2006-12-28 Jim Meyering <jim@meyering.net> - - When moving "up" the hierarchy, be careful to remove a just-emptied - directory before opening ".", to avoid trouble with file system - implementations that cache readdir results at opendir-time. - * src/remove.c (AD_pop_and_chdir): Add a file descriptor parameter. - Don't update **DIRP. Don't call fdopendir here. - (remove_dir): Call fdopendir here instead. - Report and patch from Mikulas Patocka: - <http://lists.gnu.org/archive/html/bug-coreutils/2006-12/msg00170.html> - -2006-12-27 Jim Meyering <jim@meyering.net> - - * src/tail.c (usage): Mention +N for --bytes and --lines. - Suggestion from Evan Hunt. - -2006-12-26 Jim Meyering <jim@meyering.net> - - * configure.ac: Require autoconf-2.61 and automake-1.10. - Without the former (even with autoconf-2.60), "make distcheck" - would fail (without the 2006-09-26 autoconf AC_CHECK_DECL fix), - due to an inttypes.h generated with CFLAGS including -pedantic. - With the old decl check, @HAVE_DECL_STRTOUMAX@ would be 0. - - * Makefile.maint (VC-tag): Define, so as to gpg-sign each release - tag, using the release version number as the message. - (vc-dist): Use $(VC-tag), rather than "$(VC) tag". - -2006-12-21 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: dd bs= operands now silently override later ibs= and obs=, - as POSIX requires. - * src/dd.c (scanargs): Implement it. - * tests/dd/misc (outbytes): Test it. - * doc/coreutils.texi (dd invocation): Specify that bs=N - overrides later ibs and obs, undoing part of the - previous change. (The behavior was wrong.) - -2006-12-20 Jim Meyering <jim@meyering.net> - - "rm -rf /etc/motd" (run by non-root) now prints a diagnostic. - * src/remove.c (remove_entry): Handle EACCES for a non-directory, too. - Don't let a non-directory get by with errno == EPERM, either. - Check the file type directly (using cached stat value), rather - than trying to guess it from errno values. - Karl Berry reported that a cross-partition "mv /etc/issue ~" - failed with the um,... suboptimal diagnostic, - "mv: cannot remove `/etc/issue': Not a directory". - * tests/rm/Makefile.am (TESTS): Add fail-eacces. - * tests/rm/fail-eacces: New file. - * NEWS: Mention that both mv and rm are affected. - - "cut -f 2- A B" no longer triggers a double-free bug - * src/cut.c (cut_fields): Set file-scoped global to NULL after - freeing it. This avoids a double-free (and core dump on some systems) - for this usage: "echo 1>a; echo 2>b; cut -f2- a b". Reported by - James Hunt in <http://bugzilla.redhat.com/220312>. - * NEWS: List this bug fix. - * THANKS: Mention him. - * tests/misc/cut: New file. - * tests/misc/Makefile.am (TESTS): Add cut. - -2006-12-15 Jim Meyering <jim@meyering.net> - - * tests/cp/open-perm-race: Correct the gdb-existence check. - Don't run either subsequent gdb command in a sub-shell. - Reported by Thomas Schwinge. - * THANKS: bring up to date. - -2006-12-14 Paul Eggert <eggert@cs.ucla.edu> - - Make sure cp -p isn't too generous with file permissions. - * tests/cp/Makefile.am (TESTS): Add file-perm-race. - * tests/cp/file-perm-race: New file. - - Ensure cp -pR --parents isn't too generous with parent permissions. - * tests/cp/Makefile.am (TESTS): Add parent-perm-race. - * tests/cp/parent-perm-race: New file. - -2006-12-14 Jim Meyering <jim@meyering.net> - - * tests/chgrp/default-no-deref: Don't assume that files are created - with the primary group by default. That's not true in a directory - with the set-GID bit set. - - Don't hang when there's no input tty. - * tests/cp/open-perm-race: Skip this test if there is no - controlling input `terminal'. - - Test for a hard-to-detect race fix, using gdb. - * tests/cp/open-perm-race: New file, to test for the - cp --preserve=ownership fix of 2006-12-06. - - * tests/cp/Makefile.am (TESTS_ENVIRONMENT): Define abs_top_builddir. - (TESTS): Add open-perm-race. - - * src/chgrp.c (main): Don't prohibit -RLh, aka -RL with --no-dereference. - * src/chown.c (main): Likewise. - * src/chown-core.c (change_file_owner): Add to a comment. - * tests/chown/preserve-root: Add tests. - - * NEWS: --preserve-root now works with chgrp, chmod, and chown. - * src/chmod.c (process_file): Do honor the --preserve-root option. - * src/chown-core.c (change_file_owner): Likewise, but here, also - handle the case in which a traversal would go "through" a symlink - to root. Reported by Matthew M. Boedicker - * tests/chown/preserve-root: Test for the above. - * tests/chown/Makefile.am (TESTS): Add preserve-root. - - * NEWS: Mention the chmod fix induced by the 2006-12-11 change - to gnulib's m4/openat.m4. - -2006-12-13 Andreas Schwab <schwab@suse.de> - - Don't fail if mv/acl test succeeds. - * tests/mv/acl (skip): Check for acl support in the file system. - * tests/mv/Makefile.am (XFAIL_TESTS): Remove. - (TESTS_ENVIRONMENT): Pass CONFIG_HEADER. - -2006-12-13 Paul Eggert <eggert@cs.ucla.edu> - - Remove some arbitrary restrictions on size fields, so that - commands like "sort -k 18446744073709551616" no longer fail merely - because 18446744073709551616 doesn't fit in uintmax_t. The trick - is that these fields can all be treated as effectively infinity; - their exact values don't matter, since no internal buffer can be - that long. - * src/join.c (string_to_join_field): Verify that SIZE_MAX <= - ULONG_MAX if the code assumes this. Silently truncate too-large - values to SIZE_MAX, as the remaining code will do the right thing - in this case. - * src/sort.c (parse_field_count): Likewise. - * src/uniq.c (size_opt, main): Likewise. - * tests/join/Test.pm (bigfield): New test. - * tests/sort/Test.pm (bigfield): New test. - * tests/uniq/Test.pm (121): New test. - -2006-12-13 Jim Meyering <jim@meyering.net> - - * tests/chgrp/default-no-deref: New test. - * tests/chgrp/Makefile.am (TESTS): Add default-no-deref. - -2006-12-12 Jim Meyering <jim@meyering.net> - - * src/system.h (SETVBUF): Remove definition, now that the - autoconf macro, AC_FUNC_SETVBUF_REVERSED, does nothing. - * src/tee.c (tee_files): s/SETVBUF/setvbuf/. - * src/od.c (open_next_file): Likewise. - -2006-12-09 Jim Meyering <jim@meyering.net> - - * man/Makefile.am (.x.1): Make help2man use $(PACKAGE_STRING) as the - "source". I.e. "GNU coreutils 6.7". - - * NEWS: With the change from "-pre" to "-dirty" suffix, also change - from NEXT_VER-pre to CUR_VER-dirty. So, this is 6.7-dirty. - * configure.ac (AC_INIT): s/6.8-dirty/6.7-dirty/. - - * tests/uniq/Test.pm (test_vector): Skip the pipe-reading test - whenever uniq is expected to fail. This should catch the other case - [test #112] in which uniq emits "cat: write error: Broken pipe" on - some systems. - -2006-12-08 Jim Meyering <jim@meyering.net> - - Include bootstrap tool version info in the announcement form. - * Makefile.maint (gnulib_snapshot_date): Define. - (announcement): Use two new announce-gen options, - --bootstrap-tools and --gnulib-snapshot-date. - * Makefile.cfg (gnulib_dir): Set. - - Post-release version change. - * NEWS: Add a line for 6.8-dirty. - * configure.ac (AC_INIT): Set new version string. - -2006-12-07 Jim Meyering jim@meyering.net - - Version 6.7. - * NEWS: Record release date. Remove '-pre' suffix. - * configure.ac (AC_INIT): Remove version string suffix. - -2006-12-07 Jim Meyering <jim@meyering.net> - - Make the output of "make check" more reproducible. - * tests/touch/empty-file: Use envvar-check, so "make check" doesn't - evoke diagnostics like this when COLUMNS=0 in the environment: - ls: ignoring invalid width in environment variable COLUMNS: 0 - * tests/touch/no-rights: Likewise. - * tests/help-version: Likewise. - * tests/uniq/Test.pm: Don't perform the pipe-reading version of test - 118, since it emits "cat: write error: Broken pipe" on some systems. - -2006-12-06 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: Document the cp -p fix for special bits. - * src/copy.c (set_owner): Now returns a three-way result, so - that the caller can clear the special bits. All callers changed. - (copy_reg): Don't set the special bits if chown failed. - (copy_internal): Likewise. - * tests/cp/special-bits: Test this fix. - -2006-12-06 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: Document the cp --preserve=ownership fix. - * m4/jm-macros.m4 (coreutils_MACROS): Check for fchmod. - * src/copy.c (fchmod_or_lchmod): New function. - (copy_reg): New arg OMITTED_PERMISSIONS. All uses changed. - Omit confusing and unused ", dst_mode" arg to 'open' without O_CREAT. - When creating a file, use O_EXCL, so we're more likely to detect - funny business by other processes. At the end, if permissions - were omitted, chmod them back in. - (copy_internal): If the ownership might change, omit some permissions - at first, then restore them after chowning the file. - * src/cp.c (make_dir_parents_private): Likewise. - * src/copy.c (cached_umask): New function. - * src/copy.h (cached_umask): New decl. - -2006-12-06 Jim Meyering <jim@meyering.net> - - Make the output of "make check" more reproducible. - * tests/misc/date-sec: Don't emit any diagnostic about sleeping. - -2006-12-03 Paul Eggert <eggert@cs.ucla.edu> - - * src/install.c (install_file_in_file): Preserve time stamps - before changing owner or file mode bits, for consistency with - other coreutils programs. - -2006-12-03 Jim Meyering <jim@meyering.net> - - * tests/misc/date-sec: Output a fixed string. - - * NEWS: du --one-file-system (-x) would skip subdirectories of any - directory listed as second or subsequent command line argument. - * tests/du/one-file-system: New file. Test for today's fts.c fix. - * tests/du/Makefile.am (TESTS): Add one-file-system. - Reported by Mike Frysinger. - -2006-12-02 Jim Meyering <jim@meyering.net> - - * tests/du/basic: Generate 4KB file simply using printf, rather than - seq+head. This avoids a spurious "Broken pipe" diagnostic from seq. - -2006-11-28 Jim Meyering <jim@meyering.net> - - * tests/mv/no-target-dir: Detect a buggy rename syscall. If found, - skip this test. This happens at least on ia64 linux-2.4.19 w/ext3. - Reported by Matthew Woehlke. - - * tests/mv/dir2dir: Also accept EBUSY. - Reported by Matthew Woehlke. - -2006-11-27 Jim Meyering <jim@meyering.net> - - * Makefile.maint (patch-check): Rewrite to diagnose failure. - * src/c99-to-c89.diff: Adjust shred.c offsets. - -2006-11-26 Paul Eggert <eggert@cs.ucla.edu> - - Improve the check for departures from C89, and fix the departures - I found. - * Makefile.maint (my-distcheck): Also check for C89 compatibility - as best we can with GCC. - * src/stat.c (PRINTF_OPTION): Omit comma before } in enum - declaration; C89 doesn't allow this. - * src/dcgen: Don't generate string literals longer than - what C89 requires support for. - * src/cut.c (usage): Don't use string literals longer than - what C89 requires support for. - * src/date.c (usage): Likewise. - * src/dd.c (usage): Likewise. - * src/du.c (usage): Likewise. - * src/ls.c (usage): Likewise. - * src/od.c (usage): Likewise. - * src/readlink.c (usage): Likewise. - * src/seq.c (usage): Likewise. - * src/shred.c (usage): Likewise. - -2006-11-26 Mike Frysinger <vapier@gentoo.org> - - Recognize new archive, audio and image formats. - Give audio files a separate color. - * src/dircolors.hin: Add comments for common .sh and .csh scripts. - Add .bz2, .tbz2, .tz, .rar, .ace, .zoo, .cpio, .7z, .rz as archive - suffixes. Add .mng, .pcx, .m2v, .mkv, .ogm, .mp4, .m4v, .mp4v, .vob, - .qt, .nuv, .wmv, .asf, .rm, .rmvb, .flc, .yuv as image formats. - Add .aac, .au, .mid, .midi, .mka, .ra as audio suffixes. Change - audio color to 00;36 to differentiate from image/video color. - -2006-11-26 Jim Meyering <jim@meyering.net> - - * Makefile.maint (patch-check): Compile patched sources with - CFLAGS='-Wdeclaration-after-statement -Werror', to ensure that - no violations remain. - - * src/c99-to-c89.diff: Remove 3 bogus hunks. - - * src/remove.c (fd_to_subdirp): Remove unused parameter, ds. - Update callers. - - * src/c99-to-c89.diff: Adjust for changes in rm.c and in remove.c. - - * src/rm.c (main): Remove unnecessary (assuming C99) braces. - -2006-11-26 Paul Eggert <eggert@cs.ucla.edu> - - Port parts of the code to C89 to minimize the need for c99-to-c89.diff, - while trying to retain the readability of C99 as much as possible. - * src/remove.c (rm_1): Remove decl of local, fd_cwd. - Replace each of two uses with literal AT_FDCWD. - (cache_stat_init): Return its argument, for convenience. - Update the caller in remove_dir. - (AD_pop_and_chdir): Return prev_dir rather than storing through - a pointer argument. All uses changed. - (AD_ensure_initialized): New function. - (AD_mark_helper): Use it, to avoid the need for declaration - after statement. - (rm): Move cycle_check_init call into callee... - (rm_1): ...here. - Use an else clause in place of a "continue" statement. - (close_preserve_errno): Remove. - (fd_to_subdirp): Rewrite to avoid the need for decl after statement. - -2006-11-25 Jim Meyering <jim@meyering.net> - - * Makefile.am (EXTRA_DIST): Remove announce-gen from here, too. - -2006-11-24 Theodoros V. Kalamatianos <thkala@softlab.ece.ntua.gr> (tiny change) - - * tests/du/inacc-dest: Skip this test when running as root. - -2006-11-23 Jim Meyering <jim@meyering.net> - - * announce-gen: Remove file. It's moving to gnulib. - * bootstrap: Pull it from gnulib/build-aux instead. - * Makefile.maint (announcement): Reflect move to ./build-aux. - - * tests/du/deref-args: Use "printf %65536s x" to create a 64KB file, - rather than a pipeline that would sometimes evoke a diagnostic - like "seq: write error: Broken pipe". - - * tests/help-version: Suppress dd transfer rate output. - - * configure.ac (AC_INIT): Bump to 6.7-pre, not 6.6-pre. - -2006-11-22 Jim Meyering <jim@meyering.net> - - * announce-gen (print_news_deltas): Fix silly, but harmless typo: - change "(:?..." to "(?:..." in regexps. - - Post-release version change. - * NEWS: Add a line for 6.7-pre. - * configure.ac (AC_INIT): Bump to 6.7 and add "-pre" suffix. - - Version 6.6. - * NEWS: Record release date. Remove "-pre" suffix. - * configure.ac (AC_INIT): Remove "-pre" suffix from version string. - - * announce-gen: Remove unused --release-archive-directory option. - (print_news_deltas): Accept new adjective, "Noteworthy", in addition - to the old "Major". - Match version numbers in NEWS using tighter regular expressions. - (main): Require the --gpg-key-id=ID option. - * Makefile.maint (announcement): Don't use now-removed - --release-archive-directory=... option. - - * NEWS: Mention the three noteworthy changes, all fixed via gnulib. - -2006-11-21 Jim Meyering <jim@meyering.net> - - * tests/rm/one-file-system: Upon setup failure (e.g., mount failure), - skip the test rather than failing. Reported by Michael Deutschmann. - - * tests/rm/fail-eperm: Use the "(exit N); exit N" idiom, - rather than just "exit N". - - Arrange for "make check-root" to run the new root-only test. - * tests/Makefile.am (t7): New target, to run tests/ls/nameless-uid. - (all_t): Add t7. - -2006-11-20 Jim Meyering <jim@meyering.net> - - Add a root-only test for today's lib/idcache.c fix. - * tests/ls/nameless-uid: New file. - * tests/ls/Makefile.am (TESTS): Add nameless-uid. - (TESTS_ENVIRONMENT): Add PERL to the list. - -2006-11-19 Jim Meyering <jim@meyering.net> - - * tests/tail-2/assert-2: Mark as a very-expensive test, because I - find the 7-second sleep annoyingly long. Besides, this test is - probably far too specific and timing sensitive ever to trigger again. - * tests/tail-2/assert: Likewise. - - Post-release version change. - * NEWS: Add a line for 6.6-pre. - * configure.ac (AC_INIT): Bump to 6.6 and add "-pre" suffix. - - Version 6.5. - * NEWS: Record release date. Remove "-cvs" suffix. - * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. - -2006-11-18 Jim Meyering <jim@meyering.net> - - "ln --backup f f" produces a misleading diagnostic: - ln: creating hard link `f' => `f': No such file or directory - * src/ln.c (do_link): Give a better diagnostic in this unusual case. - (do_link): Rename local: s/lstat_ok/dest_lstat_ok/. - * tests/ln/Makefile.am (TESTS): Add hard-backup. - * tests/ln/hard-backup: New test for the above. - * NEWS: Mention this fix. - -2006-11-16 Paul Eggert <eggert@cs.ucla.edu> - - * bootstrap.conf (gnulib_modules): Add sys_stat, since we use it - directly too. - * lib/.cvsignore, lib/.gitignore: Add root-dev-ino.c, root-dev-ino.h. - * m4/.cvsignore, m4/.gitignore: Add root-dev-ino.m4. - * src/ls.c (DIRED_FPUTS_LITERAL, PUSH_CURRENT_DIRED_POS): - Omit unnecessary parenthesization of args. - * src/od.c (EQUAL_BLOCKS): Likewise. - * src/system.h (STREQ, ASSIGN_STRDUPA): Likewise. - -2006-11-16 Jim Meyering <jim@meyering.net> - - * tests/tail-2/append-only: If chattr +a fails, exit 77 (to tell - automake we're skipping this test), and give a diagnostic to tell - the user the same thing. Reported by Mike Grayson. - -2006-11-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - - * man/Makefile.am (dist_man_MANS): Replace all optional manpages - with `$(MAN)', computed at configure time; also, list them ... - (optional_mans): ... in this new variable. - (max_aux, EXTRA_DIST): Ensure that we distribute all manpages. - -2006-11-16 Jim Meyering <jim@meyering.net> - - Help valgrind see that there is no leak in dd.c. - * src/dd.c (dd_copy): Declare real_buf and real_obuf to be static, - so we need not free them at all. This is easier than freeing - both buffers at each of the early "return"s. - - * src/csplit.c (load_buffer): Plug an inconsequential leak. - -2006-11-15 Jim Meyering <jim@meyering.net> - - * .x-po-check: Exclude gl/ files. Otherwise, po-check would - complain that some of gl/lib/*.[ch] are not listed in POTFILES.in. - -2006-11-14 Jim Meyering <jim@meyering.net> - - * gl/m4/root-dev-ino.m4: Now that this is part of a real "module", - remove the now-unnecessary use of AC_LIBSOURCES. - - Adapt to new version of gnulib-tool. - * gl/modules/root-dev-ino: New file. - * lib/root-dev-ino.c, lib/root-dev-ino.h: Move these files ... - * gl/lib/root-dev-ino.c, gl/lib/root-dev-ino.h: ... to here. - * m4/root-dev-ino.m4: Move this file ... - * gl/m4/root-dev-ino.m4: ... to here. - - * bootstrap.conf (gnulib_modules): Add root-dev-ino. - -2006-11-13 Jim Meyering <jim@meyering.net> - - * src/sort.c (insertkey): Use xmemdup, rather than xmalloc+assignment. - From Paul Eggert. - - Plug another technically-unimportant leak in sort. - * src/sort.c (main): Don't allocate memory for each new key here. - (insertkey): Allocate memory for each key here, instead. - (key_init): Rename from new_key. Don't allocate. - - * src/sort.c (main): Plug a tiny memory leak. - Move declaration of local "minus" down to be nearer point of use. - -2006-11-12 Jim Meyering <jim@meyering.net> - - du would exit early, when encountering an inaccessible directory - Reported by Mike Frysinger, in - http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/8831 - * tests/du/inacc-dest: New test, based on an example from Mike Frysinger. - * tests/chgrp/no-x: Remove the "fts_read failed: ..." - diagnostic from the expected output when using native fdopendir. - * tests/chmod/no-x: Likewise. - * tests/du/no-x: Likewise. - * NEWS: Mention this bug fix. - * tests/du/Makefile.am (TESTS): Add inacc-dest. - - * Makefile.maint (sc_cast_of_x_alloc_return_value): Add an exclusion - for xalloc.h itself. - - Avoid false-positive when testing via valgrind. - * tests/mv/atomic: Grep strace output for a more specific pattern - than just "unlink", since that got a false positive when testing - under valgrind: unlink("/tmp/valgrind_proc_9657_cmdline_A51E9991") = 0 - * tests/mv/Makefile.am (TESTS_ENVIRONMENT): Define EGREP. - -2006-10-28 Jim Meyering <jim@meyering.net> - - * Makefile.maint (patch-check): Make it easier to regenerate - the src/c99-to-c89.diff file. E.g., I do this: - make patch-check REGEN_PATCH=1; ediff src/c99-to-c89.diff new-diff - - * src/c99-to-c89.diff: Update to reflect new offsets in rm.c. - -2006-10-26 Jim Meyering <jim@meyering.net> - - * src/system.h (ftello): Add a compile-time check for the highly - unlikely condition of off_t narrower than long int, rather than - handling it at run time. Based on a patch from Paul Eggert. - -2006-10-25 Paul Eggert <eggert@cs.ucla.edu> - - * tests/chmod/c-option: When double-quoting part of a word, prefer - to double-quote the whole word. This is a bit easier to read (at - least for me), and in some cases it avoids a shell bug with Tru64 - 4.0 sh reported by Nelson H. F. Beebe. For example, instead of - "$abs_srcdir"/../setgid-check we now write - "$abs_srcdir/../setgid-check". - * tests/cp/cp-parents: Likewise. - * tests/du/inaccessible-cwd: Likewise. - * tests/du/long-from-unreadable: Likewise. - * tests/install/basic-1: Likewise. - * tests/install/trap: Likewise. - * tests/misc/close-stdout: Likewise. - * tests/mkdir/concurrent-1: Likewise. - * tests/mkdir/p-1: Likewise. - * tests/mkdir/p-3: Likewise. - * tests/mkdir/parents: Likewise. - * tests/mkdir/perm: Likewise. - * tests/readlink/can-e: Likewise. - * tests/readlink/can-f: Likewise. - * tests/readlink/can-m: Likewise. - * tests/rm/inaccessible: Likewise. - * tests/rm/unread3: Likewise. - * tests/touch/no-create-missing: Likewise. - - * lib/.cvsignore: Add uinttostr.c. - -2006-10-25 Jim Meyering <jim@meyering.net> - - Portability to Tru64 V4.0. - * src/system.h (ftello) [!HAVE_FSEEKO && !defined ftello]: - Define inline replacement function. - This (along with a yesterday's fix for autoconf's - _AC_SYS_LARGEFILE_MACRO_VALUE macro) makes it so coreutils - now builds once more on Tru64 V4.0. Reported by Nelson Beebe. - -2006-10-25 Bruno Haible <bruno@clisp.org> - - * src/cat.c (infile): Add "const" to declaration. - * src/csplit.c (prefix): Likewise. - * src/printf.c (cfcc_msg): Likewise. - * src/tail.c (valid_file_spec): Likewise. - * src/cut.c (cut_file): Likewise, for a parameter. - * src/expr.c (str_value): Likewise. - * src/fold.c (fold_file): Likewise. - * src/pr.c (init_header): Likewise. - * src/dircolors.c (dc_parse_stream): Likewise, for a local. - * src/tr.c (make_printable_str): Likewise. - * src/nl.c (body_type, header_type, footer_type, current_type): - (separator_str, build_type_arg, nl_file): Likewise, for many. - * src/paste.c (main): Don't assign a read-only string to 'optarg'. - * src/tac.c (separator, tac_seekable, copy_to_temp): Likewise. - -2006-10-25 Jim Meyering <jim@meyering.net> - - * tests/sample-test: Update copyright year list to include only - the current year, since this is what I'll want in any new test. - -2006-10-24 Jim Meyering <jim@meyering.net> - - * src/c99-to-c89.diff: Update to reflect new offsets. - - * NEWS: new feature: rm accepts new option: --one-file-system - Suggested by Steve McIntyre in <http://bugs.debian.org/392925>. - * src/remove.h (struct rm_options) [one_file_system]: New member. - * src/rm.c (rm_option_init): Initialize it. - (usage): Document the option. - * src/mv.c (rm_option_init): Likewise. - * src/remove.c (remove_dir): With --one-file-system and --recursive, - for each directory command line argument, do not affect a file system - different from that of the starting directory. And give a diagnostic. - * src/rm.c (ONE_FILE_SYSTEM): New enum. - (main): Handle new option. - * tests/rm/one-file-system: Test the above. - * tests/rm/Makefile.am (TESTS): Add one-file-system. - * tests/Makefile.am (check-root): Add the rm/one-file-system - test to the list. - (EXTRA_DIST): Add other-fs-tmpdir. - - * tests/mv/setup: Removed. Renamed to... - * tests/other-fs-tmpdir: ...this new file. - * tests/mv/Makefile.am (EXTRA_DIST): Remove setup. - * tests/mv/acl: Reflect renaming: use ../other-fs-tmpdir. - * tests/mv/backup-is-src: Likewise. - * tests/mv/hard-link-1: Likewise. - * tests/mv/leak-fd: Likewise. - * tests/mv/mv-special-1: Likewise. - * tests/mv/part-fail: Likewise. - * tests/mv/part-hardlink: Likewise. - * tests/mv/part-rename: Likewise. - * tests/mv/part-symlink: Likewise. - * tests/mv/partition-perm: Likewise. - * tests/mv/to-symlink: Likewise. - * tests/mv/into-self-2: Likewise. - - Don't let a failure in one test stop "make -k" from running the others. - * tests/Makefile.am (t1 t2 t3 t4 t5): New targets. - (check-root): Depend on them, rather than executing the five - commands in a single rule. Reported by Greg Schafer. - -2006-10-23 Bob Proulx <bob@proulx.com> (tiny change) - - * Makefile.maint (alpha beta major): Use a better log message for - the automatic commit of .prev-version. - -2006-10-23 Jim Meyering <jim@meyering.net> - - * tests/misc/pwd-long: Undo last change, since it made Perl invoke - pwd via a shell. Instead, ensure that the absolute name of the - pwd binary consists solely of reasonable characters. - Whoops. Don't exec the perl script. Otherwise, the sh-trap-based - clean-up code isn't run. - - * NEWS: Add a line for 6.5-cvs. - * configure.ac (AC_INIT): Bump to 6.5 and add "-cvs" suffix. - -2006-10-22 Jim Meyering <jim@meyering.net> - - Version 6.4. - - * NEWS: Record the 6.4 release date. - * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. - - * Makefile.maint: Complete the adaptation to function with a working - directory that is using git (rather than cvs) for version control. - -2006-10-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - - * tests/chmod/c-option: Double-quote instances of `$abs_srcdir'. - * tests/cp/cp-parents: Likewise. - * tests/mkdir/parents: Likewise. - * tests/mkdir/perm: Likewise. - - * tests/sample-test: Quote variables containing absolute build - tree paths. In the cleanup trap, make sure `cd' succeeds before - `chmod'ing and `rm'ing the temporary files. - * tests/chgrp/basic: Likewise. - * tests/chgrp/deref: Likewise. - * tests/chgrp/no-x: Likewise. - * tests/chgrp/posix-H: Likewise. - * tests/chgrp/recurse: Likewise. - * tests/chmod/c-option: Likewise. - * tests/chmod/equal-x: Likewise. - * tests/chmod/equals: Likewise. - * tests/chmod/inaccessible: Likewise. - * tests/chmod/no-x: Likewise. - * tests/chmod/octal: Likewise. - * tests/chmod/setgid: Likewise. - * tests/chmod/umask-x: Likewise. - * tests/chmod/usage: Likewise. - * tests/chown/basic: Likewise. - * tests/chown/deref: Likewise. - * tests/chown/separator: Likewise. - * tests/cp/acl: Likewise. - * tests/cp/backup-1: Likewise. - * tests/cp/backup-dir: Likewise. - * tests/cp/backup-is-src: Likewise. - * tests/cp/cp-HL: Likewise. - * tests/cp/cp-deref: Likewise. - * tests/cp/cp-i: Likewise. - * tests/cp/cp-mv-backup: Likewise. - * tests/cp/cp-parents: Likewise. - * tests/cp/deref-slink: Likewise. - * tests/cp/dir-rm-dest: Likewise. - * tests/cp/dir-slash: Likewise. - * tests/cp/dir-vs-file: Likewise. - * tests/cp/fail-perm: Likewise. - * tests/cp/into-self: Likewise. - * tests/cp/link: Likewise. - * tests/cp/link-no-deref: Likewise. - * tests/cp/link-preserve: Likewise. - * tests/cp/no-deref-link1: Likewise. - * tests/cp/no-deref-link2: Likewise. - * tests/cp/no-deref-link3: Likewise. - * tests/cp/perm: Likewise. - * tests/cp/preserve-2: Likewise. - * tests/cp/r-vs-symlink: Likewise. - * tests/cp/same-file: Likewise. - * tests/cp/slink-2-slink: Likewise. - * tests/cp/sparse: Likewise. - * tests/cp/special-bits: Likewise. - * tests/cp/src-base-dot: Likewise. - * tests/cp/symlink-slash: Likewise. - * tests/dd/not-rewound: Likewise. - * tests/dd/skip-seek2: Likewise. - * tests/dd/unblock-sync: Likewise. - * tests/du/2g: Likewise. - * tests/du/8gb: Likewise. - * tests/du/basic: Likewise. - * tests/du/deref: Likewise. - * tests/du/deref-args: Likewise. - * tests/du/exclude: Likewise. - * tests/du/fd-leak: Likewise. - * tests/du/hard-link: Likewise. - * tests/du/inaccessible-cwd: Likewise. - * tests/du/long-from-unreadable: Likewise. - * tests/du/long-sloop: Likewise. - * tests/du/no-deref: Likewise. - * tests/du/no-x: Likewise. - * tests/du/restore-wd: Likewise. - * tests/du/slash: Likewise. - * tests/du/slink: Likewise. - * tests/du/trailing-slash: Likewise. - * tests/du/two-args: Likewise. - * tests/fmt/long-line: Likewise. - * tests/install/basic-1: Likewise. - * tests/install/create-leading: Likewise. - * tests/install/d-slashdot: Likewise. - * tests/install/trap: Likewise. - * tests/ln/misc: Likewise. - * tests/ln/target-1: Likewise. - * tests/ls/color-dtype-dir: Likewise. - * tests/ls/dangle: Likewise. - * tests/ls/dired: Likewise. - * tests/ls/file-type: Likewise. - * tests/ls/follow-slink: Likewise. - * tests/ls/infloop: Likewise. - * tests/ls/inode: Likewise. - * tests/ls/m-option: Likewise. - * tests/ls/no-arg: Likewise. - * tests/ls/recursive: Likewise. - * tests/ls/rt-1: Likewise. - * tests/ls/stat-dtype: Likewise. - * tests/ls/stat-failed: Likewise. - * tests/ls/stat-vs-dirent: Likewise. - * tests/misc/cat-proc: Likewise. - * tests/misc/close-stdout: Likewise. - * tests/misc/csplit: Likewise. - * tests/misc/date-sec: Likewise. - * tests/misc/false-status: Likewise. - * tests/misc/head-c: Likewise. - * tests/misc/head-pos: Likewise. - * tests/misc/mknod: Likewise. - * tests/misc/nl: Likewise. - * tests/misc/nohup: Likewise. - * tests/misc/pathchk1: Likewise. - * tests/misc/printf: Likewise. - * tests/misc/printf-hex: Likewise. - * tests/misc/pwd-long: Likewise. - * tests/misc/shuf: Likewise. - * tests/misc/sort-rand: Likewise. - * tests/misc/split-a: Likewise. - * tests/misc/split-fail: Likewise. - * tests/misc/split-l: Likewise. - * tests/misc/stat-fmt: Likewise. - * tests/misc/tac-continue: Likewise. - * tests/misc/wc-files0: Likewise. - * tests/mkdir/concurrent-1: Likewise. - * tests/mkdir/p-1: Likewise. - * tests/mkdir/p-2: Likewise. - * tests/mkdir/p-3: Likewise. - * tests/mkdir/p-slashdot: Likewise. - * tests/mkdir/p-thru-slink: Likewise. - * tests/mkdir/p-v: Likewise. - * tests/mkdir/parents: Likewise. - * tests/mkdir/perm: Likewise. - * tests/mkdir/t-slash: Likewise. - * tests/mv/acl: Likewise. - * tests/mv/atomic: Likewise. - * tests/mv/backup-dir: Likewise. - * tests/mv/childproof: Likewise. - * tests/mv/diag: Likewise. - * tests/mv/dir-file: Likewise. - * tests/mv/dir2dir: Likewise. - * tests/mv/dup-source: Likewise. - * tests/mv/hard-2: Likewise. - * tests/mv/hard-3: Likewise. - * tests/mv/hard-4: Likewise. - * tests/mv/hard-link-1: Likewise. - * tests/mv/hard-verbose: Likewise. - * tests/mv/i-2: Likewise. - * tests/mv/i-3: Likewise. - * tests/mv/i-4: Likewise. - * tests/mv/i-5: Likewise. - * tests/mv/i-link-no: Likewise. - * tests/mv/into-self-4: Likewise. - * tests/mv/leak-fd: Likewise. - * tests/mv/mv-special-1: Likewise. - * tests/mv/no-target-dir: Likewise. - * tests/mv/part-fail: Likewise. - * tests/mv/part-hardlink: Likewise. - * tests/mv/part-rename: Likewise. - * tests/mv/part-symlink: Likewise. - * tests/mv/partition-perm: Likewise. - * tests/mv/perm-1: Likewise. - * tests/mv/reply-no: Likewise. - * tests/mv/trailing-slash: Likewise. - * tests/mv/update: Likewise. - * tests/od/od-N: Likewise. - * tests/od/x8: Likewise. - * tests/readlink/can-e: Likewise. - * tests/readlink/can-f: Likewise. - * tests/readlink/can-m: Likewise. - * tests/readlink/rl-1: Likewise. - * tests/rm/cycle: Likewise. - * tests/rm/dangling-symlink: Likewise. - * tests/rm/deep-1: Likewise. - * tests/rm/dir-no-w: Likewise. - * tests/rm/dir-nonrecur: Likewise. - * tests/rm/dot-rel: Likewise. - * tests/rm/empty-inacc: Likewise. - * tests/rm/f-1: Likewise. - * tests/rm/fail-2eperm: Likewise. - * tests/rm/hash: Likewise. - * tests/rm/i-1: Likewise. - * tests/rm/i-no-r: Likewise. - * tests/rm/ignorable: Likewise. - * tests/rm/inaccessible: Likewise. - * tests/rm/interactive-always: Likewise. - * tests/rm/interactive-once: Likewise. - * tests/rm/ir-1: Likewise. - * tests/rm/isatty: Likewise. - * tests/rm/no-give-up: Likewise. - * tests/rm/r-1: Likewise. - * tests/rm/r-2: Likewise. - * tests/rm/r-3: Likewise. - * tests/rm/r-4: Likewise. - * tests/rm/readdir-bug: Likewise. - * tests/rm/rm1: Likewise. - * tests/rm/rm2: Likewise. - * tests/rm/rm3: Likewise. - * tests/rm/rm4: Likewise. - * tests/rm/rm5: Likewise. - * tests/rm/sunos-1: Likewise. - * tests/rm/unread2: Likewise. - * tests/rm/unread3: Likewise. - * tests/rmdir/fail-perm: Likewise. - * tests/rmdir/t-slash: Likewise. - * tests/shred/exact: Likewise. - * tests/shred/remove: Likewise. - * tests/sum/sysv: Likewise. - * tests/tail-2/append-only: Likewise. - * tests/tail-2/assert: Likewise. - * tests/tail-2/assert-2: Likewise. - * tests/tail-2/big-4gb: Likewise. - * tests/tail-2/fflush: Likewise. - * tests/tail-2/infloop-1: Likewise. - * tests/tail-2/proc-ksyms: Likewise. - * tests/tail-2/start-middle: Likewise. - * tests/tail-2/tail-n0f: Likewise. - * tests/tee/basic: Likewise. - * tests/tee/dash: Likewise. - * tests/touch/fail-diag: Likewise. - * tests/touch/no-create-missing: Likewise. - * tests/touch/not-owner: Likewise. - * tests/touch/obsolescent: Likewise. - * tests/touch/read-only: Likewise. - * tests/touch/relative: Likewise. - -2006-10-21 Jim Meyering <jim@meyering.net> - - * NEWS: (cp --backup fix): Fix a typo. - - * .gitignore: Remove some references to files in subdirectories. - * build-aux/.gitignore, doc/.gitignore, lib/.gitignore: New files. - * m4/.gitignore, po/.gitignore, src/.gitignore: Likewise. - - * src/copy.c (copy_internal): Add a comment saying why we prefer - mknod over mkfifo. - - Enable an fts optimization (call lstat only for directories, - on some file system types) also with the --preserve-root option - of chown or chgrp. - * src/chown-core.c (change_file_owner): Compare fts_statp-based - dev/ino against root dev/ino only for directories. - (chown_files): Don't let the root_dev_ino setting influence whether - we use FTS_NOSTAT: fts always sets *fts_statp for a directory. - -2006-10-20 Jim Meyering <jim@meyering.net> - - * src/od.c (usage): Change description of default to use "-w16", - not the now-invalid "-w 16" syntax. From Dan Jacobson. - -2006-10-19 Jim Meyering <jim@meyering.net> - - * bootstrap: Add names to each .gitignore file (if it exists) - as well as to .cvsignore. - - * Makefile.maint (po-check): This rule didn't detect the new use - of "gettext" (as opposed to the use of "_" everywhere else) in - lib/xstrtol.h. Adjust the grep regexp so that now it does. - -2006-10-18 Paul Eggert <eggert@cs.ucla.edu> - - * src/copy.c (copy_reg): Rewrite slightly to avoid duplicate code - when opening dst_name. - (copy_reg, copy_internal): Use (SYSCALL != 0) rather than plain - (SYSCALL) to test for failure in a system call. - - * src/copy.c (copy_internal): Use mknod rather than mkfifo to copy - a fifo. This preserves the special mode bits on Solaris 10, which - is compatible with what Solaris 10 cp -R does. - - * src/copy.c (copy_internal): Remove redundant and confusing local - variable src_type. - - * src/copy.c (copy_internal): Don't pass mkdir a mode greater than - 7777. This matches historical 'cp' behavior and avoids some - (though not all) implementation-defined behavior of mkdir. - * src/cp.c (make_dir_parents_private): Likewise. - * src/copy.c (copy_internal): Don't pass 'open' a mode greater - than 777. This is required by POSIX. It doesn't make any difference - in actual behavior on any host that I know of. - -2006-10-17 Jim Meyering <jim@meyering.net> - - * src/dd.c (usage): Use two spaces (not one) to separate the - "fdatasync" option string from its description, so help2man formats - the derived man page properly. Reported by Samuel Thibault - in <http://bugs.debian.org/393649>. - -2006-10-16 Jim Meyering <jim@meyering.net> - - * .x-sc_trailing_blank: Remove names of files that are no longer - version-controlled. - -2006-10-16 Paul Eggert <eggert@cs.ucla.edu> - - * src/groups.sh (version): Reword message to match the other programs. - Problem reported by Eric Blake. - -2006-10-14 Jim Meyering <jim@meyering.net> - - * Makefile.maint (headers_with_interesting_macro_defs): Define. - (.re-defmac, sc_always_defined_macros): New rules. - - * src/system.h (EXIT_FAILURE, EXIT_SUCCESS): Remove definitions. - Instead, include "exit.h". This hereby retires the work-around for - "Sony NEWS-OS Release 4.0C"'s bug due to "#define EXIT_FAILURE 0". - - * src/cksum.c (uint_fast32_t): Don't define. - Instead, include <stdint.h>. - - * src/pinky.c (S_IWGRP): Don't define. - It's already defined by "stat-macros.h" (included via system.h). - - * Makefile.cfg: Remove cruft that's now handled via bootstrap. - * Makefile.maint: Likewise, remove these targets/rules/variables: - (local_updates, update, cvs-update, wget_files, get-targets): Remove. - (cvs_files, wget-update, automake_repo): Likewise. - Move the comment about cvsu to build-aux/vc-list-files, - where cvsu is actually used. - - * Makefile.maint (cvs-update): Use $(CVS), not "cvs". - - Work also when the working directory (with e.g. coreutils sources) - is version controlled with git, rather than CVS. - * bootstrap (CVS_only_file): Test for the existence of README-cvs, - rather than CVS. - In messages and comments, say e.g., "checked-out sources", - rather than "CVS sources". - (version_controlled_file): New function. Work for git as well as - for CVS. Don't use grep's -q option. - (slurp): Call it here, in place of CVS-specific code. - - * NEWS: cp -r --backup dir1 dir2, would rename an existing dir1/dir2 - to dir1/dir2~. - * src/copy.c (copy_internal): Although we do create a backup of each - destination directory when in move mode, don't do that when copying. - Reported by Peter Breitenlohner, in - <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/8616>. - * tests/cp/backup-dir: New file. Test for the above. - * tests/cp/Makefile.am (TESTS): Add backup-dir. - -2006-10-13 Jim Meyering <jim@meyering.net> - - More chown/chgrp dereferencing-related fixes. - * src/chown-core.c (change_file_owner): Don't use fts_statp if - we're dereferencing symlinks. - Reverse conjuncts, so that we use dereference file_stats - (aka ent->fts_statp) only *after* we've confirmed that - chopt->affect_symlink_referent is true. Otherwise, we might - use ent->fts_statp uninitialized. - Don't turn on FTS_NOSTAT when dereferencing symlinks. - * tests/chown/deref: Update the expected diagnostic, now that - this test case (trying to use "chown --dereference ..." on a - dangling symlink) takes a different code path. - -2006-10-13 Paul Eggert <eggert@cs.ucla.edu> - - Sync from Bison, as follows: - - 2006-10-01 Paul Eggert <eggert@cs.ucla.edu> - - Fix problems with translating English-language diagnostics. - * bootstrap: Fix bug introduced in recent bootstrap changes, with - respect to bison-runtime pot generation. The YY_ stuff - wasn't being captured. - -2006-10-13 Jim Meyering <jim@meyering.net> - - * src/chown-core.c (change_file_owner): Use fstatat, not stat, - now that we're using fts_open with FTS_CWDFD. - * tests/chgrp/posix-H: Add --preserve-root to an invocation of - chgrp, to exercise the above fix. - * NEWS: Mention the above. - - * src/du-tests: Clean up a little, though it's still not portable. - - * .vg-suppressions: Add 3 more for debian unstable. - - * tests/ls/Test.pm: Remove long-unused file. - * Makefile.am (EXTRA_DIST): Add bootstrap.conf. - Suggestions from Bruno Haible. - -2006-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - - * Makefile.am (THANKS-to-translators): Add missing $(srcdir). - (MAINTAINERCLEANFILES): Add .kludge-stamp. - * man/Makefile.am (MAINTAINERCLEANFILES): Typo $(dist_man_MANS) - instead of $(man_MANS). - -2006-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - - * configure.ac: Avoid compiler warnings about default return - type in function definitions and unused variables in tests. - * src/who.c (print_user) [HAVE_UT_HOST]: hostlen is only needed - if this is #defined. - -2006-10-12 Jim Meyering <jim@meyering.net> - - * configure.ac: Reflect s/gl_MACROS/coreutils_MACROS/ renaming. - Call gl_INIT directly, rather than through the above. - -2006-10-11 Paul Eggert <eggert@cs.ucla.edu> - - * bootstrap (symlink_to_gnulib): Fix bug: the dot_dots shell - variable was sometimes used without being initialized. This - messed up the installation of the INSTALL file in some cases. - -2006-10-11 Jim Meyering <jim@meyering.net> - - * src/ls.c (usage): Correct description of -s, --size. - It works even without -l. Suggestion from Karl Berry. - -2006-10-10 Paul Eggert <eggert@cs.ucla.edu> - - * src/ls.c (quote_name): Use initializer rather than memset to - initialize an object to zero. This is easier to read and is less - likely to introduce a runtime error due to a mixup. It causes - gcc -W to issue a warning, but you can work around this by - appending -Wno-missing-field-initializers. - * src/pathchk.c (portable_chars_only): Likewise. - * src/shred.c (main): Likewise. - * src/stty.c (main): Likewise. - * src/tr.c (card_of_complement): Likewise. - * src/wc.c (wc): Likewise. - -2006-10-09 Paul Eggert <eggert@cs.ucla.edu> - - * src/sort.c (usage): Mention again that sort fields are origin 1. - - * NEWS: Fix typo: iso-8602 -> iso-8601. Problem reported by - Bob Proulx. - - * bootstrap (usage, main program, symlink_to_gnulib): Add option - --copy. Inspired by a suggestion from Bruno Haible. - -2006-10-09 Jim Meyering <jim@meyering.net> - - Avoid a compiler warning. - * src/pathchk.c (portable_chars_only): Initialize variable of type - mbstate_t via memset, rather than via '{0}'. Patch from Bruno Haible. - -2006-10-06 Paul Eggert <eggert@cs.ucla.edu> - - Fix bug reported today by Mike Frysinger: mkdir -pv is logging the - wrong file name in some cases. Lars Wendler reported a bug in - my original fix. - * src/install.c (make_ancestor): New arg COMPONENT. - * src/mkdir.c (make_ancestor): Likewise. - * tests/install/basic-1: Check for install -Dv bug. - * tests/mkdir/Makefile.am (TESTS): Add p-v. - * tests/mkdir/p-v: New file, to test this bug. - -2006-10-05 Paul Eggert <eggert@cs.ucla.edu> - - * src/chgrp.c: Don't include lchown.h; no longer needed. - * src/chown.c: Likewise. - - * tests/ls/stat-dtype: Use a dynamic test to decide whether the - current file system has useful d_type info. - - * src/dd.c (flags): noatime and nofollow now depend on - HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW, too. - (usage): Output info about noatime and nofollow only if - they are known to work. - * src/remove.c (AD_push): Inspect HAVE_WORKING_O_NOFOLLOW rather - than O_NOFOLLOW, when testing whether it's possible to avoid a - race condition reliably. - -2006-10-05 Jim Meyering <jim@meyering.net> - - * src/c99-to-c89.diff: Update to reflect new offsets. - - * tests/install/basic-1: Skip the latter part of this test if the - just-built dd binary is not readable. Otherwise, this test would fail - when binaries were created as root. Reported by Bauke Jan Douma in - <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/8433>. - -2006-10-03 Paul Eggert <eggert@cs.ucla.edu> - - * src/system.h (ST_BLKSIZE): Ceiling at SIZE_MAX / 8 + 1, not at 4 - MiB, since XFS hosts can legitimately have large values of - st_blksize. Problem reported by Tony Ernst in - <http://savannah.gnu.org/bugs/?17903>. - -2006-10-04 Jim Meyering <jim@meyering.net> - - * src/remove.c (nonexistent_file_errno): Remove ENAMETOOLONG. - Paul Eggert pointed out that the specified file may exist, - in spite of such an errno value. - * tests/rm/Makefile.am (TESTS): Remove ignore-name-too-long. - * tests/rm/ignore-name-too-long: Remove file. - * NEWS: Update here, too. - -2006-10-03 Jim Meyering <jim@meyering.net> - - * tests/rm/fail-eperm: Report failure also if rm is terminated by - a signal. - - * src/c99-to-c89.diff: Convert two c99'isms -- one in remove.c - and one in shred.c -- that were added before coreutils-6.3. - Reported by Michael Deutschmann. - - * src/c99-to-c89.diff: Update to reflect new offsets. - - * src/remove.c (remove_entry): With -f, exit successfully in spite - of a missing file under some very unusual conditions (with errno - being any of ENOENT, ENOTDIR, ENAMETOOLONG). - - With --force (-f), rm no longer fails for ENOTDIR. - * src/remove.c (ignorable_missing): New function. - Use it everywhere, rather than open-coding the test. - Andreas Schwab reported the ENOTDIR problem. - (ignorable_missing): Similarly, don't fail for ENAMETOOLONG. - - * NEWS: Mention the bug fix. - * tests/rm/ignorable: New file. Test for the ENOTDIR case. - * tests/rm/ignore-name-too-long: New file. Test for ENAMETOOLONG. - * tests/rm/Makefile.am (TESTS): Add the new file names. - - * bootstrap: Undo last change to this file, since now gnulib-tool - sticks with the automake default in generating dependencies. - - * NEWS: Add a line for 6.4-cvs. - * configure.ac (AC_INIT): Bump to 6.4 and add "-cvs" suffix. - -2006-09-30 Jim Meyering <jim@meyering.net> - - Version 6.3. - * NEWS: Record the 6.3 release date. - * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. - - * NEWS: Mention Paul's Solaris 8 vs. 10 work-around. - - * src/c99-to-c89.diff: Update offsets. - -2006-09-29 Paul Eggert <eggert@cs.ucla.edu> - - * tests/rm/readdir-bug: Don't use $(...) in a shell script, - as it doesn't work with Solaris /bin/sh. - -2006-09-29 Jim Meyering <jim@meyering.net> - - * NEWS: Mention Paul's fix (to gnulib's canon-host.c) for - the pinky segfault. - - * tests/seq/basic [neg-2, eq-wid-2]: Comment out tests that - use .1 as the increment. Actual output varies too much. - [eq-wid-3]: New, commented out test. - - * src/shuf.c (read_input): Fix an off-by-one error that - would cause an infloop for piped input of 8KB or more. - * NEWS: Mention the fix. - * tests/misc/shuf: Test for the above fix. - - Since any system may be affected by the Darwin readdir bug, - perform the extra rewinddir unconditionally. The performance - impact of rewinding a directory is negligible. - * src/remove.c (NEED_REWIND): Define to use - CONSECUTIVE_READDIR_UNLINK_THRESHOLD unconditionally. - - * tests/seq/basic: Use .11 as the upper bound, in case the ".1" - increment translates to a slightly larger value. - This corrects a test failure on FreeBSD 6.1 reported by Nelson Beebe. - The final expected value wasn't being printed. - - Work around a readdir bug in Darwin 7.9.0 (MacOS X 10.3.9) on HFS+ - and NFS, whereby rm would not remove all files in a directory. - * src/remove.c (CONSECUTIVE_READDIR_UNLINK_THRESHOLD): Reduce to 10. - (NEED_REWIND): New macro, so that we incur the cost of the work-around - rewinddir only on afflicted systems. - * NEWS: Clarify and correct. - * tests/rm/readdir-bug: New file. Test for the above fix. - * tests/rm/Makefile.am (TESTS): Add it. - Prompted by testing and analysis from Bruno Haible: - http://lists.gnu.org/archive/html/bug-coreutils/2006-09/msg00326.html - -2006-09-28 Paul Eggert <eggert@cs.ucla.edu> - - * tests/rm/fail-eperm: Unset BASH_ENV, CDPATH, and ENV, too; - suggested for Debian stable, which uses Perl 5.8.4. - -2006-09-28 Jim Meyering <jim@meyering.net> - - Automatically generated dependencies are important even - when all of the sources in a directory come from gnulib. - * bootstrap (gnulib_tool): Remove the "no-dependencies" automake - option that gnulib-tool adds to what becomes our lib/gnulib.mk. - - * tests/rm/fail-eperm: Enable Perl's (-T) taint checking. - Ensure that IFS is set properly and unset PATH. - Sanitize inputs. - Work properly even when the name of the selected file starts with "-". - Invoke rm via "../../src/rm", and adjust expected output. - Prompted by a patch from Tim Waugh. - - * README-cvs: Add Bison to the list of required packages. - -2006-09-26 Jim Meyering <jim@meyering.net> - - * src/c99-to-c89.diff: Update offsets. - - * NEWS: rm works around a bug in Darwin 8.6.1 w/NFS that kept - it from removing a directory containing 188 or more entries. - * src/remove.c (CONSECUTIVE_READDIR_UNLINK_THRESHOLD): Decrease by - 20, go work around the buggy readdir on Darwin 8.6.1 with NFS. - Reported by Matthew Woehlke. - -2006-09-26 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: "groups user" no longer outputs "user :"; you need at least - two users. "groups" now processes options like --help more compatibly. - * src/groups.sh: Implement the option-processing change. - Handle user and group names with special characters more robustly. - Report write errors instead of exiting silently with status 1. - -2006-09-26 Jim Meyering <jim@meyering.net> - - * README: Warn not to run autoreconf manually. Use bootstrap instead. - - * src/groups.sh: When invoked with 0 or 1 argument, just exec "id". - Rewrite to avoid using temporary, $status. - - * NEWS: Mention the bug fix. - * src/groups.sh: Don't hide a write failure. - Reported by Iain Calder <ic56@rogers.com>. - -2006-09-25 Jim Meyering <jim@meyering.net> - - * src/chown.c (usage): Clarify --dereference description. - * src/chgrp.c (usage): Likewise. Suggestion from Jamie McClelland. - -2006-09-24 Jim Meyering <jim@meyering.net> - - * NEWS: Mention these fixes. - * src/copy.c (copy_reg): With --verbose (-v), print - "removed `file_name'" just after unlinking a file. - (copy_internal): Likewise, in three more places. - Marc Lehman reported that "touch x; ln x y; mv -v x y" was silent. - * tests/mv/hard-verbose: New file. Test for the above fix. - * tests/mv/Makefile.am (TESTS): Add hard-verbose. - - * tests/help-version (sync_args): Don't call sync, since it spins up - disks that I've deliberately caused to spin down (but not unmounted). - - * NEWS: Mention the improvement to sort. - - * tests/tail-2/proc-ksyms: Require that /proc/ksyms be readable - as well as existing. - - * tests/ls/stat-dtype: Don't use tmpfs on linux-2.4 or older, - since that predated addition of d_type support. - -2006-09-23 Jim Meyering <jim@meyering.net> - - * gl/modules/getloadavg.diff: New file. Work around the way the latest - version of the getloadavg module interacts with our bootstrap script. - * bootstrap (gnulib_tool_options): Add "--local-dir gl". - * Makefile.am (EXTRA_DIST): Sort file names. - Add bootstrap and gl/modules/getloadavg.diff - -2006-09-20 Paul Eggert <eggert@cs.ucla.edu> - - * bootstrap: Add support for --force. - (usage): New function. Describe usage less tersely. - (CVS_only_file): New var. - - * NEWS: Document fix for cp -i and mv -i. - * src/copy.c (copy_internal): With -i, prompt even if the source - is a directory and the destination is not. This is required by - POSIX and gives the user a chance to bail out before failing. - * tests/cp/Makefile.am (TESTS): Add cp-i. - * tests/cp/cp-i: New file. - * tests/mv/Makefile.am (TESTS): Add i-5. - * tests/mv/i-5: New file. - -2006-09-20 Jim Meyering <jim@meyering.net> - - * NEWS: Mention the chmod bug fix. - - * tests/chmod/inaccessible: New test, specifically for this bug. - Based on a test case from Paul Eggert. - * tests/chmod/Makefile.am (TESTS): Add inaccessible. - - Fix the 2006-09-18 bug differently. - * src/chmod.c: (process_file): Upon FTS_NS for a top-level file, - tell fts_read to stat the file again, in case it has become - accessible since the initial fts_open call. - * src/chown-core.c (change_file_owner): Likewise. - - * src/chmod.c: Revert last change. There is a better way. - * src/chown-core.c: Likewise. - -2006-09-19 Paul Eggert <eggert@cs.ucla.edu> - - * src/ln.c (target_directory_operand): Rewrite to avoid porting - problem on Tandem reported by Matthew Woehlke in - <https://savannah.gnu.org/bugs/?17172>. - -2006-09-18 Paul Eggert <eggert@cs.ucla.edu> - - Fix bug where chmod, chown, and chgrp did not process operands - left-to-right in some cases. - * src/chmod.c (wd_errno): New var. - (chmod_file): New function, with most of the contents of the - old prcess_file function. - (process_files): Use it. This gives file names to fts one - at a time, so that they are processed left-to-right as POSIX - requires. - * src/chown-core.c (wd_errno, chown_files): Likewise. - (chown_file): New function. - * tests/install/basic-1: Redo test so as to not workaround - the chmod bug, thereby testing for it. - - * src/shuf.c (main): Quote the entire range when reporting an - invalid one, rather than just the part that contained the error. - - * tests/stty/row-col-1: Rewrite to avoid temporary file that is - sometimes left behind if the test is skipped or interrupted. - - * bootstrap (symlink_to_gnulib): New function. - (cp_mark_as_generated): Use it, to prefer symlinks-to-gnulib - to copies-of-gnulib. - (cp_mark_as_generated, slurp, gnulib_files): - Avoid making a copy if it's the same as the old version. - (gnulib_files): Add support for this variable (used by Bison). - - * tests/ls/stat-vs-dirent: Fix quoting problem in diagnostic - indicating flaw in kernel. Reword to say that the flaw isn't - serious for coreutils, since the flaw does affect ls -i. - - * tests/chgrp/basic: Fix bug in test case exposed by building on - Solaris 8 in a setgid directory. The test case incorrectly - assumed that 'symlink' would be in group $g1. - -2006-09-18 Jim Meyering <jim@meyering.net> - - * NEWS: Add a line for 6.3-cvs. - * configure.ac (AC_INIT): Bump to 6.3 and add "-cvs" suffix. - - Version 6.2. - * NEWS: Record the 6.2 release date. - * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. - -2006-09-17 Jim Meyering <jim@meyering.net> - - * tests/chgrp/basic: On an OpenBSD system, rather than failing - due to a known problem, merely warn about it. - Rewrite to avoid testing output of chgrp --verbose and chgrp -c. - Instead, use stat to test file system for desired results, directly. - * tests/chgrp/Makefile.am (TESTS_ENVIRONMENT): Set host_triplet. - - * tests/envvar-check: Add more variable names to the list of those - that can affect these programs and tests: _POSIX2_VERSION, COLUMNS, - QUOTING_STYLE, TABSIZE, TERM, TMPDIR. - -2006-09-16 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: Document that mkdir -p and install -d now fork on occasion. - * bootstrap.conf (gnulib_modules): Add savewd. - * src/install.c: Include savewd.h. - (process_dir): New function. - (main, install_file_in_file_parents): Use it, along with the new - savewd module, to avoid some race conditions. - * src/mkdir.c: Include savewd.h. - (struct mkdir_options): New members make_ancestor_function, mode, - mode_bits. - (make_ancestor): Return 1 if the resulting directory is not readable. - (process_dir): New function. - (main): Use it, along with new savewd module, to avoid some - race conditions. Fill in new slots of struct mkdir_options, so - that callees get the values. - * tests/install/basic-1: Test for coreutils 5.97 bug that was - fixed in coreutils 6.0, and which should still be fixed with - this change. - * tests/mkdir/p-3: Likewise. - -2006-09-15 Jim Meyering <jim@meyering.net> - - * bootstrap.conf (gnulib_modules): Add rename-dest-slash. - The 2006-09-08 changes made it so "mv dir new-name/" would - fail on NetBSD 1.6. This makes it work once again. - -2006-09-14 Jim Meyering <jim@meyering.net> - - * src/mv.c (main): Remove unnecessary (always-true) test for 2 <= n. - Instead, since it's a little fragile, assert the condition. - (target_directory_operand): Update comment to reflect latest change. - -2006-09-12 Paul Eggert <eggert@cs.ucla.edu> - - * src/who.c (print_user): Rewrite to avoid warning from - GCC 4.1.1 with -Wall. - -2006-09-12 Jim Meyering <jim@meyering.net> - - * tests/mv/atomic: Check for specific strace output, rather than - simply nonempty. RHEL AS 4 would fail this test due to strace - generating "[ Process PID=14434 runs in 32 bit mode. ]". - Reported by Nelson Beebe. - -2006-09-11 Jim Meyering <jim@meyering.net> - - * src/remove.c (remove_dir): Move new cache_stat_init call onto - it's own line. - (rm_1): Move declaration of "st" and new cache_stat_init call - "down" to nearer where they're used. - * src/c99-to-c89.diff: Add another set of curly braces. - -2006-09-10 Paul Eggert <eggert@cs.ucla.edu> - - * src/expr.c (eval6): Fix buffer overrun, or bad performance, if - substr's last operand is very large. Performance problem reported - by Sebastian Kreft. - -2006-09-09 Jim Meyering <jim@meyering.net> - - * Makefile.maint (sc_prohibit_jm_in_m4): Don't hang when there - are no .m4 files. - (sc_require_config_h): Skip this test if there are no version- - controlled .c files. - (sc_prohibit_assert_without_use): Likewise. - -2006-09-08 Jim Meyering <jim@meyering.net> - - * bootstrap: Export CVS_RSH separate from its assignment, to work - even with Solaris 10's /bin/sh. Suggestion from Mark D. Baushke. - -2006-09-08 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: tail now ignores the -f option if POSIXLY_CORRECT is set, - no file operand is given, and standard input is any FIFO. - This is in response to Open Group XCU ERN 114. - * src/tail.c (main): Likewise. - -2006-09-08 Jim Meyering <jim@meyering.net> - - 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 reverts part of the 2004-06-27 - change for 5.3.0. - * NEWS: Say the above. - * src/mv.c (target_directory_operand): Don't require (here) - that the target operand "look like" a directory. This change - pushes the test down to the rename syscall level, where a - "mv dir existing-non-dir/" will mistakenly succeed on older systems - that ignore trailing slashes in the rename destination argument. - * src/cp.c (target_directory_operand): Likewise, but for cp. - * tests/mv/trailing-slash: Exercise the above fixes. - * tests/cp/trailing-slash: New file. - * tests/cp/Makefile.am (EXTRA_DIST): Add trailing-slash. - - * bootstrap: Use the previously unused variable, $src, - to avoid repeating "$GNULIB_SRCDIR/$file". - - * bootstrap (cp_mark_as_generated): Don't use "local", to - accommodate ancient "/bin/sh". Suggested by Ralf Wildenhues. - Rename now-global "$src" and "$dst" to have cp_ prefix. - Safer, and avoids confusion. - - * bootstrap (cp_mark_as_generated): New function. - (slurp): Use it to prepend editor hints and a warning that - the file we're copying is generated. - Suggestion from Bruce Korb. - (cp_mark_as_generated): Don't add C-style comments for .l or .y files. - Fix last-minute typo. - -2006-09-07 Jim Meyering <jim@meyering.net> - - * bootstrap: Revert last change. There are less disruptive ways - to mark these generated files as read-only. - - * src/c99-to-c89.diff: Update to have proper offsets. - -2006-09-06 Jim Meyering <jim@meyering.net> - - Ensure that some gnulib-tool-generated files are read-only. - * bootstrap (slurp): Put the body of this function in a sub-shell, - with "umask a-w" so that all new files are read-only. Remove each - file before we write to it, in case it's read-only. - Make po/Makevars and runtime-po/Makevars read-only, too. - -2006-09-05 Jim Meyering <jim@meyering.net> - - * tests/cp/acl: Skip this test when cp lacks ACL support. - * tests/cp/Makefile.am (TESTS_ENVIRONMENT): Set $(CONFIG_HEADER). - - * src/c99-to-c89.diff (remove.c): Adapt one hunk to match the new - context from change of 2006-09-02. - -2006-09-04 Jim Meyering <jim@meyering.net> - - * README-cvs: Fix typo in update command. - -2006-09-03 Jim Meyering <jim@meyering.net> - - * NEWS: Tweak the wording in the new change description so that - no one can think this change causes e.g., `rm -fr foo../' to fail. - - * tests/rm/inaccessible: Adjust for movement of config.h to lib/. - Use $CONFIG_HEADER, rather than hard-coding it. - * tests/rm/Makefile.am (TESTS_ENVIRONMENT): Set $CONFIG_HEADER. - -2006-09-02 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: rm now rejects attempts to remove /, ./, and ../. - * src/basename.c: Don't include dirname.h, since system.h does it now. - * src/chmod.c: Likewise. - * src/copy.c: Likewise. - * src/cp.c: Likewise. - * src/df.c: Likewise. - * src/dircolors.c: Likewise. - * src/dirname.c: Likewise. - * src/du.c: Likewise. - * src/install.c: Likewise. - * src/ln.c: Likewise. - * src/ls.c: Likewise. - * src/mkdir.c: Likewise. - * src/mv.c: Likewise. - * src/remove.c: Likewise. - * src/rm.c: Likewise. - * src/rmdir.c: Likewise. - * src/shred.c: Likewise. - * src/split.c: Likewise. - * src/su.c: Likewise. - * src/system.h: Include "dirname.h", since dot_or_dotdot needs it - now. - (dot_or_dotdot): Succeed even if "." or ".." is followed by a - slash. - * src/rm.c (usage, main): --preserve-root is now the default. - * src/remove.h: Fix comment. - * src/remove.c (cache_fstatat, cache_stat_init): New functions. - (cache_statted, cache_stat_ok): New functions. - (write_protected_non_symlink): Remove struct stat ** buf_p arg, - which is no longer needed with the new functions. All callers - changed. - (prompt, is_dir_lstat, remove_entry, remove_dir): - New struct stat * arg. All callers changed. - (write_protected_non_symlink, prompt, is_dir_lstat, remove_entry): - (remove_cwd_entries, remove_dir, rm_1): - Use and maintain the file status cache. - (prompt, remove_entry): Omit the first "directory" in the diagnostic - "Cannot remove directory `foo': is a directory". This causes "rm" - to pass a test case that it would otherwise fail now that it - "knows" more about its argument. I think the diagnostic is better - without the first "directory" anyway. - (prompt): Remove the no-longer-needed IS_DIR arg; all callers changed. - (rm_1): Reject attempts to remove /, ./, or ../. - * tests/rm/Makefile.am (TESTS): Add r-4. - * tests/rm/r-4: New file. - -2006-09-01 Paul Eggert <eggert@cs.ucla.edu> - - * src/stat.c: Include <stddef.h> - (alignof): New macro. - (HAVE_STRUCT_STATXFS_F_FSID___VAL, HAVE_STRUCT_STATXFS_F_FSID_VAL): - Remove. - (STRUCT_STATXFS_F_FSID_IS_INTEGER): New macro. - (FSID_VAL): Remove. - (print_statfs): If f_fsid isn't an integer, grab its words one - at a time in little-endian order. This is a bit easier to configure - and should avoid a compilation failure on MacOS reported by Bruno - Haible. - -2006-08-29 Paul Eggert <eggert@cs.ucla.edu> - - * src/stat.c (HAVE_STRUCT_STATXFS_F_FSID_VAL, FSID_VAL): New macros, to - work around a Mac OS X porting problem reported by Bruno Haible in - <http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00308.html>. - (print_statfs): Use them. - - * bootstrap.conf (gnulib_modules): Add isapipe. - * src/tail.c: Include isapipe.h. - (IS_PIPE_LIKE_FILE_TYPE): Remove. - (IS_TAILABLE_FILE_TYPE): Just list both FIFOs and sockets as - tailable, since this seems to be portable. - (main): Use isapipe, to fix a bug on MacOS X reported by Bruno Haible in - <http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00304.html>. - - * src/system.h (LOCALEDIR): Remove, since configmake.h now defines - it for us. - -2006-08-28 Paul Eggert <eggert@cs.ucla.edu> - - * src/copy.c (copy_internal): Don't test whether macros like - S_ISLNK are defined, since they're always defined now. - * src/cp.c (main): Likewise. - * src/ln.c (main): Likewise. - * src/ls.c (get_link_name, make_link_name): Likewise. - * src/mknod.c (main): Likewise. - * src/mkfifo.c (usage): Likewise. - * src/who.c (S_IWGRP): Likewise. - - Adjust to recent gnulib changes for the gnulib module. - * bootstrap.conf (gnulib_modules): Add fcntl. - * src/system.h (SEEK_SET, SEEK_CUR, SEEK_END): Remove. Other code - is already assuming these macros are defined. - (O_DIRECT, O_DIRECTORY, O_DSYNC, O_NDELAY, O_NOATIME, O_NONBLOCK): - (O_NOCTTY, O_NOFOLLOW, O_NOLINKS, O_RSYNC, O_SYNC, O_BINARY, O_TEXT): - Remove; the fcntl module now handles these. - - Adjust to recent gnulib changes for the inttypes module. - * bootstrap.conf (gnulib_modules): Remove stdint; add inttypes. - (excluded_files): Don't exclude m4/inttypes-h.m4 or m4/inttypes-pri.m4. - - * src/system.h: Don't bother to include <stdint.h>, since we can - now assume inttypes.h does the equivalent of including stdint.h. - -2006-08-27 Jim Meyering <jim@meyering.net> - - * src/copy.c (copy_internal): Don't make a backup if the last - component of the source name is "." or "..". - Reported by Andreas Schwab in http://savannah.gnu.org/bugs/?17540. - * NEWS: Mention this. - * tests/cp/src-base-dot: New file. Test for the above fix. - * tests/cp/Makefile.am (TESTS): Add src-base-dot. - - * src/system.h (DOT_OR_DOTDOT): Remove macro. Rewrite as a... - (dot_or_dotdot): ...new static inline function. - * src/remove.c (rm_1): Reflect this renaming. - * src/ls.c (basename_is_dot_or_dotdot): Likewise. - - * src/copy.c (copy_internal): Add comments. - -2006-08-26 Paul Eggert <eggert@cs.ucla.edu> - - * src/Makefile.am (AM_CPPFLAGS): Remove -I$(srcdir) and -I../lib, - since Automake supplies them for us. It always did -I$(srcdir), - and with the recent change to AC_CONFIG_HEADERS in configure.ac it - is now also doing -I../lib. - - * bootstrap (get_translations): Skip this if WGET_COMMAND is empty. - Fail if the first "echo" fails. Suppress diagnostics from "ls po/*.po" - since there might not be any .po files. - (WGET_COMMAND): Set to empty if wget doesn't - seem to be available. - -2006-08-26 Jim Meyering <jim@meyering.net> - - This test was failing in some environments. - * tests/ls/color-dtype-dir: Don't rely on eval "`dircolors -b`" - to set LS_COLORS in the environment. - * tests/envvar-check: Instead, ensure that LS_COLORS is not set. - Reported by Bob Proulx. - - * src/c99-to-c89.diff: Remove hunk for copy.c; no longer needed. - - * Makefile.am (EXTRA_DIST): Remove these files here, too: - .x-sc_no_if_have_config_h, .x-sc_prohibit_assert_without_use, - .x-sc_two_space_separator_in_usage. - - Fix "mv --verbose --backup" so its output includes the - " (backup: foo.~1~)" suffix also when backing up a directory. - * NEWS: Report this bug fix. - * src/copy.c (emit_verbose): New function, factored out of... - (copy_internal): ...here. Use the new function. - * tests/mv/backup-dir: Test for the above fix. - * tests/mv/Makefile.am (TESTS): Add backup-dir. - -2006-08-25 Paul Eggert <eggert@cs.ucla.edu> - - * .x-sc_no_if_have_config_h: Remove; no longer needed. - * .x-sc_prohibit_assert_without_use: Remove; it was empty. - * .x-sc_two_space_separator_in_usage: Likewise. - * Makefile.maint (sc_no_have_config_h): Renamed from - sc_no_if_have_config_h, since it now checks that HAVE_CONFIG_H - is absent everywhere. - * bootstrap.conf (gnulib_modules): Add config-h. - * src/shred.c: Include <config.h> unconditionally, since - we now assume config.h exists. - * src/dircolors.c: Likewise. - -2006-08-26 Jim Meyering <jim@meyering.net> - - "ls --color" would highlight other-writable and sticky directories - no differently than regular directories on a file system with - dirent.d_type support. - * NEWS: Say the above. - * src/ls.c (gobble_file): With --color, also stat the file when - we know it is a directory. - Derived from an anonymous one-line fix and bug report: - <http://savannah.gnu.org/bugs/?15043>. - * tests/ls/color-dtype-dir: New file. Test for the above fix. - * tests/ls/Makefile.am (TESTS): Add color-dtype-dir. - -2006-08-25 Paul Eggert <eggert@cs.ucla.edu> - - * .cvsignore: Remove stamp-h1. Add coreutils-*, to ignore - tarballs. - * bootstrap.conf: Add configmake, verify. - * src/.cvsignore: Remove localedir.h. - * src/Makefile.am (localedir, DISTCLEANFILES, localedir.h): Remove; - subsumed by configmake. - * src/system.h: Include configmake.h rather than localedir.h - (LOCALEDIR): New macro. - - Rewrite to avoid some unnecessary casts, macros, literals. - * src/shred.c (DEFAULT_PASSES, VERBOSE_UPDATE): Now constants, - not macros. - (SECTOR_SIZE, SECTOR_MASK): New constants. - (fillpattern, dopass, do_wipefd, main): Remove unnecessary casts, - and use the SECTOR_* constants when applicable. Check for size < - 0 rather than size == -1, since negative-size files are a sign of - trouble anyway. - -2006-08-25 Bruno Haible <bruno@clisp.org> - - * src/shred.c (dopass): Assume a continuable error if EIO even - if the current position is not a multiple of 512. - -2006-08-24 Jim Meyering <jim@meyering.net> - - * src/stat.c (print_statfs): Fix typo: remove extra "sizeof". - -2006-08-23 Paul Eggert <eggert@cs.ucla.edu> - - * src/stat.c (HAVE_STRUCT_STATXFS_F_FSID___VAL): Define. This - macro was being used without being defined. - (SB_F_NAMEMAX): Remove cast. - (f_fsid) [BeOS]: Likewise. - (OUT_NAMEMAX): Renamed from NAMEMAX_FORMAT, with a new meaning. - All uses changed. - (out_string, out_int, out_uint, out_uint_o, out_uint_x): New - functions. - (xstrcat): Remove. All uses changed to use the above functions. - (print_statfs, print_stat): 2nd arg is now the prefix len, not the - buffer len. All uses changed. Output '?', not '*', for unknown - data or errors. Do not assume signed values can be interchanged - with unsigned when printing. - (print_statfs): For %i, print the fsid as a single int, not as a - pair. - (print_it): Quote invalid format better. - - * NEWS: printf supports the I flag. - * src/printf.c (print_formatted) [glibc 2.2 or later]: Likewise. - -2006-08-23 Bruno Haible <bruno@clisp.org> - - * src/stat.c (STRUCT_STATVFS, statfs, f_fsid, f_blocks, f_bfree) [BeOS]: - (f_bavail, f_bsize, STATFS_FRSIZE, f_files, f_ffree) [BeOS]: - (STATXFS_FILE_SYSTEM_TYPE_MEMBER_NAME) [BeOS]: Define. - - * src/ls.c (SA_RESTART): Fallback define. - -2006-08-23 Paul Eggert <eggert@cs.ucla.edu> - - * src/system.h (EDQUOT): Define if not already defined. - Problem reported by Bruno Haible for BeOS. - - * .cvsignore: Remove config.h, config.hin, as they are now - in lib. - * configure.ac (AC_CONFIG_HEADERS): Move config.h and config.hin - to lib. - * src/Makefile.am (AM_CPPFLAGS): Remove '-I..'; no longer needed. - - * bootstrap (slurp): Define gl_LOCK_EARLY instead of gl_LOCK, - to accommodate today's gnulib change. - -2006-08-23 Jim Meyering <jim@meyering.net> - - * NEWS: Mention the sweeping infrastructure changes. - -2006-08-22 Paul Eggert <eggert@cs.ucla.edu> - - * bootstrap.conf (gnulib_modules): Add gnupload. - * Makefile.maint (emit_upload_commands): gnupload is now - in build-aux. - * gnupload: Remove from CVS, since it's now a gnulib module. - - * bootstrap (bootstrap_conf_cleanup): Remove. - (excluded_files): New var. - * bootstrap.conf: Likewise. - * bootstrap (slurp): Exclude files early if they're in the - excluded_files list. That way, their names don't get put into - .cvsignore. - - * aclocal.m4, config.hin, configure: - Remove from CVS, since ./bootstrap generates them automatically. - * .cvsignore: Add INSTALL, Makefile.in, aclocal.m4, config.hin, - configure, *.cache, *.lineno, *.log. - Remove more-specific entries. This catches files like configure.lineno. - * man/.cvsignore: Add Makefile.in. - * src/.cvsignore: Add Makefile.in. - Remove .version, dir.c, install, mvdir, stamp-v, vdir.c, version.c. - - * tests/.cvsignore: - * tests/chgrp/.cvsignore: - * tests/chmod/.cvsignore: - * tests/chown/.cvsignore: - * tests/cp/.cvsignore: - * tests/cut/.cvsignore: - * tests/dd/.cvsignore: - * tests/dircolors/.cvsignore: - * tests/du/.cvsignore: - * tests/expr/.cvsignore: - * tests/factor/.cvsignore: - * tests/fmt/.cvsignore: - * tests/head/.cvsignore: - * tests/install/.cvsignore: - * tests/join/.cvsignore: - * tests/ln/.cvsignore: - * tests/ls/.cvsignore: - * tests/ls-2/.cvsignore: - * tests/md5sum/.cvsignore: - * tests/misc/.cvsignore: - * tests/mkdir/.cvsignore: - * tests/mv/.cvsignore: - * tests/od/.cvsignore: - * tests/pr/.cvsignore: - * tests/readlink/.cvsignore: - * tests/rm/.cvsignore: - * tests/rmdir/.cvsignore: - * tests/seq/.cvsignore: - * tests/sha1sum/.cvsignore: - * tests/shred/.cvsignore: - * tests/sort/.cvsignore: - * tests/stty/.cvsignore: - * tests/sum/.cvsignore: - * tests/tac/.cvsignore: - * tests/tail/.cvsignore: - * tests/tail-2/.cvsignore: - * tests/tee/.cvsignore: - * tests/test/.cvsignore: - * tests/touch/.cvsignore: - * tests/tr/.cvsignore: - * tests/tsort/.cvsignore: - * tests/unexpand/.cvsignore: - * tests/uniq/.cvsignore: - * tests/wc/.cvsignore: - Add Makefile.in. Sort entries if necessary. Remove *.I, *.E, - *.X, *.O, *-tests, build-script, mk-script if they're never - created in this directory. - -2006-08-22 Bruno Haible <bruno@clisp.org> - - BeOS portability. - * src/uptime.c: Include OS.h if it exists. - (print_uptime): On BeOS, use the get_system_info function (actually a - macro). Loop through utmp entries only if utmp.h or utmpx.h exists. - (uptime): Call read_utmp only if utmp.h or utmpx.h exists. - -2006-08-22 Jim Meyering <jim@meyering.net> - - * .cvsignore: Add ABOUT-NLS. - - Move the check-AUTHORS rule to be run as part of "make distcheck", - rather than "make check". - * src/Makefile.am (check): Don't depend on check-AUTHORS; it would - cause "make check" to fail on systems unable to build all binaries. - * Makefile.maint (check-AUTHORS): New rule. - (local-checks-available): Add it here. - Reported by Bruno Haible. Needed for BeOS. - -2006-08-21 Paul Eggert <eggert@cs.ucla.edu> - - * src/df.c (print_header, show_dev): Use a column width that - depends on the block size of -P is specified and not autoscaling. - Problem reported by Gustavo G. Rondina in: - http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00164.html - -2006-08-21 Jim Meyering <jim@meyering.net> - - * tests/dircolors/simple (a): Don't fail with an unexpected diagnostic - when the shell variable, SHELL, is not set. - Trigger the failure with "(unset SHELL; make check TESTS=simple)". - Reported by Sven Joachim in <http://bugs.debian.org/355368>. - - * src/od.c: Now that HAVE_UNSIGNED_LONG_LONG is no longer defined - in config.h, change the uses to HAVE_UNSIGNED_LONG_LONG_INT. - Otherwise, on a system with 4-byte longs, "od -t u8" fails with this: - od: invalid type string `u8'; - this system doesn't provide a 8-byte integral type - FIXME: add a test for this, but skip it when sizeof uintmax < 8. - -2006-08-20 Paul Eggert <eggert@cs.ucla.edu> - - Add a bootstrap procedure, so that the CVS version contains fewer - files and we bootstrap the rest from gnulib, gettext, etc. - * README-cvs: New file. - * bootstrap: New file. - * bootstrap.conf: New file. - * .x-sc_trailing_blank: Remove config-log, .gdb-history. Add .po. - * configure.ac (AC_PREREQ): Move here from m4/*.m4, for benefit - of gnulib-tool. - (gl_DEFAULT_POSIX2_VERSION, gl_USE_SYSTEM_EXTENSIONS, gl_PERL): - (gl_IGNORE_UNUSED_LIBRARIES): Remove; now done by gnulib. - (gl_EARLY): Add. - (gl_MACROS): Call just after gl_EARLY, just for clarity. - * src/c99-to-c89.diff: Remove patch to ls.c; no longer needed. - * src/kill.c (strtoimax): Remove decl. - * src/ls.c: Include "wcwidth.h" instead of rolling it ourselves. - * src/wc.c: Likewise. - * src/ls.c (sort_files): Rewrite to avoid need for C99-style - declaration, so that we don't need to patch this file. - * src/printf.c (strtoimax, strtoumax): Remove decls. - * src/su.c: Include getpass.h. - (getpass): remove. - * src/system.h: Include mempcpy.h, stpcpy.h, strpbrk.h. - Include inttypes.h unconditionally. - (LONGEST_MODIFIER, PRIdMAX, PRIoMAX, PRIuMAX, PRIxMAX): Remove. - (stpcpy, strndup, strstr, strtoul, mempcpy, CHAR_MIN, CHAR_MAX): - (SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, SHRT_MIN, SHRT_MAX, INT_MAX): - (INT_MIN, INTMAX_MAX, INTMAX_MIN, UINT_MAX, LONG_MAX, ULONG_MAX): - (SIZE_MAX, SSIZE_MAX, UINTMAX_MAX): Remove. - - * ABOUT-NLS, INSTALL, Makefile.in, man/Makefile.in: - * src/Makefile.in, tests/Makefile.in, tests/chgrp/Makefile.in: - * tests/chmod/Makefile.in, tests/chown/Makefile.in: - * tests/cp/Makefile.in, tests/cut/Makefile.in: - * tests/dd/Makefile.in, tests/dircolors/Makefile.in: - * tests/du/Makefile.in, tests/expr/Makefile.in: - * tests/factor/Makefile.in, tests/fmt/Makefile.in: - * tests/general/Makefile.in, tests/head/Makefile.in: - * tests/install/Makefile.in, tests/join/Makefile.in: - * tests/ln/Makefile.in, tests/ls/Makefile.in: - * tests/ls-2/Makefile.in, tests/md5sum/Makefile.in: - * tests/misc/Makefile.in, tests/mkdir/Makefile.in: - * tests/mv/Makefile.in, tests/od/Makefile.in: - * tests/pr/Makefile.in, tests/readlink/Makefile.in: - * tests/rm/Makefile.in, tests/rmdir/Makefile.in: - * tests/seq/Makefile.in, tests/sha1sum/Makefile.in: - * tests/shred/Makefile.in, tests/sort/Makefile.in: - * tests/stty/Makefile.in, tests/sum/Makefile.in: - * tests/tac/Makefile.in, tests/tail/Makefile.in: - * tests/tail-2/Makefile.in, tests/tee/Makefile.in: - * tests/test/Makefile.in, tests/touch/Makefile.in: - * tests/tr/Makefile.in, tests/tsort/Makefile.in: - * tests/unexpand/Makefile.in, tests/uniq/Makefile.in: - * tests/wc/Makefile.in: - Remove from CVS, since ./bootstrap generates them automatically. - -2006-08-20 Eric Blake <ebb9@byu.net> - - * src/stat.c (USE_STATVFS): Reinstate the patch from 2006-08-15; - the patch from 2006-08-18 broke on cygwin. - -2006-08-20 Jim Meyering <jim@meyering.net> - - * NEWS: Add a line for 6.2-cvs. - * configure.ac (AC_INIT): Bump to 6.2 and add "-cvs" suffix. - -2006-08-19 Jim Meyering <jim@meyering.net> - - * Version 6.1. - * NEWS: Record the 6.1 release date. - * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. - - * tests/Makefile.am (EXTRA_DIST): Add sparse-file. - - Avoid test failure when `make check' is run through debuild. - * tests/help-version: Ensure that $SHELL is set to some value - and exported. Patch from Sven Joachim. For details, see - <http://bugs.debian.org/355368>. - - * tests/ls/stat-dtype: Test for the 2006-08-17 `ls -CF' fix. - - * README: Describe potential "pre-C99 build failure", and work-around. - - Some of my 2006-07-03 changes to tests/*/Makefile.am were being - backed out due to updates provoked by the copyright changes. - * tests/Makefile.am.in (PATH): Prepend $(VG_PATH_PREFIX), so that - it propagates to the derived Makefile.am files. - ($(srcdir)/Makefile.am): Mark generated .am files as read-only, - so we don't mistakenly edit them again. - * tests/cut/Makefile.am: Regenerate. - * tests/head/Makefile.am: Likewise. - * tests/join/Makefile.am: Likewise. - * tests/pr/Makefile.am: Likewise. - * tests/sort/Makefile.am: Likewise. - * tests/tac/Makefile.am: Likewise. - * tests/tail/Makefile.am: Likewise. - * tests/test/Makefile.am: Likewise. - * tests/tr/Makefile.am: Likewise. - * tests/uniq/Makefile.am: Likewise. - * tests/wc/Makefile.am: Likewise. - - * NEWS: Fix cp --sparse so that it preserves tail-end sparseness, even - when the file's apparent size is not a multiple of its block size. - * src/copy.c (copy_reg): Don't write a NUL before calling ftruncate. - For some file sizes, writing that single byte would unnecessarily - waste a few file blocks. That write may have been necessary in the - early days of Linux, but now, removing it should be safe. - Based on a patch by Alan Curry: <http://bugs.debian.org/370792> - * tests/cp/sparse: New test for the above. - * tests/cp/Makefile.am (TESTS): Add sparse. - - * tests/sparse-file: New file, essence factored out of... - * tests/du/8gb: ... here. Use the new script. - -2006-08-18 Paul Eggert <eggert@cs.ucla.edu> - - * src/system.h (select_plural): Reduce by 1000000, not 1000, since - the CVS gettext manual now suggests 1000000. - -2006-08-18 Bruno Haible <bruno@clisp.org> - - Add support for NetBSD 3.0. - * src/stat.c (USE_STATVFS): Set to 1 if 'struct statvfs' has a field - f_fstypename. - (STATXFS_FILE_SYSTEM_TYPE_MEMBER_NAME): Define also if 'struct statvfs' - has a field f_fstypename. - This undoes the 2006-08-15 to src/stat.c. - -2006-08-17 Paul Eggert <eggert@cs.ucla.edu> - - Copyright notice fixes. - - * COPYING: Upgrade to latest version from FSF. - - * src/uname.c: Use (C) in copyright notice. - - * .vg-suppressions: Add copyright notice. - * ChangeLog: Likewise. - * ChangeLog-2005: Likewise. - * Makefile.am: Likewise. - * NEWS: Likewise. - * README: Likewise. - * README-valgrind: Likewise. - * TODO: Likewise. - * announce-gen: Likewise. - * man/Makefile.am: Likewise. - * man/chmod.x: Likewise. - * man/chown.x: Likewise. - * man/df.x: Likewise. - * man/du.x: Likewise. - * man/rm.x: Likewise. - * src/dircolors.hin: Likewise. - * src/du-tests: Likewise. - * src/extract-magic: Likewise. - * src/tac-pipe.c: Likewise. - * src/wheel-gen.pl: Likewise. - * tests/Coreutils.pm: Likewise. - * tests/Makefile.am.in: Likewise. - * tests/acl: Likewise. - * tests/envvar-check: Likewise. - * tests/expensive: Likewise. - * tests/group-names: Likewise. - * tests/help-version: Likewise. - * tests/mk-script: Likewise. - * tests/priv-check: Likewise. - * tests/rwx-to-mode: Likewise. - * tests/sample-test: Likewise. - * tests/setgid-check: Likewise. - * tests/chgrp/basic: Likewise. - * tests/chgrp/deref: Likewise. - * tests/chgrp/no-x: Likewise. - * tests/chgrp/posix-H: Likewise. - * tests/chgrp/recurse: Likewise. - * tests/chmod/c-option: Likewise. - * tests/chmod/equal-x: Likewise. - * tests/chmod/equals: Likewise. - * tests/chmod/no-x: Likewise. - * tests/chmod/octal: Likewise. - * tests/chmod/setgid: Likewise. - * tests/chmod/umask-x: Likewise. - * tests/chmod/usage: Likewise. - * tests/chown/basic: Likewise. - * tests/chown/deref: Likewise. - * tests/chown/separator: Likewise. - * tests/cp/Makefile.am: Likewise. - * tests/cp/acl: Likewise. - * tests/cp/backup-1: Likewise. - * tests/cp/backup-is-src: Likewise. - * tests/cp/cp-HL: Likewise. - * tests/cp/cp-deref: Likewise. - * tests/cp/cp-mv-backup: Likewise. - * tests/cp/cp-parents: Likewise. - * tests/cp/deref-slink: Likewise. - * tests/cp/dir-rm-dest: Likewise. - * tests/cp/dir-slash: Likewise. - * tests/cp/dir-vs-file: Likewise. - * tests/cp/fail-perm: Likewise. - * tests/cp/into-self: Likewise. - * tests/cp/link: Likewise. - * tests/cp/link-no-deref: Likewise. - * tests/cp/link-preserve: Likewise. - * tests/cp/no-deref-link1: Likewise. - * tests/cp/no-deref-link2: Likewise. - * tests/cp/no-deref-link3: Likewise. - * tests/cp/perm: Likewise. - * tests/cp/preserve-2: Likewise. - * tests/cp/r-vs-symlink: Likewise. - * tests/cp/same-file: Likewise. - * tests/cp/slink-2-slink: Likewise. - * tests/cp/special-bits: Likewise. - * tests/cp/symlink-slash: Likewise. - * tests/cut/Makefile.am: Likewise. - * tests/cut/Test.pm: Likewise. - * tests/dd/misc: Likewise. - * tests/dd/not-rewound: Likewise. - * tests/dd/skip-seek: Likewise. - * tests/dd/skip-seek2: Likewise. - * tests/dd/unblock-sync: Likewise. - * tests/dircolors/simple: Likewise. - * tests/du/2g: Likewise. - * tests/du/8gb: Likewise. - * tests/du/Makefile.am: Likewise. - * tests/du/basic: Likewise. - * tests/du/deref: Likewise. - * tests/du/deref-args: Likewise. - * tests/du/exclude: Likewise. - * tests/du/fd-leak: Likewise. - * tests/du/files0-from: Likewise. - * tests/du/hard-link: Likewise. - * tests/du/inaccessible-cwd: Likewise. - * tests/du/long-from-unreadable: Likewise. - * tests/du/long-sloop: Likewise. - * tests/du/no-deref: Likewise. - * tests/du/no-x: Likewise. - * tests/du/restore-wd: Likewise. - * tests/du/slash: Likewise. - * tests/du/slink: Likewise. - * tests/du/trailing-slash: Likewise. - * tests/du/two-args: Likewise. - * tests/expr/basic: Likewise. - * tests/factor/basic: Likewise. - * tests/fmt/basic: Likewise. - * tests/fmt/long-line: Likewise. - * tests/general/Makefile.am: Likewise. - * tests/general/atgeneral.m4: Likewise. - * tests/general/dd.at: Likewise. - * tests/head/Makefile.am: Likewise. - * tests/head/Test.pm: Likewise. - * tests/install/basic-1: Likewise. - * tests/install/create-leading: Likewise. - * tests/install/d-slashdot: Likewise. - * tests/install/trap: Likewise. - * tests/join/Makefile.am: Likewise. - * tests/join/Test.pm: Likewise. - * tests/ln/backup-1: Likewise. - * tests/ln/misc: Likewise. - * tests/ln/sf-1: Likewise. - * tests/ln/target-1: Likewise. - * tests/ls/Makefile.am: Likewise. - * tests/ls/Test.pm: Likewise. - * tests/ls/dangle: Likewise. - * tests/ls/dired: Likewise. - * tests/ls/file-type: Likewise. - * tests/ls/follow-slink: Likewise. - * tests/ls/infloop: Likewise. - * tests/ls/inode: Likewise. - * tests/ls/m-option: Likewise. - * tests/ls/no-arg: Likewise. - * tests/ls/recursive: Likewise. - * tests/ls/rt-1: Likewise. - * tests/ls/stat-dtype: Likewise. - * tests/ls/stat-failed: Likewise. - * tests/ls/stat-vs-dirent: Likewise. - * tests/ls/symlink-slash: Likewise. - * tests/ls/time-1: Likewise. - * tests/ls-2/tests: Likewise. - * tests/md5sum/basic-1: Likewise. - * tests/md5sum/newline-1: Likewise. - * tests/misc/Makefile.am: Likewise. - * tests/misc/base64: Likewise. - * tests/misc/basename: Likewise. - * tests/misc/cat-proc: Likewise. - * tests/misc/close-stdout: Likewise. - * tests/misc/csplit: Likewise. - * tests/misc/date: Likewise. - * tests/misc/date-sec: Likewise. - * tests/misc/df: Likewise. - * tests/misc/dirname: Likewise. - * tests/misc/expand: Likewise. - * tests/misc/false-status: Likewise. - * tests/misc/fold: Likewise. - * tests/misc/head-c: Likewise. - * tests/misc/head-elide-tail: Likewise. - * tests/misc/head-pos: Likewise. - * tests/misc/mknod: Likewise. - * tests/misc/nice: Likewise. - * tests/misc/nl: Likewise. - * tests/misc/nohup: Likewise. - * tests/misc/paste-no-nl: Likewise. - * tests/misc/pathchk1: Likewise. - * tests/misc/printf: Likewise. - * tests/misc/printf-hex: Likewise. - * tests/misc/pwd-long: Likewise. - * tests/misc/sha224sum: Likewise. - * tests/misc/sha256sum: Likewise. - * tests/misc/sha384sum: Likewise. - * tests/misc/sha512sum: Likewise. - * tests/misc/shuf: Likewise. - * tests/misc/sort-merge: Likewise. - * tests/misc/sort-rand: Likewise. - * tests/misc/split-a: Likewise. - * tests/misc/split-fail: Likewise. - * tests/misc/split-l: Likewise. - * tests/misc/stat-fmt: Likewise. - * tests/misc/stat-printf: Likewise. - * tests/misc/tac-continue: Likewise. - * tests/misc/test-diag: Likewise. - * tests/misc/tty-eof: Likewise. - * tests/misc/wc-files0: Likewise. - * tests/misc/wc-files0-from: Likewise. - * tests/mkdir/concurrent-1: Likewise. - * tests/mkdir/p-1: Likewise. - * tests/mkdir/p-2: Likewise. - * tests/mkdir/p-3: Likewise. - * tests/mkdir/p-slashdot: Likewise. - * tests/mkdir/p-thru-slink: Likewise. - * tests/mkdir/parents: Likewise. - * tests/mkdir/perm: Likewise. - * tests/mkdir/special-1: Likewise. - * tests/mkdir/t-slash: Likewise. - * tests/mkdir/writable-under-readonly: Likewise. - * tests/mv/Makefile.am: Likewise. - * tests/mv/acl: Likewise. - * tests/mv/atomic: Likewise. - * tests/mv/backup-is-src: Likewise. - * tests/mv/childproof: Likewise. - * tests/mv/diag: Likewise. - * tests/mv/dir-file: Likewise. - * tests/mv/dir2dir: Likewise. - * tests/mv/dup-source: Likewise. - * tests/mv/force: Likewise. - * tests/mv/hard-2: Likewise. - * tests/mv/hard-3: Likewise. - * tests/mv/hard-4: Likewise. - * tests/mv/hard-link-1: Likewise. - * tests/mv/i-1: Likewise. - * tests/mv/i-2: Likewise. - * tests/mv/i-3: Likewise. - * tests/mv/i-4: Likewise. - * tests/mv/i-link-no: Likewise. - * tests/mv/into-self: Likewise. - * tests/mv/into-self-2: Likewise. - * tests/mv/into-self-3: Likewise. - * tests/mv/into-self-4: Likewise. - * tests/mv/leak-fd: Likewise. - * tests/mv/mv-special-1: Likewise. - * tests/mv/no-target-dir: Likewise. - * tests/mv/part-fail: Likewise. - * tests/mv/part-hardlink: Likewise. - * tests/mv/part-rename: Likewise. - * tests/mv/part-symlink: Likewise. - * tests/mv/partition-perm: Likewise. - * tests/mv/perm-1: Likewise. - * tests/mv/reply-no: Likewise. - * tests/mv/setup: Likewise. - * tests/mv/to-symlink: Likewise. - * tests/mv/trailing-slash: Likewise. - * tests/mv/update: Likewise. - * tests/mv/vfat: Likewise. - * tests/od/od-N: Likewise. - * tests/od/x8: Likewise. - * tests/pr/Makefile.am: Likewise. - * tests/pr/Test.pm: Likewise. - * tests/readlink/can-e: Likewise. - * tests/readlink/can-f: Likewise. - * tests/readlink/can-m: Likewise. - * tests/readlink/rl-1: Likewise. - * tests/rm/Makefile.am: Likewise. - * tests/rm/cycle: Likewise. - * tests/rm/dangling-symlink: Likewise. - * tests/rm/deep-1: Likewise. - * tests/rm/dir-no-w: Likewise. - * tests/rm/dir-nonrecur: Likewise. - * tests/rm/dot-rel: Likewise. - * tests/rm/empty-inacc: Likewise. - * tests/rm/empty-name: Likewise. - * tests/rm/f-1: Likewise. - * tests/rm/fail-2eperm: Likewise. - * tests/rm/fail-eperm: Likewise. - * tests/rm/hash: Likewise. - * tests/rm/i-1: Likewise. - * tests/rm/i-no-r: Likewise. - * tests/rm/inaccessible: Likewise. - * tests/rm/interactive-always: Likewise. - * tests/rm/interactive-once: Likewise. - * tests/rm/ir-1: Likewise. - * tests/rm/isatty: Likewise. - * tests/rm/no-give-up: Likewise. - * tests/rm/r-1: Likewise. - * tests/rm/r-2: Likewise. - * tests/rm/r-3: Likewise. - * tests/rm/rm1: Likewise. - * tests/rm/rm2: Likewise. - * tests/rm/rm3: Likewise. - * tests/rm/rm4: Likewise. - * tests/rm/rm5: Likewise. - * tests/rm/sunos-1: Likewise. - * tests/rm/unread2: Likewise. - * tests/rm/unread3: Likewise. - * tests/rm/unreadable: Likewise. - * tests/rmdir/fail-perm: Likewise. - * tests/rmdir/ignore: Likewise. - * tests/rmdir/t-slash: Likewise. - * tests/seq/basic: Likewise. - * tests/sha1sum/basic-1: Likewise. - * tests/sha1sum/sample-vec: Likewise. - * tests/shred/exact: Likewise. - * tests/shred/remove: Likewise. - * tests/sort/Makefile.am: Likewise. - * tests/sort/Test.pm: Likewise. - * tests/sort-time/Makefile: Likewise. - * tests/sort-time/README: Likewise. - * tests/sort-time/rand-gen: Likewise. - * tests/stty/basic-1: Likewise. - * tests/stty/row-col-1: Likewise. - * tests/sum/basic-1: Likewise. - * tests/sum/sysv: Likewise. - * tests/tac/Makefile.am: Likewise. - * tests/tac/Test.pm: Likewise. - * tests/tail/Makefile.am: Likewise. - * tests/tail/Test.pm: Likewise. - * tests/tail-2/Makefile.am: Likewise. - * tests/tail-2/append-only: Likewise. - * tests/tail-2/assert: Likewise. - * tests/tail-2/assert-2: Likewise. - * tests/tail-2/big-4gb: Likewise. - * tests/tail-2/fflush: Likewise. - * tests/tail-2/infloop-1: Likewise. - * tests/tail-2/proc-ksyms: Likewise. - * tests/tail-2/start-middle: Likewise. - * tests/tail-2/tail-n0f: Likewise. - * tests/tee/basic: Likewise. - * tests/tee/dash: Likewise. - * tests/test/Makefile.am: Likewise. - * tests/test/Test.pm: Likewise. - * tests/touch/Makefile.am: Likewise. - * tests/touch/dangling-symlink: Likewise. - * tests/touch/empty-file: Likewise. - * tests/touch/fail-diag: Likewise. - * tests/touch/fifo: Likewise. - * tests/touch/no-create-missing: Likewise. - * tests/touch/no-rights: Likewise. - * tests/touch/not-owner: Likewise. - * tests/touch/obsolescent: Likewise. - * tests/touch/read-only: Likewise. - * tests/touch/relative: Likewise. - * tests/tr/Makefile.am: Likewise. - * tests/tr/Test.pm: Likewise. - * tests/tr/failures: Likewise. - * tests/tsort/basic-1: Likewise. - * tests/unexpand/basic-1: Likewise. - * tests/uniq/Makefile.am: Likewise. - * tests/uniq/Test.pm: Likewise. - * tests/wc/Makefile.am: Likewise. - * tests/wc/Test.pm: Likewise. - -2006-08-17 Jim Meyering <jim@meyering.net> - - ls -CF would misalign columns in some cases. - * src/ls.c (get_type_indicator): New function. extracted from... - (print_type_indicator): ...here. Use it. - (length_of_file_name_and_frills): Use it here, too, rather than - assuming stat.st_mode is valid. - Reported by Andreas Schwab, here: - <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7774> - See the test for this above. FYI, I did ls -CF /proc and visually - inspected the result. - - * src/copy.c (copy_internal, same_file_ok): Adjust comments not - to mention the now-removed cp_options.xstat member. - - * Makefile.maint (patch-check): Adapt to work now that the patch - modifies more than one file in src/. - - With this patch, permit building with Solaris cc on Solaris 7. - * src/c99-to-c89.diff: Add diffs to convert more c99-isms. - This integrates patches from Bruno Haible. - -2006-08-16 Paul Eggert <eggert@cs.ucla.edu> - - Fix some problems reported by Bruno Haible. - * tests/chmod/setgid (abs_srcdir): Remove; not used or needed. - Skip this test if "chmod g+s d" silently does nothing. - * tests/ls-2/tests: Skip this test suite if we can't set up files - properly for the setuid-etc test. This simplifies some of the - hacks we were using to work around porting problems. - -2006-08-16 Jim Meyering <jim@meyering.net> - - * tests/cp/Makefile.am: Don't mark "acl" as XFAIL. - * tests/cp/acl: Instead, skip the test if either setfacl - or getfacl fails. - Reported by Michael Stone. - -2006-08-16 Paul Eggert <eggert@cs.ucla.edu> - - * tests/lang-default (LC_ALL): Set to "C", so we get - English-language diagnostics. Unset the other variables; it - should be portable to use 'unset' for this stuff nowadays. - Problem reported by Bruno Haible. Using "C" reverses the - 2000-10-22 change to fileutils in this area. - - Fix bugs when printing plurals of numbers that are not - unsigned long int values. - * src/system.h (select_plural): New function. - * src/md5sum.c (digest_check): Use select_plural to avoid bug. - * src/uptime.c (print_uptime): Likewise. - * src/dd.c (print_stats): Likewise. Also, don't use ngettext to - print a floating point number, as reducing to 0 or 1 doesn't work - for some languages. Instead, just use "s" for seconds since it - doesn't need a plural form. - -2006-08-16 Bruno Haible <bruno@clisp.org> - - Old versions of gzip would write --help output to stderr, and it - would be annoying to see that in the output of every "make" command. - * Makefile.maint (gzip_rsyncable): Throw away stderr output of - "gzip --help". - -2006-08-16 Andreas Schwab <schwab@suse.de> - - * tests/cp/acl: Don't use non-portable == operator for test. - -2006-08-16 Jim Meyering <jim@meyering.net> - - * tests/ls/stat-dtype: Use stat to test file system type, rather - than df -T, in case /etc/mtab lies. Reported by Michael Stone. - -2006-08-15 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: Mention that df exits with nonzero status if it generates - no output. This change was in 6.0 but inadvertently unmentioned. - * src/df.c (file_systems_processed): Renamed from n_valid_args, and now - a boolean. - (show_dev): Don't set it until we actually output something. - Print the header if this is the first output. - (main): Don't print a header, as that is now show_dev's job. - * tests/misc/Makefile.am (TESTS): Add df. - * tests/misc/df: New file. - -2006-08-15 Eric Blake <ebb9@byu.net> - - * src/stat.c (USE_STATVFS): Define to 0 if f_type is needed, but - statvfs.f_type not present. See - <http://savannah.gnu.org/bugs/?func=detailitem&item_id=16325>. - -2006-08-15 Paul Eggert <eggert@cs.ucla.edu> - - * src/dd.c (print_stats): Don't substitute "1" for number, as this - causes confusion for the Hungarian translators. Problem reported - by Egmont Koblinger here: - http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7726 - -2006-08-15 Jim Meyering <jim@meyering.net> - - * .x-sc_require_config_h: Add lib/at-func.c. - - * NEWS: Add a line for 6.1-cvs. - * configure.ac (AC_INIT): Bump to 6.1 and add "-cvs" suffix. - -2006-08-15 Jim Meyering <jim@meyering.net> - - * Version 6.0. - * NEWS: Record the 6.0 release date. - * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. - - * TODO: Add an item (convert to use gnulib-tool), add to the plan - for id-vs-getgrouplist, and remove a few completed items. - - * Makefile.maint (alpha beta major): Fix syntax error. - -2006-08-13 Jim Meyering <jim@meyering.net> - - * src/shred.c (usage): Don't indent the second line of an item. - Otherwise, help2man would misformat the output. - Reported by Adam Buchbinder in <https://launchpad.net/bugs/48917>. - -2006-08-11 Paul Eggert <eggert@cs.ucla.edu> - - * configure.ac (AM_GNU_GETTEXT): Upgrade to need-formatstring-macros. - Suggested by Eric Blake to avoid problems like - <http://lists.gnu.org/archive/html/bug-coreutils/2006-07/msg00087.html>. - -2006-08-11 Jim Meyering <jim@meyering.net> - - * tests/ls/stat-vs-dirent: Too many (losing) systems trigger the - failure that this test checks for (stat/dirent inode mismatch at - a mount point), so continue to give a diagnostic about the failure, - but don't actually count it as a failure. - -2006-08-10 Paul Eggert <eggert@cs.ucla.edu> - - * ABOUT-NLS: Update from gettext 0.15. - * configure.ac (AM_GNU_GETTEXT_VERSION): Update from 0.13.1 to 0.15. - - * src/csplit.c (struct control): Remove fastmap member. - (extract_regexp): Allocate fastmap separately, since otherwise - it might move due to a realloc. This fixes a bug that led - to a core dump on 64-bit sparc Solaris 10 (Sun Studio 10). - -2006-08-10 Jim Meyering <jim@meyering.net> - - * tests/ls/stat-dtype: If "." is tmpfs, skip this test unless uname -s - reports "Linux". This avoids a failure on Solaris 10's tmpfs. - Redirect both stdout and stderr of df invocations. - - * src/dircolors.hin: Add a TERM directive for each of the following: - ansi, color-xterm, gnome, konsole, kterm, rxvt-cygwin, - rxvt-cygwin-native, screen.linux, xterm-256color. - Sort the TERM directives. - From Mike Frysinger. - -2006-08-09 Paul Eggert <eggert@cs.ucla.edu> - - * src/dd.c (usage): Warn about oflag=append without conv=notrunc. - See Debian bug 373736. - - * src/dircolors.hin: Add mlterm, rxvt-unicode; this fixes Debian - bug 317503. - - * src/.cvsignore: Add shuf. - - * Makefile.maint: Remove the po-update procedure; it doesn't - work with the new repository on http://www.iro.umontreal.ca/. - For now I guess we'll have to fix things by hand. - (do-po-update, po-update): Remove. All references removed. - - * src/shuf.c (next_line): New function. - (read_input): Use it, to avoid relying on GCC-specific behavior - with void * arithmetic. Problem reported by Bob Proulx. - * Makefile.maint (my-distcheck): Compile with -Wpointer-arith - to detect this sort of problem automatically in the future. - -2006-08-09 Jim Meyering <jim@meyering.net> - - * src/ls.c: Add a compile-time check to ensure that filetype - and filetype_letter have the same number of elements. - - * tests/misc/sort-rand: Remove use of --seed=S. - -2006-08-08 Paul Eggert <eggert@cs.ucla.edu> - - Add a command 'shuf', and modify shred and sort to use the new - random number generator library of 'shuf'. - - * AUTHORS: Add shuf. - * README: Likewise. - * NEWS: Likewise. Mention new --random-source option for shred - and sort. Move "sort +1 -2" notice to the appropriate section, - and clarify its role with respect to POSIXLY_CORRECT. - * man/.cvsignore: Add shuf.1. - * man/Makefile.am (dist_man_MANS): Add shuf.1. - (shuf.1): New dependency. - * man/shuf.x: New file. - * src/Makefile.am (bin_PROGRAMS): Add shuf. - (EXTRA_DIST): Remove rand-isaac.c. - (shuf_LDADD): New macro. - * src/rand-isaac.c: Remove, moving most of its contents to - lib/rand-isaac.c. - * src/shuf.c: New file. - * src/shred.c: Use new random-number interface rather than rand-isaac.c. - Don't include rand-isaac.c; include randint.h and randread.h instead. - (RANDOM_SOURCE_OPTION): New enum. - (long_opts, usage, main): New option --random-source. - * src/sort.c: Likewise. - * src/shred.c (struct irand_state, irand_init, irand32, irand_mod): Remove. - All callers changed to use randint interface. - (fillrand): Remove. All callers changed to use randread interface. - (dopass): Remove dependency on ISAAC buffer size. - (genpattern): Don't wipe the random state here. - (randint_source): New static var. - (clear_random_data): New function. - (main): Allocate random source, and arrange to wipe it on exit. - * src/sort.c: Include md5.h, randread.h, xmemxfrm.h. - (longopts, usage, main): Remove undocumented --seed option; - it's now replaced by --random-source. - (rand_state, get_hash): Remove. - (randread_source): New static var. - (random_state, cmp_hashes, compare_random): New functions; they guarantee - no collisions in the random hash function. - (keycompare): Use compare_random for -R; don't fall back on comparing - via memcoll, since compare_random does the right thing. - * tests/misc/Makefile.am (TESTS): Add shuf. - * tests/misc/shuf: New file. - -2006-07-29 Paul Eggert <eggert@cs.ucla.edu> - - * src/copy.c (set_author): Preserve the st_author field via the - file descriptor dest_desc. - -2006-07-28 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: chmod now preserves setuid and setgid bits on directories - if you use a numeric mode with them clear, e.g., "chmod 755 DIR". - - Fix test case problems if working directory is setgid, - reported by Bob Proulx. - * tests/cp/fail-perm: Use symbolic mode so that we clear - setgid bit more reliably on directories. - * tests/mkdir/special-1 (set_mode_string): Likewise. - -2006-07-27 Jim Meyering <jim@meyering.net> - - * src/chgrp.c (usage): Use correct grammar in description of the - --reference option - * src/chown.c (usage): Likewise. - -2006-07-26 Thomas Schwinge <tschwinge@gnu.org> (tiny change) - - * src/copy.c (set_author) [HAVE_STRUCT_STAT_ST_AUTHOR]: - Correctly access SRC_SB's element ST_AUTHOR. - -2006-07-26 Jim Meyering <jim@meyering.net> - - * tests/ls/stat-failed: Adapt to match new expected output. - From Paul Eggert. - - * src/ls.c (print_color_indicator): Test for S_IFREG first, rather - than having the code test for all of the other types first. - Hoist the set-uid/gid-testing code "up" into this new block. - Classify any other type of file (e.g., S_TYPEISSHM, etc.) as - C_ORPHAN, not as C_FILE. - -2006-07-26 Jim Meyering <jim@meyering.net> - - Checking in a change from Paul. - - 2006-07-25 Paul Eggert <eggert@cs.ucla.edu> - - * src/ls.c (DT_INIT): Remove. All uses removed. - (enum filetype): Use an ordinary enum rather than trying to keep - the values in sync with DT_FIFO etc. That way, we don't have - to make special assumptions about them. All uses changed. - (whiteout): New constant member of enum filetype. - (filetype_letter): New constant, for use with enum filetype. - (FILETYPE_INDICATORS): New initializer list. - (print_dir): Add case for DT_WHT. - (gobble_file): If stat fails, don't discard information from - readdir; instead, preserve it so it can be printed. - (print_long_format): Fall back on readdir result if stat info - is not available. Use "?" to denote each unknown mode char, - instead of an overall "?", since we now know some of the mode - typically. - (print_type_indicator): Now that MODE isn't necessarily - useful, guard all uses. - Now that two blocks in the type-checking tree can set "type = C_FILE", - move the suffix-handling code out and down. - -2006-07-26 Jim Meyering <jim@meyering.net> - - Prepare for the above change. - * src/ls.c [struct fileinfo] (stat_ok): Rename from stat_failed, - and adjust uses. From a patch by Paul Eggert. - -2006-07-26 Jim Meyering <jim@meyering.net> - - * src/ls.c: Correct indentation/formatting in a few places. - -2006-07-25 Paul Eggert <eggert@cs.ucla.edu> - - * tests/cp/fail-perm: Use "chmod 0500" rather than "chmod 500". - Problem report and fix from Bob Proulx. - * NEWS: Clarify the "chmod 0500" news, and correct the vague - statements about compatibility with BSD. - -2006-07-25 Jim Meyering <jim@meyering.net> - - * src/ls.c (gobble_file): When handling a stat-failed entry, - print the entry name not the absolute_name -- to be consistent - with the usual case. - * tests/ls/stat-failed: Update accordingly. - - * src/ls.c: Add parens around the new uses of ?: ternary operator. - - * src/dircolors.hin: Mention that ORPHAN refers not just to dangling - symlinks. - - Get --dired offsets right when handling stat-failed entries. - * src/ls.c (print_long_format): Be careful to increment P by the - appropriate amount, even when inode_number_width and nlink_width - are zero. - * tests/ls/stat-failed: Test for the above. - - * src/ls.c (gobble_file) [USE_ACL]: Don't use-uninitialized the - have_acl member. That would happen for a directory with both a - non-stat'able entry and one with an ACL. - - * src/ls.c (gobble_file): Make it so failure to stat a - non-command-line file provokes an exit status of 1, not 0. - Say "cannot access" rather than "cannot stat". - * tests/ls/stat-failed: New file/test, for the above. - * tests/ls/Makefile.am (TESTS): Add stat-failed. - * tests/ls-2/tests (no-a-isdir-b): Update to reflect addition - of "cannot access " to diagnostic. - - * src/ls.c: Declare stat_failed to be "bool", not "int" everywhere. - - * src/ls.c [enum filetype] (command_line): Remove member. Not needed. - Replace all occurrences of "type == command_line" with the - equivalent, "command_line_arg". - - * src/ls.c: Apply the stat-failed parts of Red Hat's - coreutils-selinux.patch. From Ulrich Drepper. - This makes it so files not mentioned on the command line (e.g., - names read from a directory that *is* mentioned on the command - line) for which stat fails are still listed. With --color, - such files are colored just like ORPHANs (aka dangling symlinks). - - * src/df.c (n_valid_args): Declare global to be static. - -2006-07-24 Jim Meyering <jim@meyering.net> - - * tests/ls/stat-dtype: Skip this test on reiserfs, since that file - system lacks d_type support. - -2006-07-22 Paul Eggert <eggert@cs.ucla.edu> - - * man/chmod.x: Update to reflect recent changes to coreutils.texi. - -2006-07-21 Jim Meyering <jim@meyering.net> - - * src/su.c (usage): Correct typo in --help output: s/commmand/command/ - Reported by Tim Waugh. - Also remove the comment duplicating much of --help output. - - * src/ls.c (FILE_TYPE_INDICATOR_OPTION): Reposition this new - name so the list remains alphabetized. - - Fix another bug: ls --indicator-style=file-type would call - stat for a symlink, even though it wasn't always needed. - In some cases, that unnecessary stat would cause ls to fail. - * src/ls.c (gobble_file): Don't treat symlinks specially (in - requiring a stat syscall). Remove the offending exclusion. - - * NEWS: Mention the fix. - - * tests/ls/stat-dtype: New file/test, for the above fix. - Also exercises the new df feature, below. - - * src/df.c (main): Fail and don't print the headers if no - file system is processed. This makes it easy to test whether - a specified directory is on a file system of a given type or types. - Otherwise, applications would have had to parse df's output. - E.g., is "." either ext3 or reiserfs: df -t ext3 -t reiserfs . - - Fix a bug: ls --file-type worked like --indicator-style=slash, - rather than like --indicator-style=file-type. - * src/ls.c (FILE_TYPE_INDICATOR_OPTION): New enum member. - (long_options): Map "file-type" to FILE_TYPE_INDICATOR_OPTION, - not to 'p'. - (decode_switches): Handle new case: FILE_TYPE_INDICATOR_OPTION. - * NEWS: Mention the fix. - * tests/ls-2/tests (file-type): New test, for the above fix. - -2006-07-19 Jim Meyering <jim@meyering.net> - - * src/ls.c (print_dir): Give a better diagnostic for failed opendir. - - * Makefile.am (EXTRA_DIST): Add build-aux/vc-list-files. - -2006-07-16 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: chmod, install, and mkdir now leave setgid and setuid bits - of directories alone unless you specify them explicitly. - install and mkdir now implement X correctly. - install now creates parent directories with mode 755, without - changing their owner or group. - * src/chmod.c (process_file): Adjust to mode_adjust API change. - * src/install.c: Include mkancesdirs.h. - (announce_mkdir, make_ancestor): New functions. - (DEFAULT_MODE): New macro, specifying initial value of 'mode'. - (mode): Use it. - (dir_mode, dir_mode_bits): New vars. - (main): Set dir modes separately from nondir, so that the X - op of -m works correctly. - (main): Remove cwd_errno cruft, since make_dir_parents no longer - affects cwd. Adjust to new make_dir_parents API. - (install_file_in_file_parents): 2nd arg is now char *, not char - const *. Use mkancesdirs instead of rolling our own code. - (change_attributes): Don't worry about AFS, since that kludge - should not be needed any more. - * src/mkdir.c (struct mkdir_options): New struct. - (announce_mkdir, make_ancestor): New functions. - (main): Use them. Adjust to mode_adjust API change. Stick with - umask 0. Use make_dir_parents for all the work. - * src/mkfifo.c (main): Adjust to new mode_adjust API. - * src/mknod.c (main): Likewise. - * tests/chmod/setgid: Do the setgid test instead of bailing. - * tests/mkdir/p-3: Remove re_protect case that no longer applies. - GNU chmod now behaves like other versions of chmod. - * tests/mkdir/perm: Add a test for the X bug. - -2006-07-14 Paul Eggert <eggert@cs.ucla.edu> - - * src/base64.c (do_decode): Output to parameter OUT, not to stdout. - This doesn't fix any bugs, since OUT always equals stdout, but it - makes the code easier to understand. - -2006-07-14 Jim Meyering <jim@meyering.net> - - * Makefile.maint (CVS_LIST): Use new file, build-aux/vc-list-files, - rather than open-coding it. Now supports mercurial, too. - * .hgignore: New file. - * Makefile.am (EXTRA_DIST): Add .hgignore, which ignores nearly - all generated files, including ones like configure and po/*.po - that are currently version-controlled in cvs. - - * Makefile.am (EXTRA_DIST): Add a few more .??* files. - They've been in CVS, just haven't been distributed before this. - Distribute ChangeLog-2005, too. - (MAINTAINERCLEANFILES): Add THANKS-to-translators. - -2006-07-11 Paul Eggert <eggert@cs.ucla.edu> - - * src/system.h: Assume <dirent.h> exists, since gnulib assumes - this now as well. - -2006-07-09 Jim Meyering <jim@meyering.net> - - * tests/mv/dir2dir: Adjust so failing with ENOTEMPTY is ok, too. - That happens with Linux/tmpfs. - * tests/mv/Makefile.am (TESTS): Add dir2dir. - -2006-07-09 Paul Eggert <eggert@cs.ucla.edu> - - Adjust to recent updates from gnulib. - * src/dd.c (apply_translations): Use toupper rather than - islower followed by toupper; it's simpler and typically - faster now that we assume at least C89 semantics. Similarly - for tolower. - * src/sort.c (inittables): Likewise. - * src/expand.c (expand): Don't assume that isprint etc. return - booleans (needed for pre-C99 hosts). - * src/fmt.c (check_punctuation): Likewise. - * src/ptx.c (initialize_regex, fix_output_parameters): Likewise. - * src/tr.c (is_char_class_member): Likewise. - * src/unexpand.c (unexpand): Likewise. - * src/join.c (is_blank): Remove; no longer needed. All uses - replaced by isblank (to_uchar (...)). - * src/pinky.c (create_fullname): Don't assume char is unsigned. - * src/printf.c (print_esc): Likewise. - * src/ptx.c (SKIP_NON_WHITE, SKIP_WHITE, SKIP_WHITE_BACKWARDS): - (copy_unescaped_string): Likewise. - * src/stat.c (print_it): Likewise. - * src/system.h (_D_EXACT_NAMELEN): Renamed from NLENGTH, for - convenience on GNU systems. All uses changed. Don't bother - looking for any dirent.h substitute other than ndir.h. - (D_INO): Remove unnecessary parentheses. - (IN_CTYPE_DOMAIN, ISGRAPH, ISPRINT, ISALNUM, ISALPHA): - (ISCNTRL, ISLOWER, ISPUNCT, ISSPACE, ISUPPER, ISXDIGIT): - (ISDIGIT_LOCALE, TOLOWER, TOUPPER): Remove. All uses changed - to ctype.h equivalents. - (isblank): Renamed from ISBLANK. Check for HAVE_DECL_ISBLANK too. - All uses changed. - -2006-07-08 Jim Meyering <jim@meyering.net> - - * tests/mv/dir2dir: New file, test for 2006-07-05 fix in copy.c. - - * Makefile.maint (sc_the_the): New rule. - - * src/dd.c (skip): Remove one of two adjacent "the"s in a comment. - * tests/Coreutils.pm (run_tests): Remove one of two adjacent "then"s - in a comment. - -2006-07-07 Jim Meyering <jim@meyering.net> - - * NEWS: Mention that mv can now remove an empty destination directory, - and give an example. Prompted by a report from Florent Bayle. - -2006-07-05 Jim Meyering <jim@meyering.net> - - * src/ls.c (usage): Correct the description of -G: it is useful - only in a long listing. Reported by Martin Pool in - <https://launchpad.net/distros/ubuntu/+source/coreutils/+bug/51653>. - - * man/chmod.x: Correct the description of the sticky bit. Reported - by Chris Moore via Ian Jackson in <http://bugs.debian.org/376745>. - - * src/copy.c (copy_internal): Don't work around old NFS clients like - SunOS-4.1.4 and Irix 5.3 that set errno to values like EIO and - ENOTEMPTY upon failed rename. Otherwise, we risk misinterpreting - a banal failure as a recursive move-into-self failure. - Reported by Florent Bayle in <http://bugs.debian.org/376749>. - - * src/c99-to-c89.diff: Regenerate, to remove fuzz. - -2006-07-03 Jim Meyering <jim@meyering.net> - - Plug another unusual leak. - (AD_mark_helper): Free malloc'd filename if hash_insert says - that string is already in the hash table. - - The dev/inode of the topmost directory in each hierarchy were not - being recorded. - * src/remove.c (remove_cwd_entries): Don't call cycle_check here. - (AD_push): Call it from here instead. - - Fix two small leaks. - * src/remove.c (AD_stack_clear): New function. - (rm_1): Use it. - (AD_pop_and_chdir): Free *prev_dir just before longjmp. - - * tests/Makefile.am, tests/*/Makefile.am: (TESTS_ENVIRONMENT): - Add $VG_PATH_PREFIX as a prefix to $PATH - - * tests/envvar-check (vars): Add CDPATH and POSIXLY_CORRECT. - * tests/Makefile.am (evar-check): Remove rule. - (EXTRA_DIST): Remove .env-warn. - * tests/.env-warn: Remove file. No longer used. - Suggestion from Eric Blake. - -2006-07-02 Paul Eggert <eggert@cs.ucla.edu> - - * src/system.h: Include <stdint.h> unconditionally, since we - now assume the stdint module. - -2006-07-01 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: With no operand, 'tail -f' now silently ignores the '-f' - only if standard input is a FIFO or pipe and POSIXLY_CORRECT is set. - * src/tail.c (main): Implement this. - * tests/tail/Test.pm (f-pipe-1): Renamed from f-1. - (test_vector): Set POSIXLY_CORRECT for the f-pipe-* tests. - -2006-07-01 Jim Meyering <jim@meyering.net> - - * src/ln.c (do_link): Use new, shorter URL, for ag-review link. - - * .x-sc_require_config_h: Add ^lib/xstrtold\.c$, so make distcheck - passes once again. - -2006-06-30 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: seq now uses long double internally rather than double. - It now defaults to a minimal fixed point format if possible. - It lets you use %a, %A, %E, %F, %G. - * src/Makefile.am (seq_LDADD): Remove $(SEQ_LIBM); add $(POW_LIB). - * src/seq.c: Don't include <math.h> or <xstrtol.h>; no longer needed. - (isfinite) [!defined isfinite]: New macro. - (separator, terminator): Now points to const. - (first, step, last): Remove. - (usage): Update to match new behavior. - (struct operand, operand): New type. - (scan_arg): Renamed from scan_double_arg, since we no longer use double. - All uses changed. - Compute and return a value of type operand, not double. - (long_double_format): Renamed from valid_format, and now returns a - new format with an "L" added if needed, if the original format was - valid. Allow %a, %A, %E, %F, and %G formats. - (print_numbers): Take numeric values as args rather than from globals. - Print long double, not double. - (get_width_format): Remove. - (get_default_format): New function. - (main): Implement new way of calculating default format. - Don't worry about locale's representation of the decimal point, since - the arguments are always processed in the C locale. - * tests/seq/basic (neg-2): Adjust to new default format. - (eq-wid-1, eq-wid-2): Resurrect these tests, since the new - implementation should do the right thing. - -2006-06-30 Jim Meyering <jim@meyering.net> - - * tests/stty/basic-1: Work around an intermittent test failure - on HP-UX 11.11. Report and analysis from Bob Proulx. - http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7475 - -2006-06-28 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: Support obsolete usages like "sort +1 -2" even when - conforming to POSIX 1003.1-2001, since this is a pure extension to - POSIX. Problem reported by Christian in: - http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00220.html - * src/sort.c (main): Implement this. - - * src/system.h (CLOSEDIR): Remove. All uses changed to closedir. - Autoconf 2.60 says this stuff was obsolete. - -2006-06-28 Jim Meyering <jim@meyering.net> - - * src/c99-to-c89.diff: Regenerate, to remove fuzz. - -2006-06-28 Bob Proulx <bob@proulx.com> (tiny change) - - * tests/mv/i-link-no: Work around HP-UX /bin/sh tracing problem - (set -x when VERBOSE=yes) when stderr is redirected before stdout - causing shell tracing of the stdout redirection to be written to - the stderr file. Avoid problem and test failure on HP-UX by - redirecting stderr last. - * tests/dd/unblock-sync: Order shell file redirections for - stderr and stdout in the common style. - tests/acl: Likewise. - -2006-06-27 Jim Meyering <jim@meyering.net> - - * tests/misc/cat-proc: Try to avoid any spurious numeric - differences in frequently-changing /proc/cpuinfo. - Reported by Nelson Beebe. - -2006-06-26 Jim Meyering <jim@meyering.net> - - Attempt rmdir (actually, unlinkat-with-AT_REMOVEDIR) upon any - fd_to_subdirp failure, not just when errno == EACCES. - * src/remove.c (remove_dir): Use unlinkat-with-AT_REMOVEDIR, not - rmdir, here, even though rmdir may happen to be adequate. - - * NEWS: rm no longer fails to remove an empty, unreadable directory - * src/remove.c (remove_cwd_entries): If we can't open a directory, - and the failure is not being ignored, try to remove the directory - with rmdir (aka unlinkat-with-AT_REMOVEDIR), in case it's empty. - Problem report and test case from Paul Eggert in - <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7425>. - - * tests/rm/empty-inacc: New test, for the above. - - Avoid a segfault for wc --files0=- < /dev/null. - * src/wc.c (compute_number_width): Return right away if nfiles == 0. - -2006-06-25 Jim Meyering <jim@meyering.net> - - * NEWS: wc accepts a new option --files0-from=FILE, where FILE - contains a list of NUL-separated file names. - - * src/wc.c: Include "readtokens.h". - (usage): Describe the new option, and adjust the `Usage': - with this option, no FILE may be specified on the command line. - (main): Handle the new option. - * tests/misc/wc-files0: New tests, for the above. - * tests/misc/wc-files0-from: Likewise. - * tests/misc/Makefile.am (TESTS): Add wc-files0. - -2006-06-24 Jim Meyering <jim@meyering.net> - - * src/md5sum.c (DIGEST_BUFFER): Remove now-unused definitions. - -2006-06-22 Jim Meyering <jim@meyering.net> - - * src/tee.c (tee_files): Rename from tee, to avoid conflict with - the function in glibc's <fcntl.h>. Reported by Andreas Schwab. - -2006-06-19 Jim Meyering <jim@meyering.net> - - * Makefile.cfg (local-checks-to-skip): Add changelog-check, - so this check is not run as part of "make distcheck". - -2006-06-18 Bob Proulx <bob@proulx.com> (tiny change) - - * tests/misc/pwd-long: Fix typo (s/neq/ne/) in previous change. - -2006-06-18 Jim Meyering <jim@meyering.net> - - * tests/misc/pwd-long: Make error output a little clearer. - -2006-06-17 Jim Meyering <jim@meyering.net> - - * tests/rm/inaccessible: Skip this test on systems without openat - support. Reported by Bob Proulx. - -2006-06-15 Bob Proulx <bob@proulx.com> (tiny change) - - * tests/misc/mknod: Improve permission checks to handle - running mkdir test in set-gid directories. - -2006-06-14 Jim Meyering <jim@meyering.net> - - * tests/du/basic: Revamp not to hard-code file system block sizes. - -2006-06-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - - * tests/du/Makefile.am (TESTS_ENVIRONMENT): Pass $(PERL), for - files0-from test. - -2006-06-11 Jim Meyering <jim@meyering.net> - - * .gitignore: New file. - * Makefile.am (EXTRA_DIST): Add .gitignore. - - Setting TIME_STYLE=long-iso in the environment would make the - cp/same-file test fail. - * tests/envvar-check (vars): Add TIME_STYLE to the list. - * tests/cp/same-file: Revert last change. - Source the envvar-check script, to ensure that TIME_STYLE - settings don't affect these tests. - -2006-06-11 Paul Eggert <eggert@cs.ucla.edu> - - * tests/cp/same-file: Execute 'ls' in the C locale, so that it - uses POSIX time stamp formats. Problem reported by John Nixon in - <http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00062.html>. - -2006-06-10 Jim Meyering <jim@meyering.net> - - * NEWS: Mention the AIX-strndup-bug vs. dircolors workaround. - - Require a "Version N.M" line at the top of the ChangeLog - file only when making the actual release, not when running - "make distcheck". - * Makefile.maint (maintainer-distcheck): Don't depend on - changelog-check. - (alpha beta major): Depend on it here, instead. - -2006-06-08 Jim Meyering <jim@meyering.net> - - Ensure that cat works with any of the options, -A -v -e -E -T, - when applied to files in /proc and /sys, even when the FIONREAD - ioctl produces nonsensical results. Before this change, cat would - produce no output (or truncated output), for some linux kernels. - - * src/cat.c (write_pending): New function, factored out of cat. - (cat): Also interpret a negative ioctl/FIONREAD count as indicating - that there are bytes to read. Some versions of linux-2.6.16 do that. - Write any pending output before returning. - Reported by Dan Jacobson in <http://bugs.debian.org/370583>. - * NEWS: Mention this bug fix. - * tests/misc/cat-proc: New file. Test for the above. - * tests/misc/Makefile.am (TESTS): Add cat-proc. - -2006-06-07 Paul Eggert <eggert@cs.ucla.edu> - - * src/expr.c (eval4): Detect overflow properly when multiplying - INTMAX_MIN * -1. - -2006-06-06 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: The 'expr' command now detects and reports integer overflow. - (It would be better to use extended precision instead, but that - would be more work.) - * src/expr.c (integer_overflow): New function. - (eval4, eval3): Check for integer overflow. - -2006-06-05 Paul Eggert <eggert@cs.ucla.edu> - - Fix problems when building with Solaris/SVR4/etc. make, which uses a - different and somewhat bogus implementation of VPATH. In the - directory tests/misc, rename tests whose names might appear in the - Automake-generated rules. For example, we can't use a test named - 'test', since Automake generates a rule that contains the text - "if test -f ./$$tst; ...", and this might expand to something like - "if ../../../coreutils-6.0/tests/misc/test -f ./$$test; ...", - which executes the 'test' script rather than the 'test' command. - * tests/misc/false-status: Renamed from tests/misc/false. - * tests/misc/pwd-long: Renamed from tests/misc/pwd. - * tests/misc/sort-merge: Renamed from tests/misc/sort. - ($prog): Set to 'sort' rather than to $PROG. - * tests/misc/test-diag: Renamed from tests/misc/test. - * tests/misc/Makefile.am (PROG): Take the basename of $$tst, - in case Solaris make has prepended the directory. - (TESTS): Adjust to above renamings. - * tests/misc/expand: Don't assign to PROG; no longer needed - now that Makefile.am sets PROG to the basename. - * tests/misc/fold: Likewise. - -2006-06-03 Jim Meyering <jim@meyering.net> - - Make `cp --link --no-dereference' work also on systems where the - link system call cannot create a hard link to a symbolic link. - * src/copy.c (copy_internal) [LINK_FOLLOWS_SYMLINKS]: Don't use - the link syscall on a symlink when it would do the wrong thing. - Based on the patch by Aurelien Jarno: <http://bugs.debian.org/329451> - * tests/cp/link-no-deref: New file/test for the above. - * tests/cp/Makefile.am (TESTS): Add link-no-deref. - * NEWS: Mention the change (doesn't affect Linux). - -2006-06-01 Paul Eggert <eggert@cs.ucla.edu> - - Fix some porting problems in the test cases reported by - Ralf Wildenhues for HP-UX 11.23 in: - http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00238.html - * tests/help-version: Don't assume that \< \> works in sed. - * tests/misc/close-stdout: Don't assume that >&- works. - Add a /dev/full test. - * tests/touch/no-create-missing: Don't assume that >&- works. - -2006-05-30 Jim Meyering <jim@meyering.net> - - * src/ls.c (usage): Add `v' to the list of sorting-related options. - From Justin Pryzby. - -2006-05-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - - * tests/cp/fail-perm: source lang-default. - * tests/rm/inaccessible: Likewise. - -2006-05-28 Jim Meyering <jim@meyering.net> - - * tests/rm/inaccessible: AIX 4.3.3 gives a different diagnostic. - Recognize it, too. Reported by Ralf Wildenhues, in - http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00192.html - -2006-05-27 Jim Meyering <jim@meyering.net> - - * src/chgrp.c: Support new options: --preserve-root and - --no-preserve-root. Somehow this program was skipped when those - options were added to chown, chmod, and rm. Reported by - vaqflabuopac@spammotel.com in <http://bugs.debian.org/365656>. - * NEWS: Mention this. - -2006-05-25 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: Remove mention of --seed. We'll replace it with something - better, and don't want to indicate that it is supported. - * src/sort.c (usage): Likewise. - -2006-05-20 Jim Meyering <jim@meyering.net> - - * src/chmod.c (main): Use FTS_PHYSICAL here, too. - - * src/du.c (main): Rename local, s/symlink_deref_bit/symlink_deref_bits/ - and arrange for -D to set fts' FTS_PHYSICAL bit as well as - FTS_COMFOLLOW. Spotted by Justin Pryzby. - - * gnupload: Merge changes from automake, retaining the ""--to... - kludge to placate overzealous `make distcheck' check. - -2006-05-19 Jim Meyering <jim@meyering.net> - - * src/du.c (main): Don't let -D, -L, or -P turn off the internal - FTS_TIGHT_CYCLE_CHECK directory traversal option. - Reported by Justin Pryzby in http://bugs.debian.org/367691 - -2006-05-15 Jim Meyering <jim@meyering.net> - - * src/cp.c (usage): Correct description of -a: s/-dpR/-dpPR/. - From Tomas Pospisek. - -2006-05-13 Jim Meyering <jim@meyering.net> - - * tests/mv/no-target-dir: Test two more cases. - -2006-05-11 Jim Meyering <jim@meyering.net> - - mv -T DIR EMPTY_DIR no longer fails unconditionally - * src/copy.c (copy_internal): Don't manually prohibit a move where - the destination is an existing directory. Sometimes doing that is - valid. Let the rename system call enforce the rules. That is - allowed only when the source is a directory and the destination - directory (to be replaced) is empty. Reported by Eric Blake. - * tests/mv/no-target-dir: New file/test for this. - * tests/mv/Makefile.am (TESTS): Add no-target-dir. - * NEWS: Mention this. - - * tests/mv/atomic: New file/test for yesterday's fix. - * tests/mv/Makefile.am (TESTS): Add atomic. - - * tests/du/long-sloop: Avoid harmless `ambiguous redirect' diagnostic. - -2006-05-10 Jim Meyering <jim@meyering.net> - - * src/copy.c (copy_internal): Don't explicitly unlink the destination - when moving a symlink into the place of an existing non-directory. - Reported by Joshua Hudson. - * NEWS: mention this. - -2006-05-07 Jim Meyering <jim@meyering.net> - - * Makefile.maint (patch-check): Fail if patch generates any output, - even merely for changed offsets. - - * src/c99-to-c89.diff: Adjust to reflect new offsets. - - * NEWS: Mention changes affecting df, pwd, shred. - -2006-05-06 Jim Meyering <jim@meyering.net> - - * tests/ls/stat-vs-dirent: New test, to detect the bogus file - system condition where dirent.d_ino != stat.st_ino. - * tests/ls/Makefile.am (TESTS): Add stat-vs-dirent. - -2006-05-06 Eric Blake <ebb9@byu.net> - - * tests/ls/inode: Expand to test inode from readdir case. - * tests/ls/follow-slink: Expand to test broken links encountered - implicitly, favoring Solaris 9 and OpenBSD 3.4 behavior. - -2006-05-06 Eric Blake <ebb9@byu.net> - - * tests/mv/leak-fd: Work even on case-insensitive file system. - -2006-05-04 Jim Meyering <jim@meyering.net> - - * NEWS: Mention the 2006-03-19 pwd-related change that makes - lib/getcwd.c work around inconsistent file system dirent.d_ino data. - -2006-05-03 Jim Meyering <jim@meyering.net> - - * src/ls.c (DEFINE_SORT_FUNCTIONS, LIST_SORTFUNCTION_VARIANTS): - Use better macro parameter names: s/basename/key_name/, - s/basefunc/key_cmp_func. Fix typo in comment. - -2006-04-29 Eric Blake <ebb9@byu.net> - - * src/ls.c (main): On systems with d_type, directories_first only - implies format_needs_type, not format_needs_stat. - -2006-05-03 Jim Meyering <jim@meyering.net> - - * src/ls.c (xstrcoll_df_version, rev_xstrcoll_df_version): Add space - after comma in arg list, from Eric Blake. - -2006-04-25 Paul Eggert <eggert@cs.ucla.edu> - - * tests/misc/date (relative-3): New test, derived from a bug - report by John Thomas McDole. - -2006-04-23 Francesco Montorsi <fr_m@hotmail.com> - - New option for ls: --group-directories-first. - It makes ls list directories before files. - * NEWS [New features]: Mention it. - * src/ls.c (sort_type): Rearrange to use as an array index when - choosing sort function; added new sort_numtypes member for - compile-time check. - (time_type): Add new time_numtypes member for compile-time check. - (directories_first): New global variable. - (GROUP_DIRECTORIES_FIRST_OPTION): New enum. - (long_options): Add --directories-first. - (main): Support new option. - (is_directory): New function. - (extract_dirs_from_files): Use it. - (DIRFIRST_CHECK, DEFINE_SORT_FUNCTIONS) - (LIST_SORTFUNCTION_VARIANTS): New macros. - (sort_functions): New global variable. - (sort_files): Use it. - (usage): Document new option. - -2006-04-18 Paul Eggert <eggert@cs.ucla.edu> - - * src/shred.c (fillrand): The assertion was way too weak, due to - what must be a typo. Strengthen it to its intended value. - (dopass): Don't use alloca; it's not worth the aggravation here, - since it's used only to get a page-aligned buffer, and page - alignment doesn't buy us much here. I'm suspicious that alloca - causes problems on some hosts, due to a recent bug report by Adam - Waltman: http://bugs.gentoo.org/130246. - -2006-04-18 Jim Meyering <jim@meyering.net> - - * tests/misc/tty-eof: Add new programs, base64, sha224sum, sha256sum, - sha384sum, sha512sum. - -2006-04-17 Paul Eggert <eggert@cs.ucla.edu> - - * src/chmod.c (describe_change): Adjust to filemode changes. - * src/ls.c (HAVE_ST_DM_MODE): Remove; moved to ../lib/filemode.c. - (print_long_format): Use (new) filemodestring rather than - (old) mode_string, so that we get more file types right, at least - in theory. Adjust to filemode changes. - * src/stat.c (human_access): Likewise. - -2006-04-18 Jim Meyering <jim@meyering.net> - - * src/ptx.c (main) [DEFAULT_IGNORE_FILE]: Remove code to use a default - ignore file. This has never been enabled. Reported by Eric Blake. - -2006-04-12 Paul Eggert <eggert@cs.ucla.edu> - - * src/ln.c (linkfunc): Remove. This method ran into a compiler/linker - bug in Interix. Just call symlink or link directly. All uses changed. - * src/setuidgid.c (main) [! HAVE_SETGROUPS]: Don't call setgroups. - * src/stat.c (USE_STATVFS): New macro. - Include <sys/statvfs.h> and use statvfs only if USE_STATVFS. - (NAMEMAX_FORMAT): define a bit more clearly, now that the - statvfs-using code is a bit more regular. - * src/system.h (sync) [!HAVE_SYNC]: New macro. - -2006-04-11 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: csplit, nl, expr now conform to POSIX better, and are - more-compatible with traditional Unix, with respect to regular - expressions. - * src/csplit.c (extract_regexp): Set re_syntax_options to a - value that is compatible with what POSIX requires. - * src/nl.c (build_type_arg): Likewise. - * src/expr.c (docolon): Likewise. Also, don't let anchors match - newline; this fixes an incompatibility with tradition and with POSIX. - Don't warn about leading ^. POSIX says it is unspecified whether - ^ is a special character, which means that implementations can - either treat it as special or not, but either way a warning is not - allowed (unless the regexp is otherwise invalid). Instead, anchor - the expression but treat ^ as an anchor; this is the traditional - behavior (e.g., Solaris 10). - (eval4, eval3, eval2): Treat non-numeric args, division by zero, - and the like as invalid expressions (exit status 2), not as - failure of 'expr' (exit status 3). This is more consistent with - how Solaris behaves. - * tests/expr/basic (fail-a): Adjust exit status to match new expr - behavior, for status 2 versus 3. - (anchor): New test. - (bre1, bre2, bre3, bre4, bre5, bre6, bre7, bre8, bre9, bre10): - (bre11, bre12, bre13, bre14, bre15, bre16, bre17, bre18, bre19, bre20): - (bre21, bre22, bre23, bre24, bre25, bre26, bre27, bre28, bre29, bre30): - (bre31, bre32, bre33, bre34, bre35, bre36, bre37, bre38, bre39, bre40): - (bre41, bre42, bre43, bre44, bre45, bre46, bre47, bre48, bre49, bre50): - (bre51, bre52, bre53, bre54, bre55, bre56, bre57, bre58, bre59, bre60): - (bre61, bre62): New tests. - * tests/misc/csplit: Use \{...\} in test RE, to test that we're - conforming to POSIX. - - Port to Solaris 8. - * tests/du/long-from-unreachable: Solaris 8 sh doesn't understand - "if !". Do not assume that 'sed' can handle long, newline-free input. - * tests/du/long-sloop: Likewise. Evaluate expr once, not $n times. - -2006-04-10 Paul Eggert <eggert@cs.ucla.edu> - - Adjust to new regex.h API (with new fastmap type), and clean - up the regex storage allocation a bit. - - * src/csplit.c (struct control): Put re_compiled member at the - end, since it's large. Change regexpr member from char * to bool; - all uses changed. Add new member fastmap. - (extract_regexp): regexp arg is now char const *, not char *. - Don't bother duplicating the regular expression; it's not needed. - Set fastmap from new fastmap member. Don't bother allocating - a buffer, as the regexp code does a better job than we do. - * src/expr.c (docolon): Allocate and use a fastmap. - Don't bother allocating a buffer. - * src/nl.c (body_fastmap, header_fastmap, footer_fastmap): - New vars. - (build_type_arg): New fastmap arg. All uses changed. - Don't bother allocating a buffer, but set a fastmap. - * src/ptx.c (context_regex_string, word_regex_string): Remove. - (context_regex, word_regex): New vars, replacing the above. - All uses changed. - (struct regex_data): New type. - (compile_regex): Renamed from alloc_and_compile_regex, since - we no longer allocate storage. Arg is now a struct regex_data *, - not a const char *. All uses changed. Don't allocate the fastmap; - instead, take it from the caller. Don't convert size_t to int, - to avoid arithmetic overflow problems. Don't bother freeing - storage afterwards; it's not worth the aggravation. - * src/tac.c (compiled_separator_fastmap): New ver. - (main): Use it. Don't bother allocating a buffer. - -2006-03-30 Jim Meyering <jim@meyering.net> - - * src/dd.c (iwrite): Remove assignment without effect. - Reported by Felix Rauch Valenti. - -2006-03-22 Eric Blake <ebb9@byu.net> - - * src/ptx.c (usage): Remove mention of --copyright/-C. - (main): Alias --copyright to --version plus a deprecation warning. - * NEWS: Mention this. - -2006-03-27 Jim Meyering <jim@meyering.net> - - * src/Makefile.am (uptime_LDADD): Add $(POW_LIB), for uptime's - use of strtod. Tiny patch from Nickolai Zeldovich. - -2006-03-11 Eric Blake <ebb9@byu.net> - - * tests/misc/dirname: New file. - * tests/basename/Makefile.am: Delete. - * tests/basename/basic: Move to... - * tests/misc/basename: ... this new file. Add some tests, - including fixed behavior for //. - * tests/misc/Makefile.am (TESTS): Sort. Add basename, dirname. - * tests/Makefile.am (SUBDIRS): Remove basename. - * configure.ac (AC_CONFIG_FILES): Remove tests/basename. - - Improvements to dirname/basename handling on platforms like - cygwin with distinct // and with drive letters. - * NEWS: Document new behavior. - * src/basename.c (main): Don't strip suffix from file system - roots. - * src/cp.c (target_directory_operand): Use new last_component. - (ASSIGN_BASENAME_STRDUPA): Likewise. Reduce time spent - traversing the string. - * src/dircolors.c (guess_shell_syntax): Use new last_component. - * src/install.c (target_directory_operand, install_file_in_dir): - Likewise. - * src/ln.c (target_directory_operand, main): Likewise. - * src/ls.c (basename_is_dot_or_dotdot): Likewise. - * src/mv.c (target_directory_operand, movefile): Likewise. - * src/remove.c (rm_1): Likewise. - * src/shred.c (wipename): Likewise. - * src/split.c (next_file_name): Likewise. - * src/su.c (log_su, run_shell): Likewise. - -2006-03-23 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: nohup diagnostics are now more precise, and nohup now - redirects stderr to nohup.out if stdout is closed and stderr is a tty. - * src/nohup.c (main): Implement this. - * tests/misc/nohup: Test the new behavior. - -2006-03-12 Jim Meyering <jim@meyering.net> - - * src/copy.c (set_author): Rename function, from preserve_author. - - * src/remove.c (AD_pop_and_chdir): Use new macro, - CYCLE_CHECK_REFLECT_CHDIR_UP, rather than open-coding it. - - * src/system.h (SAME_INODE): Remove definition. - Include "same-inode.h", instead. - -2006-03-11 Eric Blake <ebb9@byu.net> - - * src/pwd.c (robust_getcwd): Prepend only one slash, not two. - -2006-03-10 Jim Meyering <jim@meyering.net> - - Fix a bug whereby a user with write access to a directory being removed - could cause the removal of that directory to fail with an erroneous - diagnostic about a directory cycle. Reported by Vineet Chadha. - - * NEWS: Mention this. - * src/remove.c (AD_pop_and_chdir): If the directory we're about to - leave (and try to rmdir) is the one whose dev_ino is being used to - detect a cycle, reset cycle_check_state.dev_ino to that of the parent. - -2006-03-08 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: Document dd's new 'directory' and 'nolinks' flags. - * src/dd.c (set_fd_flags): Handle file-creation flags on file - descriptors, rather than ignoring them. - * tests/dd/misc: Add test cases for append, nofollow, directory, - and nolinks flags. Simplify redirection to /dev/null in some cases. - - * tests/dd/misc: iflags->iflag. This fixes a typo that meant the - noatime test never tested anything. - -2006-03-05 Paul Eggert <eggert@cs.ucla.edu> - - * src/dd.c (flags, usage): New flags directory, nolinks. - * src/system.h (O_NOLINKS): Define to 0 if not already defined. - - * src/ls.c (usage): Mention that -f disables --color. - Problem reported by Niels Möller. - -2006-03-03 Justin Pryzby <pryzbyj@justinpryzby.com> - - * man/*.x: Add references to syscalls from utilities of the same name. - -2006-03-05 Jim Meyering <jim@meyering.net> - - * tests/help-version: Set SHELL, if not already set, in order to - avoid failure when `make check' is run through debuild; dircolors - would fail due to lack of $SHELL. Reported by Sven Joachim. - - Make `base64 --wrap=N' work for N=0, and for N larger than SIZE_MAX. - * src/base64.c (wrap_write, do_encode, main): Change type of - parameters and locals, wrap_column, form size_t to uintmax_t. - (main): Adjust to use xstrtoumax, accordingly. - -2006-03-03 Jim Meyering <jim@meyering.net> - - Don't fail when run from an environment with SHELL not a Bourne - shell, e.g. `env SHELL=/bin/csh make check' would fail this test. - * tests/dircolors/simple: Invoke each non-failing test with -b. - Reported by Michael Stone. - -2006-02-27 Jim Meyering <jim@meyering.net> - - * tests/misc/base64: Derive --decode-using tests from the - encode-based ones. - - * tests/misc/base64: Factor out a long constant string. - Split lines to stay within 80 columns. - - * tests/misc/Makefile.am (TESTS): Add base64. - * tests/misc/base64: Test base64. From Simon Josefsson. - - * src/base64.c (do_decode): Use correct type for parameter, - ignore_garbage: s/size_t/bool/. - - * src/base64.c: Don't include .h files already included by system.h: - <string.h>, <stdlib.h>, <stdbool.h>, <limits.h>, <errno.h>. - Include "system.h" before the other lib/*.h header files. - Include <sys/types.h> before "system.h". - (wrap_write): Remove declaration of unused local, initial_column. - (wrap_write): Correct declaration syntax: s/size_t * V/size_t *V/. - - * README: Add base64 to the list. - -2006-02-17 Simon Josefsson <jas@extundo.com> - - New program: base64. - * AUTHORS: Mention base64. - * NEWS: Likewise. - * man/Makefile.am: Build base64.1. - * man/base64.x: New file. - * src/Makefile.am (bin_PROGRAMS): Add base64. - * src/base64.c: New file. - -2006-02-25 Eric Blake <ebb9@byu.net> - - In ls, avoid calling stat for --inode (-i), when possible. - * src/pwd.c (NOT_AN_INODE_NUMBER, D_INO): Move to ... - * src/system.h: ... here, for use in ... - * src/ls.c (main): ... here. Prefer dirent.d_ino to stat when - possible. - (gobble_file): Add inode argument. - (print_dir): Pass inode if available. - (usage): Remove inaccuracy. - -2006-02-23 Jim Meyering <jim@meyering.net> - - * TODO: Update/correct some obsolete entries. - -2006-02-20 Paul Eggert <eggert@cs.ucla.edu> - - * doc/coreutils.texi (join invocation): Mention `sort -k 1b,1'. - * src/join.c (usage): Likewise. - Documentation problem reported by Philip Kensche. - -2006-02-20 Eric Blake <ebb9@byu.net> - - * man/rm.x: Update documentation to match previous patch. - -2006-02-18 Eric Blake <ebb9@byu.net> - - New option for rm: --interactive=once (-I). - * NEWS: Document it, along with change to rm --interactive. - * TODO: Remove entry for implementing rm -I - * src/rm.c (INTERACTIVE_OPTION): New enum value. - (interactive_type): New enum. - (long_opts): Let interactive take an optional argument. - (interactive_args, interactive_types): New option arguments. - (usage): Document -I, --interactive=WHEN. Use program_name - instead of a basename. - (main): New -I option, new behavior to --interactive. - * tests/rm/interactive-once: New tests. - * tests/rm/interactive-always: Ditto. - * tests/rm/Makefile.am (TESTS): Run them. - -2006-02-18 Jim Meyering <jim@meyering.net> - - * Makefile.maint (sc_two_space_separator_in_usage): Make the regular - expression match more of the target lines, e.g., those that start with - `-S,' (short option followed by a comma) or that include `=[...]'. - Patch by Nicolas François. - Fix the four offenders thus exposed: - * src/join.c (usage): Use two spaces (not one) to separate the - --first-only option string from its description, so help2man formats - the derived man page properly. - * src/pr.c (usage): Likewise. - * src/uniq.c (usage): Likewise. - * src/install.c (usage): Likewise. - -2006-02-15 Jim Meyering <jim@meyering.net> - - * Makefile.maint (alpha beta major): For `make major', ensure that the - version string is of the form N.N[.N]*, where N is one or more digits. - -2006-02-14 Jim Meyering <jim@meyering.net> - - * INSTALL: Update from gnulib. - -2006-02-13 Jim Meyering <jim@meyering.net> - - * GNUmakefile (all): Emit diagnostics to stderr, not stdout. - -2006-02-12 Jim Meyering <jim@meyering.net> - - * Makefile.maint (patch-check): New target. - (local-checks-available): Add to the list. - -2006-02-11 Jim Meyering <jim@meyering.net> - - * src/c99-to-c89.diff: New file. - * src/Makefile.am (EXTRA_DIST): Add c99-to-c89.diff. - - * .x-po-check: New file, with exclusions so that `make distcheck' - passes once again. - * Makefile.am (EXTRA_DIST): Add .x-po-check. - - rm -r must remove an empty directory, even if it is inaccessible. - * src/remove.c (close_preserve_errno): New function. - (fd_to_subdirp): Don't print a diagnostic in this function. - Do it from the callers instead, unless rmdir succeeds. - (remove_cwd_entries, remove_dir): Adjust callers. - * tests/rm/empty-inacc: New test for the above. - * tests/rm/Makefile.am (TESTS): Add empty-inacc. - * NEWS: Mention this bug fix. - * tests/rm/rm2: Adjust two expected diagnostics, now that they're - a tiny bit less precise: cannot remove `a/1': ... instead of - cannot open directory `a/1': ... - - * Makefile.maint (syntax-check-rules): Automatically derive this - list of sc_-prefixed rule names. - -2006-02-10 Paul Eggert <eggert@cs.ucla.edu> - - * Makefile.maint (CVS_LIST): Don't assume cvsu is available. - (CVS_LIST_EXCEPT): New macro, to simplify exception-processing. - Most uses of CVS_LIST changed to use CVS_LIST_EXCEPT. - (syntax-check-rules): Bring back sc_changelong. (Hmm, why did it - go away? was that an accident?) - (sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value): - (sc_cast_of_alloca_return_value, sc_space_tab, sc_prohibit_atoi_atof): - (sc_error_exit_success, sc_file_system, sc_no_if_have_config_h): - (sc_system_h_headers, sc_sun_os_names, sc_trailing_blank): - (sc_two_space_separator_in_usage, sc_unmarked_diagnostics): - (sc_obsolete_symbols, sc_changelog, sc_prohibit_jm_in_m4): - (sc_useless_cpp_parens, makefile-check, m4-check, po-check): - (author_mark_check, makefile_path_separator_check): - Output line numbers, to simplify navigation of Emacs *compilation* - buffers. - (sc_prohibit_atoi_atof, sc_file_system): - Rework slightly so that Makefile.maint doesn't get reported as a - violation of its own syntax rules. - (sc_dd_max_sym_length): Use ifneq to do nothing, instead of doing - it at run-time (which didn't work with Bison). Fix a makefile typo, - caught by Makefile.maint itself: spaces where a tab should be. - (po-check): Check lib/*.[ch] even if not in CVS; used by Bison, - which copies from ../gnulib/lib/*.[ch] to lib/*.[ch]. - Ignore djgpp and man subdirectories, to avoid false matches with - Bison and coreutils, respectively. Use sort -u to remove the - resulting duplicates. - * gnupload: Rework slightly to avoid bogus warning from - sc_two_space_separator_in_usage. - -2006-02-10 Jim Meyering <jim@meyering.net> - - Use gzip's --rsyncable option only if it's available. - * Makefile.maint (gzip_rsyncable): New variable. - (GZIP_ENV): Use it. - -2006-02-08 Jim Meyering <jim@meyering.net> - - * Makefile.maint (local-checks-available): Define in terms of - the expansion, $(syntax-check-rules), rather than the single, - top-level target `syntax-check', so that it's easier to exclude - individual rules (via $(local-checks-to-skip)). - (tgz-md5, tgz-sha1, ...): Remove now-unused definitions. - -2006-02-07 Jim Meyering <jim@meyering.net> - - * src/system.h (!defined O_DIRECT): If O_DIRECTIO is defined (as it - is on Tru64), define O_DIRECT to that. Patch From James Lemley. - - * tests/help-version (expected_failure_status_vdir): - Redirect an expected disk-full diagnostic to /dev/null. - -2006-02-06 Jim Meyering <jim@meyering.net> - - * src/unexpand.c (usage): Use two spaces (not one) to separate the - --first-only option string from its description, so help2man formats - the derived man page properly. - * src/rm.c (usage): Likewise for --no-preserve-root. - * src/chown.c (usage): Likewise. - * src/chgrp.c (usage): Likewise. - - Add a rule to ensure that the above doesn't happen again. - * Makefile.maint (sc_two_space_separator_in_usage): New rule. - (syntax-check-rules): Add it. - * .x-sc_two_space_separator_in_usage: New empty file. - * Makefile.am (EXTRA_DIST): Add .x-sc_two_space_separator_in_usage. - -2006-02-06 Jim Meyering <jim@meyering.net> - - * src/cp.c (usage): Use two spaces (not one) to separate each - option string from its description, so help2man formats the - derived man page properly. - * src/mv.c (usage): Likewise. - Patch from Nicolas François in http://bugs.debian.org/351601. - -2006-02-04 Jim Meyering <jim@meyering.net> - - * src/copy.c (copy_internal): cp -RL would fail when encountering - the same directory more than once in the hierarchy beneath a single - command-line argument. That is legitimate, e.g. when there are - two or more symbolic links, each pointing to some directory that - would not otherwise be copied. Reported by Christophe LYON. - * tests/cp/cp-deref: New file. Test for today's fix. - * tests/cp/Makefile.am (TESTS): Add cp-deref. - * NEWS: Document this. - -2006-02-03 Jim Meyering <jim@meyering.net> - - * configure.ac: Require automake-1.9.6, not 1.8.3. - -2006-02-01 Paul Eggert <eggert@cs.ucla.edu> - - * src/od.c (usage): Mention that -t a ignores high order bit. - Documentation problem reported by Ed Avis. - -2006-02-01 Jim Meyering <jim@meyering.net> - - * src/pwd.c (find_dir_entry): Remove unused local, `ent_sb_valid'. - -2006-01-30 Paul Eggert <eggert@cs.ucla.edu> - - * src/head.c (main): Use a better diagnostic when someone uses a - trailing numeric option in an invalid way. Problem reported by - Karl Berry. - * src/tail.c (parse_options): Likewise. - -2006-01-30 Jim Meyering <jim@meyering.net> - - * man/wc.x: Include `count' keyword in man page synopsis, - per suggestion from http://bugs.debian.org/181585. - -2006-01-24 Paul Eggert <eggert@cs.ucla.edu> - - * src/df.c (show_dev): 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. Problem reported by Toralf Foerster. - -2006-01-24 Jim Meyering <jim@meyering.net> - - * src/tail.c (tail_forever): Don't exit-nonzero when an attempt - to put a regular file in O_NONBLOCK mode fails with EPERM. - That happens on Linux (up to 2.6.15) when using tail -f on a file with - the append-only attribute. Reported by Dean Gaudet. For details, - see http://savannah.gnu.org/bugs/?func=detailitem&item_id=15473. - * NEWS: Mention this fix. - * tests/tail-2/append-only: New file. Test for the above. - * tests/tail-2/Makefile.am (TESTS): Add append-only. - * tests/Makefile.am (check-root): Add tail-2/append-only - -2006-01-21 Jim Meyering <jim@meyering.net> - - * NEWS: Mention fts-related improvements and bug fixes. - -2006-01-19 Jim Meyering <jim@meyering.net> - - * tests/fmt/basic (pfx-1, pfx-2): New tests, to demonstrate the bug - reported as http://bugs.debian.org/147577. Forwarded by Thomas Hood. - -2006-01-18 Jim Meyering <jim@meyering.net> - - * tests/du/Makefile.am (TESTS): Add long-from-unreadable. - -2006-01-17 Jim Meyering <jim@meyering.net> - - Now that fts no longer changes the current working directory, adjust - its clients accordingly -- note that du.c uses fts but doesn't need - any adjustment, since it doesn't operate on the actual files, - but rather just uses the stat buffers provided by fts. - - * src/chown-core.c: Include "openat.h". - Don't include "lchown.h". - (restricted_chown): Accept a new parameter, CWD_FD, and use it in - calling openat, lchownat, chownat, rather than open, lchown, chown. - Update caller. - * src/chmod.c: Include "openat.h". - (process_file): Use chmodat (fts->fts_cwd_fd,... in place of chmod (... - - * tests/du/long-from-unreadable: New test, to exercise one small - corner of fts.c. - -2006-01-13 Jim Meyering <jim@meyering.net> - - * tests/Makefile.am (SUBDIRS): Add comments discouraging the - addition of new directories under tests/. - - * tests/acl: Redirect stdin to /dev/null. Otherwise, FreeBSD 5.0's - getfacl would hang. - -2006-01-12 Jim Meyering <jim@meyering.net> - - * tests/du/long-sloop: Adjust not to hard-code the expected - diagnostic corresponding to ELOOP. Solaris' diagnostic differs - from that of GNU libc. Reported by Paul Eggert. - - * tests/du/long-sloop: Create file at end of symlink chain. - - * tests/misc/test: New file, with a test for one of the - bugs fixed by yesterday's test.c changes. - * tests/misc/Makefile.am (TESTS): Add test. - -2006-01-11 Jim Meyering <jim@meyering.net> - - * tests/du/long-sloop: New file. Test for today's fts.c bug fix. - That bug could make du -L, chgrp -L, or chown -L fail to diagnose - a very long sequence of symbolic links (not necessarily a loop). - * tests/du/Makefile.am (TESTS): Add long-sloop. - -2006-01-11 Paul Eggert <eggert@cs.ucla.edu> - - * src/test.c (test_syntax_error): Append a newline. All callers - changed, except for the ones that didn't already append a newline. - Bug reported by Eric Blake. - -2006-01-11 Jim Meyering <jim@meyering.net> - - * src/system.h (X2NREALLOC): Now that verify_true is no longer - void, cast its result to void, to avoid gcc's warning that - ``left-hand operand of comma expression has no effect''. - (DECIMAL_DIGIT_ACCUMULATE, X2REALLOC): Likewise. - -2006-01-10 Jim Meyering <jim@meyering.net> - - * tests/chmod/no-x: Add a test for today's fts.c fix. - -2006-01-10 Jim Meyering <jim@meyering.net> (tiny change) - - * src/ls.c (gobble_file): Use DTTOIF only if it's defined. - This is necessary for Dragonfly. Patch by Joerg Sonnenberger. - -2006-01-10 Paul Eggert <eggert@cs.ucla.edu> - - * src/system.h (X2NREALLOC, X2REALLOC, DECIMAL_DIGIT_ACCUMULATE): - Use verify_true instead of verify_expr, to sync with gnulib. - -2006-01-08 Jim Meyering <jim@meyering.net> - - * src/date.c (usage): Adjust the formatting of the entries for - %::z and %:::z (separate with two spaces, not one) so that help2man - formats them properly. Reported by Philip Rowlands. - -2006-01-06 Paul Eggert <eggert@cs.ucla.edu> - - * configure.ac (gl_IGNORE_UNUSED_LIBRARIES): Add. - -2006-01-06 Jim Meyering <jim@meyering.net> - - * Makefile.maint (copyright-check): Use date +%Y in place of - hard-coded 2005. - - * src/remove.c (rm_1): Remove `static' attribute on local `status'. - First off, the attribute should have been `volatile' (not static) - to avoid longjmp-related risk of clobber. Secondly, now there is - no longer any risk of a local variable being clobbered, so there's - no need for any attribute at all. - -2006-01-05 Jim Meyering <jim@meyering.net> - - * src/remove.c: Give a few functions the inline attribute. - (AD_pop_and_chdir): Use gotos to avoid some duplication. - (AD_push): Rewrite an assertion so that the entire computation - goes away when assertions are turned off. - - * src/tail.c (ENOSYS) [!defined ENOSYS]: Don't define here. - It's already defined in "system.h". - * Makefile.maint: Add a FIXME comment. - -2006-01-04 Jim Meyering <jim@meyering.net> - - * ChangeLog: Remove entries from 2005-10-22 and earlier. - * ChangeLog-2005: New file, for entries up to version 5.92. - -2006-01-03 Jim Meyering <jim@meyering.net> - - * tests/du/no-x: Also allow a slightly different diagnostic -- the - one you get when using openat-enabled fts.c and du (coming soon). - * tests/chmod/no-x: Likewise. - * tests/chgrp/no-x: Likewise. - - * src/system.h (O_DIRECTORY) [!defined O_DIRECTORY]: Define. - -2006-01-02 Paul Eggert <eggert@cs.ucla.edu> - - * src/chown-core.c (RC_do_ordinary_chown): New enum value. - (restricted_chown): Return it, if the file cannot be accessed due - to EPERM, or if no uid or gid are required, or if the file is - neither a directory nor a regular file. Rewrite to avoid gotos. - (change_file_owner): Handle RC_do_ordinary_chown case. - Rewrite to avoid gotos. - * tests/chgrp/basic: Make sure we can change the group of - inaccessible files. - - * src/date.c (usage): Explain %g, %G, and %V a bit better. - -2006-01-02 Jim Meyering <jim@meyering.net> - - * src/copy.c (set_owner): Correct a comment. - - * src/tail.c (parse_options): Change warning to say that --retry - is useful `mainly' (not `only') when following by name. - Reported here: http://bugs.debian.org/273781 - -2006-01-01 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: Document that mkfifo and mknod -m no longer set special bits. - * src/copy.c: Include lchmod.h. - (copy_internal): Use lchmod rather than chmod. - * src/cp.c: Include lchmod.h. - (re_protect, make_dir_parents_private): Use lchmod rather than chmod. - * src/mkdir.c: Include lchmod.h. - (usage): Clarify -m's operation. - (main): Use lchmod rather than chmod. Don't use lchmod unless the - new mode contains bits outside the 777 range. - * src/mkfifo.c (usage): Clarify -m's operation. - (main): If -m is given, don't invoke chmod; use umask 0 instead. - Report an error if -m asks for bits outside the 777 range. - * src/mknod.c (usage, main): Likewise. - - * src/mkdir.c, src/mkfifo.c, src/mknod.c: Undo 2005-12-19 changes. - -2005-12-27 Jim Meyering <jim@meyering.net> - - * Makefile.maint (sc_obsolete_symbols): Prohibit use of O_NDELAY. - (sc_prohibit_assert_without_use): New rule. - (syntax-check-rules): Add it to the list. - * .x-sc_prohibit_assert_without_use: New empty file. - * Makefile.am (EXTRA_DIST): Add it. - - * Makefile.maint (CVS_LIST): Define in terms of $(srcdir). - - * cp.c, df.c, link.c, mknod.c, nice.c, sleep.c, unlink.c: - Don't include <assert.h>; it wasn't used. - -2005-12-26 Paul Eggert <eggert@cs.ucla.edu> - - * src/chown-core.c (restricted_chown): - Don't try O_WRONLY unless O_RDONLY failed wth EACCES. - * src/remove.c (fd_to_subdirp): Open with O_DIRECTORY | O_NOCTTY - | O_NOFOLLOW too, for consistency with other dir-openers. - Use POSIX-preferred O_NONBLOCK rather than O_NDELAY. - (is_empty_dir): Likewise. - * src/shred.c (wipename): Likewise. Don't bother trying to open - dir for writing, since POSIX prohibits it. - -2005-12-22 Jim Meyering <jim@meyering.net> - - * tests/help-version: Redirect stderr to /dev/full, to suppress - write error diagnostic. - -2005-12-19 Jim Meyering <jim@meyering.net> - - * src/mkdir.c, src/mknod.c, src/mkfifo.c (main) - Avoid a minor race condition when `-m MODE' is specified, by using - open, fchown, and close rather than just chown. To do that reliably -- - even with an overly restrictive umask -- ensure that each mkdir, - mknod and mkfifo call uses a mode including at least owner-read access. - * src/mknod.c (main): When `-m MODE' is specified, exit nonzero if - the subsequent chown (or equivalent open,fchown,close) fails. - * tests/misc/mknod: New tests. - * tests/misc/Makefile.am (TESTS): Add mknod. - -2005-12-17 Jim Meyering <jim@meyering.net> - - * src/remove.c (is_empty_dir): Open with O_NDELAY, so we don't hang, - e.g., on a named pipe. - (OPEN_NO_FOLLOW_SYMLINK): Remove definition. Use O_NOFOLLOW in - place of all uses, since it is guaranteed (system.h) to be defined. - -2005-12-05 Andreas Gruenbacher <agruen@suse.de> - - Add POSIX ACL support - * src/ls.c: Switch back from HAVE_ACL to USE_ACL: The acl() syscall - is no requirement for ACL support; particularly, it does not exist - on systems that have POSIX ACLs. - * src/copy.h (cp_option_init) [umask_kill]: Remove member. - * src/cp.c (umask_kill): With default acls, the umask is not to be - applied. Remove umask_kill, don't change the process umask, and let - the kernel apply the umask where appropriate. - * src/cp.c (make_dir_parents_private): Fix logic for POSIX ACLs. - * src/copy.c (get_dest_mode): Remove; it is obsolete after removing - umask_kill. - (copy_reg, copy_internal): Use copy_acl and set_acl - instead of fchown/chown. Fix the logic for POSIX ACLs. - (chown_succeded): Remove; we now always copy acls and - preserve S_ISUID, S_ISGID, and S_ISVTX when needed, no matter if we - did a chown before or not. - * src/mv.c, src/install.c (cp_option_init): Don't set umask_kill member. - * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD, cp_LDADD, - mv_LDADD, ginstall_LDADD): On systems with an ACL library, arrange - to link with it via $(LIB_ACL), for the utilities that need it. - -2005-12-16 Paul Eggert <eggert@cs.ucla.edu> - - * src/remove.c (OPENAT_CWD_RESTORE__REQUIRE): Remove. - (OPENAT_CWD_RESTORE__ALLOW_FAILURE): Likewise. - (fd_to_subdirp): Remove openat_cwd_restore_allow_failure arg; its - value is now signified by whether cwd_errno is null. - (fd_to_subdirp, remove_dir, rm_1); Change cwd failure indicator from - pointer-to-bool to pointer-to-errno-value. All callers changed. - (rm_1): Don't bother setting a local cwd failure flag and then - ORing it into the caller's. Just set the caller's. - (rm): Use cwd failure errno value to print a slightly-better - diagnostic. - -2005-12-15 Jim Meyering <jim@meyering.net> - - * src/stat.c (print_it): Properly handle a backslash at the - end of a --printf format string. Reported by Paul Eggert. - * tests/misc/stat-printf (end-bs): Add a test for the above. - -2005-12-15 Paul Eggert <eggert@cs.ucla.edu> - - * tests/acl: Port to pre-POSIX shells like Solaris 8 /bin/sh. - Don't assume /etc/passwd contains user names; use 'id' instead. - -2005-12-15 Jim Meyering <jim@meyering.net> - - stat: revert behavior of --format=FMT (-c) - stat: add new option: --printf=FMT - * NEWS: Mention this. - * src/stat.c (isodigit, octtobin, hextobin): Define. - (PRINTF_OPTION): Define. - (interpret_backslash_escapes, trailing_delim): New globals. - (usage): Document them. Alphabetize on long option names. - (print_esc_char): New function. - (print_it): Rewrite, in order to handle backslash escapes. - (main): Handle new option. Set globals for --format, too. - - * tests/misc/stat-printf: Test --printf and --format. - * tests/misc/Makefile.am (TESTS): Add stat-printf. - -2005-12-14 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: sort now reports incompatible options. - * src/sort.c (incompatible_options, check_ordering_compatibility): - New functions. - (main): Use them. Don't bother with a usage message for - "sort -c a b", for consistency with other error diagnostics. - * tests/sort/Test.pm (incompat1, incompat2, incompat3, incompat4): - New tests. - - * src/cat.c (main): Undo previous change. close_stdout already - does the check, so the previous change wasn't necessary. - -2005-12-13 Paul Eggert <eggert@cs.ucla.edu> - - * src/cat.c (main): Check for close (STDOUT_FILENO) failure. - -2005-12-12 Paul Eggert <eggert@cs.ucla.edu> - - Install a more-conservative approach for sort -R. It's the - same basic idea as the existing code, except it uses the full ISAAC - approach (called the "more kosher" approach in the existing comments). - This makes "sort -R" quite a bit slower (about a factor of 2 on my - little tests involving 10000 lines on a 2.4 GHz P4), but I think it's - better to be conservative here at first, and review any performance - improvements carefully. - * .x-sc_require_config_h: Add src/rand-isaac.c. - * src/rand-isaac.h: Remove. All uses now simply include rand-isaac.c. - * src/Makefile.am (noinst_HEADERS): Remove rand-isaac.h. - (shred_SOURCES, sort_SOURCES): Remove. - (EXTRA_DIST): Add rand-isaac.c. - * src/rand-isaac.c: Revert to what used to be in shred.c, without - changing it to allow for varying numbers of words in the state. - Alter so that we include rand-isaac.c directly rather than - compiling it and linking to it. Don't include config.h or - system.h; that's the includer's responsibility. - Omit functions that are specific to shred. - (ISAAC_LOG, ISAAC_WORDS, ISAAC_BYTES, struct isaac_state, ind): - (isaac_step, struct irand_state): - Resurrect these, with the same defns that used to be in shred.c. - (ISAAC_SIZE, isaac_new, isaac_copy): Remove. - (isaac_refill, isaac_seed_start, isaac_seed_data, irand_init, irand32): - static again. - (struct isaac_state, isaac_refill, isaac_mix, isaac_init): - (isaac_seed_start, isaac_seed_data, isaac_seed_finish, isaac_seed): - (irand_init, irand32, irand_mod): - Number of words is constant again. - (struct irand_state, irand_init, irand32, irand_mod): Move to shred.c. - * src/shred.c: Include rand-isaac.c rather than rand-isaac.h. - * src/sort.c: Likewise. - * src/shred.c (fillrand, dopass, main): Undo previous change. - (struct irand_state, irand_init, irand32, irand_mod): Moved back here, - from rand-isaac.c. - * src/sort.c: Don't include md5.h; it wasn't needed. - (struct keyfield): Rename random_hash to random, for consistency - with the other member names. All uses changed. - (usage): Tweak wording to mention STRING for --seed option. - (short_options): Rorder for consistency with other programs. - (rand_state): Now a struct, not a pointer to one. All uses changed. - (HASH_WORDS, HASH_SIZE): Remove. - (get_hash): Remove comments around resbuf size, since we can assume C89. - Use a "more-kosher" (but slower) approach of invoking isaac_refill. - (keycompare): Adjust to the new get_hash. - Add a FIXME. - (badfieldspec): Omit recently-introduced comment; it isn't needed. - (main): Don't set need_random simply because gkey has it set; that - doesn't necessarily mean we'll need random numbers. - Redo seeding to match new get_hash approach. - -2005-12-10 Jim Meyering <jim@meyering.net> - - * src/Makefile.am (noinst_HEADERS): Add rand-isaac.h. - - Avoid shred segfault on 64-bit systems. - * src/rand-isaac.c (isaac_refill): Don't try to negate a - local of type uint32_t. Make the local an `int' instead. - - * NEWS: Mention sort's new options. - - * src/rand-isaac.c (isaac_mix): Declare to be static. - Mark all other functions as `extern' so the tight-scope - part of `make distcheck' passes once again. - * src/rand-isaac.h (isaac_mix): Remove declaration. - - * src/sort.c (get_hash): Change position of `*' in parameter - type to conform with convention. - (main): Split a long line so it fits in 80 columns. - (keycompare): Remove stray SPACE before TAB that was - causing `make distcheck' to fail. - - * src/shred.c: Don't include gethrxtime.h. No longer needed. - - * tests/misc/sort-rand: New file: basic tests for the new options. - * tests/misc/Makefile.am (TESTS): Add sort-rand. - -2005-12-10 Frederik Eaton <frederik@ofb.net> - - * src/Makefile.am (sort_LDADD): Add $(LIB_GETHRXTIME). - (shred_SOURCES, sort_SOURCES): New macros, so we compile rand-isaac.c. - * src/rand-isaac.c: New file, containing ISAAC code that was in shred.c. - Make state size runtime-configurable. - (isaac_new, isaac_copy): New functions. - * src/rand-isaac.h: New file. - * src/shred.c: Include rand-isaac.h. Move ISAAC code to rand-isaac.c. - (fillrand, main): Adjust to the fact that the state size is now - runtime-configurable. - * src/sort.c (short_options, long_options, WORDS, keycompare, main): - (usage): Add options --random-sort and --seed to implement a random - shuffle. - Include md5.h and rand-isaac.h. - (get_hash): New function. - (rand_state): New var. - (HASH_WORDS, HASH_SIZE): New macros. - -2005-12-09 Paul Eggert <eggert@cs.ucla.edu> - - * tests/dd/misc: Add test for dd iflags=noatime. - -2005-12-09 Jim Meyering <jim@meyering.net> - - * src/sort.c (usage): Mention white space vs -b and -t options. - From The Wanderer. - -2005-12-09 Eric Blake <ebb9@byu.net> - - * src/test.c (main): Fix misleading comment. - -2005-12-07 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: Mention dd's new noatime flag. - * src/system.h (O_NOATIME): Define to 0 if not already defined. - * src/dd.c (flags, usage): Add support for noatime flag. - -2005-12-07 Jim Meyering <jim@meyering.net> - - Distribute the cvsu script, used only by `make syntax-check'. - * Makefile.am (EXTRA_DIST): Add build-aux/cvsu. - * Makefile.maint (CVS_LIST): Use build-aux/cvsu, now that we - distribute a copy of this script. - * .x-sc_unmarked_diagnostics: Add build-aux/cvsu. - - * tests/mv/acl: exit-77 before the trap, not after, if we fail - to create a temporary directory on another partition. - From Andreas Gruenbacher. - -2005-12-06 Tomas Pospisek <tpo@sourcepole.ch> (tiny change) - - * man/basename.x: Cross-reference to dirname and readlink. - * man/dirname.x: Cross-reference to basename and readlink. - -2005-12-05 Andreas Gruenbacher - - * src/copy.c [!HAVE_FCHOWN]: Define fchown(...) to -1. - (set_owner, preserve_author): New functions, factored out of copy_reg. - (copy_reg): Use them. - (copy_internal): Use them here, too. - -2005-12-04 Jim Meyering <jim@meyering.net> - - * src/sleep.c (usage): Say what happens with two or more arguments. - Suggested by Justin Pryzby. - - * src/uptime.c (print_uptime): Move decl of `upsecs' into scope - where it's used. - -2005-12-03 Jim Meyering <jim@meyering.net> - - * src/rm.c (long_opts): Change the name of each undocumented, for- - testing-only option to start with `-', so that it cannot render - ambiguous any prefix it happens to share with some other option name. - Problem reported by Eric Blake. - * src/head.c (long_options): Likewise. - * src/tail.c (long_options): Likewise. - - * tests/misc/head-elide-tail: Update uses of undocumented, for- - testing-only --presume* options to start with `---'. - * tests/rm/dangling-symlink: Likewise. - * tests/rm/dir-no-w: Likewise. - * tests/rm/isatty: Likewise. - -2005-11-30 Jim Meyering <jim@meyering.net> - - * Makefile.maint: Add a comment about cvsu. - -2005-11-25 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: df updates for "none", "proc", inaccessible file systems. - * src/df.c (show_point): Ignore inaccessible file systems. - (usage): -a includes dummy file systems, not size-0 file systems. - - * src/od.c (unsigned_long_long_int): Renamed from ulonglong_t, - to avoid collision with POSIX name space. All uses changed. - -2005-11-24 Jim Meyering <jim@meyering.net> - - * tests/Makefile.am (EXTRA_DIST): Add acl to the list. - * tests/acl: Add `$0: ' prefix to diagnostics. - - * .x-sc_require_config_h: Add lib/buffer-lcm.c to the list. - -2005-11-23 Paul Eggert <eggert@cs.ucla.edu> - - * src/copy.c: Improve performance a bit by optimizing away - unnecessary system calls and going to a block size of at least - 8192 (on normal hosts, anyway). This improved performance 5% on my - Debian stable host (2.4.27 kernel, x86, copying from root - ext3 file system to itself). - Include "buffer-lcm.h". - (copy_reg): Omit last argument. All callers changed. - Use xmalloc to allocate rather than trusting alloca - (which is unwise with large block sizes). - Declare locals more locally, if possible. - Use uintptr_t words instead of int words, for a bit more speed - when looking for null blocks on 64-bit hosts. - Optimize away reads of zero bytes on regular files. - In the typical case, insist on 8 KiB buffers, at least. - Avoid unnecessary extra call to fstat when checking for sparse files. - Avoid now-unnecessary cast to off_t, and "0L". - Avoid unnecessary test of *new_dst when checking for same owner - and group. - -2005-11-22 Paul Eggert <eggert@cs.ucla.edu> - - * src/remove.c (rm): Don't assume C99 for-loop syntax. - -2005-11-22 Jim Meyering <jim@meyering.net> - - * src/remove.c (AD_push): Remove debugging cruft. - - * tests/rm/unread2 (rm): Change expected diagnostic, - `cannot open directory' to `cannot remove', to align with - new version of rm. - * tests/rm/rm2: Ensure that rm now continues removing entries - even after certain types of failure. - - * src/remove.c: Rewrite. Now, this module is reentrant on systems - that provide openat (Solaris), and on systems like Linux+procfs - where our openat emulation code is reentrant. This also fixes a - few low-probability leaks and eliminates some code that could, - in very unusual circumstances, cause rm() (via a callee) to exit. - * NEWS: Mention this. - - * configure.ac: Put copyright dates all on one line so the - emacs function that updates them works properly. - -2005-11-18 Paul Eggert <eggert@cs.ucla.edu> - - * configure.ac (AM_PROG_CC_C_O): Add. Needed for CVS Automake. - Problem reported by Eric Blake. - (AC_PROG_CC_STDC): Use this instead of AC_PROG_CC, so that - we get a standard-conforming compiler. This relies on the new - m4/c.m4 file. Note that it's a bit tricky, since c.m4 doesn't - define AC_PROG_CC_STDC; we are relying on Autoconf 2.59 internals. - m4/c.m4 can go away with Autoconf 2.60 comes out. - -2005-11-17 Jim Meyering <jim@meyering.net> - - * src/remove.c (AD_mark_helper): Make a `char *' parameter `const'. - (AD_mark_current_as_unremovable): Likewise, but for a local. - (rm_1): Likewise. - - * tests/mv/acl: Let traps handle removing temporary directories. - - Expect acl-related tests to fail, until the corresponding - patches are committed. - * tests/mv/Makefile.am (XFAIL_TESTS): Add acl. - * tests/cp/Makefile.am (XFAIL_TESTS): Likewise. - - ACL tests, from Andreas Gruenbacher. - * tests/acl, tests/mv/acl, tests/cp/acl: New files. - * tests/mv/Makefile.am (TESTS): Add acl. - * tests/cp/Makefile.am (TESTS): Add acl. - - * src/ls.c (basename_is_dot_or_dotdot): Correct wording in comment. - -2005-11-16 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: Improve quality of ln's diagnostics. - * src/ln.c (do_link, usage): Likewise. - (do_link): Don't use alloca on a buffer of unbounded size. - -2005-11-16 Jim Meyering <jim@meyering.net> - - * tests/cp/fail-perm: Accommodate HPUX. It appears to fail - with EACCES rather than EPERM. Reported by Peter O'Gorman here: - http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/5766 - This also affects AIX 4.3.3, according to Ralf Wildenhues, in - http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00192.html - -2005-11-14 Jim Meyering <jim@meyering.net> - - * NEWS (sort): Mention consequences of today's mkstemp-safer.c fix. - -2005-11-13 Jim Meyering <jim@meyering.net> - - * announce-gen: Accept new option, --gpg-key-id=ID and - emit a blurb telling how to use the .sig files. - * Makefile.cfg (gpg_key_ID): Define. - * Makefile.maint (announcement): Use new option and key. - - Require that most .c files include <config.h>. - * Makefile.maint (sc_require_config_h): New rule. - (syntax-check-rules): Add it. - * .x-sc_require_config_h: New file listing exceptions to the - above rule. Some are legit, others are simply grandfathered in. - * Makefile.am (EXTRA_DIST): Add .x-sc_require_config_h here, too. - -2005-11-12 Jim Meyering <jim@meyering.net> - - * src/checksum.h, src/md5.c, src/sha1sum.c: Remove now-unused files. - -2005-11-11 Jim Meyering <jim@meyering.net> - - * NEWS: Mention `readlink -f' bug fix in 5.3.0 news. - Mention new readlink options in 5.3.0's `New features' section. - Spotted by Thomas Hood. - -2005-11-08 Jim Meyering <jim@meyering.net> - - * NEWS: Merge in changes from b5_9x branch. - -2005-11-08 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: ls now defaults to --time-style='locale', which in turn acts - like --time-style='posix-long-iso' if the locale settings are messed up. - * src/ls.c (decode_switches): Implement this. - -2005-11-08 Jim Meyering <jim@meyering.net> - - * tests/du/2g: s/expensive/very expensive/ in a comment. - From Paul Townsend. - -2005-10-17 Eric Blake <ebb9@byu.net> - - * src/ls.c (usage): Fix descriptions of --sort, --time. - Reported by Vitaly A. Ostanin. - -2005-11-04 Paul Eggert <eggert@cs.ucla.edu> - - * src/ln.c: Include filenamecat.c. - (FILE_BASENAME_CONCAT): Remove. - (do_link): Remove last arg DEST_IS_DIR. All callers changed. - (main): Use file_name_concat, base_name, and strip_trailing_slashes - instead of FILE_BASENAME_CONCAT. This simplifies the code, and avoids - the use of alloca. - -2005-11-04 Jim Meyering <jim@meyering.net> - - * src/du.c (process_file): Don't overflow for files of size >= 2^31 - on systems with stat.st_blocks of a signed 32-bit type. - This bug causes trouble on some AIX 5.1 systems. - Report and trivial patch from Paul Townsend: - <http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00033.html> - * NEWS: Mention this. - - * tests/du/2g: New (very-expensive) test for the above-fixed bug. - * tests/du/Makefile.am (TESTS): Add it here. - * tests/very-expensive: New file. - * tests/Makefile.am (EXTRA_DIST): Add it here. - * tests/cp/perm: Mark this test as `very-expensive', too. - -2005-11-02 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: Mention that rm -d and maybe ln -d are scheduled for - removal in 2006. - * src/remove.h (struct rm_options): Remove unlink_dirs. All uses - removed. - * src/rm.c (usage): Don't mention rm -d. - -2005-11-02 Jim Meyering <jim@meyering.net> - - * tests/dd/skip-seek: Fix typo in comment: s/fileutils/coreutils. - From Andreas Schwab. - - * tests/dd/unblock-sync: Redirect stderr to /dev/null so the - `M+N records in/out' lines don't pollute `make check' output. - - * tests/dd/skip-seek (sk-seek4): New test, to exercise the bug - fixed on 2005-10-31. This test uses the new, IN_PIPE specifier. - * tests/Coreutils.pm: Accept a new type of input specifier: IN_PIPE, - to indicate that the input file should be piped into the command - under test (via `cat FILE | $prog ...'). - - * src/remove.c (remove_entry): Emit a better diagnostic when rm - (without -r) fails to remove a directory on a non-Linux system. - This change affects only newer Solaris systems (with priv_* - functions like priv_allocset). Reported by Keith Thompson. - - * tests/rm/dir-nonrecur: New file/test for the above fix. - * tests/rm/Makefile.am (TESTS): Add dir-nonrecur. - -2005-11-01 Paul Eggert <eggert@cs.ucla.edu> - - * NEWS: "tail -c 2 FILE" and "touch 0101000000" now operate as - POSIX 1002.1-2001 requires. - * src/tail.c (parse_obsolete_option): Implement this. - Problem reported by Vincent Lefevre. - * src/touch.c (main): Pass PDS_PRE_2000 to posixtime. - * tests/tail/Test.pm (c-2, c-2-minus, c2, c2-minus): New tests. - (test_vector): Add special cases for _POSIX2_VERSION, and - regularize the old ones a bit. - * tests/touch/obsolescent: Add y2000 test. - -2005-10-31 Paul Eggert <eggert@cs.ucla.edu> - - * src/dd.c (skip): Fix off-by-one error reported by - Theodoros V. Kalamatianos. - -2005-10-30 Paul Eggert <eggert@cs.ucla.edu> - - * tests/mkdir/p-3: Require that the test be run as non-root. - Problem and trivial fix reported by Theodoros V. Kalamatianos. - -2005-10-28 Paul Eggert <eggert@cs.ucla.edu> - - * src/ln.c (FILE_BASENAME_CONCAT): Omit unnecessary slashes in the - boundary between DEST and SOURCE in the result. - -2005-10-26 Dmitry V. Levin <ldv@altlinux.org> - - * src/md5sum.c (main) [!O_BINARY]: Changed default read mode - back to text, to sync with documentation and for backwards - compatibility. - -2005-10-25 Jim Meyering <jim@meyering.net> - - * tests/dircolors/simple (other-wr): Add an explicit test for - the dircolors bug (NULL-dereference) fixed yesterday. - -2005-10-24 Jim Meyering <jim@meyering.net> - - * src/tac.c (tac_file): When determining whether a file is seekable, - also test whether it is a tty. Using only the lseek-based test would - give a false positive on Solaris. Reported by Peter Fales. - -2005-10-24 Dmitry V. Levin <ldv@altlinux.org> - - * tests/install/d-slashdot: New test, for "install -d" failure. - * tests/install/Makefile.am (TESTS): Add d-slashdot. - * tests/mkdir/p-slashdot: New test, for "mkdir -p" failure. - * tests/mkdir/Makefile.am (TESTS): Add p-slashdot. - -2005-10-24 Jim Meyering <jim@meyering.net> - - * src/dircolors.c (ls_codes): Add missing comma. - Anonymous report and patch from - http://savannah.gnu.org/bugs/?func=detailitem&item_id=14849 - - * src/dircolors.c: Add compile-time assertion that the slack_codes - and ls_codes arrays have the same number of elements. This would - have prevented the above-fixed bug. - - * src/expand.c (parse_tab_stops): Add a comment to make this function - identical to the one in unexpand.c. - * src/unexpand.c (parse_tab_stops): Adjust syntax to make this function - identical to the one in expand.c. - - * src/expand.c (next_file): Don't assume fopen cannot return stdin. - -2005-10-23 Jim Meyering <jim@meyering.net> - - * src/md5sum.c (digest_check, main): Use ptr_align rather than - a dangerous pointer-value-to-`unsigned' cast. - * NEWS: mention the new sha* programs. - * AUTHORS: Add new sha* programs. - -2005-08-28 David Madore <david.madore@ens.fr> - - Add new programs: sha224sum, sha256sum, sha384sum, sha512sum. - * README: Add their names to the list. - * src/md5sum.c: Provide framework for computing sha-2 hashes. - * src/Makefile.am (sha224sum, sha256sum, sha384sum, sha512sum): - Rules for compiling sha-2 utilities - (noinst_HEADERS): Remove checksum.h. - * man/sha512sum.x, man/sha384sum.x, man/sha256sum.x, man/sha224sum.x: - New files. - * man/Makefile.am (dist_man_MANS): Add the corresponding .1 names. - (sha224sum.1, sha256sum.1, sha384sum.1, sha512sum.1): New dependencies. - * tests/misc/sha224sum, tests/misc/sha256sum: New files. - * tests/misc/sha384sum, tests/misc/sha512sum: New files. - * tests/misc/Makefile.am (TESTS): Add new sha224sum, sha256sum, - sha384sum, sha512sum test scripts here rather that each in its - own directory. - -2005-08-28 David Madore <david.madore@ens.fr> - - * tests/sha1sum/basic-1 (million-a): Add the "million a's" test (one - of the FIPS test vectors). - -2005-10-23 Jim Meyering <jim@meyering.net> - - * configure.ac: Use 6.0-cvs as the version string. - * NEWS: Adjust accordingly. - - - ----- - - Copyright (C) 2005-2008 Free Software Foundation, Inc. - - Copying and distribution of this file, with or without - modification, are permitted provided the copyright notice - and this notice are preserved. diff --git a/ChangeLog-2005 b/ChangeLog-2005 index 4ec81dc42..83a6f9e50 100644 --- a/ChangeLog-2005 +++ b/ChangeLog-2005 @@ -1,3 +1,608 @@ +2005-12-27 Jim Meyering <jim@meyering.net> + + * Makefile.maint (sc_obsolete_symbols): Prohibit use of O_NDELAY. + (sc_prohibit_assert_without_use): New rule. + (syntax-check-rules): Add it to the list. + * .x-sc_prohibit_assert_without_use: New empty file. + * Makefile.am (EXTRA_DIST): Add it. + + * Makefile.maint (CVS_LIST): Define in terms of $(srcdir). + + * cp.c, df.c, link.c, mknod.c, nice.c, sleep.c, unlink.c: + Don't include <assert.h>; it wasn't used. + +2005-12-26 Paul Eggert <eggert@cs.ucla.edu> + + * src/chown-core.c (restricted_chown): + Don't try O_WRONLY unless O_RDONLY failed wth EACCES. + * src/remove.c (fd_to_subdirp): Open with O_DIRECTORY | O_NOCTTY + | O_NOFOLLOW too, for consistency with other dir-openers. + Use POSIX-preferred O_NONBLOCK rather than O_NDELAY. + (is_empty_dir): Likewise. + * src/shred.c (wipename): Likewise. Don't bother trying to open + dir for writing, since POSIX prohibits it. + +2005-12-22 Jim Meyering <jim@meyering.net> + + * tests/help-version: Redirect stderr to /dev/full, to suppress + write error diagnostic. + +2005-12-19 Jim Meyering <jim@meyering.net> + + * src/mkdir.c, src/mknod.c, src/mkfifo.c (main) + Avoid a minor race condition when `-m MODE' is specified, by using + open, fchown, and close rather than just chown. To do that reliably -- + even with an overly restrictive umask -- ensure that each mkdir, + mknod and mkfifo call uses a mode including at least owner-read access. + * src/mknod.c (main): When `-m MODE' is specified, exit nonzero if + the subsequent chown (or equivalent open,fchown,close) fails. + * tests/misc/mknod: New tests. + * tests/misc/Makefile.am (TESTS): Add mknod. + +2005-12-17 Jim Meyering <jim@meyering.net> + + * src/remove.c (is_empty_dir): Open with O_NDELAY, so we don't hang, + e.g., on a named pipe. + (OPEN_NO_FOLLOW_SYMLINK): Remove definition. Use O_NOFOLLOW in + place of all uses, since it is guaranteed (system.h) to be defined. + +2005-12-05 Andreas Gruenbacher <agruen@suse.de> + + Add POSIX ACL support + * src/ls.c: Switch back from HAVE_ACL to USE_ACL: The acl() syscall + is no requirement for ACL support; particularly, it does not exist + on systems that have POSIX ACLs. + * src/copy.h (cp_option_init) [umask_kill]: Remove member. + * src/cp.c (umask_kill): With default acls, the umask is not to be + applied. Remove umask_kill, don't change the process umask, and let + the kernel apply the umask where appropriate. + * src/cp.c (make_dir_parents_private): Fix logic for POSIX ACLs. + * src/copy.c (get_dest_mode): Remove; it is obsolete after removing + umask_kill. + (copy_reg, copy_internal): Use copy_acl and set_acl + instead of fchown/chown. Fix the logic for POSIX ACLs. + (chown_succeded): Remove; we now always copy acls and + preserve S_ISUID, S_ISGID, and S_ISVTX when needed, no matter if we + did a chown before or not. + * src/mv.c, src/install.c (cp_option_init): Don't set umask_kill member. + * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD, cp_LDADD, + mv_LDADD, ginstall_LDADD): On systems with an ACL library, arrange + to link with it via $(LIB_ACL), for the utilities that need it. + +2005-12-16 Paul Eggert <eggert@cs.ucla.edu> + + * src/remove.c (OPENAT_CWD_RESTORE__REQUIRE): Remove. + (OPENAT_CWD_RESTORE__ALLOW_FAILURE): Likewise. + (fd_to_subdirp): Remove openat_cwd_restore_allow_failure arg; its + value is now signified by whether cwd_errno is null. + (fd_to_subdirp, remove_dir, rm_1); Change cwd failure indicator from + pointer-to-bool to pointer-to-errno-value. All callers changed. + (rm_1): Don't bother setting a local cwd failure flag and then + ORing it into the caller's. Just set the caller's. + (rm): Use cwd failure errno value to print a slightly-better + diagnostic. + +2005-12-15 Jim Meyering <jim@meyering.net> + + * src/stat.c (print_it): Properly handle a backslash at the + end of a --printf format string. Reported by Paul Eggert. + * tests/misc/stat-printf (end-bs): Add a test for the above. + +2005-12-15 Paul Eggert <eggert@cs.ucla.edu> + + * tests/acl: Port to pre-POSIX shells like Solaris 8 /bin/sh. + Don't assume /etc/passwd contains user names; use 'id' instead. + +2005-12-15 Jim Meyering <jim@meyering.net> + + stat: revert behavior of --format=FMT (-c) + stat: add new option: --printf=FMT + * NEWS: Mention this. + * src/stat.c (isodigit, octtobin, hextobin): Define. + (PRINTF_OPTION): Define. + (interpret_backslash_escapes, trailing_delim): New globals. + (usage): Document them. Alphabetize on long option names. + (print_esc_char): New function. + (print_it): Rewrite, in order to handle backslash escapes. + (main): Handle new option. Set globals for --format, too. + + * tests/misc/stat-printf: Test --printf and --format. + * tests/misc/Makefile.am (TESTS): Add stat-printf. + +2005-12-14 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: sort now reports incompatible options. + * src/sort.c (incompatible_options, check_ordering_compatibility): + New functions. + (main): Use them. Don't bother with a usage message for + "sort -c a b", for consistency with other error diagnostics. + * tests/sort/Test.pm (incompat1, incompat2, incompat3, incompat4): + New tests. + + * src/cat.c (main): Undo previous change. close_stdout already + does the check, so the previous change wasn't necessary. + +2005-12-13 Paul Eggert <eggert@cs.ucla.edu> + + * src/cat.c (main): Check for close (STDOUT_FILENO) failure. + +2005-12-12 Paul Eggert <eggert@cs.ucla.edu> + + Install a more-conservative approach for sort -R. It's the + same basic idea as the existing code, except it uses the full ISAAC + approach (called the "more kosher" approach in the existing comments). + This makes "sort -R" quite a bit slower (about a factor of 2 on my + little tests involving 10000 lines on a 2.4 GHz P4), but I think it's + better to be conservative here at first, and review any performance + improvements carefully. + * .x-sc_require_config_h: Add src/rand-isaac.c. + * src/rand-isaac.h: Remove. All uses now simply include rand-isaac.c. + * src/Makefile.am (noinst_HEADERS): Remove rand-isaac.h. + (shred_SOURCES, sort_SOURCES): Remove. + (EXTRA_DIST): Add rand-isaac.c. + * src/rand-isaac.c: Revert to what used to be in shred.c, without + changing it to allow for varying numbers of words in the state. + Alter so that we include rand-isaac.c directly rather than + compiling it and linking to it. Don't include config.h or + system.h; that's the includer's responsibility. + Omit functions that are specific to shred. + (ISAAC_LOG, ISAAC_WORDS, ISAAC_BYTES, struct isaac_state, ind): + (isaac_step, struct irand_state): + Resurrect these, with the same defns that used to be in shred.c. + (ISAAC_SIZE, isaac_new, isaac_copy): Remove. + (isaac_refill, isaac_seed_start, isaac_seed_data, irand_init, irand32): + static again. + (struct isaac_state, isaac_refill, isaac_mix, isaac_init): + (isaac_seed_start, isaac_seed_data, isaac_seed_finish, isaac_seed): + (irand_init, irand32, irand_mod): + Number of words is constant again. + (struct irand_state, irand_init, irand32, irand_mod): Move to shred.c. + * src/shred.c: Include rand-isaac.c rather than rand-isaac.h. + * src/sort.c: Likewise. + * src/shred.c (fillrand, dopass, main): Undo previous change. + (struct irand_state, irand_init, irand32, irand_mod): Moved back here, + from rand-isaac.c. + * src/sort.c: Don't include md5.h; it wasn't needed. + (struct keyfield): Rename random_hash to random, for consistency + with the other member names. All uses changed. + (usage): Tweak wording to mention STRING for --seed option. + (short_options): Rorder for consistency with other programs. + (rand_state): Now a struct, not a pointer to one. All uses changed. + (HASH_WORDS, HASH_SIZE): Remove. + (get_hash): Remove comments around resbuf size, since we can assume C89. + Use a "more-kosher" (but slower) approach of invoking isaac_refill. + (keycompare): Adjust to the new get_hash. + Add a FIXME. + (badfieldspec): Omit recently-introduced comment; it isn't needed. + (main): Don't set need_random simply because gkey has it set; that + doesn't necessarily mean we'll need random numbers. + Redo seeding to match new get_hash approach. + +2005-12-10 Jim Meyering <jim@meyering.net> + + * src/Makefile.am (noinst_HEADERS): Add rand-isaac.h. + + Avoid shred segfault on 64-bit systems. + * src/rand-isaac.c (isaac_refill): Don't try to negate a + local of type uint32_t. Make the local an `int' instead. + + * NEWS: Mention sort's new options. + + * src/rand-isaac.c (isaac_mix): Declare to be static. + Mark all other functions as `extern' so the tight-scope + part of `make distcheck' passes once again. + * src/rand-isaac.h (isaac_mix): Remove declaration. + + * src/sort.c (get_hash): Change position of `*' in parameter + type to conform with convention. + (main): Split a long line so it fits in 80 columns. + (keycompare): Remove stray SPACE before TAB that was + causing `make distcheck' to fail. + + * src/shred.c: Don't include gethrxtime.h. No longer needed. + + * tests/misc/sort-rand: New file: basic tests for the new options. + * tests/misc/Makefile.am (TESTS): Add sort-rand. + +2005-12-10 Frederik Eaton <frederik@ofb.net> + + * src/Makefile.am (sort_LDADD): Add $(LIB_GETHRXTIME). + (shred_SOURCES, sort_SOURCES): New macros, so we compile rand-isaac.c. + * src/rand-isaac.c: New file, containing ISAAC code that was in shred.c. + Make state size runtime-configurable. + (isaac_new, isaac_copy): New functions. + * src/rand-isaac.h: New file. + * src/shred.c: Include rand-isaac.h. Move ISAAC code to rand-isaac.c. + (fillrand, main): Adjust to the fact that the state size is now + runtime-configurable. + * src/sort.c (short_options, long_options, WORDS, keycompare, main): + (usage): Add options --random-sort and --seed to implement a random + shuffle. + Include md5.h and rand-isaac.h. + (get_hash): New function. + (rand_state): New var. + (HASH_WORDS, HASH_SIZE): New macros. + +2005-12-09 Paul Eggert <eggert@cs.ucla.edu> + + * tests/dd/misc: Add test for dd iflags=noatime. + +2005-12-09 Jim Meyering <jim@meyering.net> + + * src/sort.c (usage): Mention white space vs -b and -t options. + From The Wanderer. + +2005-12-09 Eric Blake <ebb9@byu.net> + + * src/test.c (main): Fix misleading comment. + +2005-12-07 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: Mention dd's new noatime flag. + * src/system.h (O_NOATIME): Define to 0 if not already defined. + * src/dd.c (flags, usage): Add support for noatime flag. + +2005-12-07 Jim Meyering <jim@meyering.net> + + Distribute the cvsu script, used only by `make syntax-check'. + * Makefile.am (EXTRA_DIST): Add build-aux/cvsu. + * Makefile.maint (CVS_LIST): Use build-aux/cvsu, now that we + distribute a copy of this script. + * .x-sc_unmarked_diagnostics: Add build-aux/cvsu. + + * tests/mv/acl: exit-77 before the trap, not after, if we fail + to create a temporary directory on another partition. + From Andreas Gruenbacher. + +2005-12-06 Tomas Pospisek <tpo@sourcepole.ch> (tiny change) + + * man/basename.x: Cross-reference to dirname and readlink. + * man/dirname.x: Cross-reference to basename and readlink. + +2005-12-05 Andreas Gruenbacher + + * src/copy.c [!HAVE_FCHOWN]: Define fchown(...) to -1. + (set_owner, preserve_author): New functions, factored out of copy_reg. + (copy_reg): Use them. + (copy_internal): Use them here, too. + +2005-12-04 Jim Meyering <jim@meyering.net> + + * src/sleep.c (usage): Say what happens with two or more arguments. + Suggested by Justin Pryzby. + + * src/uptime.c (print_uptime): Move decl of `upsecs' into scope + where it's used. + +2005-12-03 Jim Meyering <jim@meyering.net> + + * src/rm.c (long_opts): Change the name of each undocumented, for- + testing-only option to start with `-', so that it cannot render + ambiguous any prefix it happens to share with some other option name. + Problem reported by Eric Blake. + * src/head.c (long_options): Likewise. + * src/tail.c (long_options): Likewise. + + * tests/misc/head-elide-tail: Update uses of undocumented, for- + testing-only --presume* options to start with `---'. + * tests/rm/dangling-symlink: Likewise. + * tests/rm/dir-no-w: Likewise. + * tests/rm/isatty: Likewise. + +2005-11-30 Jim Meyering <jim@meyering.net> + + * Makefile.maint: Add a comment about cvsu. + +2005-11-25 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: df updates for "none", "proc", inaccessible file systems. + * src/df.c (show_point): Ignore inaccessible file systems. + (usage): -a includes dummy file systems, not size-0 file systems. + + * src/od.c (unsigned_long_long_int): Renamed from ulonglong_t, + to avoid collision with POSIX name space. All uses changed. + +2005-11-24 Jim Meyering <jim@meyering.net> + + * tests/Makefile.am (EXTRA_DIST): Add acl to the list. + * tests/acl: Add `$0: ' prefix to diagnostics. + + * .x-sc_require_config_h: Add lib/buffer-lcm.c to the list. + +2005-11-23 Paul Eggert <eggert@cs.ucla.edu> + + * src/copy.c: Improve performance a bit by optimizing away + unnecessary system calls and going to a block size of at least + 8192 (on normal hosts, anyway). This improved performance 5% on my + Debian stable host (2.4.27 kernel, x86, copying from root + ext3 file system to itself). + Include "buffer-lcm.h". + (copy_reg): Omit last argument. All callers changed. + Use xmalloc to allocate rather than trusting alloca + (which is unwise with large block sizes). + Declare locals more locally, if possible. + Use uintptr_t words instead of int words, for a bit more speed + when looking for null blocks on 64-bit hosts. + Optimize away reads of zero bytes on regular files. + In the typical case, insist on 8 KiB buffers, at least. + Avoid unnecessary extra call to fstat when checking for sparse files. + Avoid now-unnecessary cast to off_t, and "0L". + Avoid unnecessary test of *new_dst when checking for same owner + and group. + +2005-11-22 Paul Eggert <eggert@cs.ucla.edu> + + * src/remove.c (rm): Don't assume C99 for-loop syntax. + +2005-11-22 Jim Meyering <jim@meyering.net> + + * src/remove.c (AD_push): Remove debugging cruft. + + * tests/rm/unread2 (rm): Change expected diagnostic, + `cannot open directory' to `cannot remove', to align with + new version of rm. + * tests/rm/rm2: Ensure that rm now continues removing entries + even after certain types of failure. + + * src/remove.c: Rewrite. Now, this module is reentrant on systems + that provide openat (Solaris), and on systems like Linux+procfs + where our openat emulation code is reentrant. This also fixes a + few low-probability leaks and eliminates some code that could, + in very unusual circumstances, cause rm() (via a callee) to exit. + * NEWS: Mention this. + + * configure.ac: Put copyright dates all on one line so the + emacs function that updates them works properly. + +2005-11-18 Paul Eggert <eggert@cs.ucla.edu> + + * configure.ac (AM_PROG_CC_C_O): Add. Needed for CVS Automake. + Problem reported by Eric Blake. + (AC_PROG_CC_STDC): Use this instead of AC_PROG_CC, so that + we get a standard-conforming compiler. This relies on the new + m4/c.m4 file. Note that it's a bit tricky, since c.m4 doesn't + define AC_PROG_CC_STDC; we are relying on Autoconf 2.59 internals. + m4/c.m4 can go away with Autoconf 2.60 comes out. + +2005-11-17 Jim Meyering <jim@meyering.net> + + * src/remove.c (AD_mark_helper): Make a `char *' parameter `const'. + (AD_mark_current_as_unremovable): Likewise, but for a local. + (rm_1): Likewise. + + * tests/mv/acl: Let traps handle removing temporary directories. + + Expect acl-related tests to fail, until the corresponding + patches are committed. + * tests/mv/Makefile.am (XFAIL_TESTS): Add acl. + * tests/cp/Makefile.am (XFAIL_TESTS): Likewise. + + ACL tests, from Andreas Gruenbacher. + * tests/acl, tests/mv/acl, tests/cp/acl: New files. + * tests/mv/Makefile.am (TESTS): Add acl. + * tests/cp/Makefile.am (TESTS): Add acl. + + * src/ls.c (basename_is_dot_or_dotdot): Correct wording in comment. + +2005-11-16 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: Improve quality of ln's diagnostics. + * src/ln.c (do_link, usage): Likewise. + (do_link): Don't use alloca on a buffer of unbounded size. + +2005-11-16 Jim Meyering <jim@meyering.net> + + * tests/cp/fail-perm: Accommodate HPUX. It appears to fail + with EACCES rather than EPERM. Reported by Peter O'Gorman here: + http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/5766 + This also affects AIX 4.3.3, according to Ralf Wildenhues, in + http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00192.html + +2005-11-14 Jim Meyering <jim@meyering.net> + + * NEWS (sort): Mention consequences of today's mkstemp-safer.c fix. + +2005-11-13 Jim Meyering <jim@meyering.net> + + * announce-gen: Accept new option, --gpg-key-id=ID and + emit a blurb telling how to use the .sig files. + * Makefile.cfg (gpg_key_ID): Define. + * Makefile.maint (announcement): Use new option and key. + + Require that most .c files include <config.h>. + * Makefile.maint (sc_require_config_h): New rule. + (syntax-check-rules): Add it. + * .x-sc_require_config_h: New file listing exceptions to the + above rule. Some are legit, others are simply grandfathered in. + * Makefile.am (EXTRA_DIST): Add .x-sc_require_config_h here, too. + +2005-11-12 Jim Meyering <jim@meyering.net> + + * src/checksum.h, src/md5.c, src/sha1sum.c: Remove now-unused files. + +2005-11-11 Jim Meyering <jim@meyering.net> + + * NEWS: Mention `readlink -f' bug fix in 5.3.0 news. + Mention new readlink options in 5.3.0's `New features' section. + Spotted by Thomas Hood. + +2005-11-08 Jim Meyering <jim@meyering.net> + + * NEWS: Merge in changes from b5_9x branch. + +2005-11-08 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: ls now defaults to --time-style='locale', which in turn acts + like --time-style='posix-long-iso' if the locale settings are messed up. + * src/ls.c (decode_switches): Implement this. + +2005-11-08 Jim Meyering <jim@meyering.net> + + * tests/du/2g: s/expensive/very expensive/ in a comment. + From Paul Townsend. + +2005-10-17 Eric Blake <ebb9@byu.net> + + * src/ls.c (usage): Fix descriptions of --sort, --time. + Reported by Vitaly A. Ostanin. + +2005-11-04 Paul Eggert <eggert@cs.ucla.edu> + + * src/ln.c: Include filenamecat.c. + (FILE_BASENAME_CONCAT): Remove. + (do_link): Remove last arg DEST_IS_DIR. All callers changed. + (main): Use file_name_concat, base_name, and strip_trailing_slashes + instead of FILE_BASENAME_CONCAT. This simplifies the code, and avoids + the use of alloca. + +2005-11-04 Jim Meyering <jim@meyering.net> + + * src/du.c (process_file): Don't overflow for files of size >= 2^31 + on systems with stat.st_blocks of a signed 32-bit type. + This bug causes trouble on some AIX 5.1 systems. + Report and trivial patch from Paul Townsend: + <http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00033.html> + * NEWS: Mention this. + + * tests/du/2g: New (very-expensive) test for the above-fixed bug. + * tests/du/Makefile.am (TESTS): Add it here. + * tests/very-expensive: New file. + * tests/Makefile.am (EXTRA_DIST): Add it here. + * tests/cp/perm: Mark this test as `very-expensive', too. + +2005-11-02 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: Mention that rm -d and maybe ln -d are scheduled for + removal in 2006. + * src/remove.h (struct rm_options): Remove unlink_dirs. All uses + removed. + * src/rm.c (usage): Don't mention rm -d. + +2005-11-02 Jim Meyering <jim@meyering.net> + + * tests/dd/skip-seek: Fix typo in comment: s/fileutils/coreutils. + From Andreas Schwab. + + * tests/dd/unblock-sync: Redirect stderr to /dev/null so the + `M+N records in/out' lines don't pollute `make check' output. + + * tests/dd/skip-seek (sk-seek4): New test, to exercise the bug + fixed on 2005-10-31. This test uses the new, IN_PIPE specifier. + * tests/Coreutils.pm: Accept a new type of input specifier: IN_PIPE, + to indicate that the input file should be piped into the command + under test (via `cat FILE | $prog ...'). + + * src/remove.c (remove_entry): Emit a better diagnostic when rm + (without -r) fails to remove a directory on a non-Linux system. + This change affects only newer Solaris systems (with priv_* + functions like priv_allocset). Reported by Keith Thompson. + + * tests/rm/dir-nonrecur: New file/test for the above fix. + * tests/rm/Makefile.am (TESTS): Add dir-nonrecur. + +2005-11-01 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: "tail -c 2 FILE" and "touch 0101000000" now operate as + POSIX 1002.1-2001 requires. + * src/tail.c (parse_obsolete_option): Implement this. + Problem reported by Vincent Lefevre. + * src/touch.c (main): Pass PDS_PRE_2000 to posixtime. + * tests/tail/Test.pm (c-2, c-2-minus, c2, c2-minus): New tests. + (test_vector): Add special cases for _POSIX2_VERSION, and + regularize the old ones a bit. + * tests/touch/obsolescent: Add y2000 test. + +2005-10-31 Paul Eggert <eggert@cs.ucla.edu> + + * src/dd.c (skip): Fix off-by-one error reported by + Theodoros V. Kalamatianos. + +2005-10-30 Paul Eggert <eggert@cs.ucla.edu> + + * tests/mkdir/p-3: Require that the test be run as non-root. + Problem and trivial fix reported by Theodoros V. Kalamatianos. + +2005-10-28 Paul Eggert <eggert@cs.ucla.edu> + + * src/ln.c (FILE_BASENAME_CONCAT): Omit unnecessary slashes in the + boundary between DEST and SOURCE in the result. + +2005-10-26 Dmitry V. Levin <ldv@altlinux.org> + + * src/md5sum.c (main) [!O_BINARY]: Changed default read mode + back to text, to sync with documentation and for backwards + compatibility. + +2005-10-25 Jim Meyering <jim@meyering.net> + + * tests/dircolors/simple (other-wr): Add an explicit test for + the dircolors bug (NULL-dereference) fixed yesterday. + +2005-10-24 Jim Meyering <jim@meyering.net> + + * src/tac.c (tac_file): When determining whether a file is seekable, + also test whether it is a tty. Using only the lseek-based test would + give a false positive on Solaris. Reported by Peter Fales. + +2005-10-24 Dmitry V. Levin <ldv@altlinux.org> + + * tests/install/d-slashdot: New test, for "install -d" failure. + * tests/install/Makefile.am (TESTS): Add d-slashdot. + * tests/mkdir/p-slashdot: New test, for "mkdir -p" failure. + * tests/mkdir/Makefile.am (TESTS): Add p-slashdot. + +2005-10-24 Jim Meyering <jim@meyering.net> + + * src/dircolors.c (ls_codes): Add missing comma. + Anonymous report and patch from + http://savannah.gnu.org/bugs/?func=detailitem&item_id=14849 + + * src/dircolors.c: Add compile-time assertion that the slack_codes + and ls_codes arrays have the same number of elements. This would + have prevented the above-fixed bug. + + * src/expand.c (parse_tab_stops): Add a comment to make this function + identical to the one in unexpand.c. + * src/unexpand.c (parse_tab_stops): Adjust syntax to make this function + identical to the one in expand.c. + + * src/expand.c (next_file): Don't assume fopen cannot return stdin. + +2005-10-23 Jim Meyering <jim@meyering.net> + + * src/md5sum.c (digest_check, main): Use ptr_align rather than + a dangerous pointer-value-to-`unsigned' cast. + * NEWS: mention the new sha* programs. + * AUTHORS: Add new sha* programs. + +2005-08-28 David Madore <david.madore@ens.fr> + + Add new programs: sha224sum, sha256sum, sha384sum, sha512sum. + * README: Add their names to the list. + * src/md5sum.c: Provide framework for computing sha-2 hashes. + * src/Makefile.am (sha224sum, sha256sum, sha384sum, sha512sum): + Rules for compiling sha-2 utilities + (noinst_HEADERS): Remove checksum.h. + * man/sha512sum.x, man/sha384sum.x, man/sha256sum.x, man/sha224sum.x: + New files. + * man/Makefile.am (dist_man_MANS): Add the corresponding .1 names. + (sha224sum.1, sha256sum.1, sha384sum.1, sha512sum.1): New dependencies. + * tests/misc/sha224sum, tests/misc/sha256sum: New files. + * tests/misc/sha384sum, tests/misc/sha512sum: New files. + * tests/misc/Makefile.am (TESTS): Add new sha224sum, sha256sum, + sha384sum, sha512sum test scripts here rather that each in its + own directory. + +2005-08-28 David Madore <david.madore@ens.fr> + + * tests/sha1sum/basic-1 (million-a): Add the "million a's" test (one + of the FIPS test vectors). + +2005-10-23 Jim Meyering <jim@meyering.net> + + * configure.ac: Use 6.0-cvs as the version string. + * NEWS: Adjust accordingly. + 2005-10-22 Jim Meyering <jim@meyering.net> * Version 5.92. diff --git a/ChangeLog-2006 b/ChangeLog-2006 new file mode 100644 index 000000000..1c734b0e5 --- /dev/null +++ b/ChangeLog-2006 @@ -0,0 +1,4040 @@ +2006-12-30 Jim Meyering <jim@meyering.net> + + * bootstrap (gnulib_extra_files): Remove announce-gen. + * bootstrap.conf (gnulib_modules): Add it here instead, now that + it's a module. + + * tests/misc/base64: Factor a long, repetitive string. + + * src/c99-to-c89.diff: Adjust remove.c offsets. + + Clean up after the change of 2006-12-28. + * src/remove.c (AD_pop_and_chdir): Change **DIRP parameter to *DIRP, + now that this function never modifies the pointer. Adjust comments + and code accordingly. + (remove_dir): Set "dirp" to NULL right after AD_pop_and_chdir call, + now that AD_pop_and_chdir no longer does that. + + * tests/rm/fail-eperm: Avoid spurious differences (the error function + from latest glibc no longer prints the full program_name): so don't + invoke rm via ../../src/rm. Instead, invoke it via "PATH=../../src rm". + + * tests/mv/acl (skip): Skip this test also if the destination + directory, which is on a different file system, lacks ACL support. + + * src/copy.c (copy_reg): Rewrite a comment that was rendered + inaccurate by the 2006-10-18 change. + +2006-12-28 Jim Meyering <jim@meyering.net> + + When moving "up" the hierarchy, be careful to remove a just-emptied + directory before opening ".", to avoid trouble with file system + implementations that cache readdir results at opendir-time. + * src/remove.c (AD_pop_and_chdir): Add a file descriptor parameter. + Don't update **DIRP. Don't call fdopendir here. + (remove_dir): Call fdopendir here instead. + Report and patch from Mikulas Patocka: + <http://lists.gnu.org/archive/html/bug-coreutils/2006-12/msg00170.html> + +2006-12-27 Jim Meyering <jim@meyering.net> + + * src/tail.c (usage): Mention +N for --bytes and --lines. + Suggestion from Evan Hunt. + +2006-12-26 Jim Meyering <jim@meyering.net> + + * configure.ac: Require autoconf-2.61 and automake-1.10. + Without the former (even with autoconf-2.60), "make distcheck" + would fail (without the 2006-09-26 autoconf AC_CHECK_DECL fix), + due to an inttypes.h generated with CFLAGS including -pedantic. + With the old decl check, @HAVE_DECL_STRTOUMAX@ would be 0. + + * Makefile.maint (VC-tag): Define, so as to gpg-sign each release + tag, using the release version number as the message. + (vc-dist): Use $(VC-tag), rather than "$(VC) tag". + +2006-12-21 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: dd bs= operands now silently override later ibs= and obs=, + as POSIX requires. + * src/dd.c (scanargs): Implement it. + * tests/dd/misc (outbytes): Test it. + * doc/coreutils.texi (dd invocation): Specify that bs=N + overrides later ibs and obs, undoing part of the + previous change. (The behavior was wrong.) + +2006-12-20 Jim Meyering <jim@meyering.net> + + "rm -rf /etc/motd" (run by non-root) now prints a diagnostic. + * src/remove.c (remove_entry): Handle EACCES for a non-directory, too. + Don't let a non-directory get by with errno == EPERM, either. + Check the file type directly (using cached stat value), rather + than trying to guess it from errno values. + Karl Berry reported that a cross-partition "mv /etc/issue ~" + failed with the um,... suboptimal diagnostic, + "mv: cannot remove `/etc/issue': Not a directory". + * tests/rm/Makefile.am (TESTS): Add fail-eacces. + * tests/rm/fail-eacces: New file. + * NEWS: Mention that both mv and rm are affected. + + "cut -f 2- A B" no longer triggers a double-free bug + * src/cut.c (cut_fields): Set file-scoped global to NULL after + freeing it. This avoids a double-free (and core dump on some systems) + for this usage: "echo 1>a; echo 2>b; cut -f2- a b". Reported by + James Hunt in <http://bugzilla.redhat.com/220312>. + * NEWS: List this bug fix. + * THANKS: Mention him. + * tests/misc/cut: New file. + * tests/misc/Makefile.am (TESTS): Add cut. + +2006-12-15 Jim Meyering <jim@meyering.net> + + * tests/cp/open-perm-race: Correct the gdb-existence check. + Don't run either subsequent gdb command in a sub-shell. + Reported by Thomas Schwinge. + * THANKS: bring up to date. + +2006-12-14 Paul Eggert <eggert@cs.ucla.edu> + + Make sure cp -p isn't too generous with file permissions. + * tests/cp/Makefile.am (TESTS): Add file-perm-race. + * tests/cp/file-perm-race: New file. + + Ensure cp -pR --parents isn't too generous with parent permissions. + * tests/cp/Makefile.am (TESTS): Add parent-perm-race. + * tests/cp/parent-perm-race: New file. + +2006-12-14 Jim Meyering <jim@meyering.net> + + * tests/chgrp/default-no-deref: Don't assume that files are created + with the primary group by default. That's not true in a directory + with the set-GID bit set. + + Don't hang when there's no input tty. + * tests/cp/open-perm-race: Skip this test if there is no + controlling input `terminal'. + + Test for a hard-to-detect race fix, using gdb. + * tests/cp/open-perm-race: New file, to test for the + cp --preserve=ownership fix of 2006-12-06. + + * tests/cp/Makefile.am (TESTS_ENVIRONMENT): Define abs_top_builddir. + (TESTS): Add open-perm-race. + + * src/chgrp.c (main): Don't prohibit -RLh, aka -RL with --no-dereference. + * src/chown.c (main): Likewise. + * src/chown-core.c (change_file_owner): Add to a comment. + * tests/chown/preserve-root: Add tests. + + * NEWS: --preserve-root now works with chgrp, chmod, and chown. + * src/chmod.c (process_file): Do honor the --preserve-root option. + * src/chown-core.c (change_file_owner): Likewise, but here, also + handle the case in which a traversal would go "through" a symlink + to root. Reported by Matthew M. Boedicker + * tests/chown/preserve-root: Test for the above. + * tests/chown/Makefile.am (TESTS): Add preserve-root. + + * NEWS: Mention the chmod fix induced by the 2006-12-11 change + to gnulib's m4/openat.m4. + +2006-12-13 Andreas Schwab <schwab@suse.de> + + Don't fail if mv/acl test succeeds. + * tests/mv/acl (skip): Check for acl support in the file system. + * tests/mv/Makefile.am (XFAIL_TESTS): Remove. + (TESTS_ENVIRONMENT): Pass CONFIG_HEADER. + +2006-12-13 Paul Eggert <eggert@cs.ucla.edu> + + Remove some arbitrary restrictions on size fields, so that + commands like "sort -k 18446744073709551616" no longer fail merely + because 18446744073709551616 doesn't fit in uintmax_t. The trick + is that these fields can all be treated as effectively infinity; + their exact values don't matter, since no internal buffer can be + that long. + * src/join.c (string_to_join_field): Verify that SIZE_MAX <= + ULONG_MAX if the code assumes this. Silently truncate too-large + values to SIZE_MAX, as the remaining code will do the right thing + in this case. + * src/sort.c (parse_field_count): Likewise. + * src/uniq.c (size_opt, main): Likewise. + * tests/join/Test.pm (bigfield): New test. + * tests/sort/Test.pm (bigfield): New test. + * tests/uniq/Test.pm (121): New test. + +2006-12-13 Jim Meyering <jim@meyering.net> + + * tests/chgrp/default-no-deref: New test. + * tests/chgrp/Makefile.am (TESTS): Add default-no-deref. + +2006-12-12 Jim Meyering <jim@meyering.net> + + * src/system.h (SETVBUF): Remove definition, now that the + autoconf macro, AC_FUNC_SETVBUF_REVERSED, does nothing. + * src/tee.c (tee_files): s/SETVBUF/setvbuf/. + * src/od.c (open_next_file): Likewise. + +2006-12-09 Jim Meyering <jim@meyering.net> + + * man/Makefile.am (.x.1): Make help2man use $(PACKAGE_STRING) as the + "source". I.e. "GNU coreutils 6.7". + + * NEWS: With the change from "-pre" to "-dirty" suffix, also change + from NEXT_VER-pre to CUR_VER-dirty. So, this is 6.7-dirty. + * configure.ac (AC_INIT): s/6.8-dirty/6.7-dirty/. + + * tests/uniq/Test.pm (test_vector): Skip the pipe-reading test + whenever uniq is expected to fail. This should catch the other case + [test #112] in which uniq emits "cat: write error: Broken pipe" on + some systems. + +2006-12-08 Jim Meyering <jim@meyering.net> + + Include bootstrap tool version info in the announcement form. + * Makefile.maint (gnulib_snapshot_date): Define. + (announcement): Use two new announce-gen options, + --bootstrap-tools and --gnulib-snapshot-date. + * Makefile.cfg (gnulib_dir): Set. + + Post-release version change. + * NEWS: Add a line for 6.8-dirty. + * configure.ac (AC_INIT): Set new version string. + +2006-12-07 Jim Meyering jim@meyering.net + + Version 6.7. + * NEWS: Record release date. Remove '-pre' suffix. + * configure.ac (AC_INIT): Remove version string suffix. + +2006-12-07 Jim Meyering <jim@meyering.net> + + Make the output of "make check" more reproducible. + * tests/touch/empty-file: Use envvar-check, so "make check" doesn't + evoke diagnostics like this when COLUMNS=0 in the environment: + ls: ignoring invalid width in environment variable COLUMNS: 0 + * tests/touch/no-rights: Likewise. + * tests/help-version: Likewise. + * tests/uniq/Test.pm: Don't perform the pipe-reading version of test + 118, since it emits "cat: write error: Broken pipe" on some systems. + +2006-12-06 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: Document the cp -p fix for special bits. + * src/copy.c (set_owner): Now returns a three-way result, so + that the caller can clear the special bits. All callers changed. + (copy_reg): Don't set the special bits if chown failed. + (copy_internal): Likewise. + * tests/cp/special-bits: Test this fix. + +2006-12-06 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: Document the cp --preserve=ownership fix. + * m4/jm-macros.m4 (coreutils_MACROS): Check for fchmod. + * src/copy.c (fchmod_or_lchmod): New function. + (copy_reg): New arg OMITTED_PERMISSIONS. All uses changed. + Omit confusing and unused ", dst_mode" arg to 'open' without O_CREAT. + When creating a file, use O_EXCL, so we're more likely to detect + funny business by other processes. At the end, if permissions + were omitted, chmod them back in. + (copy_internal): If the ownership might change, omit some permissions + at first, then restore them after chowning the file. + * src/cp.c (make_dir_parents_private): Likewise. + * src/copy.c (cached_umask): New function. + * src/copy.h (cached_umask): New decl. + +2006-12-06 Jim Meyering <jim@meyering.net> + + Make the output of "make check" more reproducible. + * tests/misc/date-sec: Don't emit any diagnostic about sleeping. + +2006-12-03 Paul Eggert <eggert@cs.ucla.edu> + + * src/install.c (install_file_in_file): Preserve time stamps + before changing owner or file mode bits, for consistency with + other coreutils programs. + +2006-12-03 Jim Meyering <jim@meyering.net> + + * tests/misc/date-sec: Output a fixed string. + + * NEWS: du --one-file-system (-x) would skip subdirectories of any + directory listed as second or subsequent command line argument. + * tests/du/one-file-system: New file. Test for today's fts.c fix. + * tests/du/Makefile.am (TESTS): Add one-file-system. + Reported by Mike Frysinger. + +2006-12-02 Jim Meyering <jim@meyering.net> + + * tests/du/basic: Generate 4KB file simply using printf, rather than + seq+head. This avoids a spurious "Broken pipe" diagnostic from seq. + +2006-11-28 Jim Meyering <jim@meyering.net> + + * tests/mv/no-target-dir: Detect a buggy rename syscall. If found, + skip this test. This happens at least on ia64 linux-2.4.19 w/ext3. + Reported by Matthew Woehlke. + + * tests/mv/dir2dir: Also accept EBUSY. + Reported by Matthew Woehlke. + +2006-11-27 Jim Meyering <jim@meyering.net> + + * Makefile.maint (patch-check): Rewrite to diagnose failure. + * src/c99-to-c89.diff: Adjust shred.c offsets. + +2006-11-26 Paul Eggert <eggert@cs.ucla.edu> + + Improve the check for departures from C89, and fix the departures + I found. + * Makefile.maint (my-distcheck): Also check for C89 compatibility + as best we can with GCC. + * src/stat.c (PRINTF_OPTION): Omit comma before } in enum + declaration; C89 doesn't allow this. + * src/dcgen: Don't generate string literals longer than + what C89 requires support for. + * src/cut.c (usage): Don't use string literals longer than + what C89 requires support for. + * src/date.c (usage): Likewise. + * src/dd.c (usage): Likewise. + * src/du.c (usage): Likewise. + * src/ls.c (usage): Likewise. + * src/od.c (usage): Likewise. + * src/readlink.c (usage): Likewise. + * src/seq.c (usage): Likewise. + * src/shred.c (usage): Likewise. + +2006-11-26 Mike Frysinger <vapier@gentoo.org> + + Recognize new archive, audio and image formats. + Give audio files a separate color. + * src/dircolors.hin: Add comments for common .sh and .csh scripts. + Add .bz2, .tbz2, .tz, .rar, .ace, .zoo, .cpio, .7z, .rz as archive + suffixes. Add .mng, .pcx, .m2v, .mkv, .ogm, .mp4, .m4v, .mp4v, .vob, + .qt, .nuv, .wmv, .asf, .rm, .rmvb, .flc, .yuv as image formats. + Add .aac, .au, .mid, .midi, .mka, .ra as audio suffixes. Change + audio color to 00;36 to differentiate from image/video color. + +2006-11-26 Jim Meyering <jim@meyering.net> + + * Makefile.maint (patch-check): Compile patched sources with + CFLAGS='-Wdeclaration-after-statement -Werror', to ensure that + no violations remain. + + * src/c99-to-c89.diff: Remove 3 bogus hunks. + + * src/remove.c (fd_to_subdirp): Remove unused parameter, ds. + Update callers. + + * src/c99-to-c89.diff: Adjust for changes in rm.c and in remove.c. + + * src/rm.c (main): Remove unnecessary (assuming C99) braces. + +2006-11-26 Paul Eggert <eggert@cs.ucla.edu> + + Port parts of the code to C89 to minimize the need for c99-to-c89.diff, + while trying to retain the readability of C99 as much as possible. + * src/remove.c (rm_1): Remove decl of local, fd_cwd. + Replace each of two uses with literal AT_FDCWD. + (cache_stat_init): Return its argument, for convenience. + Update the caller in remove_dir. + (AD_pop_and_chdir): Return prev_dir rather than storing through + a pointer argument. All uses changed. + (AD_ensure_initialized): New function. + (AD_mark_helper): Use it, to avoid the need for declaration + after statement. + (rm): Move cycle_check_init call into callee... + (rm_1): ...here. + Use an else clause in place of a "continue" statement. + (close_preserve_errno): Remove. + (fd_to_subdirp): Rewrite to avoid the need for decl after statement. + +2006-11-25 Jim Meyering <jim@meyering.net> + + * Makefile.am (EXTRA_DIST): Remove announce-gen from here, too. + +2006-11-24 Theodoros V. Kalamatianos <thkala@softlab.ece.ntua.gr> (tiny change) + + * tests/du/inacc-dest: Skip this test when running as root. + +2006-11-23 Jim Meyering <jim@meyering.net> + + * announce-gen: Remove file. It's moving to gnulib. + * bootstrap: Pull it from gnulib/build-aux instead. + * Makefile.maint (announcement): Reflect move to ./build-aux. + + * tests/du/deref-args: Use "printf %65536s x" to create a 64KB file, + rather than a pipeline that would sometimes evoke a diagnostic + like "seq: write error: Broken pipe". + + * tests/help-version: Suppress dd transfer rate output. + + * configure.ac (AC_INIT): Bump to 6.7-pre, not 6.6-pre. + +2006-11-22 Jim Meyering <jim@meyering.net> + + * announce-gen (print_news_deltas): Fix silly, but harmless typo: + change "(:?..." to "(?:..." in regexps. + + Post-release version change. + * NEWS: Add a line for 6.7-pre. + * configure.ac (AC_INIT): Bump to 6.7 and add "-pre" suffix. + + Version 6.6. + * NEWS: Record release date. Remove "-pre" suffix. + * configure.ac (AC_INIT): Remove "-pre" suffix from version string. + + * announce-gen: Remove unused --release-archive-directory option. + (print_news_deltas): Accept new adjective, "Noteworthy", in addition + to the old "Major". + Match version numbers in NEWS using tighter regular expressions. + (main): Require the --gpg-key-id=ID option. + * Makefile.maint (announcement): Don't use now-removed + --release-archive-directory=... option. + + * NEWS: Mention the three noteworthy changes, all fixed via gnulib. + +2006-11-21 Jim Meyering <jim@meyering.net> + + * tests/rm/one-file-system: Upon setup failure (e.g., mount failure), + skip the test rather than failing. Reported by Michael Deutschmann. + + * tests/rm/fail-eperm: Use the "(exit N); exit N" idiom, + rather than just "exit N". + + Arrange for "make check-root" to run the new root-only test. + * tests/Makefile.am (t7): New target, to run tests/ls/nameless-uid. + (all_t): Add t7. + +2006-11-20 Jim Meyering <jim@meyering.net> + + Add a root-only test for today's lib/idcache.c fix. + * tests/ls/nameless-uid: New file. + * tests/ls/Makefile.am (TESTS): Add nameless-uid. + (TESTS_ENVIRONMENT): Add PERL to the list. + +2006-11-19 Jim Meyering <jim@meyering.net> + + * tests/tail-2/assert-2: Mark as a very-expensive test, because I + find the 7-second sleep annoyingly long. Besides, this test is + probably far too specific and timing sensitive ever to trigger again. + * tests/tail-2/assert: Likewise. + + Post-release version change. + * NEWS: Add a line for 6.6-pre. + * configure.ac (AC_INIT): Bump to 6.6 and add "-pre" suffix. + + Version 6.5. + * NEWS: Record release date. Remove "-cvs" suffix. + * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. + +2006-11-18 Jim Meyering <jim@meyering.net> + + "ln --backup f f" produces a misleading diagnostic: + ln: creating hard link `f' => `f': No such file or directory + * src/ln.c (do_link): Give a better diagnostic in this unusual case. + (do_link): Rename local: s/lstat_ok/dest_lstat_ok/. + * tests/ln/Makefile.am (TESTS): Add hard-backup. + * tests/ln/hard-backup: New test for the above. + * NEWS: Mention this fix. + +2006-11-16 Paul Eggert <eggert@cs.ucla.edu> + + * bootstrap.conf (gnulib_modules): Add sys_stat, since we use it + directly too. + * lib/.cvsignore, lib/.gitignore: Add root-dev-ino.c, root-dev-ino.h. + * m4/.cvsignore, m4/.gitignore: Add root-dev-ino.m4. + * src/ls.c (DIRED_FPUTS_LITERAL, PUSH_CURRENT_DIRED_POS): + Omit unnecessary parenthesization of args. + * src/od.c (EQUAL_BLOCKS): Likewise. + * src/system.h (STREQ, ASSIGN_STRDUPA): Likewise. + +2006-11-16 Jim Meyering <jim@meyering.net> + + * tests/tail-2/append-only: If chattr +a fails, exit 77 (to tell + automake we're skipping this test), and give a diagnostic to tell + the user the same thing. Reported by Mike Grayson. + +2006-11-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * man/Makefile.am (dist_man_MANS): Replace all optional manpages + with `$(MAN)', computed at configure time; also, list them ... + (optional_mans): ... in this new variable. + (max_aux, EXTRA_DIST): Ensure that we distribute all manpages. + +2006-11-16 Jim Meyering <jim@meyering.net> + + Help valgrind see that there is no leak in dd.c. + * src/dd.c (dd_copy): Declare real_buf and real_obuf to be static, + so we need not free them at all. This is easier than freeing + both buffers at each of the early "return"s. + + * src/csplit.c (load_buffer): Plug an inconsequential leak. + +2006-11-15 Jim Meyering <jim@meyering.net> + + * .x-po-check: Exclude gl/ files. Otherwise, po-check would + complain that some of gl/lib/*.[ch] are not listed in POTFILES.in. + +2006-11-14 Jim Meyering <jim@meyering.net> + + * gl/m4/root-dev-ino.m4: Now that this is part of a real "module", + remove the now-unnecessary use of AC_LIBSOURCES. + + Adapt to new version of gnulib-tool. + * gl/modules/root-dev-ino: New file. + * lib/root-dev-ino.c, lib/root-dev-ino.h: Move these files ... + * gl/lib/root-dev-ino.c, gl/lib/root-dev-ino.h: ... to here. + * m4/root-dev-ino.m4: Move this file ... + * gl/m4/root-dev-ino.m4: ... to here. + + * bootstrap.conf (gnulib_modules): Add root-dev-ino. + +2006-11-13 Jim Meyering <jim@meyering.net> + + * src/sort.c (insertkey): Use xmemdup, rather than xmalloc+assignment. + From Paul Eggert. + + Plug another technically-unimportant leak in sort. + * src/sort.c (main): Don't allocate memory for each new key here. + (insertkey): Allocate memory for each key here, instead. + (key_init): Rename from new_key. Don't allocate. + + * src/sort.c (main): Plug a tiny memory leak. + Move declaration of local "minus" down to be nearer point of use. + +2006-11-12 Jim Meyering <jim@meyering.net> + + du would exit early, when encountering an inaccessible directory + Reported by Mike Frysinger, in + http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/8831 + * tests/du/inacc-dest: New test, based on an example from Mike Frysinger. + * tests/chgrp/no-x: Remove the "fts_read failed: ..." + diagnostic from the expected output when using native fdopendir. + * tests/chmod/no-x: Likewise. + * tests/du/no-x: Likewise. + * NEWS: Mention this bug fix. + * tests/du/Makefile.am (TESTS): Add inacc-dest. + + * Makefile.maint (sc_cast_of_x_alloc_return_value): Add an exclusion + for xalloc.h itself. + + Avoid false-positive when testing via valgrind. + * tests/mv/atomic: Grep strace output for a more specific pattern + than just "unlink", since that got a false positive when testing + under valgrind: unlink("/tmp/valgrind_proc_9657_cmdline_A51E9991") = 0 + * tests/mv/Makefile.am (TESTS_ENVIRONMENT): Define EGREP. + +2006-10-28 Jim Meyering <jim@meyering.net> + + * Makefile.maint (patch-check): Make it easier to regenerate + the src/c99-to-c89.diff file. E.g., I do this: + make patch-check REGEN_PATCH=1; ediff src/c99-to-c89.diff new-diff + + * src/c99-to-c89.diff: Update to reflect new offsets in rm.c. + +2006-10-26 Jim Meyering <jim@meyering.net> + + * src/system.h (ftello): Add a compile-time check for the highly + unlikely condition of off_t narrower than long int, rather than + handling it at run time. Based on a patch from Paul Eggert. + +2006-10-25 Paul Eggert <eggert@cs.ucla.edu> + + * tests/chmod/c-option: When double-quoting part of a word, prefer + to double-quote the whole word. This is a bit easier to read (at + least for me), and in some cases it avoids a shell bug with Tru64 + 4.0 sh reported by Nelson H. F. Beebe. For example, instead of + "$abs_srcdir"/../setgid-check we now write + "$abs_srcdir/../setgid-check". + * tests/cp/cp-parents: Likewise. + * tests/du/inaccessible-cwd: Likewise. + * tests/du/long-from-unreadable: Likewise. + * tests/install/basic-1: Likewise. + * tests/install/trap: Likewise. + * tests/misc/close-stdout: Likewise. + * tests/mkdir/concurrent-1: Likewise. + * tests/mkdir/p-1: Likewise. + * tests/mkdir/p-3: Likewise. + * tests/mkdir/parents: Likewise. + * tests/mkdir/perm: Likewise. + * tests/readlink/can-e: Likewise. + * tests/readlink/can-f: Likewise. + * tests/readlink/can-m: Likewise. + * tests/rm/inaccessible: Likewise. + * tests/rm/unread3: Likewise. + * tests/touch/no-create-missing: Likewise. + + * lib/.cvsignore: Add uinttostr.c. + +2006-10-25 Jim Meyering <jim@meyering.net> + + Portability to Tru64 V4.0. + * src/system.h (ftello) [!HAVE_FSEEKO && !defined ftello]: + Define inline replacement function. + This (along with a yesterday's fix for autoconf's + _AC_SYS_LARGEFILE_MACRO_VALUE macro) makes it so coreutils + now builds once more on Tru64 V4.0. Reported by Nelson Beebe. + +2006-10-25 Bruno Haible <bruno@clisp.org> + + * src/cat.c (infile): Add "const" to declaration. + * src/csplit.c (prefix): Likewise. + * src/printf.c (cfcc_msg): Likewise. + * src/tail.c (valid_file_spec): Likewise. + * src/cut.c (cut_file): Likewise, for a parameter. + * src/expr.c (str_value): Likewise. + * src/fold.c (fold_file): Likewise. + * src/pr.c (init_header): Likewise. + * src/dircolors.c (dc_parse_stream): Likewise, for a local. + * src/tr.c (make_printable_str): Likewise. + * src/nl.c (body_type, header_type, footer_type, current_type): + (separator_str, build_type_arg, nl_file): Likewise, for many. + * src/paste.c (main): Don't assign a read-only string to 'optarg'. + * src/tac.c (separator, tac_seekable, copy_to_temp): Likewise. + +2006-10-25 Jim Meyering <jim@meyering.net> + + * tests/sample-test: Update copyright year list to include only + the current year, since this is what I'll want in any new test. + +2006-10-24 Jim Meyering <jim@meyering.net> + + * src/c99-to-c89.diff: Update to reflect new offsets. + + * NEWS: new feature: rm accepts new option: --one-file-system + Suggested by Steve McIntyre in <http://bugs.debian.org/392925>. + * src/remove.h (struct rm_options) [one_file_system]: New member. + * src/rm.c (rm_option_init): Initialize it. + (usage): Document the option. + * src/mv.c (rm_option_init): Likewise. + * src/remove.c (remove_dir): With --one-file-system and --recursive, + for each directory command line argument, do not affect a file system + different from that of the starting directory. And give a diagnostic. + * src/rm.c (ONE_FILE_SYSTEM): New enum. + (main): Handle new option. + * tests/rm/one-file-system: Test the above. + * tests/rm/Makefile.am (TESTS): Add one-file-system. + * tests/Makefile.am (check-root): Add the rm/one-file-system + test to the list. + (EXTRA_DIST): Add other-fs-tmpdir. + + * tests/mv/setup: Removed. Renamed to... + * tests/other-fs-tmpdir: ...this new file. + * tests/mv/Makefile.am (EXTRA_DIST): Remove setup. + * tests/mv/acl: Reflect renaming: use ../other-fs-tmpdir. + * tests/mv/backup-is-src: Likewise. + * tests/mv/hard-link-1: Likewise. + * tests/mv/leak-fd: Likewise. + * tests/mv/mv-special-1: Likewise. + * tests/mv/part-fail: Likewise. + * tests/mv/part-hardlink: Likewise. + * tests/mv/part-rename: Likewise. + * tests/mv/part-symlink: Likewise. + * tests/mv/partition-perm: Likewise. + * tests/mv/to-symlink: Likewise. + * tests/mv/into-self-2: Likewise. + + Don't let a failure in one test stop "make -k" from running the others. + * tests/Makefile.am (t1 t2 t3 t4 t5): New targets. + (check-root): Depend on them, rather than executing the five + commands in a single rule. Reported by Greg Schafer. + +2006-10-23 Bob Proulx <bob@proulx.com> (tiny change) + + * Makefile.maint (alpha beta major): Use a better log message for + the automatic commit of .prev-version. + +2006-10-23 Jim Meyering <jim@meyering.net> + + * tests/misc/pwd-long: Undo last change, since it made Perl invoke + pwd via a shell. Instead, ensure that the absolute name of the + pwd binary consists solely of reasonable characters. + Whoops. Don't exec the perl script. Otherwise, the sh-trap-based + clean-up code isn't run. + + * NEWS: Add a line for 6.5-cvs. + * configure.ac (AC_INIT): Bump to 6.5 and add "-cvs" suffix. + +2006-10-22 Jim Meyering <jim@meyering.net> + + Version 6.4. + + * NEWS: Record the 6.4 release date. + * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. + + * Makefile.maint: Complete the adaptation to function with a working + directory that is using git (rather than cvs) for version control. + +2006-10-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * tests/chmod/c-option: Double-quote instances of `$abs_srcdir'. + * tests/cp/cp-parents: Likewise. + * tests/mkdir/parents: Likewise. + * tests/mkdir/perm: Likewise. + + * tests/sample-test: Quote variables containing absolute build + tree paths. In the cleanup trap, make sure `cd' succeeds before + `chmod'ing and `rm'ing the temporary files. + * tests/chgrp/basic: Likewise. + * tests/chgrp/deref: Likewise. + * tests/chgrp/no-x: Likewise. + * tests/chgrp/posix-H: Likewise. + * tests/chgrp/recurse: Likewise. + * tests/chmod/c-option: Likewise. + * tests/chmod/equal-x: Likewise. + * tests/chmod/equals: Likewise. + * tests/chmod/inaccessible: Likewise. + * tests/chmod/no-x: Likewise. + * tests/chmod/octal: Likewise. + * tests/chmod/setgid: Likewise. + * tests/chmod/umask-x: Likewise. + * tests/chmod/usage: Likewise. + * tests/chown/basic: Likewise. + * tests/chown/deref: Likewise. + * tests/chown/separator: Likewise. + * tests/cp/acl: Likewise. + * tests/cp/backup-1: Likewise. + * tests/cp/backup-dir: Likewise. + * tests/cp/backup-is-src: Likewise. + * tests/cp/cp-HL: Likewise. + * tests/cp/cp-deref: Likewise. + * tests/cp/cp-i: Likewise. + * tests/cp/cp-mv-backup: Likewise. + * tests/cp/cp-parents: Likewise. + * tests/cp/deref-slink: Likewise. + * tests/cp/dir-rm-dest: Likewise. + * tests/cp/dir-slash: Likewise. + * tests/cp/dir-vs-file: Likewise. + * tests/cp/fail-perm: Likewise. + * tests/cp/into-self: Likewise. + * tests/cp/link: Likewise. + * tests/cp/link-no-deref: Likewise. + * tests/cp/link-preserve: Likewise. + * tests/cp/no-deref-link1: Likewise. + * tests/cp/no-deref-link2: Likewise. + * tests/cp/no-deref-link3: Likewise. + * tests/cp/perm: Likewise. + * tests/cp/preserve-2: Likewise. + * tests/cp/r-vs-symlink: Likewise. + * tests/cp/same-file: Likewise. + * tests/cp/slink-2-slink: Likewise. + * tests/cp/sparse: Likewise. + * tests/cp/special-bits: Likewise. + * tests/cp/src-base-dot: Likewise. + * tests/cp/symlink-slash: Likewise. + * tests/dd/not-rewound: Likewise. + * tests/dd/skip-seek2: Likewise. + * tests/dd/unblock-sync: Likewise. + * tests/du/2g: Likewise. + * tests/du/8gb: Likewise. + * tests/du/basic: Likewise. + * tests/du/deref: Likewise. + * tests/du/deref-args: Likewise. + * tests/du/exclude: Likewise. + * tests/du/fd-leak: Likewise. + * tests/du/hard-link: Likewise. + * tests/du/inaccessible-cwd: Likewise. + * tests/du/long-from-unreadable: Likewise. + * tests/du/long-sloop: Likewise. + * tests/du/no-deref: Likewise. + * tests/du/no-x: Likewise. + * tests/du/restore-wd: Likewise. + * tests/du/slash: Likewise. + * tests/du/slink: Likewise. + * tests/du/trailing-slash: Likewise. + * tests/du/two-args: Likewise. + * tests/fmt/long-line: Likewise. + * tests/install/basic-1: Likewise. + * tests/install/create-leading: Likewise. + * tests/install/d-slashdot: Likewise. + * tests/install/trap: Likewise. + * tests/ln/misc: Likewise. + * tests/ln/target-1: Likewise. + * tests/ls/color-dtype-dir: Likewise. + * tests/ls/dangle: Likewise. + * tests/ls/dired: Likewise. + * tests/ls/file-type: Likewise. + * tests/ls/follow-slink: Likewise. + * tests/ls/infloop: Likewise. + * tests/ls/inode: Likewise. + * tests/ls/m-option: Likewise. + * tests/ls/no-arg: Likewise. + * tests/ls/recursive: Likewise. + * tests/ls/rt-1: Likewise. + * tests/ls/stat-dtype: Likewise. + * tests/ls/stat-failed: Likewise. + * tests/ls/stat-vs-dirent: Likewise. + * tests/misc/cat-proc: Likewise. + * tests/misc/close-stdout: Likewise. + * tests/misc/csplit: Likewise. + * tests/misc/date-sec: Likewise. + * tests/misc/false-status: Likewise. + * tests/misc/head-c: Likewise. + * tests/misc/head-pos: Likewise. + * tests/misc/mknod: Likewise. + * tests/misc/nl: Likewise. + * tests/misc/nohup: Likewise. + * tests/misc/pathchk1: Likewise. + * tests/misc/printf: Likewise. + * tests/misc/printf-hex: Likewise. + * tests/misc/pwd-long: Likewise. + * tests/misc/shuf: Likewise. + * tests/misc/sort-rand: Likewise. + * tests/misc/split-a: Likewise. + * tests/misc/split-fail: Likewise. + * tests/misc/split-l: Likewise. + * tests/misc/stat-fmt: Likewise. + * tests/misc/tac-continue: Likewise. + * tests/misc/wc-files0: Likewise. + * tests/mkdir/concurrent-1: Likewise. + * tests/mkdir/p-1: Likewise. + * tests/mkdir/p-2: Likewise. + * tests/mkdir/p-3: Likewise. + * tests/mkdir/p-slashdot: Likewise. + * tests/mkdir/p-thru-slink: Likewise. + * tests/mkdir/p-v: Likewise. + * tests/mkdir/parents: Likewise. + * tests/mkdir/perm: Likewise. + * tests/mkdir/t-slash: Likewise. + * tests/mv/acl: Likewise. + * tests/mv/atomic: Likewise. + * tests/mv/backup-dir: Likewise. + * tests/mv/childproof: Likewise. + * tests/mv/diag: Likewise. + * tests/mv/dir-file: Likewise. + * tests/mv/dir2dir: Likewise. + * tests/mv/dup-source: Likewise. + * tests/mv/hard-2: Likewise. + * tests/mv/hard-3: Likewise. + * tests/mv/hard-4: Likewise. + * tests/mv/hard-link-1: Likewise. + * tests/mv/hard-verbose: Likewise. + * tests/mv/i-2: Likewise. + * tests/mv/i-3: Likewise. + * tests/mv/i-4: Likewise. + * tests/mv/i-5: Likewise. + * tests/mv/i-link-no: Likewise. + * tests/mv/into-self-4: Likewise. + * tests/mv/leak-fd: Likewise. + * tests/mv/mv-special-1: Likewise. + * tests/mv/no-target-dir: Likewise. + * tests/mv/part-fail: Likewise. + * tests/mv/part-hardlink: Likewise. + * tests/mv/part-rename: Likewise. + * tests/mv/part-symlink: Likewise. + * tests/mv/partition-perm: Likewise. + * tests/mv/perm-1: Likewise. + * tests/mv/reply-no: Likewise. + * tests/mv/trailing-slash: Likewise. + * tests/mv/update: Likewise. + * tests/od/od-N: Likewise. + * tests/od/x8: Likewise. + * tests/readlink/can-e: Likewise. + * tests/readlink/can-f: Likewise. + * tests/readlink/can-m: Likewise. + * tests/readlink/rl-1: Likewise. + * tests/rm/cycle: Likewise. + * tests/rm/dangling-symlink: Likewise. + * tests/rm/deep-1: Likewise. + * tests/rm/dir-no-w: Likewise. + * tests/rm/dir-nonrecur: Likewise. + * tests/rm/dot-rel: Likewise. + * tests/rm/empty-inacc: Likewise. + * tests/rm/f-1: Likewise. + * tests/rm/fail-2eperm: Likewise. + * tests/rm/hash: Likewise. + * tests/rm/i-1: Likewise. + * tests/rm/i-no-r: Likewise. + * tests/rm/ignorable: Likewise. + * tests/rm/inaccessible: Likewise. + * tests/rm/interactive-always: Likewise. + * tests/rm/interactive-once: Likewise. + * tests/rm/ir-1: Likewise. + * tests/rm/isatty: Likewise. + * tests/rm/no-give-up: Likewise. + * tests/rm/r-1: Likewise. + * tests/rm/r-2: Likewise. + * tests/rm/r-3: Likewise. + * tests/rm/r-4: Likewise. + * tests/rm/readdir-bug: Likewise. + * tests/rm/rm1: Likewise. + * tests/rm/rm2: Likewise. + * tests/rm/rm3: Likewise. + * tests/rm/rm4: Likewise. + * tests/rm/rm5: Likewise. + * tests/rm/sunos-1: Likewise. + * tests/rm/unread2: Likewise. + * tests/rm/unread3: Likewise. + * tests/rmdir/fail-perm: Likewise. + * tests/rmdir/t-slash: Likewise. + * tests/shred/exact: Likewise. + * tests/shred/remove: Likewise. + * tests/sum/sysv: Likewise. + * tests/tail-2/append-only: Likewise. + * tests/tail-2/assert: Likewise. + * tests/tail-2/assert-2: Likewise. + * tests/tail-2/big-4gb: Likewise. + * tests/tail-2/fflush: Likewise. + * tests/tail-2/infloop-1: Likewise. + * tests/tail-2/proc-ksyms: Likewise. + * tests/tail-2/start-middle: Likewise. + * tests/tail-2/tail-n0f: Likewise. + * tests/tee/basic: Likewise. + * tests/tee/dash: Likewise. + * tests/touch/fail-diag: Likewise. + * tests/touch/no-create-missing: Likewise. + * tests/touch/not-owner: Likewise. + * tests/touch/obsolescent: Likewise. + * tests/touch/read-only: Likewise. + * tests/touch/relative: Likewise. + +2006-10-21 Jim Meyering <jim@meyering.net> + + * NEWS: (cp --backup fix): Fix a typo. + + * .gitignore: Remove some references to files in subdirectories. + * build-aux/.gitignore, doc/.gitignore, lib/.gitignore: New files. + * m4/.gitignore, po/.gitignore, src/.gitignore: Likewise. + + * src/copy.c (copy_internal): Add a comment saying why we prefer + mknod over mkfifo. + + Enable an fts optimization (call lstat only for directories, + on some file system types) also with the --preserve-root option + of chown or chgrp. + * src/chown-core.c (change_file_owner): Compare fts_statp-based + dev/ino against root dev/ino only for directories. + (chown_files): Don't let the root_dev_ino setting influence whether + we use FTS_NOSTAT: fts always sets *fts_statp for a directory. + +2006-10-20 Jim Meyering <jim@meyering.net> + + * src/od.c (usage): Change description of default to use "-w16", + not the now-invalid "-w 16" syntax. From Dan Jacobson. + +2006-10-19 Jim Meyering <jim@meyering.net> + + * bootstrap: Add names to each .gitignore file (if it exists) + as well as to .cvsignore. + + * Makefile.maint (po-check): This rule didn't detect the new use + of "gettext" (as opposed to the use of "_" everywhere else) in + lib/xstrtol.h. Adjust the grep regexp so that now it does. + +2006-10-18 Paul Eggert <eggert@cs.ucla.edu> + + * src/copy.c (copy_reg): Rewrite slightly to avoid duplicate code + when opening dst_name. + (copy_reg, copy_internal): Use (SYSCALL != 0) rather than plain + (SYSCALL) to test for failure in a system call. + + * src/copy.c (copy_internal): Use mknod rather than mkfifo to copy + a fifo. This preserves the special mode bits on Solaris 10, which + is compatible with what Solaris 10 cp -R does. + + * src/copy.c (copy_internal): Remove redundant and confusing local + variable src_type. + + * src/copy.c (copy_internal): Don't pass mkdir a mode greater than + 7777. This matches historical 'cp' behavior and avoids some + (though not all) implementation-defined behavior of mkdir. + * src/cp.c (make_dir_parents_private): Likewise. + * src/copy.c (copy_internal): Don't pass 'open' a mode greater + than 777. This is required by POSIX. It doesn't make any difference + in actual behavior on any host that I know of. + +2006-10-17 Jim Meyering <jim@meyering.net> + + * src/dd.c (usage): Use two spaces (not one) to separate the + "fdatasync" option string from its description, so help2man formats + the derived man page properly. Reported by Samuel Thibault + in <http://bugs.debian.org/393649>. + +2006-10-16 Jim Meyering <jim@meyering.net> + + * .x-sc_trailing_blank: Remove names of files that are no longer + version-controlled. + +2006-10-16 Paul Eggert <eggert@cs.ucla.edu> + + * src/groups.sh (version): Reword message to match the other programs. + Problem reported by Eric Blake. + +2006-10-14 Jim Meyering <jim@meyering.net> + + * Makefile.maint (headers_with_interesting_macro_defs): Define. + (.re-defmac, sc_always_defined_macros): New rules. + + * src/system.h (EXIT_FAILURE, EXIT_SUCCESS): Remove definitions. + Instead, include "exit.h". This hereby retires the work-around for + "Sony NEWS-OS Release 4.0C"'s bug due to "#define EXIT_FAILURE 0". + + * src/cksum.c (uint_fast32_t): Don't define. + Instead, include <stdint.h>. + + * src/pinky.c (S_IWGRP): Don't define. + It's already defined by "stat-macros.h" (included via system.h). + + * Makefile.cfg: Remove cruft that's now handled via bootstrap. + * Makefile.maint: Likewise, remove these targets/rules/variables: + (local_updates, update, cvs-update, wget_files, get-targets): Remove. + (cvs_files, wget-update, automake_repo): Likewise. + Move the comment about cvsu to build-aux/vc-list-files, + where cvsu is actually used. + + * Makefile.maint (cvs-update): Use $(CVS), not "cvs". + + Work also when the working directory (with e.g. coreutils sources) + is version controlled with git, rather than CVS. + * bootstrap (CVS_only_file): Test for the existence of README-cvs, + rather than CVS. + In messages and comments, say e.g., "checked-out sources", + rather than "CVS sources". + (version_controlled_file): New function. Work for git as well as + for CVS. Don't use grep's -q option. + (slurp): Call it here, in place of CVS-specific code. + + * NEWS: cp -r --backup dir1 dir2, would rename an existing dir1/dir2 + to dir1/dir2~. + * src/copy.c (copy_internal): Although we do create a backup of each + destination directory when in move mode, don't do that when copying. + Reported by Peter Breitenlohner, in + <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/8616>. + * tests/cp/backup-dir: New file. Test for the above. + * tests/cp/Makefile.am (TESTS): Add backup-dir. + +2006-10-13 Jim Meyering <jim@meyering.net> + + More chown/chgrp dereferencing-related fixes. + * src/chown-core.c (change_file_owner): Don't use fts_statp if + we're dereferencing symlinks. + Reverse conjuncts, so that we use dereference file_stats + (aka ent->fts_statp) only *after* we've confirmed that + chopt->affect_symlink_referent is true. Otherwise, we might + use ent->fts_statp uninitialized. + Don't turn on FTS_NOSTAT when dereferencing symlinks. + * tests/chown/deref: Update the expected diagnostic, now that + this test case (trying to use "chown --dereference ..." on a + dangling symlink) takes a different code path. + +2006-10-13 Paul Eggert <eggert@cs.ucla.edu> + + Sync from Bison, as follows: + + 2006-10-01 Paul Eggert <eggert@cs.ucla.edu> + + Fix problems with translating English-language diagnostics. + * bootstrap: Fix bug introduced in recent bootstrap changes, with + respect to bison-runtime pot generation. The YY_ stuff + wasn't being captured. + +2006-10-13 Jim Meyering <jim@meyering.net> + + * src/chown-core.c (change_file_owner): Use fstatat, not stat, + now that we're using fts_open with FTS_CWDFD. + * tests/chgrp/posix-H: Add --preserve-root to an invocation of + chgrp, to exercise the above fix. + * NEWS: Mention the above. + + * src/du-tests: Clean up a little, though it's still not portable. + + * .vg-suppressions: Add 3 more for debian unstable. + + * tests/ls/Test.pm: Remove long-unused file. + * Makefile.am (EXTRA_DIST): Add bootstrap.conf. + Suggestions from Bruno Haible. + +2006-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * Makefile.am (THANKS-to-translators): Add missing $(srcdir). + (MAINTAINERCLEANFILES): Add .kludge-stamp. + * man/Makefile.am (MAINTAINERCLEANFILES): Typo $(dist_man_MANS) + instead of $(man_MANS). + +2006-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * configure.ac: Avoid compiler warnings about default return + type in function definitions and unused variables in tests. + * src/who.c (print_user) [HAVE_UT_HOST]: hostlen is only needed + if this is #defined. + +2006-10-12 Jim Meyering <jim@meyering.net> + + * configure.ac: Reflect s/gl_MACROS/coreutils_MACROS/ renaming. + Call gl_INIT directly, rather than through the above. + +2006-10-11 Paul Eggert <eggert@cs.ucla.edu> + + * bootstrap (symlink_to_gnulib): Fix bug: the dot_dots shell + variable was sometimes used without being initialized. This + messed up the installation of the INSTALL file in some cases. + +2006-10-11 Jim Meyering <jim@meyering.net> + + * src/ls.c (usage): Correct description of -s, --size. + It works even without -l. Suggestion from Karl Berry. + +2006-10-10 Paul Eggert <eggert@cs.ucla.edu> + + * src/ls.c (quote_name): Use initializer rather than memset to + initialize an object to zero. This is easier to read and is less + likely to introduce a runtime error due to a mixup. It causes + gcc -W to issue a warning, but you can work around this by + appending -Wno-missing-field-initializers. + * src/pathchk.c (portable_chars_only): Likewise. + * src/shred.c (main): Likewise. + * src/stty.c (main): Likewise. + * src/tr.c (card_of_complement): Likewise. + * src/wc.c (wc): Likewise. + +2006-10-09 Paul Eggert <eggert@cs.ucla.edu> + + * src/sort.c (usage): Mention again that sort fields are origin 1. + + * NEWS: Fix typo: iso-8602 -> iso-8601. Problem reported by + Bob Proulx. + + * bootstrap (usage, main program, symlink_to_gnulib): Add option + --copy. Inspired by a suggestion from Bruno Haible. + +2006-10-09 Jim Meyering <jim@meyering.net> + + Avoid a compiler warning. + * src/pathchk.c (portable_chars_only): Initialize variable of type + mbstate_t via memset, rather than via '{0}'. Patch from Bruno Haible. + +2006-10-06 Paul Eggert <eggert@cs.ucla.edu> + + Fix bug reported today by Mike Frysinger: mkdir -pv is logging the + wrong file name in some cases. Lars Wendler reported a bug in + my original fix. + * src/install.c (make_ancestor): New arg COMPONENT. + * src/mkdir.c (make_ancestor): Likewise. + * tests/install/basic-1: Check for install -Dv bug. + * tests/mkdir/Makefile.am (TESTS): Add p-v. + * tests/mkdir/p-v: New file, to test this bug. + +2006-10-05 Paul Eggert <eggert@cs.ucla.edu> + + * src/chgrp.c: Don't include lchown.h; no longer needed. + * src/chown.c: Likewise. + + * tests/ls/stat-dtype: Use a dynamic test to decide whether the + current file system has useful d_type info. + + * src/dd.c (flags): noatime and nofollow now depend on + HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW, too. + (usage): Output info about noatime and nofollow only if + they are known to work. + * src/remove.c (AD_push): Inspect HAVE_WORKING_O_NOFOLLOW rather + than O_NOFOLLOW, when testing whether it's possible to avoid a + race condition reliably. + +2006-10-05 Jim Meyering <jim@meyering.net> + + * src/c99-to-c89.diff: Update to reflect new offsets. + + * tests/install/basic-1: Skip the latter part of this test if the + just-built dd binary is not readable. Otherwise, this test would fail + when binaries were created as root. Reported by Bauke Jan Douma in + <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/8433>. + +2006-10-03 Paul Eggert <eggert@cs.ucla.edu> + + * src/system.h (ST_BLKSIZE): Ceiling at SIZE_MAX / 8 + 1, not at 4 + MiB, since XFS hosts can legitimately have large values of + st_blksize. Problem reported by Tony Ernst in + <http://savannah.gnu.org/bugs/?17903>. + +2006-10-04 Jim Meyering <jim@meyering.net> + + * src/remove.c (nonexistent_file_errno): Remove ENAMETOOLONG. + Paul Eggert pointed out that the specified file may exist, + in spite of such an errno value. + * tests/rm/Makefile.am (TESTS): Remove ignore-name-too-long. + * tests/rm/ignore-name-too-long: Remove file. + * NEWS: Update here, too. + +2006-10-03 Jim Meyering <jim@meyering.net> + + * tests/rm/fail-eperm: Report failure also if rm is terminated by + a signal. + + * src/c99-to-c89.diff: Convert two c99'isms -- one in remove.c + and one in shred.c -- that were added before coreutils-6.3. + Reported by Michael Deutschmann. + + * src/c99-to-c89.diff: Update to reflect new offsets. + + * src/remove.c (remove_entry): With -f, exit successfully in spite + of a missing file under some very unusual conditions (with errno + being any of ENOENT, ENOTDIR, ENAMETOOLONG). + + With --force (-f), rm no longer fails for ENOTDIR. + * src/remove.c (ignorable_missing): New function. + Use it everywhere, rather than open-coding the test. + Andreas Schwab reported the ENOTDIR problem. + (ignorable_missing): Similarly, don't fail for ENAMETOOLONG. + + * NEWS: Mention the bug fix. + * tests/rm/ignorable: New file. Test for the ENOTDIR case. + * tests/rm/ignore-name-too-long: New file. Test for ENAMETOOLONG. + * tests/rm/Makefile.am (TESTS): Add the new file names. + + * bootstrap: Undo last change to this file, since now gnulib-tool + sticks with the automake default in generating dependencies. + + * NEWS: Add a line for 6.4-cvs. + * configure.ac (AC_INIT): Bump to 6.4 and add "-cvs" suffix. + +2006-09-30 Jim Meyering <jim@meyering.net> + + Version 6.3. + * NEWS: Record the 6.3 release date. + * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. + + * NEWS: Mention Paul's Solaris 8 vs. 10 work-around. + + * src/c99-to-c89.diff: Update offsets. + +2006-09-29 Paul Eggert <eggert@cs.ucla.edu> + + * tests/rm/readdir-bug: Don't use $(...) in a shell script, + as it doesn't work with Solaris /bin/sh. + +2006-09-29 Jim Meyering <jim@meyering.net> + + * NEWS: Mention Paul's fix (to gnulib's canon-host.c) for + the pinky segfault. + + * tests/seq/basic [neg-2, eq-wid-2]: Comment out tests that + use .1 as the increment. Actual output varies too much. + [eq-wid-3]: New, commented out test. + + * src/shuf.c (read_input): Fix an off-by-one error that + would cause an infloop for piped input of 8KB or more. + * NEWS: Mention the fix. + * tests/misc/shuf: Test for the above fix. + + Since any system may be affected by the Darwin readdir bug, + perform the extra rewinddir unconditionally. The performance + impact of rewinding a directory is negligible. + * src/remove.c (NEED_REWIND): Define to use + CONSECUTIVE_READDIR_UNLINK_THRESHOLD unconditionally. + + * tests/seq/basic: Use .11 as the upper bound, in case the ".1" + increment translates to a slightly larger value. + This corrects a test failure on FreeBSD 6.1 reported by Nelson Beebe. + The final expected value wasn't being printed. + + Work around a readdir bug in Darwin 7.9.0 (MacOS X 10.3.9) on HFS+ + and NFS, whereby rm would not remove all files in a directory. + * src/remove.c (CONSECUTIVE_READDIR_UNLINK_THRESHOLD): Reduce to 10. + (NEED_REWIND): New macro, so that we incur the cost of the work-around + rewinddir only on afflicted systems. + * NEWS: Clarify and correct. + * tests/rm/readdir-bug: New file. Test for the above fix. + * tests/rm/Makefile.am (TESTS): Add it. + Prompted by testing and analysis from Bruno Haible: + http://lists.gnu.org/archive/html/bug-coreutils/2006-09/msg00326.html + +2006-09-28 Paul Eggert <eggert@cs.ucla.edu> + + * tests/rm/fail-eperm: Unset BASH_ENV, CDPATH, and ENV, too; + suggested for Debian stable, which uses Perl 5.8.4. + +2006-09-28 Jim Meyering <jim@meyering.net> + + Automatically generated dependencies are important even + when all of the sources in a directory come from gnulib. + * bootstrap (gnulib_tool): Remove the "no-dependencies" automake + option that gnulib-tool adds to what becomes our lib/gnulib.mk. + + * tests/rm/fail-eperm: Enable Perl's (-T) taint checking. + Ensure that IFS is set properly and unset PATH. + Sanitize inputs. + Work properly even when the name of the selected file starts with "-". + Invoke rm via "../../src/rm", and adjust expected output. + Prompted by a patch from Tim Waugh. + + * README-cvs: Add Bison to the list of required packages. + +2006-09-26 Jim Meyering <jim@meyering.net> + + * src/c99-to-c89.diff: Update offsets. + + * NEWS: rm works around a bug in Darwin 8.6.1 w/NFS that kept + it from removing a directory containing 188 or more entries. + * src/remove.c (CONSECUTIVE_READDIR_UNLINK_THRESHOLD): Decrease by + 20, go work around the buggy readdir on Darwin 8.6.1 with NFS. + Reported by Matthew Woehlke. + +2006-09-26 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: "groups user" no longer outputs "user :"; you need at least + two users. "groups" now processes options like --help more compatibly. + * src/groups.sh: Implement the option-processing change. + Handle user and group names with special characters more robustly. + Report write errors instead of exiting silently with status 1. + +2006-09-26 Jim Meyering <jim@meyering.net> + + * README: Warn not to run autoreconf manually. Use bootstrap instead. + + * src/groups.sh: When invoked with 0 or 1 argument, just exec "id". + Rewrite to avoid using temporary, $status. + + * NEWS: Mention the bug fix. + * src/groups.sh: Don't hide a write failure. + Reported by Iain Calder <ic56@rogers.com>. + +2006-09-25 Jim Meyering <jim@meyering.net> + + * src/chown.c (usage): Clarify --dereference description. + * src/chgrp.c (usage): Likewise. Suggestion from Jamie McClelland. + +2006-09-24 Jim Meyering <jim@meyering.net> + + * NEWS: Mention these fixes. + * src/copy.c (copy_reg): With --verbose (-v), print + "removed `file_name'" just after unlinking a file. + (copy_internal): Likewise, in three more places. + Marc Lehman reported that "touch x; ln x y; mv -v x y" was silent. + * tests/mv/hard-verbose: New file. Test for the above fix. + * tests/mv/Makefile.am (TESTS): Add hard-verbose. + + * tests/help-version (sync_args): Don't call sync, since it spins up + disks that I've deliberately caused to spin down (but not unmounted). + + * NEWS: Mention the improvement to sort. + + * tests/tail-2/proc-ksyms: Require that /proc/ksyms be readable + as well as existing. + + * tests/ls/stat-dtype: Don't use tmpfs on linux-2.4 or older, + since that predated addition of d_type support. + +2006-09-23 Jim Meyering <jim@meyering.net> + + * gl/modules/getloadavg.diff: New file. Work around the way the latest + version of the getloadavg module interacts with our bootstrap script. + * bootstrap (gnulib_tool_options): Add "--local-dir gl". + * Makefile.am (EXTRA_DIST): Sort file names. + Add bootstrap and gl/modules/getloadavg.diff + +2006-09-20 Paul Eggert <eggert@cs.ucla.edu> + + * bootstrap: Add support for --force. + (usage): New function. Describe usage less tersely. + (CVS_only_file): New var. + + * NEWS: Document fix for cp -i and mv -i. + * src/copy.c (copy_internal): With -i, prompt even if the source + is a directory and the destination is not. This is required by + POSIX and gives the user a chance to bail out before failing. + * tests/cp/Makefile.am (TESTS): Add cp-i. + * tests/cp/cp-i: New file. + * tests/mv/Makefile.am (TESTS): Add i-5. + * tests/mv/i-5: New file. + +2006-09-20 Jim Meyering <jim@meyering.net> + + * NEWS: Mention the chmod bug fix. + + * tests/chmod/inaccessible: New test, specifically for this bug. + Based on a test case from Paul Eggert. + * tests/chmod/Makefile.am (TESTS): Add inaccessible. + + Fix the 2006-09-18 bug differently. + * src/chmod.c: (process_file): Upon FTS_NS for a top-level file, + tell fts_read to stat the file again, in case it has become + accessible since the initial fts_open call. + * src/chown-core.c (change_file_owner): Likewise. + + * src/chmod.c: Revert last change. There is a better way. + * src/chown-core.c: Likewise. + +2006-09-19 Paul Eggert <eggert@cs.ucla.edu> + + * src/ln.c (target_directory_operand): Rewrite to avoid porting + problem on Tandem reported by Matthew Woehlke in + <https://savannah.gnu.org/bugs/?17172>. + +2006-09-18 Paul Eggert <eggert@cs.ucla.edu> + + Fix bug where chmod, chown, and chgrp did not process operands + left-to-right in some cases. + * src/chmod.c (wd_errno): New var. + (chmod_file): New function, with most of the contents of the + old prcess_file function. + (process_files): Use it. This gives file names to fts one + at a time, so that they are processed left-to-right as POSIX + requires. + * src/chown-core.c (wd_errno, chown_files): Likewise. + (chown_file): New function. + * tests/install/basic-1: Redo test so as to not workaround + the chmod bug, thereby testing for it. + + * src/shuf.c (main): Quote the entire range when reporting an + invalid one, rather than just the part that contained the error. + + * tests/stty/row-col-1: Rewrite to avoid temporary file that is + sometimes left behind if the test is skipped or interrupted. + + * bootstrap (symlink_to_gnulib): New function. + (cp_mark_as_generated): Use it, to prefer symlinks-to-gnulib + to copies-of-gnulib. + (cp_mark_as_generated, slurp, gnulib_files): + Avoid making a copy if it's the same as the old version. + (gnulib_files): Add support for this variable (used by Bison). + + * tests/ls/stat-vs-dirent: Fix quoting problem in diagnostic + indicating flaw in kernel. Reword to say that the flaw isn't + serious for coreutils, since the flaw does affect ls -i. + + * tests/chgrp/basic: Fix bug in test case exposed by building on + Solaris 8 in a setgid directory. The test case incorrectly + assumed that 'symlink' would be in group $g1. + +2006-09-18 Jim Meyering <jim@meyering.net> + + * NEWS: Add a line for 6.3-cvs. + * configure.ac (AC_INIT): Bump to 6.3 and add "-cvs" suffix. + + Version 6.2. + * NEWS: Record the 6.2 release date. + * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. + +2006-09-17 Jim Meyering <jim@meyering.net> + + * tests/chgrp/basic: On an OpenBSD system, rather than failing + due to a known problem, merely warn about it. + Rewrite to avoid testing output of chgrp --verbose and chgrp -c. + Instead, use stat to test file system for desired results, directly. + * tests/chgrp/Makefile.am (TESTS_ENVIRONMENT): Set host_triplet. + + * tests/envvar-check: Add more variable names to the list of those + that can affect these programs and tests: _POSIX2_VERSION, COLUMNS, + QUOTING_STYLE, TABSIZE, TERM, TMPDIR. + +2006-09-16 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: Document that mkdir -p and install -d now fork on occasion. + * bootstrap.conf (gnulib_modules): Add savewd. + * src/install.c: Include savewd.h. + (process_dir): New function. + (main, install_file_in_file_parents): Use it, along with the new + savewd module, to avoid some race conditions. + * src/mkdir.c: Include savewd.h. + (struct mkdir_options): New members make_ancestor_function, mode, + mode_bits. + (make_ancestor): Return 1 if the resulting directory is not readable. + (process_dir): New function. + (main): Use it, along with new savewd module, to avoid some + race conditions. Fill in new slots of struct mkdir_options, so + that callees get the values. + * tests/install/basic-1: Test for coreutils 5.97 bug that was + fixed in coreutils 6.0, and which should still be fixed with + this change. + * tests/mkdir/p-3: Likewise. + +2006-09-15 Jim Meyering <jim@meyering.net> + + * bootstrap.conf (gnulib_modules): Add rename-dest-slash. + The 2006-09-08 changes made it so "mv dir new-name/" would + fail on NetBSD 1.6. This makes it work once again. + +2006-09-14 Jim Meyering <jim@meyering.net> + + * src/mv.c (main): Remove unnecessary (always-true) test for 2 <= n. + Instead, since it's a little fragile, assert the condition. + (target_directory_operand): Update comment to reflect latest change. + +2006-09-12 Paul Eggert <eggert@cs.ucla.edu> + + * src/who.c (print_user): Rewrite to avoid warning from + GCC 4.1.1 with -Wall. + +2006-09-12 Jim Meyering <jim@meyering.net> + + * tests/mv/atomic: Check for specific strace output, rather than + simply nonempty. RHEL AS 4 would fail this test due to strace + generating "[ Process PID=14434 runs in 32 bit mode. ]". + Reported by Nelson Beebe. + +2006-09-11 Jim Meyering <jim@meyering.net> + + * src/remove.c (remove_dir): Move new cache_stat_init call onto + it's own line. + (rm_1): Move declaration of "st" and new cache_stat_init call + "down" to nearer where they're used. + * src/c99-to-c89.diff: Add another set of curly braces. + +2006-09-10 Paul Eggert <eggert@cs.ucla.edu> + + * src/expr.c (eval6): Fix buffer overrun, or bad performance, if + substr's last operand is very large. Performance problem reported + by Sebastian Kreft. + +2006-09-09 Jim Meyering <jim@meyering.net> + + * Makefile.maint (sc_prohibit_jm_in_m4): Don't hang when there + are no .m4 files. + (sc_require_config_h): Skip this test if there are no version- + controlled .c files. + (sc_prohibit_assert_without_use): Likewise. + +2006-09-08 Jim Meyering <jim@meyering.net> + + * bootstrap: Export CVS_RSH separate from its assignment, to work + even with Solaris 10's /bin/sh. Suggestion from Mark D. Baushke. + +2006-09-08 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: tail now ignores the -f option if POSIXLY_CORRECT is set, + no file operand is given, and standard input is any FIFO. + This is in response to Open Group XCU ERN 114. + * src/tail.c (main): Likewise. + +2006-09-08 Jim Meyering <jim@meyering.net> + + 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 reverts part of the 2004-06-27 + change for 5.3.0. + * NEWS: Say the above. + * src/mv.c (target_directory_operand): Don't require (here) + that the target operand "look like" a directory. This change + pushes the test down to the rename syscall level, where a + "mv dir existing-non-dir/" will mistakenly succeed on older systems + that ignore trailing slashes in the rename destination argument. + * src/cp.c (target_directory_operand): Likewise, but for cp. + * tests/mv/trailing-slash: Exercise the above fixes. + * tests/cp/trailing-slash: New file. + * tests/cp/Makefile.am (EXTRA_DIST): Add trailing-slash. + + * bootstrap: Use the previously unused variable, $src, + to avoid repeating "$GNULIB_SRCDIR/$file". + + * bootstrap (cp_mark_as_generated): Don't use "local", to + accommodate ancient "/bin/sh". Suggested by Ralf Wildenhues. + Rename now-global "$src" and "$dst" to have cp_ prefix. + Safer, and avoids confusion. + + * bootstrap (cp_mark_as_generated): New function. + (slurp): Use it to prepend editor hints and a warning that + the file we're copying is generated. + Suggestion from Bruce Korb. + (cp_mark_as_generated): Don't add C-style comments for .l or .y files. + Fix last-minute typo. + +2006-09-07 Jim Meyering <jim@meyering.net> + + * bootstrap: Revert last change. There are less disruptive ways + to mark these generated files as read-only. + + * src/c99-to-c89.diff: Update to have proper offsets. + +2006-09-06 Jim Meyering <jim@meyering.net> + + Ensure that some gnulib-tool-generated files are read-only. + * bootstrap (slurp): Put the body of this function in a sub-shell, + with "umask a-w" so that all new files are read-only. Remove each + file before we write to it, in case it's read-only. + Make po/Makevars and runtime-po/Makevars read-only, too. + +2006-09-05 Jim Meyering <jim@meyering.net> + + * tests/cp/acl: Skip this test when cp lacks ACL support. + * tests/cp/Makefile.am (TESTS_ENVIRONMENT): Set $(CONFIG_HEADER). + + * src/c99-to-c89.diff (remove.c): Adapt one hunk to match the new + context from change of 2006-09-02. + +2006-09-04 Jim Meyering <jim@meyering.net> + + * README-cvs: Fix typo in update command. + +2006-09-03 Jim Meyering <jim@meyering.net> + + * NEWS: Tweak the wording in the new change description so that + no one can think this change causes e.g., `rm -fr foo../' to fail. + + * tests/rm/inaccessible: Adjust for movement of config.h to lib/. + Use $CONFIG_HEADER, rather than hard-coding it. + * tests/rm/Makefile.am (TESTS_ENVIRONMENT): Set $CONFIG_HEADER. + +2006-09-02 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: rm now rejects attempts to remove /, ./, and ../. + * src/basename.c: Don't include dirname.h, since system.h does it now. + * src/chmod.c: Likewise. + * src/copy.c: Likewise. + * src/cp.c: Likewise. + * src/df.c: Likewise. + * src/dircolors.c: Likewise. + * src/dirname.c: Likewise. + * src/du.c: Likewise. + * src/install.c: Likewise. + * src/ln.c: Likewise. + * src/ls.c: Likewise. + * src/mkdir.c: Likewise. + * src/mv.c: Likewise. + * src/remove.c: Likewise. + * src/rm.c: Likewise. + * src/rmdir.c: Likewise. + * src/shred.c: Likewise. + * src/split.c: Likewise. + * src/su.c: Likewise. + * src/system.h: Include "dirname.h", since dot_or_dotdot needs it + now. + (dot_or_dotdot): Succeed even if "." or ".." is followed by a + slash. + * src/rm.c (usage, main): --preserve-root is now the default. + * src/remove.h: Fix comment. + * src/remove.c (cache_fstatat, cache_stat_init): New functions. + (cache_statted, cache_stat_ok): New functions. + (write_protected_non_symlink): Remove struct stat ** buf_p arg, + which is no longer needed with the new functions. All callers + changed. + (prompt, is_dir_lstat, remove_entry, remove_dir): + New struct stat * arg. All callers changed. + (write_protected_non_symlink, prompt, is_dir_lstat, remove_entry): + (remove_cwd_entries, remove_dir, rm_1): + Use and maintain the file status cache. + (prompt, remove_entry): Omit the first "directory" in the diagnostic + "Cannot remove directory `foo': is a directory". This causes "rm" + to pass a test case that it would otherwise fail now that it + "knows" more about its argument. I think the diagnostic is better + without the first "directory" anyway. + (prompt): Remove the no-longer-needed IS_DIR arg; all callers changed. + (rm_1): Reject attempts to remove /, ./, or ../. + * tests/rm/Makefile.am (TESTS): Add r-4. + * tests/rm/r-4: New file. + +2006-09-01 Paul Eggert <eggert@cs.ucla.edu> + + * src/stat.c: Include <stddef.h> + (alignof): New macro. + (HAVE_STRUCT_STATXFS_F_FSID___VAL, HAVE_STRUCT_STATXFS_F_FSID_VAL): + Remove. + (STRUCT_STATXFS_F_FSID_IS_INTEGER): New macro. + (FSID_VAL): Remove. + (print_statfs): If f_fsid isn't an integer, grab its words one + at a time in little-endian order. This is a bit easier to configure + and should avoid a compilation failure on MacOS reported by Bruno + Haible. + +2006-08-29 Paul Eggert <eggert@cs.ucla.edu> + + * src/stat.c (HAVE_STRUCT_STATXFS_F_FSID_VAL, FSID_VAL): New macros, to + work around a Mac OS X porting problem reported by Bruno Haible in + <http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00308.html>. + (print_statfs): Use them. + + * bootstrap.conf (gnulib_modules): Add isapipe. + * src/tail.c: Include isapipe.h. + (IS_PIPE_LIKE_FILE_TYPE): Remove. + (IS_TAILABLE_FILE_TYPE): Just list both FIFOs and sockets as + tailable, since this seems to be portable. + (main): Use isapipe, to fix a bug on MacOS X reported by Bruno Haible in + <http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00304.html>. + + * src/system.h (LOCALEDIR): Remove, since configmake.h now defines + it for us. + +2006-08-28 Paul Eggert <eggert@cs.ucla.edu> + + * src/copy.c (copy_internal): Don't test whether macros like + S_ISLNK are defined, since they're always defined now. + * src/cp.c (main): Likewise. + * src/ln.c (main): Likewise. + * src/ls.c (get_link_name, make_link_name): Likewise. + * src/mknod.c (main): Likewise. + * src/mkfifo.c (usage): Likewise. + * src/who.c (S_IWGRP): Likewise. + + Adjust to recent gnulib changes for the gnulib module. + * bootstrap.conf (gnulib_modules): Add fcntl. + * src/system.h (SEEK_SET, SEEK_CUR, SEEK_END): Remove. Other code + is already assuming these macros are defined. + (O_DIRECT, O_DIRECTORY, O_DSYNC, O_NDELAY, O_NOATIME, O_NONBLOCK): + (O_NOCTTY, O_NOFOLLOW, O_NOLINKS, O_RSYNC, O_SYNC, O_BINARY, O_TEXT): + Remove; the fcntl module now handles these. + + Adjust to recent gnulib changes for the inttypes module. + * bootstrap.conf (gnulib_modules): Remove stdint; add inttypes. + (excluded_files): Don't exclude m4/inttypes-h.m4 or m4/inttypes-pri.m4. + + * src/system.h: Don't bother to include <stdint.h>, since we can + now assume inttypes.h does the equivalent of including stdint.h. + +2006-08-27 Jim Meyering <jim@meyering.net> + + * src/copy.c (copy_internal): Don't make a backup if the last + component of the source name is "." or "..". + Reported by Andreas Schwab in http://savannah.gnu.org/bugs/?17540. + * NEWS: Mention this. + * tests/cp/src-base-dot: New file. Test for the above fix. + * tests/cp/Makefile.am (TESTS): Add src-base-dot. + + * src/system.h (DOT_OR_DOTDOT): Remove macro. Rewrite as a... + (dot_or_dotdot): ...new static inline function. + * src/remove.c (rm_1): Reflect this renaming. + * src/ls.c (basename_is_dot_or_dotdot): Likewise. + + * src/copy.c (copy_internal): Add comments. + +2006-08-26 Paul Eggert <eggert@cs.ucla.edu> + + * src/Makefile.am (AM_CPPFLAGS): Remove -I$(srcdir) and -I../lib, + since Automake supplies them for us. It always did -I$(srcdir), + and with the recent change to AC_CONFIG_HEADERS in configure.ac it + is now also doing -I../lib. + + * bootstrap (get_translations): Skip this if WGET_COMMAND is empty. + Fail if the first "echo" fails. Suppress diagnostics from "ls po/*.po" + since there might not be any .po files. + (WGET_COMMAND): Set to empty if wget doesn't + seem to be available. + +2006-08-26 Jim Meyering <jim@meyering.net> + + This test was failing in some environments. + * tests/ls/color-dtype-dir: Don't rely on eval "`dircolors -b`" + to set LS_COLORS in the environment. + * tests/envvar-check: Instead, ensure that LS_COLORS is not set. + Reported by Bob Proulx. + + * src/c99-to-c89.diff: Remove hunk for copy.c; no longer needed. + + * Makefile.am (EXTRA_DIST): Remove these files here, too: + .x-sc_no_if_have_config_h, .x-sc_prohibit_assert_without_use, + .x-sc_two_space_separator_in_usage. + + Fix "mv --verbose --backup" so its output includes the + " (backup: foo.~1~)" suffix also when backing up a directory. + * NEWS: Report this bug fix. + * src/copy.c (emit_verbose): New function, factored out of... + (copy_internal): ...here. Use the new function. + * tests/mv/backup-dir: Test for the above fix. + * tests/mv/Makefile.am (TESTS): Add backup-dir. + +2006-08-25 Paul Eggert <eggert@cs.ucla.edu> + + * .x-sc_no_if_have_config_h: Remove; no longer needed. + * .x-sc_prohibit_assert_without_use: Remove; it was empty. + * .x-sc_two_space_separator_in_usage: Likewise. + * Makefile.maint (sc_no_have_config_h): Renamed from + sc_no_if_have_config_h, since it now checks that HAVE_CONFIG_H + is absent everywhere. + * bootstrap.conf (gnulib_modules): Add config-h. + * src/shred.c: Include <config.h> unconditionally, since + we now assume config.h exists. + * src/dircolors.c: Likewise. + +2006-08-26 Jim Meyering <jim@meyering.net> + + "ls --color" would highlight other-writable and sticky directories + no differently than regular directories on a file system with + dirent.d_type support. + * NEWS: Say the above. + * src/ls.c (gobble_file): With --color, also stat the file when + we know it is a directory. + Derived from an anonymous one-line fix and bug report: + <http://savannah.gnu.org/bugs/?15043>. + * tests/ls/color-dtype-dir: New file. Test for the above fix. + * tests/ls/Makefile.am (TESTS): Add color-dtype-dir. + +2006-08-25 Paul Eggert <eggert@cs.ucla.edu> + + * .cvsignore: Remove stamp-h1. Add coreutils-*, to ignore + tarballs. + * bootstrap.conf: Add configmake, verify. + * src/.cvsignore: Remove localedir.h. + * src/Makefile.am (localedir, DISTCLEANFILES, localedir.h): Remove; + subsumed by configmake. + * src/system.h: Include configmake.h rather than localedir.h + (LOCALEDIR): New macro. + + Rewrite to avoid some unnecessary casts, macros, literals. + * src/shred.c (DEFAULT_PASSES, VERBOSE_UPDATE): Now constants, + not macros. + (SECTOR_SIZE, SECTOR_MASK): New constants. + (fillpattern, dopass, do_wipefd, main): Remove unnecessary casts, + and use the SECTOR_* constants when applicable. Check for size < + 0 rather than size == -1, since negative-size files are a sign of + trouble anyway. + +2006-08-25 Bruno Haible <bruno@clisp.org> + + * src/shred.c (dopass): Assume a continuable error if EIO even + if the current position is not a multiple of 512. + +2006-08-24 Jim Meyering <jim@meyering.net> + + * src/stat.c (print_statfs): Fix typo: remove extra "sizeof". + +2006-08-23 Paul Eggert <eggert@cs.ucla.edu> + + * src/stat.c (HAVE_STRUCT_STATXFS_F_FSID___VAL): Define. This + macro was being used without being defined. + (SB_F_NAMEMAX): Remove cast. + (f_fsid) [BeOS]: Likewise. + (OUT_NAMEMAX): Renamed from NAMEMAX_FORMAT, with a new meaning. + All uses changed. + (out_string, out_int, out_uint, out_uint_o, out_uint_x): New + functions. + (xstrcat): Remove. All uses changed to use the above functions. + (print_statfs, print_stat): 2nd arg is now the prefix len, not the + buffer len. All uses changed. Output '?', not '*', for unknown + data or errors. Do not assume signed values can be interchanged + with unsigned when printing. + (print_statfs): For %i, print the fsid as a single int, not as a + pair. + (print_it): Quote invalid format better. + + * NEWS: printf supports the I flag. + * src/printf.c (print_formatted) [glibc 2.2 or later]: Likewise. + +2006-08-23 Bruno Haible <bruno@clisp.org> + + * src/stat.c (STRUCT_STATVFS, statfs, f_fsid, f_blocks, f_bfree) [BeOS]: + (f_bavail, f_bsize, STATFS_FRSIZE, f_files, f_ffree) [BeOS]: + (STATXFS_FILE_SYSTEM_TYPE_MEMBER_NAME) [BeOS]: Define. + + * src/ls.c (SA_RESTART): Fallback define. + +2006-08-23 Paul Eggert <eggert@cs.ucla.edu> + + * src/system.h (EDQUOT): Define if not already defined. + Problem reported by Bruno Haible for BeOS. + + * .cvsignore: Remove config.h, config.hin, as they are now + in lib. + * configure.ac (AC_CONFIG_HEADERS): Move config.h and config.hin + to lib. + * src/Makefile.am (AM_CPPFLAGS): Remove '-I..'; no longer needed. + + * bootstrap (slurp): Define gl_LOCK_EARLY instead of gl_LOCK, + to accommodate today's gnulib change. + +2006-08-23 Jim Meyering <jim@meyering.net> + + * NEWS: Mention the sweeping infrastructure changes. + +2006-08-22 Paul Eggert <eggert@cs.ucla.edu> + + * bootstrap.conf (gnulib_modules): Add gnupload. + * Makefile.maint (emit_upload_commands): gnupload is now + in build-aux. + * gnupload: Remove from CVS, since it's now a gnulib module. + + * bootstrap (bootstrap_conf_cleanup): Remove. + (excluded_files): New var. + * bootstrap.conf: Likewise. + * bootstrap (slurp): Exclude files early if they're in the + excluded_files list. That way, their names don't get put into + .cvsignore. + + * aclocal.m4, config.hin, configure: + Remove from CVS, since ./bootstrap generates them automatically. + * .cvsignore: Add INSTALL, Makefile.in, aclocal.m4, config.hin, + configure, *.cache, *.lineno, *.log. + Remove more-specific entries. This catches files like configure.lineno. + * man/.cvsignore: Add Makefile.in. + * src/.cvsignore: Add Makefile.in. + Remove .version, dir.c, install, mvdir, stamp-v, vdir.c, version.c. + + * tests/.cvsignore: + * tests/chgrp/.cvsignore: + * tests/chmod/.cvsignore: + * tests/chown/.cvsignore: + * tests/cp/.cvsignore: + * tests/cut/.cvsignore: + * tests/dd/.cvsignore: + * tests/dircolors/.cvsignore: + * tests/du/.cvsignore: + * tests/expr/.cvsignore: + * tests/factor/.cvsignore: + * tests/fmt/.cvsignore: + * tests/head/.cvsignore: + * tests/install/.cvsignore: + * tests/join/.cvsignore: + * tests/ln/.cvsignore: + * tests/ls/.cvsignore: + * tests/ls-2/.cvsignore: + * tests/md5sum/.cvsignore: + * tests/misc/.cvsignore: + * tests/mkdir/.cvsignore: + * tests/mv/.cvsignore: + * tests/od/.cvsignore: + * tests/pr/.cvsignore: + * tests/readlink/.cvsignore: + * tests/rm/.cvsignore: + * tests/rmdir/.cvsignore: + * tests/seq/.cvsignore: + * tests/sha1sum/.cvsignore: + * tests/shred/.cvsignore: + * tests/sort/.cvsignore: + * tests/stty/.cvsignore: + * tests/sum/.cvsignore: + * tests/tac/.cvsignore: + * tests/tail/.cvsignore: + * tests/tail-2/.cvsignore: + * tests/tee/.cvsignore: + * tests/test/.cvsignore: + * tests/touch/.cvsignore: + * tests/tr/.cvsignore: + * tests/tsort/.cvsignore: + * tests/unexpand/.cvsignore: + * tests/uniq/.cvsignore: + * tests/wc/.cvsignore: + Add Makefile.in. Sort entries if necessary. Remove *.I, *.E, + *.X, *.O, *-tests, build-script, mk-script if they're never + created in this directory. + +2006-08-22 Bruno Haible <bruno@clisp.org> + + BeOS portability. + * src/uptime.c: Include OS.h if it exists. + (print_uptime): On BeOS, use the get_system_info function (actually a + macro). Loop through utmp entries only if utmp.h or utmpx.h exists. + (uptime): Call read_utmp only if utmp.h or utmpx.h exists. + +2006-08-22 Jim Meyering <jim@meyering.net> + + * .cvsignore: Add ABOUT-NLS. + + Move the check-AUTHORS rule to be run as part of "make distcheck", + rather than "make check". + * src/Makefile.am (check): Don't depend on check-AUTHORS; it would + cause "make check" to fail on systems unable to build all binaries. + * Makefile.maint (check-AUTHORS): New rule. + (local-checks-available): Add it here. + Reported by Bruno Haible. Needed for BeOS. + +2006-08-21 Paul Eggert <eggert@cs.ucla.edu> + + * src/df.c (print_header, show_dev): Use a column width that + depends on the block size of -P is specified and not autoscaling. + Problem reported by Gustavo G. Rondina in: + http://lists.gnu.org/archive/html/bug-coreutils/2006-08/msg00164.html + +2006-08-21 Jim Meyering <jim@meyering.net> + + * tests/dircolors/simple (a): Don't fail with an unexpected diagnostic + when the shell variable, SHELL, is not set. + Trigger the failure with "(unset SHELL; make check TESTS=simple)". + Reported by Sven Joachim in <http://bugs.debian.org/355368>. + + * src/od.c: Now that HAVE_UNSIGNED_LONG_LONG is no longer defined + in config.h, change the uses to HAVE_UNSIGNED_LONG_LONG_INT. + Otherwise, on a system with 4-byte longs, "od -t u8" fails with this: + od: invalid type string `u8'; + this system doesn't provide a 8-byte integral type + FIXME: add a test for this, but skip it when sizeof uintmax < 8. + +2006-08-20 Paul Eggert <eggert@cs.ucla.edu> + + Add a bootstrap procedure, so that the CVS version contains fewer + files and we bootstrap the rest from gnulib, gettext, etc. + * README-cvs: New file. + * bootstrap: New file. + * bootstrap.conf: New file. + * .x-sc_trailing_blank: Remove config-log, .gdb-history. Add .po. + * configure.ac (AC_PREREQ): Move here from m4/*.m4, for benefit + of gnulib-tool. + (gl_DEFAULT_POSIX2_VERSION, gl_USE_SYSTEM_EXTENSIONS, gl_PERL): + (gl_IGNORE_UNUSED_LIBRARIES): Remove; now done by gnulib. + (gl_EARLY): Add. + (gl_MACROS): Call just after gl_EARLY, just for clarity. + * src/c99-to-c89.diff: Remove patch to ls.c; no longer needed. + * src/kill.c (strtoimax): Remove decl. + * src/ls.c: Include "wcwidth.h" instead of rolling it ourselves. + * src/wc.c: Likewise. + * src/ls.c (sort_files): Rewrite to avoid need for C99-style + declaration, so that we don't need to patch this file. + * src/printf.c (strtoimax, strtoumax): Remove decls. + * src/su.c: Include getpass.h. + (getpass): remove. + * src/system.h: Include mempcpy.h, stpcpy.h, strpbrk.h. + Include inttypes.h unconditionally. + (LONGEST_MODIFIER, PRIdMAX, PRIoMAX, PRIuMAX, PRIxMAX): Remove. + (stpcpy, strndup, strstr, strtoul, mempcpy, CHAR_MIN, CHAR_MAX): + (SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, SHRT_MIN, SHRT_MAX, INT_MAX): + (INT_MIN, INTMAX_MAX, INTMAX_MIN, UINT_MAX, LONG_MAX, ULONG_MAX): + (SIZE_MAX, SSIZE_MAX, UINTMAX_MAX): Remove. + + * ABOUT-NLS, INSTALL, Makefile.in, man/Makefile.in: + * src/Makefile.in, tests/Makefile.in, tests/chgrp/Makefile.in: + * tests/chmod/Makefile.in, tests/chown/Makefile.in: + * tests/cp/Makefile.in, tests/cut/Makefile.in: + * tests/dd/Makefile.in, tests/dircolors/Makefile.in: + * tests/du/Makefile.in, tests/expr/Makefile.in: + * tests/factor/Makefile.in, tests/fmt/Makefile.in: + * tests/general/Makefile.in, tests/head/Makefile.in: + * tests/install/Makefile.in, tests/join/Makefile.in: + * tests/ln/Makefile.in, tests/ls/Makefile.in: + * tests/ls-2/Makefile.in, tests/md5sum/Makefile.in: + * tests/misc/Makefile.in, tests/mkdir/Makefile.in: + * tests/mv/Makefile.in, tests/od/Makefile.in: + * tests/pr/Makefile.in, tests/readlink/Makefile.in: + * tests/rm/Makefile.in, tests/rmdir/Makefile.in: + * tests/seq/Makefile.in, tests/sha1sum/Makefile.in: + * tests/shred/Makefile.in, tests/sort/Makefile.in: + * tests/stty/Makefile.in, tests/sum/Makefile.in: + * tests/tac/Makefile.in, tests/tail/Makefile.in: + * tests/tail-2/Makefile.in, tests/tee/Makefile.in: + * tests/test/Makefile.in, tests/touch/Makefile.in: + * tests/tr/Makefile.in, tests/tsort/Makefile.in: + * tests/unexpand/Makefile.in, tests/uniq/Makefile.in: + * tests/wc/Makefile.in: + Remove from CVS, since ./bootstrap generates them automatically. + +2006-08-20 Eric Blake <ebb9@byu.net> + + * src/stat.c (USE_STATVFS): Reinstate the patch from 2006-08-15; + the patch from 2006-08-18 broke on cygwin. + +2006-08-20 Jim Meyering <jim@meyering.net> + + * NEWS: Add a line for 6.2-cvs. + * configure.ac (AC_INIT): Bump to 6.2 and add "-cvs" suffix. + +2006-08-19 Jim Meyering <jim@meyering.net> + + * Version 6.1. + * NEWS: Record the 6.1 release date. + * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. + + * tests/Makefile.am (EXTRA_DIST): Add sparse-file. + + Avoid test failure when `make check' is run through debuild. + * tests/help-version: Ensure that $SHELL is set to some value + and exported. Patch from Sven Joachim. For details, see + <http://bugs.debian.org/355368>. + + * tests/ls/stat-dtype: Test for the 2006-08-17 `ls -CF' fix. + + * README: Describe potential "pre-C99 build failure", and work-around. + + Some of my 2006-07-03 changes to tests/*/Makefile.am were being + backed out due to updates provoked by the copyright changes. + * tests/Makefile.am.in (PATH): Prepend $(VG_PATH_PREFIX), so that + it propagates to the derived Makefile.am files. + ($(srcdir)/Makefile.am): Mark generated .am files as read-only, + so we don't mistakenly edit them again. + * tests/cut/Makefile.am: Regenerate. + * tests/head/Makefile.am: Likewise. + * tests/join/Makefile.am: Likewise. + * tests/pr/Makefile.am: Likewise. + * tests/sort/Makefile.am: Likewise. + * tests/tac/Makefile.am: Likewise. + * tests/tail/Makefile.am: Likewise. + * tests/test/Makefile.am: Likewise. + * tests/tr/Makefile.am: Likewise. + * tests/uniq/Makefile.am: Likewise. + * tests/wc/Makefile.am: Likewise. + + * NEWS: Fix cp --sparse so that it preserves tail-end sparseness, even + when the file's apparent size is not a multiple of its block size. + * src/copy.c (copy_reg): Don't write a NUL before calling ftruncate. + For some file sizes, writing that single byte would unnecessarily + waste a few file blocks. That write may have been necessary in the + early days of Linux, but now, removing it should be safe. + Based on a patch by Alan Curry: <http://bugs.debian.org/370792> + * tests/cp/sparse: New test for the above. + * tests/cp/Makefile.am (TESTS): Add sparse. + + * tests/sparse-file: New file, essence factored out of... + * tests/du/8gb: ... here. Use the new script. + +2006-08-18 Paul Eggert <eggert@cs.ucla.edu> + + * src/system.h (select_plural): Reduce by 1000000, not 1000, since + the CVS gettext manual now suggests 1000000. + +2006-08-18 Bruno Haible <bruno@clisp.org> + + Add support for NetBSD 3.0. + * src/stat.c (USE_STATVFS): Set to 1 if 'struct statvfs' has a field + f_fstypename. + (STATXFS_FILE_SYSTEM_TYPE_MEMBER_NAME): Define also if 'struct statvfs' + has a field f_fstypename. + This undoes the 2006-08-15 to src/stat.c. + +2006-08-17 Paul Eggert <eggert@cs.ucla.edu> + + Copyright notice fixes. + + * COPYING: Upgrade to latest version from FSF. + + * src/uname.c: Use (C) in copyright notice. + + * .vg-suppressions: Add copyright notice. + * ChangeLog: Likewise. + * ChangeLog-2005: Likewise. + * Makefile.am: Likewise. + * NEWS: Likewise. + * README: Likewise. + * README-valgrind: Likewise. + * TODO: Likewise. + * announce-gen: Likewise. + * man/Makefile.am: Likewise. + * man/chmod.x: Likewise. + * man/chown.x: Likewise. + * man/df.x: Likewise. + * man/du.x: Likewise. + * man/rm.x: Likewise. + * src/dircolors.hin: Likewise. + * src/du-tests: Likewise. + * src/extract-magic: Likewise. + * src/tac-pipe.c: Likewise. + * src/wheel-gen.pl: Likewise. + * tests/Coreutils.pm: Likewise. + * tests/Makefile.am.in: Likewise. + * tests/acl: Likewise. + * tests/envvar-check: Likewise. + * tests/expensive: Likewise. + * tests/group-names: Likewise. + * tests/help-version: Likewise. + * tests/mk-script: Likewise. + * tests/priv-check: Likewise. + * tests/rwx-to-mode: Likewise. + * tests/sample-test: Likewise. + * tests/setgid-check: Likewise. + * tests/chgrp/basic: Likewise. + * tests/chgrp/deref: Likewise. + * tests/chgrp/no-x: Likewise. + * tests/chgrp/posix-H: Likewise. + * tests/chgrp/recurse: Likewise. + * tests/chmod/c-option: Likewise. + * tests/chmod/equal-x: Likewise. + * tests/chmod/equals: Likewise. + * tests/chmod/no-x: Likewise. + * tests/chmod/octal: Likewise. + * tests/chmod/setgid: Likewise. + * tests/chmod/umask-x: Likewise. + * tests/chmod/usage: Likewise. + * tests/chown/basic: Likewise. + * tests/chown/deref: Likewise. + * tests/chown/separator: Likewise. + * tests/cp/Makefile.am: Likewise. + * tests/cp/acl: Likewise. + * tests/cp/backup-1: Likewise. + * tests/cp/backup-is-src: Likewise. + * tests/cp/cp-HL: Likewise. + * tests/cp/cp-deref: Likewise. + * tests/cp/cp-mv-backup: Likewise. + * tests/cp/cp-parents: Likewise. + * tests/cp/deref-slink: Likewise. + * tests/cp/dir-rm-dest: Likewise. + * tests/cp/dir-slash: Likewise. + * tests/cp/dir-vs-file: Likewise. + * tests/cp/fail-perm: Likewise. + * tests/cp/into-self: Likewise. + * tests/cp/link: Likewise. + * tests/cp/link-no-deref: Likewise. + * tests/cp/link-preserve: Likewise. + * tests/cp/no-deref-link1: Likewise. + * tests/cp/no-deref-link2: Likewise. + * tests/cp/no-deref-link3: Likewise. + * tests/cp/perm: Likewise. + * tests/cp/preserve-2: Likewise. + * tests/cp/r-vs-symlink: Likewise. + * tests/cp/same-file: Likewise. + * tests/cp/slink-2-slink: Likewise. + * tests/cp/special-bits: Likewise. + * tests/cp/symlink-slash: Likewise. + * tests/cut/Makefile.am: Likewise. + * tests/cut/Test.pm: Likewise. + * tests/dd/misc: Likewise. + * tests/dd/not-rewound: Likewise. + * tests/dd/skip-seek: Likewise. + * tests/dd/skip-seek2: Likewise. + * tests/dd/unblock-sync: Likewise. + * tests/dircolors/simple: Likewise. + * tests/du/2g: Likewise. + * tests/du/8gb: Likewise. + * tests/du/Makefile.am: Likewise. + * tests/du/basic: Likewise. + * tests/du/deref: Likewise. + * tests/du/deref-args: Likewise. + * tests/du/exclude: Likewise. + * tests/du/fd-leak: Likewise. + * tests/du/files0-from: Likewise. + * tests/du/hard-link: Likewise. + * tests/du/inaccessible-cwd: Likewise. + * tests/du/long-from-unreadable: Likewise. + * tests/du/long-sloop: Likewise. + * tests/du/no-deref: Likewise. + * tests/du/no-x: Likewise. + * tests/du/restore-wd: Likewise. + * tests/du/slash: Likewise. + * tests/du/slink: Likewise. + * tests/du/trailing-slash: Likewise. + * tests/du/two-args: Likewise. + * tests/expr/basic: Likewise. + * tests/factor/basic: Likewise. + * tests/fmt/basic: Likewise. + * tests/fmt/long-line: Likewise. + * tests/general/Makefile.am: Likewise. + * tests/general/atgeneral.m4: Likewise. + * tests/general/dd.at: Likewise. + * tests/head/Makefile.am: Likewise. + * tests/head/Test.pm: Likewise. + * tests/install/basic-1: Likewise. + * tests/install/create-leading: Likewise. + * tests/install/d-slashdot: Likewise. + * tests/install/trap: Likewise. + * tests/join/Makefile.am: Likewise. + * tests/join/Test.pm: Likewise. + * tests/ln/backup-1: Likewise. + * tests/ln/misc: Likewise. + * tests/ln/sf-1: Likewise. + * tests/ln/target-1: Likewise. + * tests/ls/Makefile.am: Likewise. + * tests/ls/Test.pm: Likewise. + * tests/ls/dangle: Likewise. + * tests/ls/dired: Likewise. + * tests/ls/file-type: Likewise. + * tests/ls/follow-slink: Likewise. + * tests/ls/infloop: Likewise. + * tests/ls/inode: Likewise. + * tests/ls/m-option: Likewise. + * tests/ls/no-arg: Likewise. + * tests/ls/recursive: Likewise. + * tests/ls/rt-1: Likewise. + * tests/ls/stat-dtype: Likewise. + * tests/ls/stat-failed: Likewise. + * tests/ls/stat-vs-dirent: Likewise. + * tests/ls/symlink-slash: Likewise. + * tests/ls/time-1: Likewise. + * tests/ls-2/tests: Likewise. + * tests/md5sum/basic-1: Likewise. + * tests/md5sum/newline-1: Likewise. + * tests/misc/Makefile.am: Likewise. + * tests/misc/base64: Likewise. + * tests/misc/basename: Likewise. + * tests/misc/cat-proc: Likewise. + * tests/misc/close-stdout: Likewise. + * tests/misc/csplit: Likewise. + * tests/misc/date: Likewise. + * tests/misc/date-sec: Likewise. + * tests/misc/df: Likewise. + * tests/misc/dirname: Likewise. + * tests/misc/expand: Likewise. + * tests/misc/false-status: Likewise. + * tests/misc/fold: Likewise. + * tests/misc/head-c: Likewise. + * tests/misc/head-elide-tail: Likewise. + * tests/misc/head-pos: Likewise. + * tests/misc/mknod: Likewise. + * tests/misc/nice: Likewise. + * tests/misc/nl: Likewise. + * tests/misc/nohup: Likewise. + * tests/misc/paste-no-nl: Likewise. + * tests/misc/pathchk1: Likewise. + * tests/misc/printf: Likewise. + * tests/misc/printf-hex: Likewise. + * tests/misc/pwd-long: Likewise. + * tests/misc/sha224sum: Likewise. + * tests/misc/sha256sum: Likewise. + * tests/misc/sha384sum: Likewise. + * tests/misc/sha512sum: Likewise. + * tests/misc/shuf: Likewise. + * tests/misc/sort-merge: Likewise. + * tests/misc/sort-rand: Likewise. + * tests/misc/split-a: Likewise. + * tests/misc/split-fail: Likewise. + * tests/misc/split-l: Likewise. + * tests/misc/stat-fmt: Likewise. + * tests/misc/stat-printf: Likewise. + * tests/misc/tac-continue: Likewise. + * tests/misc/test-diag: Likewise. + * tests/misc/tty-eof: Likewise. + * tests/misc/wc-files0: Likewise. + * tests/misc/wc-files0-from: Likewise. + * tests/mkdir/concurrent-1: Likewise. + * tests/mkdir/p-1: Likewise. + * tests/mkdir/p-2: Likewise. + * tests/mkdir/p-3: Likewise. + * tests/mkdir/p-slashdot: Likewise. + * tests/mkdir/p-thru-slink: Likewise. + * tests/mkdir/parents: Likewise. + * tests/mkdir/perm: Likewise. + * tests/mkdir/special-1: Likewise. + * tests/mkdir/t-slash: Likewise. + * tests/mkdir/writable-under-readonly: Likewise. + * tests/mv/Makefile.am: Likewise. + * tests/mv/acl: Likewise. + * tests/mv/atomic: Likewise. + * tests/mv/backup-is-src: Likewise. + * tests/mv/childproof: Likewise. + * tests/mv/diag: Likewise. + * tests/mv/dir-file: Likewise. + * tests/mv/dir2dir: Likewise. + * tests/mv/dup-source: Likewise. + * tests/mv/force: Likewise. + * tests/mv/hard-2: Likewise. + * tests/mv/hard-3: Likewise. + * tests/mv/hard-4: Likewise. + * tests/mv/hard-link-1: Likewise. + * tests/mv/i-1: Likewise. + * tests/mv/i-2: Likewise. + * tests/mv/i-3: Likewise. + * tests/mv/i-4: Likewise. + * tests/mv/i-link-no: Likewise. + * tests/mv/into-self: Likewise. + * tests/mv/into-self-2: Likewise. + * tests/mv/into-self-3: Likewise. + * tests/mv/into-self-4: Likewise. + * tests/mv/leak-fd: Likewise. + * tests/mv/mv-special-1: Likewise. + * tests/mv/no-target-dir: Likewise. + * tests/mv/part-fail: Likewise. + * tests/mv/part-hardlink: Likewise. + * tests/mv/part-rename: Likewise. + * tests/mv/part-symlink: Likewise. + * tests/mv/partition-perm: Likewise. + * tests/mv/perm-1: Likewise. + * tests/mv/reply-no: Likewise. + * tests/mv/setup: Likewise. + * tests/mv/to-symlink: Likewise. + * tests/mv/trailing-slash: Likewise. + * tests/mv/update: Likewise. + * tests/mv/vfat: Likewise. + * tests/od/od-N: Likewise. + * tests/od/x8: Likewise. + * tests/pr/Makefile.am: Likewise. + * tests/pr/Test.pm: Likewise. + * tests/readlink/can-e: Likewise. + * tests/readlink/can-f: Likewise. + * tests/readlink/can-m: Likewise. + * tests/readlink/rl-1: Likewise. + * tests/rm/Makefile.am: Likewise. + * tests/rm/cycle: Likewise. + * tests/rm/dangling-symlink: Likewise. + * tests/rm/deep-1: Likewise. + * tests/rm/dir-no-w: Likewise. + * tests/rm/dir-nonrecur: Likewise. + * tests/rm/dot-rel: Likewise. + * tests/rm/empty-inacc: Likewise. + * tests/rm/empty-name: Likewise. + * tests/rm/f-1: Likewise. + * tests/rm/fail-2eperm: Likewise. + * tests/rm/fail-eperm: Likewise. + * tests/rm/hash: Likewise. + * tests/rm/i-1: Likewise. + * tests/rm/i-no-r: Likewise. + * tests/rm/inaccessible: Likewise. + * tests/rm/interactive-always: Likewise. + * tests/rm/interactive-once: Likewise. + * tests/rm/ir-1: Likewise. + * tests/rm/isatty: Likewise. + * tests/rm/no-give-up: Likewise. + * tests/rm/r-1: Likewise. + * tests/rm/r-2: Likewise. + * tests/rm/r-3: Likewise. + * tests/rm/rm1: Likewise. + * tests/rm/rm2: Likewise. + * tests/rm/rm3: Likewise. + * tests/rm/rm4: Likewise. + * tests/rm/rm5: Likewise. + * tests/rm/sunos-1: Likewise. + * tests/rm/unread2: Likewise. + * tests/rm/unread3: Likewise. + * tests/rm/unreadable: Likewise. + * tests/rmdir/fail-perm: Likewise. + * tests/rmdir/ignore: Likewise. + * tests/rmdir/t-slash: Likewise. + * tests/seq/basic: Likewise. + * tests/sha1sum/basic-1: Likewise. + * tests/sha1sum/sample-vec: Likewise. + * tests/shred/exact: Likewise. + * tests/shred/remove: Likewise. + * tests/sort/Makefile.am: Likewise. + * tests/sort/Test.pm: Likewise. + * tests/sort-time/Makefile: Likewise. + * tests/sort-time/README: Likewise. + * tests/sort-time/rand-gen: Likewise. + * tests/stty/basic-1: Likewise. + * tests/stty/row-col-1: Likewise. + * tests/sum/basic-1: Likewise. + * tests/sum/sysv: Likewise. + * tests/tac/Makefile.am: Likewise. + * tests/tac/Test.pm: Likewise. + * tests/tail/Makefile.am: Likewise. + * tests/tail/Test.pm: Likewise. + * tests/tail-2/Makefile.am: Likewise. + * tests/tail-2/append-only: Likewise. + * tests/tail-2/assert: Likewise. + * tests/tail-2/assert-2: Likewise. + * tests/tail-2/big-4gb: Likewise. + * tests/tail-2/fflush: Likewise. + * tests/tail-2/infloop-1: Likewise. + * tests/tail-2/proc-ksyms: Likewise. + * tests/tail-2/start-middle: Likewise. + * tests/tail-2/tail-n0f: Likewise. + * tests/tee/basic: Likewise. + * tests/tee/dash: Likewise. + * tests/test/Makefile.am: Likewise. + * tests/test/Test.pm: Likewise. + * tests/touch/Makefile.am: Likewise. + * tests/touch/dangling-symlink: Likewise. + * tests/touch/empty-file: Likewise. + * tests/touch/fail-diag: Likewise. + * tests/touch/fifo: Likewise. + * tests/touch/no-create-missing: Likewise. + * tests/touch/no-rights: Likewise. + * tests/touch/not-owner: Likewise. + * tests/touch/obsolescent: Likewise. + * tests/touch/read-only: Likewise. + * tests/touch/relative: Likewise. + * tests/tr/Makefile.am: Likewise. + * tests/tr/Test.pm: Likewise. + * tests/tr/failures: Likewise. + * tests/tsort/basic-1: Likewise. + * tests/unexpand/basic-1: Likewise. + * tests/uniq/Makefile.am: Likewise. + * tests/uniq/Test.pm: Likewise. + * tests/wc/Makefile.am: Likewise. + * tests/wc/Test.pm: Likewise. + +2006-08-17 Jim Meyering <jim@meyering.net> + + ls -CF would misalign columns in some cases. + * src/ls.c (get_type_indicator): New function. extracted from... + (print_type_indicator): ...here. Use it. + (length_of_file_name_and_frills): Use it here, too, rather than + assuming stat.st_mode is valid. + Reported by Andreas Schwab, here: + <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7774> + See the test for this above. FYI, I did ls -CF /proc and visually + inspected the result. + + * src/copy.c (copy_internal, same_file_ok): Adjust comments not + to mention the now-removed cp_options.xstat member. + + * Makefile.maint (patch-check): Adapt to work now that the patch + modifies more than one file in src/. + + With this patch, permit building with Solaris cc on Solaris 7. + * src/c99-to-c89.diff: Add diffs to convert more c99-isms. + This integrates patches from Bruno Haible. + +2006-08-16 Paul Eggert <eggert@cs.ucla.edu> + + Fix some problems reported by Bruno Haible. + * tests/chmod/setgid (abs_srcdir): Remove; not used or needed. + Skip this test if "chmod g+s d" silently does nothing. + * tests/ls-2/tests: Skip this test suite if we can't set up files + properly for the setuid-etc test. This simplifies some of the + hacks we were using to work around porting problems. + +2006-08-16 Jim Meyering <jim@meyering.net> + + * tests/cp/Makefile.am: Don't mark "acl" as XFAIL. + * tests/cp/acl: Instead, skip the test if either setfacl + or getfacl fails. + Reported by Michael Stone. + +2006-08-16 Paul Eggert <eggert@cs.ucla.edu> + + * tests/lang-default (LC_ALL): Set to "C", so we get + English-language diagnostics. Unset the other variables; it + should be portable to use 'unset' for this stuff nowadays. + Problem reported by Bruno Haible. Using "C" reverses the + 2000-10-22 change to fileutils in this area. + + Fix bugs when printing plurals of numbers that are not + unsigned long int values. + * src/system.h (select_plural): New function. + * src/md5sum.c (digest_check): Use select_plural to avoid bug. + * src/uptime.c (print_uptime): Likewise. + * src/dd.c (print_stats): Likewise. Also, don't use ngettext to + print a floating point number, as reducing to 0 or 1 doesn't work + for some languages. Instead, just use "s" for seconds since it + doesn't need a plural form. + +2006-08-16 Bruno Haible <bruno@clisp.org> + + Old versions of gzip would write --help output to stderr, and it + would be annoying to see that in the output of every "make" command. + * Makefile.maint (gzip_rsyncable): Throw away stderr output of + "gzip --help". + +2006-08-16 Andreas Schwab <schwab@suse.de> + + * tests/cp/acl: Don't use non-portable == operator for test. + +2006-08-16 Jim Meyering <jim@meyering.net> + + * tests/ls/stat-dtype: Use stat to test file system type, rather + than df -T, in case /etc/mtab lies. Reported by Michael Stone. + +2006-08-15 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: Mention that df exits with nonzero status if it generates + no output. This change was in 6.0 but inadvertently unmentioned. + * src/df.c (file_systems_processed): Renamed from n_valid_args, and now + a boolean. + (show_dev): Don't set it until we actually output something. + Print the header if this is the first output. + (main): Don't print a header, as that is now show_dev's job. + * tests/misc/Makefile.am (TESTS): Add df. + * tests/misc/df: New file. + +2006-08-15 Eric Blake <ebb9@byu.net> + + * src/stat.c (USE_STATVFS): Define to 0 if f_type is needed, but + statvfs.f_type not present. See + <http://savannah.gnu.org/bugs/?func=detailitem&item_id=16325>. + +2006-08-15 Paul Eggert <eggert@cs.ucla.edu> + + * src/dd.c (print_stats): Don't substitute "1" for number, as this + causes confusion for the Hungarian translators. Problem reported + by Egmont Koblinger here: + http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7726 + +2006-08-15 Jim Meyering <jim@meyering.net> + + * .x-sc_require_config_h: Add lib/at-func.c. + + * NEWS: Add a line for 6.1-cvs. + * configure.ac (AC_INIT): Bump to 6.1 and add "-cvs" suffix. + +2006-08-15 Jim Meyering <jim@meyering.net> + + * Version 6.0. + * NEWS: Record the 6.0 release date. + * configure.ac (AC_INIT): Remove "-cvs" suffix from version string. + + * TODO: Add an item (convert to use gnulib-tool), add to the plan + for id-vs-getgrouplist, and remove a few completed items. + + * Makefile.maint (alpha beta major): Fix syntax error. + +2006-08-13 Jim Meyering <jim@meyering.net> + + * src/shred.c (usage): Don't indent the second line of an item. + Otherwise, help2man would misformat the output. + Reported by Adam Buchbinder in <https://launchpad.net/bugs/48917>. + +2006-08-11 Paul Eggert <eggert@cs.ucla.edu> + + * configure.ac (AM_GNU_GETTEXT): Upgrade to need-formatstring-macros. + Suggested by Eric Blake to avoid problems like + <http://lists.gnu.org/archive/html/bug-coreutils/2006-07/msg00087.html>. + +2006-08-11 Jim Meyering <jim@meyering.net> + + * tests/ls/stat-vs-dirent: Too many (losing) systems trigger the + failure that this test checks for (stat/dirent inode mismatch at + a mount point), so continue to give a diagnostic about the failure, + but don't actually count it as a failure. + +2006-08-10 Paul Eggert <eggert@cs.ucla.edu> + + * ABOUT-NLS: Update from gettext 0.15. + * configure.ac (AM_GNU_GETTEXT_VERSION): Update from 0.13.1 to 0.15. + + * src/csplit.c (struct control): Remove fastmap member. + (extract_regexp): Allocate fastmap separately, since otherwise + it might move due to a realloc. This fixes a bug that led + to a core dump on 64-bit sparc Solaris 10 (Sun Studio 10). + +2006-08-10 Jim Meyering <jim@meyering.net> + + * tests/ls/stat-dtype: If "." is tmpfs, skip this test unless uname -s + reports "Linux". This avoids a failure on Solaris 10's tmpfs. + Redirect both stdout and stderr of df invocations. + + * src/dircolors.hin: Add a TERM directive for each of the following: + ansi, color-xterm, gnome, konsole, kterm, rxvt-cygwin, + rxvt-cygwin-native, screen.linux, xterm-256color. + Sort the TERM directives. + From Mike Frysinger. + +2006-08-09 Paul Eggert <eggert@cs.ucla.edu> + + * src/dd.c (usage): Warn about oflag=append without conv=notrunc. + See Debian bug 373736. + + * src/dircolors.hin: Add mlterm, rxvt-unicode; this fixes Debian + bug 317503. + + * src/.cvsignore: Add shuf. + + * Makefile.maint: Remove the po-update procedure; it doesn't + work with the new repository on http://www.iro.umontreal.ca/. + For now I guess we'll have to fix things by hand. + (do-po-update, po-update): Remove. All references removed. + + * src/shuf.c (next_line): New function. + (read_input): Use it, to avoid relying on GCC-specific behavior + with void * arithmetic. Problem reported by Bob Proulx. + * Makefile.maint (my-distcheck): Compile with -Wpointer-arith + to detect this sort of problem automatically in the future. + +2006-08-09 Jim Meyering <jim@meyering.net> + + * src/ls.c: Add a compile-time check to ensure that filetype + and filetype_letter have the same number of elements. + + * tests/misc/sort-rand: Remove use of --seed=S. + +2006-08-08 Paul Eggert <eggert@cs.ucla.edu> + + Add a command 'shuf', and modify shred and sort to use the new + random number generator library of 'shuf'. + + * AUTHORS: Add shuf. + * README: Likewise. + * NEWS: Likewise. Mention new --random-source option for shred + and sort. Move "sort +1 -2" notice to the appropriate section, + and clarify its role with respect to POSIXLY_CORRECT. + * man/.cvsignore: Add shuf.1. + * man/Makefile.am (dist_man_MANS): Add shuf.1. + (shuf.1): New dependency. + * man/shuf.x: New file. + * src/Makefile.am (bin_PROGRAMS): Add shuf. + (EXTRA_DIST): Remove rand-isaac.c. + (shuf_LDADD): New macro. + * src/rand-isaac.c: Remove, moving most of its contents to + lib/rand-isaac.c. + * src/shuf.c: New file. + * src/shred.c: Use new random-number interface rather than rand-isaac.c. + Don't include rand-isaac.c; include randint.h and randread.h instead. + (RANDOM_SOURCE_OPTION): New enum. + (long_opts, usage, main): New option --random-source. + * src/sort.c: Likewise. + * src/shred.c (struct irand_state, irand_init, irand32, irand_mod): Remove. + All callers changed to use randint interface. + (fillrand): Remove. All callers changed to use randread interface. + (dopass): Remove dependency on ISAAC buffer size. + (genpattern): Don't wipe the random state here. + (randint_source): New static var. + (clear_random_data): New function. + (main): Allocate random source, and arrange to wipe it on exit. + * src/sort.c: Include md5.h, randread.h, xmemxfrm.h. + (longopts, usage, main): Remove undocumented --seed option; + it's now replaced by --random-source. + (rand_state, get_hash): Remove. + (randread_source): New static var. + (random_state, cmp_hashes, compare_random): New functions; they guarantee + no collisions in the random hash function. + (keycompare): Use compare_random for -R; don't fall back on comparing + via memcoll, since compare_random does the right thing. + * tests/misc/Makefile.am (TESTS): Add shuf. + * tests/misc/shuf: New file. + +2006-07-29 Paul Eggert <eggert@cs.ucla.edu> + + * src/copy.c (set_author): Preserve the st_author field via the + file descriptor dest_desc. + +2006-07-28 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: chmod now preserves setuid and setgid bits on directories + if you use a numeric mode with them clear, e.g., "chmod 755 DIR". + + Fix test case problems if working directory is setgid, + reported by Bob Proulx. + * tests/cp/fail-perm: Use symbolic mode so that we clear + setgid bit more reliably on directories. + * tests/mkdir/special-1 (set_mode_string): Likewise. + +2006-07-27 Jim Meyering <jim@meyering.net> + + * src/chgrp.c (usage): Use correct grammar in description of the + --reference option + * src/chown.c (usage): Likewise. + +2006-07-26 Thomas Schwinge <tschwinge@gnu.org> (tiny change) + + * src/copy.c (set_author) [HAVE_STRUCT_STAT_ST_AUTHOR]: + Correctly access SRC_SB's element ST_AUTHOR. + +2006-07-26 Jim Meyering <jim@meyering.net> + + * tests/ls/stat-failed: Adapt to match new expected output. + From Paul Eggert. + + * src/ls.c (print_color_indicator): Test for S_IFREG first, rather + than having the code test for all of the other types first. + Hoist the set-uid/gid-testing code "up" into this new block. + Classify any other type of file (e.g., S_TYPEISSHM, etc.) as + C_ORPHAN, not as C_FILE. + +2006-07-26 Jim Meyering <jim@meyering.net> + + Checking in a change from Paul. + + 2006-07-25 Paul Eggert <eggert@cs.ucla.edu> + + * src/ls.c (DT_INIT): Remove. All uses removed. + (enum filetype): Use an ordinary enum rather than trying to keep + the values in sync with DT_FIFO etc. That way, we don't have + to make special assumptions about them. All uses changed. + (whiteout): New constant member of enum filetype. + (filetype_letter): New constant, for use with enum filetype. + (FILETYPE_INDICATORS): New initializer list. + (print_dir): Add case for DT_WHT. + (gobble_file): If stat fails, don't discard information from + readdir; instead, preserve it so it can be printed. + (print_long_format): Fall back on readdir result if stat info + is not available. Use "?" to denote each unknown mode char, + instead of an overall "?", since we now know some of the mode + typically. + (print_type_indicator): Now that MODE isn't necessarily + useful, guard all uses. + Now that two blocks in the type-checking tree can set "type = C_FILE", + move the suffix-handling code out and down. + +2006-07-26 Jim Meyering <jim@meyering.net> + + Prepare for the above change. + * src/ls.c [struct fileinfo] (stat_ok): Rename from stat_failed, + and adjust uses. From a patch by Paul Eggert. + +2006-07-26 Jim Meyering <jim@meyering.net> + + * src/ls.c: Correct indentation/formatting in a few places. + +2006-07-25 Paul Eggert <eggert@cs.ucla.edu> + + * tests/cp/fail-perm: Use "chmod 0500" rather than "chmod 500". + Problem report and fix from Bob Proulx. + * NEWS: Clarify the "chmod 0500" news, and correct the vague + statements about compatibility with BSD. + +2006-07-25 Jim Meyering <jim@meyering.net> + + * src/ls.c (gobble_file): When handling a stat-failed entry, + print the entry name not the absolute_name -- to be consistent + with the usual case. + * tests/ls/stat-failed: Update accordingly. + + * src/ls.c: Add parens around the new uses of ?: ternary operator. + + * src/dircolors.hin: Mention that ORPHAN refers not just to dangling + symlinks. + + Get --dired offsets right when handling stat-failed entries. + * src/ls.c (print_long_format): Be careful to increment P by the + appropriate amount, even when inode_number_width and nlink_width + are zero. + * tests/ls/stat-failed: Test for the above. + + * src/ls.c (gobble_file) [USE_ACL]: Don't use-uninitialized the + have_acl member. That would happen for a directory with both a + non-stat'able entry and one with an ACL. + + * src/ls.c (gobble_file): Make it so failure to stat a + non-command-line file provokes an exit status of 1, not 0. + Say "cannot access" rather than "cannot stat". + * tests/ls/stat-failed: New file/test, for the above. + * tests/ls/Makefile.am (TESTS): Add stat-failed. + * tests/ls-2/tests (no-a-isdir-b): Update to reflect addition + of "cannot access " to diagnostic. + + * src/ls.c: Declare stat_failed to be "bool", not "int" everywhere. + + * src/ls.c [enum filetype] (command_line): Remove member. Not needed. + Replace all occurrences of "type == command_line" with the + equivalent, "command_line_arg". + + * src/ls.c: Apply the stat-failed parts of Red Hat's + coreutils-selinux.patch. From Ulrich Drepper. + This makes it so files not mentioned on the command line (e.g., + names read from a directory that *is* mentioned on the command + line) for which stat fails are still listed. With --color, + such files are colored just like ORPHANs (aka dangling symlinks). + + * src/df.c (n_valid_args): Declare global to be static. + +2006-07-24 Jim Meyering <jim@meyering.net> + + * tests/ls/stat-dtype: Skip this test on reiserfs, since that file + system lacks d_type support. + +2006-07-22 Paul Eggert <eggert@cs.ucla.edu> + + * man/chmod.x: Update to reflect recent changes to coreutils.texi. + +2006-07-21 Jim Meyering <jim@meyering.net> + + * src/su.c (usage): Correct typo in --help output: s/commmand/command/ + Reported by Tim Waugh. + Also remove the comment duplicating much of --help output. + + * src/ls.c (FILE_TYPE_INDICATOR_OPTION): Reposition this new + name so the list remains alphabetized. + + Fix another bug: ls --indicator-style=file-type would call + stat for a symlink, even though it wasn't always needed. + In some cases, that unnecessary stat would cause ls to fail. + * src/ls.c (gobble_file): Don't treat symlinks specially (in + requiring a stat syscall). Remove the offending exclusion. + + * NEWS: Mention the fix. + + * tests/ls/stat-dtype: New file/test, for the above fix. + Also exercises the new df feature, below. + + * src/df.c (main): Fail and don't print the headers if no + file system is processed. This makes it easy to test whether + a specified directory is on a file system of a given type or types. + Otherwise, applications would have had to parse df's output. + E.g., is "." either ext3 or reiserfs: df -t ext3 -t reiserfs . + + Fix a bug: ls --file-type worked like --indicator-style=slash, + rather than like --indicator-style=file-type. + * src/ls.c (FILE_TYPE_INDICATOR_OPTION): New enum member. + (long_options): Map "file-type" to FILE_TYPE_INDICATOR_OPTION, + not to 'p'. + (decode_switches): Handle new case: FILE_TYPE_INDICATOR_OPTION. + * NEWS: Mention the fix. + * tests/ls-2/tests (file-type): New test, for the above fix. + +2006-07-19 Jim Meyering <jim@meyering.net> + + * src/ls.c (print_dir): Give a better diagnostic for failed opendir. + + * Makefile.am (EXTRA_DIST): Add build-aux/vc-list-files. + +2006-07-16 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: chmod, install, and mkdir now leave setgid and setuid bits + of directories alone unless you specify them explicitly. + install and mkdir now implement X correctly. + install now creates parent directories with mode 755, without + changing their owner or group. + * src/chmod.c (process_file): Adjust to mode_adjust API change. + * src/install.c: Include mkancesdirs.h. + (announce_mkdir, make_ancestor): New functions. + (DEFAULT_MODE): New macro, specifying initial value of 'mode'. + (mode): Use it. + (dir_mode, dir_mode_bits): New vars. + (main): Set dir modes separately from nondir, so that the X + op of -m works correctly. + (main): Remove cwd_errno cruft, since make_dir_parents no longer + affects cwd. Adjust to new make_dir_parents API. + (install_file_in_file_parents): 2nd arg is now char *, not char + const *. Use mkancesdirs instead of rolling our own code. + (change_attributes): Don't worry about AFS, since that kludge + should not be needed any more. + * src/mkdir.c (struct mkdir_options): New struct. + (announce_mkdir, make_ancestor): New functions. + (main): Use them. Adjust to mode_adjust API change. Stick with + umask 0. Use make_dir_parents for all the work. + * src/mkfifo.c (main): Adjust to new mode_adjust API. + * src/mknod.c (main): Likewise. + * tests/chmod/setgid: Do the setgid test instead of bailing. + * tests/mkdir/p-3: Remove re_protect case that no longer applies. + GNU chmod now behaves like other versions of chmod. + * tests/mkdir/perm: Add a test for the X bug. + +2006-07-14 Paul Eggert <eggert@cs.ucla.edu> + + * src/base64.c (do_decode): Output to parameter OUT, not to stdout. + This doesn't fix any bugs, since OUT always equals stdout, but it + makes the code easier to understand. + +2006-07-14 Jim Meyering <jim@meyering.net> + + * Makefile.maint (CVS_LIST): Use new file, build-aux/vc-list-files, + rather than open-coding it. Now supports mercurial, too. + * .hgignore: New file. + * Makefile.am (EXTRA_DIST): Add .hgignore, which ignores nearly + all generated files, including ones like configure and po/*.po + that are currently version-controlled in cvs. + + * Makefile.am (EXTRA_DIST): Add a few more .??* files. + They've been in CVS, just haven't been distributed before this. + Distribute ChangeLog-2005, too. + (MAINTAINERCLEANFILES): Add THANKS-to-translators. + +2006-07-11 Paul Eggert <eggert@cs.ucla.edu> + + * src/system.h: Assume <dirent.h> exists, since gnulib assumes + this now as well. + +2006-07-09 Jim Meyering <jim@meyering.net> + + * tests/mv/dir2dir: Adjust so failing with ENOTEMPTY is ok, too. + That happens with Linux/tmpfs. + * tests/mv/Makefile.am (TESTS): Add dir2dir. + +2006-07-09 Paul Eggert <eggert@cs.ucla.edu> + + Adjust to recent updates from gnulib. + * src/dd.c (apply_translations): Use toupper rather than + islower followed by toupper; it's simpler and typically + faster now that we assume at least C89 semantics. Similarly + for tolower. + * src/sort.c (inittables): Likewise. + * src/expand.c (expand): Don't assume that isprint etc. return + booleans (needed for pre-C99 hosts). + * src/fmt.c (check_punctuation): Likewise. + * src/ptx.c (initialize_regex, fix_output_parameters): Likewise. + * src/tr.c (is_char_class_member): Likewise. + * src/unexpand.c (unexpand): Likewise. + * src/join.c (is_blank): Remove; no longer needed. All uses + replaced by isblank (to_uchar (...)). + * src/pinky.c (create_fullname): Don't assume char is unsigned. + * src/printf.c (print_esc): Likewise. + * src/ptx.c (SKIP_NON_WHITE, SKIP_WHITE, SKIP_WHITE_BACKWARDS): + (copy_unescaped_string): Likewise. + * src/stat.c (print_it): Likewise. + * src/system.h (_D_EXACT_NAMELEN): Renamed from NLENGTH, for + convenience on GNU systems. All uses changed. Don't bother + looking for any dirent.h substitute other than ndir.h. + (D_INO): Remove unnecessary parentheses. + (IN_CTYPE_DOMAIN, ISGRAPH, ISPRINT, ISALNUM, ISALPHA): + (ISCNTRL, ISLOWER, ISPUNCT, ISSPACE, ISUPPER, ISXDIGIT): + (ISDIGIT_LOCALE, TOLOWER, TOUPPER): Remove. All uses changed + to ctype.h equivalents. + (isblank): Renamed from ISBLANK. Check for HAVE_DECL_ISBLANK too. + All uses changed. + +2006-07-08 Jim Meyering <jim@meyering.net> + + * tests/mv/dir2dir: New file, test for 2006-07-05 fix in copy.c. + + * Makefile.maint (sc_the_the): New rule. + + * src/dd.c (skip): Remove one of two adjacent "the"s in a comment. + * tests/Coreutils.pm (run_tests): Remove one of two adjacent "then"s + in a comment. + +2006-07-07 Jim Meyering <jim@meyering.net> + + * NEWS: Mention that mv can now remove an empty destination directory, + and give an example. Prompted by a report from Florent Bayle. + +2006-07-05 Jim Meyering <jim@meyering.net> + + * src/ls.c (usage): Correct the description of -G: it is useful + only in a long listing. Reported by Martin Pool in + <https://launchpad.net/distros/ubuntu/+source/coreutils/+bug/51653>. + + * man/chmod.x: Correct the description of the sticky bit. Reported + by Chris Moore via Ian Jackson in <http://bugs.debian.org/376745>. + + * src/copy.c (copy_internal): Don't work around old NFS clients like + SunOS-4.1.4 and Irix 5.3 that set errno to values like EIO and + ENOTEMPTY upon failed rename. Otherwise, we risk misinterpreting + a banal failure as a recursive move-into-self failure. + Reported by Florent Bayle in <http://bugs.debian.org/376749>. + + * src/c99-to-c89.diff: Regenerate, to remove fuzz. + +2006-07-03 Jim Meyering <jim@meyering.net> + + Plug another unusual leak. + (AD_mark_helper): Free malloc'd filename if hash_insert says + that string is already in the hash table. + + The dev/inode of the topmost directory in each hierarchy were not + being recorded. + * src/remove.c (remove_cwd_entries): Don't call cycle_check here. + (AD_push): Call it from here instead. + + Fix two small leaks. + * src/remove.c (AD_stack_clear): New function. + (rm_1): Use it. + (AD_pop_and_chdir): Free *prev_dir just before longjmp. + + * tests/Makefile.am, tests/*/Makefile.am: (TESTS_ENVIRONMENT): + Add $VG_PATH_PREFIX as a prefix to $PATH + + * tests/envvar-check (vars): Add CDPATH and POSIXLY_CORRECT. + * tests/Makefile.am (evar-check): Remove rule. + (EXTRA_DIST): Remove .env-warn. + * tests/.env-warn: Remove file. No longer used. + Suggestion from Eric Blake. + +2006-07-02 Paul Eggert <eggert@cs.ucla.edu> + + * src/system.h: Include <stdint.h> unconditionally, since we + now assume the stdint module. + +2006-07-01 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: With no operand, 'tail -f' now silently ignores the '-f' + only if standard input is a FIFO or pipe and POSIXLY_CORRECT is set. + * src/tail.c (main): Implement this. + * tests/tail/Test.pm (f-pipe-1): Renamed from f-1. + (test_vector): Set POSIXLY_CORRECT for the f-pipe-* tests. + +2006-07-01 Jim Meyering <jim@meyering.net> + + * src/ln.c (do_link): Use new, shorter URL, for ag-review link. + + * .x-sc_require_config_h: Add ^lib/xstrtold\.c$, so make distcheck + passes once again. + +2006-06-30 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: seq now uses long double internally rather than double. + It now defaults to a minimal fixed point format if possible. + It lets you use %a, %A, %E, %F, %G. + * src/Makefile.am (seq_LDADD): Remove $(SEQ_LIBM); add $(POW_LIB). + * src/seq.c: Don't include <math.h> or <xstrtol.h>; no longer needed. + (isfinite) [!defined isfinite]: New macro. + (separator, terminator): Now points to const. + (first, step, last): Remove. + (usage): Update to match new behavior. + (struct operand, operand): New type. + (scan_arg): Renamed from scan_double_arg, since we no longer use double. + All uses changed. + Compute and return a value of type operand, not double. + (long_double_format): Renamed from valid_format, and now returns a + new format with an "L" added if needed, if the original format was + valid. Allow %a, %A, %E, %F, and %G formats. + (print_numbers): Take numeric values as args rather than from globals. + Print long double, not double. + (get_width_format): Remove. + (get_default_format): New function. + (main): Implement new way of calculating default format. + Don't worry about locale's representation of the decimal point, since + the arguments are always processed in the C locale. + * tests/seq/basic (neg-2): Adjust to new default format. + (eq-wid-1, eq-wid-2): Resurrect these tests, since the new + implementation should do the right thing. + +2006-06-30 Jim Meyering <jim@meyering.net> + + * tests/stty/basic-1: Work around an intermittent test failure + on HP-UX 11.11. Report and analysis from Bob Proulx. + http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7475 + +2006-06-28 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: Support obsolete usages like "sort +1 -2" even when + conforming to POSIX 1003.1-2001, since this is a pure extension to + POSIX. Problem reported by Christian in: + http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00220.html + * src/sort.c (main): Implement this. + + * src/system.h (CLOSEDIR): Remove. All uses changed to closedir. + Autoconf 2.60 says this stuff was obsolete. + +2006-06-28 Jim Meyering <jim@meyering.net> + + * src/c99-to-c89.diff: Regenerate, to remove fuzz. + +2006-06-28 Bob Proulx <bob@proulx.com> (tiny change) + + * tests/mv/i-link-no: Work around HP-UX /bin/sh tracing problem + (set -x when VERBOSE=yes) when stderr is redirected before stdout + causing shell tracing of the stdout redirection to be written to + the stderr file. Avoid problem and test failure on HP-UX by + redirecting stderr last. + * tests/dd/unblock-sync: Order shell file redirections for + stderr and stdout in the common style. + tests/acl: Likewise. + +2006-06-27 Jim Meyering <jim@meyering.net> + + * tests/misc/cat-proc: Try to avoid any spurious numeric + differences in frequently-changing /proc/cpuinfo. + Reported by Nelson Beebe. + +2006-06-26 Jim Meyering <jim@meyering.net> + + Attempt rmdir (actually, unlinkat-with-AT_REMOVEDIR) upon any + fd_to_subdirp failure, not just when errno == EACCES. + * src/remove.c (remove_dir): Use unlinkat-with-AT_REMOVEDIR, not + rmdir, here, even though rmdir may happen to be adequate. + + * NEWS: rm no longer fails to remove an empty, unreadable directory + * src/remove.c (remove_cwd_entries): If we can't open a directory, + and the failure is not being ignored, try to remove the directory + with rmdir (aka unlinkat-with-AT_REMOVEDIR), in case it's empty. + Problem report and test case from Paul Eggert in + <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/7425>. + + * tests/rm/empty-inacc: New test, for the above. + + Avoid a segfault for wc --files0=- < /dev/null. + * src/wc.c (compute_number_width): Return right away if nfiles == 0. + +2006-06-25 Jim Meyering <jim@meyering.net> + + * NEWS: wc accepts a new option --files0-from=FILE, where FILE + contains a list of NUL-separated file names. + + * src/wc.c: Include "readtokens.h". + (usage): Describe the new option, and adjust the `Usage': + with this option, no FILE may be specified on the command line. + (main): Handle the new option. + * tests/misc/wc-files0: New tests, for the above. + * tests/misc/wc-files0-from: Likewise. + * tests/misc/Makefile.am (TESTS): Add wc-files0. + +2006-06-24 Jim Meyering <jim@meyering.net> + + * src/md5sum.c (DIGEST_BUFFER): Remove now-unused definitions. + +2006-06-22 Jim Meyering <jim@meyering.net> + + * src/tee.c (tee_files): Rename from tee, to avoid conflict with + the function in glibc's <fcntl.h>. Reported by Andreas Schwab. + +2006-06-19 Jim Meyering <jim@meyering.net> + + * Makefile.cfg (local-checks-to-skip): Add changelog-check, + so this check is not run as part of "make distcheck". + +2006-06-18 Bob Proulx <bob@proulx.com> (tiny change) + + * tests/misc/pwd-long: Fix typo (s/neq/ne/) in previous change. + +2006-06-18 Jim Meyering <jim@meyering.net> + + * tests/misc/pwd-long: Make error output a little clearer. + +2006-06-17 Jim Meyering <jim@meyering.net> + + * tests/rm/inaccessible: Skip this test on systems without openat + support. Reported by Bob Proulx. + +2006-06-15 Bob Proulx <bob@proulx.com> (tiny change) + + * tests/misc/mknod: Improve permission checks to handle + running mkdir test in set-gid directories. + +2006-06-14 Jim Meyering <jim@meyering.net> + + * tests/du/basic: Revamp not to hard-code file system block sizes. + +2006-06-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * tests/du/Makefile.am (TESTS_ENVIRONMENT): Pass $(PERL), for + files0-from test. + +2006-06-11 Jim Meyering <jim@meyering.net> + + * .gitignore: New file. + * Makefile.am (EXTRA_DIST): Add .gitignore. + + Setting TIME_STYLE=long-iso in the environment would make the + cp/same-file test fail. + * tests/envvar-check (vars): Add TIME_STYLE to the list. + * tests/cp/same-file: Revert last change. + Source the envvar-check script, to ensure that TIME_STYLE + settings don't affect these tests. + +2006-06-11 Paul Eggert <eggert@cs.ucla.edu> + + * tests/cp/same-file: Execute 'ls' in the C locale, so that it + uses POSIX time stamp formats. Problem reported by John Nixon in + <http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00062.html>. + +2006-06-10 Jim Meyering <jim@meyering.net> + + * NEWS: Mention the AIX-strndup-bug vs. dircolors workaround. + + Require a "Version N.M" line at the top of the ChangeLog + file only when making the actual release, not when running + "make distcheck". + * Makefile.maint (maintainer-distcheck): Don't depend on + changelog-check. + (alpha beta major): Depend on it here, instead. + +2006-06-08 Jim Meyering <jim@meyering.net> + + Ensure that cat works with any of the options, -A -v -e -E -T, + when applied to files in /proc and /sys, even when the FIONREAD + ioctl produces nonsensical results. Before this change, cat would + produce no output (or truncated output), for some linux kernels. + + * src/cat.c (write_pending): New function, factored out of cat. + (cat): Also interpret a negative ioctl/FIONREAD count as indicating + that there are bytes to read. Some versions of linux-2.6.16 do that. + Write any pending output before returning. + Reported by Dan Jacobson in <http://bugs.debian.org/370583>. + * NEWS: Mention this bug fix. + * tests/misc/cat-proc: New file. Test for the above. + * tests/misc/Makefile.am (TESTS): Add cat-proc. + +2006-06-07 Paul Eggert <eggert@cs.ucla.edu> + + * src/expr.c (eval4): Detect overflow properly when multiplying + INTMAX_MIN * -1. + +2006-06-06 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: The 'expr' command now detects and reports integer overflow. + (It would be better to use extended precision instead, but that + would be more work.) + * src/expr.c (integer_overflow): New function. + (eval4, eval3): Check for integer overflow. + +2006-06-05 Paul Eggert <eggert@cs.ucla.edu> + + Fix problems when building with Solaris/SVR4/etc. make, which uses a + different and somewhat bogus implementation of VPATH. In the + directory tests/misc, rename tests whose names might appear in the + Automake-generated rules. For example, we can't use a test named + 'test', since Automake generates a rule that contains the text + "if test -f ./$$tst; ...", and this might expand to something like + "if ../../../coreutils-6.0/tests/misc/test -f ./$$test; ...", + which executes the 'test' script rather than the 'test' command. + * tests/misc/false-status: Renamed from tests/misc/false. + * tests/misc/pwd-long: Renamed from tests/misc/pwd. + * tests/misc/sort-merge: Renamed from tests/misc/sort. + ($prog): Set to 'sort' rather than to $PROG. + * tests/misc/test-diag: Renamed from tests/misc/test. + * tests/misc/Makefile.am (PROG): Take the basename of $$tst, + in case Solaris make has prepended the directory. + (TESTS): Adjust to above renamings. + * tests/misc/expand: Don't assign to PROG; no longer needed + now that Makefile.am sets PROG to the basename. + * tests/misc/fold: Likewise. + +2006-06-03 Jim Meyering <jim@meyering.net> + + Make `cp --link --no-dereference' work also on systems where the + link system call cannot create a hard link to a symbolic link. + * src/copy.c (copy_internal) [LINK_FOLLOWS_SYMLINKS]: Don't use + the link syscall on a symlink when it would do the wrong thing. + Based on the patch by Aurelien Jarno: <http://bugs.debian.org/329451> + * tests/cp/link-no-deref: New file/test for the above. + * tests/cp/Makefile.am (TESTS): Add link-no-deref. + * NEWS: Mention the change (doesn't affect Linux). + +2006-06-01 Paul Eggert <eggert@cs.ucla.edu> + + Fix some porting problems in the test cases reported by + Ralf Wildenhues for HP-UX 11.23 in: + http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00238.html + * tests/help-version: Don't assume that \< \> works in sed. + * tests/misc/close-stdout: Don't assume that >&- works. + Add a /dev/full test. + * tests/touch/no-create-missing: Don't assume that >&- works. + +2006-05-30 Jim Meyering <jim@meyering.net> + + * src/ls.c (usage): Add `v' to the list of sorting-related options. + From Justin Pryzby. + +2006-05-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * tests/cp/fail-perm: source lang-default. + * tests/rm/inaccessible: Likewise. + +2006-05-28 Jim Meyering <jim@meyering.net> + + * tests/rm/inaccessible: AIX 4.3.3 gives a different diagnostic. + Recognize it, too. Reported by Ralf Wildenhues, in + http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00192.html + +2006-05-27 Jim Meyering <jim@meyering.net> + + * src/chgrp.c: Support new options: --preserve-root and + --no-preserve-root. Somehow this program was skipped when those + options were added to chown, chmod, and rm. Reported by + vaqflabuopac@spammotel.com in <http://bugs.debian.org/365656>. + * NEWS: Mention this. + +2006-05-25 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: Remove mention of --seed. We'll replace it with something + better, and don't want to indicate that it is supported. + * src/sort.c (usage): Likewise. + +2006-05-20 Jim Meyering <jim@meyering.net> + + * src/chmod.c (main): Use FTS_PHYSICAL here, too. + + * src/du.c (main): Rename local, s/symlink_deref_bit/symlink_deref_bits/ + and arrange for -D to set fts' FTS_PHYSICAL bit as well as + FTS_COMFOLLOW. Spotted by Justin Pryzby. + + * gnupload: Merge changes from automake, retaining the ""--to... + kludge to placate overzealous `make distcheck' check. + +2006-05-19 Jim Meyering <jim@meyering.net> + + * src/du.c (main): Don't let -D, -L, or -P turn off the internal + FTS_TIGHT_CYCLE_CHECK directory traversal option. + Reported by Justin Pryzby in http://bugs.debian.org/367691 + +2006-05-15 Jim Meyering <jim@meyering.net> + + * src/cp.c (usage): Correct description of -a: s/-dpR/-dpPR/. + From Tomas Pospisek. + +2006-05-13 Jim Meyering <jim@meyering.net> + + * tests/mv/no-target-dir: Test two more cases. + +2006-05-11 Jim Meyering <jim@meyering.net> + + mv -T DIR EMPTY_DIR no longer fails unconditionally + * src/copy.c (copy_internal): Don't manually prohibit a move where + the destination is an existing directory. Sometimes doing that is + valid. Let the rename system call enforce the rules. That is + allowed only when the source is a directory and the destination + directory (to be replaced) is empty. Reported by Eric Blake. + * tests/mv/no-target-dir: New file/test for this. + * tests/mv/Makefile.am (TESTS): Add no-target-dir. + * NEWS: Mention this. + + * tests/mv/atomic: New file/test for yesterday's fix. + * tests/mv/Makefile.am (TESTS): Add atomic. + + * tests/du/long-sloop: Avoid harmless `ambiguous redirect' diagnostic. + +2006-05-10 Jim Meyering <jim@meyering.net> + + * src/copy.c (copy_internal): Don't explicitly unlink the destination + when moving a symlink into the place of an existing non-directory. + Reported by Joshua Hudson. + * NEWS: mention this. + +2006-05-07 Jim Meyering <jim@meyering.net> + + * Makefile.maint (patch-check): Fail if patch generates any output, + even merely for changed offsets. + + * src/c99-to-c89.diff: Adjust to reflect new offsets. + + * NEWS: Mention changes affecting df, pwd, shred. + +2006-05-06 Jim Meyering <jim@meyering.net> + + * tests/ls/stat-vs-dirent: New test, to detect the bogus file + system condition where dirent.d_ino != stat.st_ino. + * tests/ls/Makefile.am (TESTS): Add stat-vs-dirent. + +2006-05-06 Eric Blake <ebb9@byu.net> + + * tests/ls/inode: Expand to test inode from readdir case. + * tests/ls/follow-slink: Expand to test broken links encountered + implicitly, favoring Solaris 9 and OpenBSD 3.4 behavior. + +2006-05-06 Eric Blake <ebb9@byu.net> + + * tests/mv/leak-fd: Work even on case-insensitive file system. + +2006-05-04 Jim Meyering <jim@meyering.net> + + * NEWS: Mention the 2006-03-19 pwd-related change that makes + lib/getcwd.c work around inconsistent file system dirent.d_ino data. + +2006-05-03 Jim Meyering <jim@meyering.net> + + * src/ls.c (DEFINE_SORT_FUNCTIONS, LIST_SORTFUNCTION_VARIANTS): + Use better macro parameter names: s/basename/key_name/, + s/basefunc/key_cmp_func. Fix typo in comment. + +2006-04-29 Eric Blake <ebb9@byu.net> + + * src/ls.c (main): On systems with d_type, directories_first only + implies format_needs_type, not format_needs_stat. + +2006-05-03 Jim Meyering <jim@meyering.net> + + * src/ls.c (xstrcoll_df_version, rev_xstrcoll_df_version): Add space + after comma in arg list, from Eric Blake. + +2006-04-25 Paul Eggert <eggert@cs.ucla.edu> + + * tests/misc/date (relative-3): New test, derived from a bug + report by John Thomas McDole. + +2006-04-23 Francesco Montorsi <fr_m@hotmail.com> + + New option for ls: --group-directories-first. + It makes ls list directories before files. + * NEWS [New features]: Mention it. + * src/ls.c (sort_type): Rearrange to use as an array index when + choosing sort function; added new sort_numtypes member for + compile-time check. + (time_type): Add new time_numtypes member for compile-time check. + (directories_first): New global variable. + (GROUP_DIRECTORIES_FIRST_OPTION): New enum. + (long_options): Add --directories-first. + (main): Support new option. + (is_directory): New function. + (extract_dirs_from_files): Use it. + (DIRFIRST_CHECK, DEFINE_SORT_FUNCTIONS) + (LIST_SORTFUNCTION_VARIANTS): New macros. + (sort_functions): New global variable. + (sort_files): Use it. + (usage): Document new option. + +2006-04-18 Paul Eggert <eggert@cs.ucla.edu> + + * src/shred.c (fillrand): The assertion was way too weak, due to + what must be a typo. Strengthen it to its intended value. + (dopass): Don't use alloca; it's not worth the aggravation here, + since it's used only to get a page-aligned buffer, and page + alignment doesn't buy us much here. I'm suspicious that alloca + causes problems on some hosts, due to a recent bug report by Adam + Waltman: http://bugs.gentoo.org/130246. + +2006-04-18 Jim Meyering <jim@meyering.net> + + * tests/misc/tty-eof: Add new programs, base64, sha224sum, sha256sum, + sha384sum, sha512sum. + +2006-04-17 Paul Eggert <eggert@cs.ucla.edu> + + * src/chmod.c (describe_change): Adjust to filemode changes. + * src/ls.c (HAVE_ST_DM_MODE): Remove; moved to ../lib/filemode.c. + (print_long_format): Use (new) filemodestring rather than + (old) mode_string, so that we get more file types right, at least + in theory. Adjust to filemode changes. + * src/stat.c (human_access): Likewise. + +2006-04-18 Jim Meyering <jim@meyering.net> + + * src/ptx.c (main) [DEFAULT_IGNORE_FILE]: Remove code to use a default + ignore file. This has never been enabled. Reported by Eric Blake. + +2006-04-12 Paul Eggert <eggert@cs.ucla.edu> + + * src/ln.c (linkfunc): Remove. This method ran into a compiler/linker + bug in Interix. Just call symlink or link directly. All uses changed. + * src/setuidgid.c (main) [! HAVE_SETGROUPS]: Don't call setgroups. + * src/stat.c (USE_STATVFS): New macro. + Include <sys/statvfs.h> and use statvfs only if USE_STATVFS. + (NAMEMAX_FORMAT): define a bit more clearly, now that the + statvfs-using code is a bit more regular. + * src/system.h (sync) [!HAVE_SYNC]: New macro. + +2006-04-11 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: csplit, nl, expr now conform to POSIX better, and are + more-compatible with traditional Unix, with respect to regular + expressions. + * src/csplit.c (extract_regexp): Set re_syntax_options to a + value that is compatible with what POSIX requires. + * src/nl.c (build_type_arg): Likewise. + * src/expr.c (docolon): Likewise. Also, don't let anchors match + newline; this fixes an incompatibility with tradition and with POSIX. + Don't warn about leading ^. POSIX says it is unspecified whether + ^ is a special character, which means that implementations can + either treat it as special or not, but either way a warning is not + allowed (unless the regexp is otherwise invalid). Instead, anchor + the expression but treat ^ as an anchor; this is the traditional + behavior (e.g., Solaris 10). + (eval4, eval3, eval2): Treat non-numeric args, division by zero, + and the like as invalid expressions (exit status 2), not as + failure of 'expr' (exit status 3). This is more consistent with + how Solaris behaves. + * tests/expr/basic (fail-a): Adjust exit status to match new expr + behavior, for status 2 versus 3. + (anchor): New test. + (bre1, bre2, bre3, bre4, bre5, bre6, bre7, bre8, bre9, bre10): + (bre11, bre12, bre13, bre14, bre15, bre16, bre17, bre18, bre19, bre20): + (bre21, bre22, bre23, bre24, bre25, bre26, bre27, bre28, bre29, bre30): + (bre31, bre32, bre33, bre34, bre35, bre36, bre37, bre38, bre39, bre40): + (bre41, bre42, bre43, bre44, bre45, bre46, bre47, bre48, bre49, bre50): + (bre51, bre52, bre53, bre54, bre55, bre56, bre57, bre58, bre59, bre60): + (bre61, bre62): New tests. + * tests/misc/csplit: Use \{...\} in test RE, to test that we're + conforming to POSIX. + + Port to Solaris 8. + * tests/du/long-from-unreachable: Solaris 8 sh doesn't understand + "if !". Do not assume that 'sed' can handle long, newline-free input. + * tests/du/long-sloop: Likewise. Evaluate expr once, not $n times. + +2006-04-10 Paul Eggert <eggert@cs.ucla.edu> + + Adjust to new regex.h API (with new fastmap type), and clean + up the regex storage allocation a bit. + + * src/csplit.c (struct control): Put re_compiled member at the + end, since it's large. Change regexpr member from char * to bool; + all uses changed. Add new member fastmap. + (extract_regexp): regexp arg is now char const *, not char *. + Don't bother duplicating the regular expression; it's not needed. + Set fastmap from new fastmap member. Don't bother allocating + a buffer, as the regexp code does a better job than we do. + * src/expr.c (docolon): Allocate and use a fastmap. + Don't bother allocating a buffer. + * src/nl.c (body_fastmap, header_fastmap, footer_fastmap): + New vars. + (build_type_arg): New fastmap arg. All uses changed. + Don't bother allocating a buffer, but set a fastmap. + * src/ptx.c (context_regex_string, word_regex_string): Remove. + (context_regex, word_regex): New vars, replacing the above. + All uses changed. + (struct regex_data): New type. + (compile_regex): Renamed from alloc_and_compile_regex, since + we no longer allocate storage. Arg is now a struct regex_data *, + not a const char *. All uses changed. Don't allocate the fastmap; + instead, take it from the caller. Don't convert size_t to int, + to avoid arithmetic overflow problems. Don't bother freeing + storage afterwards; it's not worth the aggravation. + * src/tac.c (compiled_separator_fastmap): New ver. + (main): Use it. Don't bother allocating a buffer. + +2006-03-30 Jim Meyering <jim@meyering.net> + + * src/dd.c (iwrite): Remove assignment without effect. + Reported by Felix Rauch Valenti. + +2006-03-22 Eric Blake <ebb9@byu.net> + + * src/ptx.c (usage): Remove mention of --copyright/-C. + (main): Alias --copyright to --version plus a deprecation warning. + * NEWS: Mention this. + +2006-03-27 Jim Meyering <jim@meyering.net> + + * src/Makefile.am (uptime_LDADD): Add $(POW_LIB), for uptime's + use of strtod. Tiny patch from Nickolai Zeldovich. + +2006-03-11 Eric Blake <ebb9@byu.net> + + * tests/misc/dirname: New file. + * tests/basename/Makefile.am: Delete. + * tests/basename/basic: Move to... + * tests/misc/basename: ... this new file. Add some tests, + including fixed behavior for //. + * tests/misc/Makefile.am (TESTS): Sort. Add basename, dirname. + * tests/Makefile.am (SUBDIRS): Remove basename. + * configure.ac (AC_CONFIG_FILES): Remove tests/basename. + + Improvements to dirname/basename handling on platforms like + cygwin with distinct // and with drive letters. + * NEWS: Document new behavior. + * src/basename.c (main): Don't strip suffix from file system + roots. + * src/cp.c (target_directory_operand): Use new last_component. + (ASSIGN_BASENAME_STRDUPA): Likewise. Reduce time spent + traversing the string. + * src/dircolors.c (guess_shell_syntax): Use new last_component. + * src/install.c (target_directory_operand, install_file_in_dir): + Likewise. + * src/ln.c (target_directory_operand, main): Likewise. + * src/ls.c (basename_is_dot_or_dotdot): Likewise. + * src/mv.c (target_directory_operand, movefile): Likewise. + * src/remove.c (rm_1): Likewise. + * src/shred.c (wipename): Likewise. + * src/split.c (next_file_name): Likewise. + * src/su.c (log_su, run_shell): Likewise. + +2006-03-23 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: nohup diagnostics are now more precise, and nohup now + redirects stderr to nohup.out if stdout is closed and stderr is a tty. + * src/nohup.c (main): Implement this. + * tests/misc/nohup: Test the new behavior. + +2006-03-12 Jim Meyering <jim@meyering.net> + + * src/copy.c (set_author): Rename function, from preserve_author. + + * src/remove.c (AD_pop_and_chdir): Use new macro, + CYCLE_CHECK_REFLECT_CHDIR_UP, rather than open-coding it. + + * src/system.h (SAME_INODE): Remove definition. + Include "same-inode.h", instead. + +2006-03-11 Eric Blake <ebb9@byu.net> + + * src/pwd.c (robust_getcwd): Prepend only one slash, not two. + +2006-03-10 Jim Meyering <jim@meyering.net> + + Fix a bug whereby a user with write access to a directory being removed + could cause the removal of that directory to fail with an erroneous + diagnostic about a directory cycle. Reported by Vineet Chadha. + + * NEWS: Mention this. + * src/remove.c (AD_pop_and_chdir): If the directory we're about to + leave (and try to rmdir) is the one whose dev_ino is being used to + detect a cycle, reset cycle_check_state.dev_ino to that of the parent. + +2006-03-08 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: Document dd's new 'directory' and 'nolinks' flags. + * src/dd.c (set_fd_flags): Handle file-creation flags on file + descriptors, rather than ignoring them. + * tests/dd/misc: Add test cases for append, nofollow, directory, + and nolinks flags. Simplify redirection to /dev/null in some cases. + + * tests/dd/misc: iflags->iflag. This fixes a typo that meant the + noatime test never tested anything. + +2006-03-05 Paul Eggert <eggert@cs.ucla.edu> + + * src/dd.c (flags, usage): New flags directory, nolinks. + * src/system.h (O_NOLINKS): Define to 0 if not already defined. + + * src/ls.c (usage): Mention that -f disables --color. + Problem reported by Niels Möller. + +2006-03-03 Justin Pryzby <pryzbyj@justinpryzby.com> + + * man/*.x: Add references to syscalls from utilities of the same name. + +2006-03-05 Jim Meyering <jim@meyering.net> + + * tests/help-version: Set SHELL, if not already set, in order to + avoid failure when `make check' is run through debuild; dircolors + would fail due to lack of $SHELL. Reported by Sven Joachim. + + Make `base64 --wrap=N' work for N=0, and for N larger than SIZE_MAX. + * src/base64.c (wrap_write, do_encode, main): Change type of + parameters and locals, wrap_column, form size_t to uintmax_t. + (main): Adjust to use xstrtoumax, accordingly. + +2006-03-03 Jim Meyering <jim@meyering.net> + + Don't fail when run from an environment with SHELL not a Bourne + shell, e.g. `env SHELL=/bin/csh make check' would fail this test. + * tests/dircolors/simple: Invoke each non-failing test with -b. + Reported by Michael Stone. + +2006-02-27 Jim Meyering <jim@meyering.net> + + * tests/misc/base64: Derive --decode-using tests from the + encode-based ones. + + * tests/misc/base64: Factor out a long constant string. + Split lines to stay within 80 columns. + + * tests/misc/Makefile.am (TESTS): Add base64. + * tests/misc/base64: Test base64. From Simon Josefsson. + + * src/base64.c (do_decode): Use correct type for parameter, + ignore_garbage: s/size_t/bool/. + + * src/base64.c: Don't include .h files already included by system.h: + <string.h>, <stdlib.h>, <stdbool.h>, <limits.h>, <errno.h>. + Include "system.h" before the other lib/*.h header files. + Include <sys/types.h> before "system.h". + (wrap_write): Remove declaration of unused local, initial_column. + (wrap_write): Correct declaration syntax: s/size_t * V/size_t *V/. + + * README: Add base64 to the list. + +2006-02-17 Simon Josefsson <jas@extundo.com> + + New program: base64. + * AUTHORS: Mention base64. + * NEWS: Likewise. + * man/Makefile.am: Build base64.1. + * man/base64.x: New file. + * src/Makefile.am (bin_PROGRAMS): Add base64. + * src/base64.c: New file. + +2006-02-25 Eric Blake <ebb9@byu.net> + + In ls, avoid calling stat for --inode (-i), when possible. + * src/pwd.c (NOT_AN_INODE_NUMBER, D_INO): Move to ... + * src/system.h: ... here, for use in ... + * src/ls.c (main): ... here. Prefer dirent.d_ino to stat when + possible. + (gobble_file): Add inode argument. + (print_dir): Pass inode if available. + (usage): Remove inaccuracy. + +2006-02-23 Jim Meyering <jim@meyering.net> + + * TODO: Update/correct some obsolete entries. + +2006-02-20 Paul Eggert <eggert@cs.ucla.edu> + + * doc/coreutils.texi (join invocation): Mention `sort -k 1b,1'. + * src/join.c (usage): Likewise. + Documentation problem reported by Philip Kensche. + +2006-02-20 Eric Blake <ebb9@byu.net> + + * man/rm.x: Update documentation to match previous patch. + +2006-02-18 Eric Blake <ebb9@byu.net> + + New option for rm: --interactive=once (-I). + * NEWS: Document it, along with change to rm --interactive. + * TODO: Remove entry for implementing rm -I + * src/rm.c (INTERACTIVE_OPTION): New enum value. + (interactive_type): New enum. + (long_opts): Let interactive take an optional argument. + (interactive_args, interactive_types): New option arguments. + (usage): Document -I, --interactive=WHEN. Use program_name + instead of a basename. + (main): New -I option, new behavior to --interactive. + * tests/rm/interactive-once: New tests. + * tests/rm/interactive-always: Ditto. + * tests/rm/Makefile.am (TESTS): Run them. + +2006-02-18 Jim Meyering <jim@meyering.net> + + * Makefile.maint (sc_two_space_separator_in_usage): Make the regular + expression match more of the target lines, e.g., those that start with + `-S,' (short option followed by a comma) or that include `=[...]'. + Patch by Nicolas François. + Fix the four offenders thus exposed: + * src/join.c (usage): Use two spaces (not one) to separate the + --first-only option string from its description, so help2man formats + the derived man page properly. + * src/pr.c (usage): Likewise. + * src/uniq.c (usage): Likewise. + * src/install.c (usage): Likewise. + +2006-02-15 Jim Meyering <jim@meyering.net> + + * Makefile.maint (alpha beta major): For `make major', ensure that the + version string is of the form N.N[.N]*, where N is one or more digits. + +2006-02-14 Jim Meyering <jim@meyering.net> + + * INSTALL: Update from gnulib. + +2006-02-13 Jim Meyering <jim@meyering.net> + + * GNUmakefile (all): Emit diagnostics to stderr, not stdout. + +2006-02-12 Jim Meyering <jim@meyering.net> + + * Makefile.maint (patch-check): New target. + (local-checks-available): Add to the list. + +2006-02-11 Jim Meyering <jim@meyering.net> + + * src/c99-to-c89.diff: New file. + * src/Makefile.am (EXTRA_DIST): Add c99-to-c89.diff. + + * .x-po-check: New file, with exclusions so that `make distcheck' + passes once again. + * Makefile.am (EXTRA_DIST): Add .x-po-check. + + rm -r must remove an empty directory, even if it is inaccessible. + * src/remove.c (close_preserve_errno): New function. + (fd_to_subdirp): Don't print a diagnostic in this function. + Do it from the callers instead, unless rmdir succeeds. + (remove_cwd_entries, remove_dir): Adjust callers. + * tests/rm/empty-inacc: New test for the above. + * tests/rm/Makefile.am (TESTS): Add empty-inacc. + * NEWS: Mention this bug fix. + * tests/rm/rm2: Adjust two expected diagnostics, now that they're + a tiny bit less precise: cannot remove `a/1': ... instead of + cannot open directory `a/1': ... + + * Makefile.maint (syntax-check-rules): Automatically derive this + list of sc_-prefixed rule names. + +2006-02-10 Paul Eggert <eggert@cs.ucla.edu> + + * Makefile.maint (CVS_LIST): Don't assume cvsu is available. + (CVS_LIST_EXCEPT): New macro, to simplify exception-processing. + Most uses of CVS_LIST changed to use CVS_LIST_EXCEPT. + (syntax-check-rules): Bring back sc_changelong. (Hmm, why did it + go away? was that an accident?) + (sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value): + (sc_cast_of_alloca_return_value, sc_space_tab, sc_prohibit_atoi_atof): + (sc_error_exit_success, sc_file_system, sc_no_if_have_config_h): + (sc_system_h_headers, sc_sun_os_names, sc_trailing_blank): + (sc_two_space_separator_in_usage, sc_unmarked_diagnostics): + (sc_obsolete_symbols, sc_changelog, sc_prohibit_jm_in_m4): + (sc_useless_cpp_parens, makefile-check, m4-check, po-check): + (author_mark_check, makefile_path_separator_check): + Output line numbers, to simplify navigation of Emacs *compilation* + buffers. + (sc_prohibit_atoi_atof, sc_file_system): + Rework slightly so that Makefile.maint doesn't get reported as a + violation of its own syntax rules. + (sc_dd_max_sym_length): Use ifneq to do nothing, instead of doing + it at run-time (which didn't work with Bison). Fix a makefile typo, + caught by Makefile.maint itself: spaces where a tab should be. + (po-check): Check lib/*.[ch] even if not in CVS; used by Bison, + which copies from ../gnulib/lib/*.[ch] to lib/*.[ch]. + Ignore djgpp and man subdirectories, to avoid false matches with + Bison and coreutils, respectively. Use sort -u to remove the + resulting duplicates. + * gnupload: Rework slightly to avoid bogus warning from + sc_two_space_separator_in_usage. + +2006-02-10 Jim Meyering <jim@meyering.net> + + Use gzip's --rsyncable option only if it's available. + * Makefile.maint (gzip_rsyncable): New variable. + (GZIP_ENV): Use it. + +2006-02-08 Jim Meyering <jim@meyering.net> + + * Makefile.maint (local-checks-available): Define in terms of + the expansion, $(syntax-check-rules), rather than the single, + top-level target `syntax-check', so that it's easier to exclude + individual rules (via $(local-checks-to-skip)). + (tgz-md5, tgz-sha1, ...): Remove now-unused definitions. + +2006-02-07 Jim Meyering <jim@meyering.net> + + * src/system.h (!defined O_DIRECT): If O_DIRECTIO is defined (as it + is on Tru64), define O_DIRECT to that. Patch From James Lemley. + + * tests/help-version (expected_failure_status_vdir): + Redirect an expected disk-full diagnostic to /dev/null. + +2006-02-06 Jim Meyering <jim@meyering.net> + + * src/unexpand.c (usage): Use two spaces (not one) to separate the + --first-only option string from its description, so help2man formats + the derived man page properly. + * src/rm.c (usage): Likewise for --no-preserve-root. + * src/chown.c (usage): Likewise. + * src/chgrp.c (usage): Likewise. + + Add a rule to ensure that the above doesn't happen again. + * Makefile.maint (sc_two_space_separator_in_usage): New rule. + (syntax-check-rules): Add it. + * .x-sc_two_space_separator_in_usage: New empty file. + * Makefile.am (EXTRA_DIST): Add .x-sc_two_space_separator_in_usage. + +2006-02-06 Jim Meyering <jim@meyering.net> + + * src/cp.c (usage): Use two spaces (not one) to separate each + option string from its description, so help2man formats the + derived man page properly. + * src/mv.c (usage): Likewise. + Patch from Nicolas François in http://bugs.debian.org/351601. + +2006-02-04 Jim Meyering <jim@meyering.net> + + * src/copy.c (copy_internal): cp -RL would fail when encountering + the same directory more than once in the hierarchy beneath a single + command-line argument. That is legitimate, e.g. when there are + two or more symbolic links, each pointing to some directory that + would not otherwise be copied. Reported by Christophe LYON. + * tests/cp/cp-deref: New file. Test for today's fix. + * tests/cp/Makefile.am (TESTS): Add cp-deref. + * NEWS: Document this. + +2006-02-03 Jim Meyering <jim@meyering.net> + + * configure.ac: Require automake-1.9.6, not 1.8.3. + +2006-02-01 Paul Eggert <eggert@cs.ucla.edu> + + * src/od.c (usage): Mention that -t a ignores high order bit. + Documentation problem reported by Ed Avis. + +2006-02-01 Jim Meyering <jim@meyering.net> + + * src/pwd.c (find_dir_entry): Remove unused local, `ent_sb_valid'. + +2006-01-30 Paul Eggert <eggert@cs.ucla.edu> + + * src/head.c (main): Use a better diagnostic when someone uses a + trailing numeric option in an invalid way. Problem reported by + Karl Berry. + * src/tail.c (parse_options): Likewise. + +2006-01-30 Jim Meyering <jim@meyering.net> + + * man/wc.x: Include `count' keyword in man page synopsis, + per suggestion from http://bugs.debian.org/181585. + +2006-01-24 Paul Eggert <eggert@cs.ucla.edu> + + * src/df.c (show_dev): 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. Problem reported by Toralf Foerster. + +2006-01-24 Jim Meyering <jim@meyering.net> + + * src/tail.c (tail_forever): Don't exit-nonzero when an attempt + to put a regular file in O_NONBLOCK mode fails with EPERM. + That happens on Linux (up to 2.6.15) when using tail -f on a file with + the append-only attribute. Reported by Dean Gaudet. For details, + see http://savannah.gnu.org/bugs/?func=detailitem&item_id=15473. + * NEWS: Mention this fix. + * tests/tail-2/append-only: New file. Test for the above. + * tests/tail-2/Makefile.am (TESTS): Add append-only. + * tests/Makefile.am (check-root): Add tail-2/append-only + +2006-01-21 Jim Meyering <jim@meyering.net> + + * NEWS: Mention fts-related improvements and bug fixes. + +2006-01-19 Jim Meyering <jim@meyering.net> + + * tests/fmt/basic (pfx-1, pfx-2): New tests, to demonstrate the bug + reported as http://bugs.debian.org/147577. Forwarded by Thomas Hood. + +2006-01-18 Jim Meyering <jim@meyering.net> + + * tests/du/Makefile.am (TESTS): Add long-from-unreadable. + +2006-01-17 Jim Meyering <jim@meyering.net> + + Now that fts no longer changes the current working directory, adjust + its clients accordingly -- note that du.c uses fts but doesn't need + any adjustment, since it doesn't operate on the actual files, + but rather just uses the stat buffers provided by fts. + + * src/chown-core.c: Include "openat.h". + Don't include "lchown.h". + (restricted_chown): Accept a new parameter, CWD_FD, and use it in + calling openat, lchownat, chownat, rather than open, lchown, chown. + Update caller. + * src/chmod.c: Include "openat.h". + (process_file): Use chmodat (fts->fts_cwd_fd,... in place of chmod (... + + * tests/du/long-from-unreadable: New test, to exercise one small + corner of fts.c. + +2006-01-13 Jim Meyering <jim@meyering.net> + + * tests/Makefile.am (SUBDIRS): Add comments discouraging the + addition of new directories under tests/. + + * tests/acl: Redirect stdin to /dev/null. Otherwise, FreeBSD 5.0's + getfacl would hang. + +2006-01-12 Jim Meyering <jim@meyering.net> + + * tests/du/long-sloop: Adjust not to hard-code the expected + diagnostic corresponding to ELOOP. Solaris' diagnostic differs + from that of GNU libc. Reported by Paul Eggert. + + * tests/du/long-sloop: Create file at end of symlink chain. + + * tests/misc/test: New file, with a test for one of the + bugs fixed by yesterday's test.c changes. + * tests/misc/Makefile.am (TESTS): Add test. + +2006-01-11 Jim Meyering <jim@meyering.net> + + * tests/du/long-sloop: New file. Test for today's fts.c bug fix. + That bug could make du -L, chgrp -L, or chown -L fail to diagnose + a very long sequence of symbolic links (not necessarily a loop). + * tests/du/Makefile.am (TESTS): Add long-sloop. + +2006-01-11 Paul Eggert <eggert@cs.ucla.edu> + + * src/test.c (test_syntax_error): Append a newline. All callers + changed, except for the ones that didn't already append a newline. + Bug reported by Eric Blake. + +2006-01-11 Jim Meyering <jim@meyering.net> + + * src/system.h (X2NREALLOC): Now that verify_true is no longer + void, cast its result to void, to avoid gcc's warning that + ``left-hand operand of comma expression has no effect''. + (DECIMAL_DIGIT_ACCUMULATE, X2REALLOC): Likewise. + +2006-01-10 Jim Meyering <jim@meyering.net> + + * tests/chmod/no-x: Add a test for today's fts.c fix. + +2006-01-10 Jim Meyering <jim@meyering.net> (tiny change) + + * src/ls.c (gobble_file): Use DTTOIF only if it's defined. + This is necessary for Dragonfly. Patch by Joerg Sonnenberger. + +2006-01-10 Paul Eggert <eggert@cs.ucla.edu> + + * src/system.h (X2NREALLOC, X2REALLOC, DECIMAL_DIGIT_ACCUMULATE): + Use verify_true instead of verify_expr, to sync with gnulib. + +2006-01-08 Jim Meyering <jim@meyering.net> + + * src/date.c (usage): Adjust the formatting of the entries for + %::z and %:::z (separate with two spaces, not one) so that help2man + formats them properly. Reported by Philip Rowlands. + +2006-01-06 Paul Eggert <eggert@cs.ucla.edu> + + * configure.ac (gl_IGNORE_UNUSED_LIBRARIES): Add. + +2006-01-06 Jim Meyering <jim@meyering.net> + + * Makefile.maint (copyright-check): Use date +%Y in place of + hard-coded 2005. + + * src/remove.c (rm_1): Remove `static' attribute on local `status'. + First off, the attribute should have been `volatile' (not static) + to avoid longjmp-related risk of clobber. Secondly, now there is + no longer any risk of a local variable being clobbered, so there's + no need for any attribute at all. + +2006-01-05 Jim Meyering <jim@meyering.net> + + * src/remove.c: Give a few functions the inline attribute. + (AD_pop_and_chdir): Use gotos to avoid some duplication. + (AD_push): Rewrite an assertion so that the entire computation + goes away when assertions are turned off. + + * src/tail.c (ENOSYS) [!defined ENOSYS]: Don't define here. + It's already defined in "system.h". + * Makefile.maint: Add a FIXME comment. + +2006-01-04 Jim Meyering <jim@meyering.net> + + * ChangeLog: Remove entries from 2005-10-22 and earlier. + * ChangeLog-2005: New file, for entries up to version 5.92. + +2006-01-03 Jim Meyering <jim@meyering.net> + + * tests/du/no-x: Also allow a slightly different diagnostic -- the + one you get when using openat-enabled fts.c and du (coming soon). + * tests/chmod/no-x: Likewise. + * tests/chgrp/no-x: Likewise. + + * src/system.h (O_DIRECTORY) [!defined O_DIRECTORY]: Define. + +2006-01-02 Paul Eggert <eggert@cs.ucla.edu> + + * src/chown-core.c (RC_do_ordinary_chown): New enum value. + (restricted_chown): Return it, if the file cannot be accessed due + to EPERM, or if no uid or gid are required, or if the file is + neither a directory nor a regular file. Rewrite to avoid gotos. + (change_file_owner): Handle RC_do_ordinary_chown case. + Rewrite to avoid gotos. + * tests/chgrp/basic: Make sure we can change the group of + inaccessible files. + + * src/date.c (usage): Explain %g, %G, and %V a bit better. + +2006-01-02 Jim Meyering <jim@meyering.net> + + * src/copy.c (set_owner): Correct a comment. + + * src/tail.c (parse_options): Change warning to say that --retry + is useful `mainly' (not `only') when following by name. + Reported here: http://bugs.debian.org/273781 + +2006-01-01 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: Document that mkfifo and mknod -m no longer set special bits. + * src/copy.c: Include lchmod.h. + (copy_internal): Use lchmod rather than chmod. + * src/cp.c: Include lchmod.h. + (re_protect, make_dir_parents_private): Use lchmod rather than chmod. + * src/mkdir.c: Include lchmod.h. + (usage): Clarify -m's operation. + (main): Use lchmod rather than chmod. Don't use lchmod unless the + new mode contains bits outside the 777 range. + * src/mkfifo.c (usage): Clarify -m's operation. + (main): If -m is given, don't invoke chmod; use umask 0 instead. + Report an error if -m asks for bits outside the 777 range. + * src/mknod.c (usage, main): Likewise. + + * src/mkdir.c, src/mkfifo.c, src/mknod.c: Undo 2005-12-19 changes. + + ----- + + Copyright (C) 2006 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without + modification, are permitted provided the copyright notice + and this notice are preserved. diff --git a/ChangeLog-2007 b/ChangeLog-2007 new file mode 100644 index 000000000..a335938ea --- /dev/null +++ b/ChangeLog-2007 @@ -0,0 +1,4022 @@ +2007-12-31 Jim Meyering <jim@meyering.net> + + * doc/coreutils.texi (Block size): Put braces around multi-digit + exponents. Reported by Darrel Francis. + + Add a syntax check, so this doesn't recur. Reorganize existing checks. + * doc/Makefile.am (sc-exponent-grouping): + (syntax_checks): New variable. + (sc-avoid-io, sc-avoid-non-zero, sc-avoid-timezone): + (sc-avoid-zeroes, sc-use-small-caps-NUL): New rules, extracted + from check-texinfo. + (check-texinfo): Depend on $(syntax_checks). + +2007-12-30 Mike Frysinger <vapier@gentoo.org> + + * src/dircolors.hin (TERM): Add gnome-256color. + +2007-12-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * doc/coreutils.texi: Fix a typo. Avoid the term `relationals'. + +2007-12-20 Jim Meyering <meyering@redhat.com> + + Use comma-separated list in ./configure --help output. + * configure.ac: Map commas to spaces in excluded-program list. + Use a comma-separated list, not a space-separated one. + * m4/include-exclude-prog.m4 (gl_INCLUDE_EXCLUDE_PROG): + Expect list of program names to be comma-separated. + Reported by Jan Bauke Douma. + + Avoid another "make check" failure due to omitted programs. + * tests/test-lib.sh (require_built_): New function. + * tests/misc/groups-version: Use it to skip this test if + either groups or id is not built. + + Avoid spurious "make check" failures due to omitted programs. + * man/Makefile.am (distcheck-hook): Make check rules dependents of + this target, not of check-local, so that people aren't distracted by + failures due to programs omitted via --enable-no-install-program=... + +2007-12-19 Paul Eggert <eggert@cs.ucla.edu> + + * src/uniq.c (usage): Improve wording in --help "Note". + +2007-12-18 Jim Meyering <meyering@redhat.com> + + * src/uniq.c (usage): Note that sorting uniq's input is often useful. + Suggested by Eric Blake. + (usage): Say "key-selection", not "field-selection". + Quote example commands consistently. + +2007-12-15 Jim Meyering <meyering@redhat.com> + + Version 6.9.91. + + * Makefile.cfg (gpg_key_ID): Use new, longer signing subkey. + +2007-12-12 Jim Meyering <meyering@redhat.com> + + * tests/mv/part-symlink: Redirect diff output to stderr. + +2007-12-11 Jim Meyering <meyering@redhat.com> + + Add a test to exercise today's bug fix. + * tests/misc/selinux: Test for today's bug fix. + * NEWS: Mention the SELinux "ls -l" fix. + +2007-12-11 Paul Eggert <eggert@cs.ucla.edu> + + "ls -l" wouldn't output "+" on SELinux hosts unless -Z was also given. + * src/ls.c (gobble_file): Also get the file context if -l is specified. + Treat getfilecon failures like file_has_acl failures. + (UNKNOWN_SECURITY_CONTEXT): New constant. + (clear_files): Don't free it. + (gobble_file): Set unknown security contexts to it; that way, we + don't have to have special cases for unknown contexts. + (print_long_format, print_file_name_and_frills): Don't worry + about scontext being null, since it's always some string now. + +2007-12-11 Jim Meyering <meyering@redhat.com> + + * NEWS: Add the "Bug fixes" heading. + +2007-12-09 Jim Meyering <meyering@redhat.com> + + "rm" as root would fail to unlink a non-directory on OS X 10.4.x + * src/remove.c (remove_entry) ["can unlink directories"]: Fix a + mistakenly reversed condition. + * NEWS: Mention this bug fix. + Reported by Pieter Bowman. + +2007-12-08 Jim Meyering <meyering@redhat.com> + + * src/c99-to-c89.diff: Adjust shred.c offsets. + +2007-12-04 Jim Meyering <meyering@rho.meyering.net> + + Reflect change in gnulib: don't include getpagesize.h, + now that it's provided by unistd.h. + * src/cat.c: Don't include getpagesize.h. + * src/copy.c: Likewise. + * src/dd.c: Likewise. + * src/shred.c: Likewise. + * src/split.c: Likewise. + +2007-12-02 Jim Meyering <meyering@redhat.com> + + Copy a .po file into place also when the target doesn't exist. + * bootstrap (gnulib_tool): ... not just when the checksum differs. + So now, if I manually remove po/xx.po, rerunning bootstrap will + copy the latest into place. + + Make my-distcheck depend on "check". + * Makefile.maint (my-distcheck): Also depend on "check", so I can't tag + and release something that fails "make check" (however harmless) when + run in a checked-out-from-git dir, but not in the distributed tarball. + + * NEWS: Add the usual "Noteworthy changes in release 6.9.91..." line. + + Remove just-installed su, if unable to make it set-UID root. + Normally, su isn't even installed. However, if you configure with + --enable-install-program=su, and then install with insufficient + privileges, we now make sure to remove the just-installed binary. + * src/Makefile.am (install-exec-hook): Rename from install-exec-local, + so that this rule is guaranteed to be run *after* installation. + If unable to chown and chmod the installed "su" program, remove it. + Reported by Greg Schaefer. + +2007-12-01 Bob Proulx <bob@proulx.com> + + Make existing-perm-race executable. + * tests/cp/existing-perm-race: Update file mode. + +2007-12-01 Jim Meyering <meyering@redhat.com> + + Version 6.9.90. + + * NEWS: Remove the now-untrue statement about cp vs. dangling symlinks + + Change release procedure: tag *before* running e.g., "make stable". + * Makefile.maint (vc-dist): Don't tag. Now, you must apply the tag + before running "make beta", "make stable", etc. + (vc-tag-check): Remove rule. No longer makes sense. + + * Makefile.maint (vc-tag-check): Correct check for existing git tag. + + Defer NEWS and ChangeLog checks until after the version-changing tag. + * Makefile.maint (alpha beta major): Don't depend on the + news-date-check changelog-check targets. They must fail before + applying the version-changing tag. Instead, run them after "vc-dist". + + * NEWS: Record release date and new version number. + Mention some of the SELinux changes. + * src/stat.c (main): Adjust a comment. + + * TODO: Add some entries (documentation needed), + and remove the one for mktemp. + + Add "extern" keyword to declaration of cp_options_default. + * src/copy.c (cp_options_default): Mark as "extern", so the + "sc_tight_scope" part of "make distcheck" passes. + +2007-12-01 Jim Meyering <meyering@redhat.com> + + Change comments: say bug present up to coreutils-6.9, not fixed in 6.10. + * tests/cut/Test.pm: Adjust comment. + * tests/misc/cut: Likewise. + * tests/misc/ls-misc: Likewise. + * tests/misc/od: Likewise. + * tests/misc/stty-invalid: Likewise. + * tests/tr/Test.pm: Likewise. + +2007-11-29 Paul Eggert <eggert@cs.ucla.edu> + + Add a test for cp -p and existing file permissions. + * tests/cp/Makefile.am (TESTS): Add existing-perm-race. + * tests/cp/existing-perm-race: New test. It isn't much of a + test yet, since it's hard to catch the race, but it has a FIXME + that will let us do a better test later. + +2007-11-28 Paul Eggert <eggert@cs.ucla.edu> + + Fix a security race with "cp -p A B" when B already exists. + * src/copy.h (struct cp_options): New member owner_privileges. + * src/copy.c (USE_ACL): Define to 0 if not defined, for convenience. + (owner_failure_ok): New function. + (set_owner): Avoid a security-related race by doing an extra chmod + first if it looks like there might be trouble right after a chown. + Accept a source struct stat rather than a uid and gid, and + accept a boolean NEW_DST and destination struct stat. + All callers changed. + * src/copy.h (cp_options_default): New function, replacing the + old chown_privileges. + * src/copy.c (cp_options_default): Likewise. + * src/cp.c (cp_option_init): Use it. + * src/install.c (cp_option_init): Likewise. + * src/mv.c (cp_option_init): Likewise. + +2007-11-30 Jim Meyering <meyering@redhat.com> + + Move the very-expensive file into test-lib.sh. + * tests/very-expensive: Remove file. + * tests/test-lib.sh (very_expensive_): New function. + * tests/Makefile.am (EXTRA_DIST): Remove very-expensive. + * tests/cp/perm: Call the new function, rather than sourcing the file. + * tests/tail-2/assert: Likewise. + * tests/tail-2/assert-2: Likewise. + * tests/du/2g: Likewise. + + Avoid a spurious test failure when build directory is set-GID. + * tests/cp/fail-perm: Ensure that '.'s set-GID bit is off. + + Be extra careful to quote $abs_top_builddir-derived names. + * tests/misc/ls-misc (shell_quote): New function. + Use it to quote file names derived from $abs_top_builddir, + in case it contains shell meta-characters. This is not currently + needed, since CuTmpdir detects the fishy name and skips the test. + But it's important enough to add the extra protection. + Reported by Ralf Wildenhues. + + Include test name in the "unsafe working directory name" diagnostic. + * tests/CuTmpdir.pm (import): If $ME is '-', use $prefix. + +2007-11-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + Add quotes to protect against white space in build dir name. + * tests/check.mk (TESTS_ENVIRONMENT): Quote $(abs_srcdir). + * tests/chmod/setgid: Quote absolute names. + * tests/misc/help-version: Likewise. + * tests/misc/pwd-unreadable-parent: Likewise. + * tests/rmdir/ignore: Likewise. + * tests/test-lib.sh: Likewise. + + Define `tst', for CU_TEST_NAME. + * build-aux/check.mk (am__check_pre): Set `tst', for + CU_TEST_NAME in tests/check.mk. + + * tests/CuTmpdir.pm (END): Do not do the cleanup if $dir is not + defined, because it then goes wild and changes the mode of all + directories below $HOME. Undefined $dir can happen if the test + is to be skipped because of an unsafe working directory name. + +2007-11-28 Paul Eggert <eggert@cs.ucla.edu> + + Close a file descriptor leak when cp --preserve=context fails. + * src/copy.c (copy_reg): Close dest_desc too, if getfscreatecon + or fsetfilecon fail. + +2007-11-28 Jim Meyering <meyering@redhat.com> + + * README: Document the known problem with gettext <= 0.17. + +2007-11-28 Paul Eggert <eggert@cs.ucla.edu> + + * gl/modules/randread (Depends-on): Remove nonexistent rand-isaac. + +2007-11-27 Jim Meyering <meyering@redhat.com> + + Don't block use of 'cat' or 'wc' in "make check". + * Makefile.maint (my-distcheck): Add "cat" and "wc" to the list + of programs that we can't blacklist. + + Fix md5sum+sha*sum on sparc: regenerate files with latest autoconf. + * configure et al: Regenerate with very latest version of autoconf + (v2.61a-312-gb524b0f), to fix md5sum and sha*sum miscompilation + on big-endian systems (like sparc) due to lack of the required + definition in of WORDS_BIGENDIAN in lib/config.h. + +2007-11-26 Jim Meyering <meyering@redhat.com> + + setuidgid.c: more cleanup + * src/setuidgid.c: Include "mgetgroups.h". + (main): Don't presume there's a fixed limit on the maximum number + of group IDs. Don't use NGROUPS; it's artificially low. + Change the name of a local: s/gids_count/n_gids/. + Remove non-portable "const": s/const int tmp =.../int tmp =.../ + +2007-11-25 Jim Meyering <meyering@redhat.com> + + Document install's -D option. + * doc/coreutils.texi (install invocation): Document -D. + Reported by Akim Demialle. + + setuidgid: Update --help output. + * src/setuidgid.c (usage): Describe -g GID[,GID1...] option. + Mention that USER may be a numeric ID or a user name. + +2007-11-24 Jim Meyering <meyering@redhat.com> + + Tweak new test. + * tests/cp/preserve-gid: Split some long lines. + Prepend "+" to numeric uid and gid chown arguments, on principle. + Use skip_test_. + + setuidgid: minor clean-up. + * setuidgid.c: Include "xstrtoul.h". + (main): Detect overflow in string-to-gid_t and -to-uid_t conversions. + Improve diagnostics. + + * src/setuidgid.c: Normalize leading white space: no more TABs. + + Test the new feature: cp -p preserves the GID whenever possible. + * tests/cp/preserve-gid: New file. Test for today's change. + * tests/cp/Makefile.am (TESTS): Add preserve-gid. + * tests/Makefile.am (all_t): Add tc. + (tc): New target. + + setuidgid: accept numeric UID, and new option -g GID,GID1,GID2,... + * src/setuidgid.c: Add functionality for the new test above. + + "cp -p" tries to preserve GID even if preserving the UID fails. + * NEWS: Mention this new feature. + * src/copy.c (set_owner): Try to preserve just the GID, + when initial fchown/lchown fails. + * src/cp.c (re_protect): Likewise. + +2007-11-23 Jim Meyering <meyering@redhat.com> + + * src/runcon.c (main): Remove unused parameter, "envp". + + Add tests to show new class of strings accepted by date -d. + * tests/misc/date (rel-1day, rel-plus1): New tests for the recent + change in gnulib's getdate.y. + * NEWS: Mention the fix. + +2007-11-22 Jim Meyering <meyering@redhat.com> + + Quiet warnings about unused parameters. + * src/copy.c (set_author) [!HAVE_STRUCT_STAT_ST_AUTHOR]: + "Use" each of the parameters. + + * GNUmakefile: Correct the "rerunning..." diagnostic. + + Make it easier to diagnose PATH-induced "make distcheck" failures. + * Makefile.maint (write_loser): Define. + (my-distcheck): Use an always-failing wrapper script, that gives + a diagnostic, not "false". + Run only "make -C tests check" with the restrictive PATH. + Run the new gnulib-tests/ with the usual PATH. + + cp: by default, refuse to copy through a dangling destination symlink + * NEWS: Mention this change. + * doc/coreutils.texi (cp invocation): Describe the new behavior. + * src/copy.c: No longer include "canonicalize.h". + (copy_reg): Upon failure to open a dangling destination symlink, + don't canonicalize the name, but rather fail (default) or, with + POSIXLY_CORRECT, repeat the open call without O_EXCL (potentially + dangerous). + * src/copy.h (struct cp_options) [open_dangling_dest_symlink]: + New member. Reorder the others, grouping "bool" and "enum" + members together. + * tests/cp/thru-dangling: Test for changed and new behavior. + * src/cp.c (cp_option_init): Initialize new member. + * src/install.c (cp_option_init): Likewise. + * src/mv.c (cp_option_init): Likewise. + +2007-11-21 Pádraig Brady <P@draigBrady.com> + + * doc/coreutils.texi (split invocation): Improve the + descriptions of the split command options. + +2007-11-21 Jim Meyering <meyering@redhat.com> + + * src/c99-to-c89.diff: Adjust seq.c offsets. + +2007-11-18 Paul Eggert <eggert@cs.ucla.edu> + + * src/seq.c (print_numbers): Rewrite in an attempt to avoid the + more-general rounding issues exposed by the previous patch. + +2007-11-18 Jim Meyering <meyering@redhat.com> + + * src/c99-to-c89.diff: Adjust seq.c offsets. + + Remove unused parameter in remove.c. + * src/remove.c (fd_to_subdirp): Remove unused parameter. + (remove_cwd_entries, remove_dir): Update callers. + + bootstrap: work also with 4-argument variant of AC_INIT (from gnulib) + 2007-11-18 Sergey Poznyakoff <gray@gnu.org.ua> + * bootstrap (gnulib_extra_files): Adjust sed command. + +2007-11-17 Jim Meyering <meyering@redhat.com> + + Correct preceding patch. + * src/seq.c (print_numbers): Also handle first < last && step < 0. + * tests/misc/seq [empty-rev]: New test for this case. + + "seq .1 .1" would mistakenly generate no output on some systems + * NEWS: Say this. + * src/seq.c (print_numbers): Handle another floating point corner case. + This avoids failure of seq's eq-wid-7 test on FreeBSD 6.1. + +2007-11-16 Paul Eggert <eggert@cs.ucla.edu> + + Port tests/rmdir/ignore away from GNU/Linux. + * tests/rmdir/ignore: Don't assume that rmdir($PWD) will fail + with errno==ENOTEMPTY when $PWD is not empty; Posix also allows + rmdir to fail with errno==EBUSY. + +2007-11-16 Jim Meyering <meyering@redhat.com> + + Avoid an obscure new "make distcheck" failure. + * Makefile.maint (my-distcheck): Also allow 'mv', for its use + in gnulib-tests/Makefile. + +2007-11-16 Paul Eggert <eggert@cs.ucla.edu> + + Port readlink-fp-loop to Solaris. + * tests/misc/readlink-fp-loop (symlink_loop_msg): New var, + which records the symlink-loop message, whose wording is + not standardized by Posix. Do not rely on "echo x > p/1" + to work when p/1 has a lot of indirect symlinks. (I'm surprised + that it works on Linux. Perhaps a Linux bug?) + +2007-11-15 Paul Eggert <eggert@cs.ucla.edu> + + Port to Solaris 'make' and use a Posixish shell on Solaris. + * bootstrap.conf (gnulib_modules): Add gnu-make, posix-shell. + * build-aux/check.mk (SHELL): Set to $(PREFERABLY_POSIX_SHELL), + so that commands can assume Posix syntax. + (ENABLE_HARD_ERRORS, TEST_LOGS): Don't use GNU Make's "?=" syntax. + (SH_E_WORKAROUND): New macro. + (am__check_pre, $(TEST_SUITE_LOG)): Use it. + (am__check_pre): Fail if "mkdir" fails. Use $(SHELL) + rather than relying on the "#!/bin/sh" in the file, so that tests + can use Posix syntax. + (am__check_pre, am__tty_colors): Use $$src rather than $$<, to + support the Posix-make $(TEST_LOGS) rule. + (%.log: %.test, %.log: %$(EXEEXT)): Remove unused inference rules + that rely on a GNU Make extension and cause Solaris 'make' to fail. + (SUFFIXES): New macro, so that we can use Posix style inference rules. + (%.log: %): Use this rule only if GNU_MAKE. + Set $$src so that macros can use $$src rather than $$<. + (CHECK-FORCE, DEPENDENCY, $(TEST_LOGS)): New macros and rules, + which rely only on Posix 'make' semantics, and are used only with + non-GNU 'make' implementations. $(TEST_LOGS) invokes 'make' + recursively (and a bit inefficiently) to simulate the GNU 'make' + rules. + (.log.html): Renamed from "%.html: %.log", so that it relies only + on Posix 'make' semantics. + (check-clean, .PHONY): Do not depend on check-clean-local, since + Solaris 'make' complains about nonexistent rules like that. + * src/Makefile.am (SUFFIXES): Remove; no longer needed. + (groups): Use a specific rule rather than an inference rule that + is only instantiated once. The inference-rule approach does not + work with Solaris 'make', which gets confused by the "groups: + Makefile" line. It's not clear from the Posix spec that Solaris + 'make' is buggy here, so instead of worrying about it, rewrite + the makefile so that it clearly conforms to Posix. + * tests/check.mk (TESTS_ENVIRONMENT): Export PACKAGE_BUGREPORT. + GNU 'make' does this automatically for us, but Solaris 'make' + doesn't. + +2007-11-15 Paul Eggert <eggert@cs.ucla.edu> + + Port to Solaris 8 perl, which does not support "use warnings;". + * tests/dd/skip-seek: Skip test if "use warnings;" fails. + * tests/du/files0-from: Likewise. + * tests/misc/base64: Likewise. + * tests/misc/basename: Likewise. + * tests/misc/cut: Likewise. + * tests/misc/date: Likewise. + * tests/misc/dircolors: Likewise. + * tests/misc/dirname: Likewise. + * tests/misc/expand: Likewise. + * tests/misc/expr: Likewise. + * tests/misc/factor: Likewise. + * tests/misc/fmt: Likewise. + * tests/misc/fold: Likewise. + * tests/misc/head-elide-tail: Likewise. + * tests/misc/ls-misc: Likewise. + * tests/misc/md5sum: Likewise. + * tests/misc/md5sum-newline: Likewise. + * tests/misc/mktemp: Likewise. + * tests/misc/od: Likewise. + * tests/misc/paste-no-nl: Likewise. + * tests/misc/pr: Likewise. + * tests/misc/seq: Likewise. + * tests/misc/sha1sum: Likewise. + * tests/misc/sha1sum-vec: Likewise. + * tests/misc/sha224sum: Likewise. + * tests/misc/sha256sum: Likewise. + * tests/misc/sha384sum: Likewise. + * tests/misc/sha512sum: Likewise. + * tests/misc/sort-merge: Likewise. + * tests/misc/stat-printf: Likewise. + * tests/misc/sum: Likewise. + * tests/misc/test-diag: Likewise. + * tests/misc/tsort: Likewise. + * tests/misc/unexpand: Likewise. + * tests/misc/wc-files0-from: Likewise. + * tests/misc/xstrtol: Likewise. + * tests/mv/i-1: Likewise. + * tests/rm/empty-name: Likewise. + * tests/rm/unreadable: Likewise. + +2007-11-15 Andreas Schwab <schwab@suse.de> + + * m4/include-exclude-prog.m4 (gl_REMOVE_PROG): Fix syntax error. + Remove trailing space from result. + +2007-11-15 Jim Meyering <meyering@redhat.com> + + Avoid misbehavior of a cross-device "mv" or "install". + Those programs must not dereference a destination symlink. + * src/copy.c (copy_reg): Don't treat a dangling destination symlink + differently in move mode. In move mode, the only way the added + O_EXCL can cause failure is when some other process has recreated + the file this code unlinked a few instructions before. + +2007-11-14 Jim Meyering <meyering@redhat.com> + + Another bootstrap kludge. + * bootstrap: Ensure gnulib-tests/test-*.sh are executable + + #ifdef-out matchpathcon-related code, for now. + * src/install.c (setdefaultfilecon): #ifdef-out all of the + matchpathcon-related code, until it's more efficient. + (setdefaultfilecon): Instead of the above, stub-out the entire function. + + Use gnulib's stpncpy module, now required by install.c + * bootstrap.conf (gnulib_modules): Add stpncpy. + + Enable gnulib-tool's --with-tests option. + * bootstrap: After all is done, transform the generated + gnulib-tests/gnulib.mk. + * bootstrap.conf (gnulib_tool_option_extras): Set it here. + * gnulib-tests/Makefile.am: New file. + * Makefile.am (SUBDIRS): Add gnulib-tests. + * configure.ac (AC_CONFIG_FILES): Add gnulib-tests/Makefile. + * m4/jm-macros.m4 (coreutils_MACROS) [ARGMATCH_DIE_DECL]: Omit the + "extern " prefix to "void usage ()", so that the macro string value can + be used to construct a function definition in gnulib's test-argmatch.c. + +2007-11-12 Benno Schulenberg <bensberg@justemail.net> + + Clarify description of cp's -a option. + * src/cp.c (usage) [-a]: Remove unnecessary 'P'. + Since option -d of 'cp' includes the function of -P, mentioning the + latter in the description of option -a is redundant and therefore + slightly confusing, as the reader tries to figure out what it adds. + * doc/coreutils.texi (cp invocation): Likewise: s/-dpPR/-dpR/. + +2007-11-09 Jim Meyering <meyering@redhat.com> + + bootstrap: fix typo to enable use of $gnulib_tool_option_extras. + * bootstrap (gnulib_tool_options): Add a space before the use + of $gnulib_tool_option_extras, so that it's separated from the + preceding argument. + + install+SELinux: reduce a 12x performance hit to ~1.5x + * src/install.c (setdefaultfilecon): Call matchpathcon_init_prefix, + to mitigate what would otherwise be a large performance hit due to + the use of matchpathcon. + Dan Walsh suggested the use of matchpathcon_init_prefix. + * gl/lib/se-selinux.in.h (matchpathcon_init_prefix): Define. + +2007-11-08 Jim Meyering <meyering@redhat.com> + + Adapt to gnulib's s/jm_/gl_/ cache variable renaming. + * configure.ac: Change the cache variable name prefix "jm_" to "gl_", + to match today's change in gnulib. + +2007-11-05 Jim Meyering <meyering@redhat.com> + + Fix bootstrap failure to handle files like lib/uniwidth/cjk.h. + * bootstrap (cp_mark_as_generated): Create any required parent + destination directories before copying a file into place. + + * src/c99-to-c89.diff: Adjust offsets. + + Don't use GNU-sed-specific \< \> operators here, either. + * m4/include-exclude-prog.m4 (gl_REMOVE_PROG): Use a loop, as below. + + Use tighter regexps when performing name substitution. + * man/Makefile.am (mapped_name): Add ^ and $$ anchors. + + Don't use GNU-sed-specific \< \> operators. + * configure.ac (MAN): Transform ginstall.1 to install.1 using + a loop, rather than sed with \<...\>. + Problem reported by Bruno Haible. + Andreas Schwab reminded me that \< and \> are not portable. + + Get git-version-gen from gnulib. + * build-aux/git-version-gen: Remove file. + * build-aux/.gitignore: Add git-version-gen. + * bootstrap.conf (gnulib_modules): Add git-version-gen. + +2007-11-03 Jim Meyering <meyering@redhat.com> + + git-version-gen: Sync from autoconf's version. + * build-aux/git-version-gen: Run git-status + + Sync copyright and scriptversion bits from gnulib. + * build-aux/git-version-gen: No semantic change. + + Change the first '-' to '.' in the snapshot version string, + e.g., 6.9-377-08144 -> 6.9.377-08144 + * build-aux/git-version-gen: ... and add comments. + + seq: add another test for the %% bug. + * tests/misc/seq (fmt-c): Test the other fixed case, too. + +2007-11-03 Paul Eggert <eggert@cs.ucla.edu> + + Fix bug with "seq 10.8 0.1 10.95", plus another bug with %% in format. + + * NEWS: Mention the %%-in-format bug fix. + * src/seq.c (struct layout): New type. + (long_double_format): New arg LAYOUT. Fill it in. Fix mishandling + of %% in formats. + (print_numbers): New arg LAYOUT. Don't convert LAST to output format + when deciding whether to go slightly past LAST. Instead, convert + X to output format and back. This fixes a bug reported by + Andreas Schwab in + <http://lists.gnu.org/archive/html/bug-coreutils/2007-10/msg00237.html> + where "seq 10.8 0.1 10.95" would output 11.0 on platforms where + 10.95 rounds to a value that prints as 11.0 when only one digit + past the decimal point is asked for. + (main): Compute layout, for benefit of print_numbers. + * tests/misc/seq (float-3): Undo previous change, since the bug + should be fixed now. + (fmt-b): New test, for the %% bug. + +2007-11-01 Jim Meyering <meyering@redhat.com> + + * tests/misc/printf-surprise: Correct sed transform. + Reported by Bob Proulx. + + Add example inspired by "make dist" running gzip and lzma in sequence. + * doc/coreutils.texi (tee invocation): Show how to run tar just + once, compressing the tee'd output streams in parallel. + + Say that the first process substitution example is contrived. + * doc/coreutils.texi (tee invocation): ... and show how to do + it properly. Pointed out by James Antill. + + Use mktemp, not mkdtemp, to create test directories. + * tests/test-lib.sh: Use the mktemp binary we've just built, + not the mkdtemp script. + * tests/mkdtemp: Remove file. + * tests/Makefile.am (EXTRA_DIST): Remove mkdtemp. + + Adjust a seq subtest not to depend on the vagaries of floating point. + * tests/misc/seq (float-3): Use 10.94 as the endpoint, not 10.95, + since 10.95 was precisely in the middle of the interval, and with + a %.1f format could map to either 10.9 or 11.0. + Reported by Mike Frysinger + + Make the new printf-surprise test more precise. + * tests/test-lib.sh (require_ulimit_): New function. + * tests/misc/printf-surprise: Use ulimit -v to trigger the fixed bug, + and rather than checking printf's exit status (which would go wrong + on FreeBSD 6.1, since their printf(3) function doesn't require + lots of memory in this case) simply test whether it outputs + the first 10 bytes. + + Accommodate FreeBSD 6.1 hard-link-to-symlink differences. + * tests/cp/same-file: Detect when linking to a symlink links to + the target of the symlink (FreeBSD 6.1 does this, Linux does not), + and skip the few tests that would otherwise fail. + Redirect output of final comparison to stderr, since all stdout + is already redirected. + +2007-10-31 Jim Meyering <meyering@redhat.com> + + Fix a "make distcheck" failure. + * Makefile.maint (my-distcheck): Don't stub-out dirname, + since build-aux/check.mk now uses it. + + * bootstrap.conf (gnulib_modules): Add xprintf-posix. + +2007-10-30 Jim Meyering <meyering@redhat.com> + + Avoid seq floating-point test failure on FreeBSD 6.1. + * tests/misc/seq (float-4): Also accept -0.0. + +2007-10-29 Jim Meyering <meyering@redhat.com> + + Change a "make dist" diagnostic. + * GNUmakefile: Don't imply that $(_curr-ver) is the new version string. + +2007-10-29 Bob Proulx <bob@proulx.com> + + Improve color terminal escape usage. + * build-aux/check.mk (am__tty_colors): Use 'tput' to deduce + terminal color capabilities. + +2007-10-29 Jim Meyering <meyering@redhat.com> + + Don't try to colorize a dumb terminal. + * build-aux/check.mk (am__tty_colors): Skip colors if $TERM is "dumb". + Thanks to Bob Proulx. + + Remove gnulib's printf-posix module, for now. + * bootstrap.conf (gnulib_modules): It caused too many test failures. + + Remove spurious semicolon after "else". + * build-aux/check.mk (am__tty_colors): Fix syntax error. + + If $TERM is empty, don't use colors. This helps the buildbot, + since it produces its result in an environment with a tty, but + we don't want color codes in that case. + * build-aux/check.mk (am__tty_colors): Test for nonempty $TERM. + Suggestion from Bob Proulx. + + Always initialize terminal colorization string variables. + * build-aux/check.mk (am__tty_colors): Always initialize red, grn, etc., + In case they're defined in the environment. + + Avoid test failure in non-srcdir build vs. the git tree. + * tests/check.mk (vc_exe_in_TESTS): Run this test only in a + srcdir build directory. Reported by Andreas Schwab. + +2007-10-28 Jim Meyering <meyering@redhat.com> + + Define ENOTSUP, not ENOSYS. Needed on OpenBSD 3.9. + * gl/lib/se-context.in.h (ENOTSUP): Define if missing. + * gl/lib/se-selinux.in.h: Likewise. + + Define ENODATA, for FreeBSD 5.0 and 6.1. + * src/system.h (ENODATA): Define, if missing. + + Run autoreconf, not just autoconf, to avoid warnings. + * GNUmakefile (dummy): Otherwise, we'd sometimes get a warning + about autoconf version mismatch between what was used to generate + aclocal.m4 and the currently-running autoconf. + + Require gnulib's printf-posix module, to support Interix. + * bootstrap.conf (gnulib_modules): Add printf-posix. + + Help xgettext recognize more printf-style format strings. + * bootstrap.conf (XGETTEXT_OPTIONS): Add directives for + error, error_at_line, xasprintf, xfprintf and xprintf. + +2007-10-27 Jim Meyering <meyering@redhat.com> + + Adjust format string so msgfmt doesn't object. + * src/df.c (main): Use "%s%s" (not %smsg) to print "msg" with or + without a "Warning: " prefix. Reported by Clytie Siddall. + + Clean up tests/Makefile.am. + * tests/Makefile.am (EXTRA_DIST): Remove $(TESTS). No longer defined. + (TESTS_ENVIRONMENT): Remove definition. + +2007-10-26 Jim Meyering <meyering@redhat.com> + + * build-aux/check.mk: Merge with latest from Akim. + + Add a test for the printf fix of 2007-10-21. + * tests/misc/printf-surprise: New file. Test for 2007-10-21's fix. + * tests/misc/Makefile.am (TESTS): Add printf-surprise. + +2007-10-24 Micah Cowan <micah@cowan.name> + + Remove vestiges of cvs-gnulib-checkout process. Now we use git. + * bootstrap: Remove support for now-unnecessary option, --cvs-user, + and envvars CVS_USER, CVS_RSH. + +2007-10-24 Micah Cowan <micah@cowan.name> + + Tell xgettext that "ARG1 % ARG2" is not a C format string. + * src/expr.c (usage): Add a comment to override xgettext's default + behavior, which would classify "ARG1 % ARG2" as a fprintf-style + format string. Reported by Clytie Siddall. + +2007-10-24 Jim Meyering <meyering@redhat.com> + + Avoid diagnostics from sha1sum when there is no cached checksum. + * bootstrap (update_po_files): Skip the sha1sum check if the po.s1 + file hasn't been created yet. + + Get gnulib from the git repository, not from an obsolete cvs one. + * bootstrap: Suggestion from Micah Cowan. + + Doc improvements. + * README-hacking: Prefer the no-hyphen variant of git commands, + e.g., use "git pull" not "git-pull". + Don't presume that the only way to read this document is via a + prior git clone: provide instructions for cloning coreutils, too. + + * README-hacking: Add "cd automake" in build instructions. + From Bob Proulx. + + Don't fail part 2 of tests/rm/unreadable when run as root. + * tests/rm/unreadable: With UID == 0, expect different results. + Reported by Mike Frysinger. + +2007-10-23 Jim Meyering <meyering@redhat.com> + + * README-hacking: Refer to LZMA Utils <http://tukaani.org/lzma/>. + +2007-10-22 Paul Eggert <eggert@cs.ucla.edu> + + * README-hacking: Describe how to build with LZMA. + +2007-10-22 Jim Meyering <meyering@redhat.com> + + Remove git-version-gen's first parameter. + * build-aux/git-version-gen: Add comments. + Remove first command-line parameter. + * configure.ac: Remove corresponding first argument. + * GNUmakefile (_curr-ver): Likewise. + +2007-10-21 Jim Meyering <meyering@redhat.com> + + * NEWS: Mention the printf fix. + + Reorder tests to run more basic ones earlier. + * tests/misc/Makefile.am (TESTS): Reorder. + * tests/Makefile.am (SUBDIRS): Reorder. + + tr: do not reject an unmatched [:lower:] or [:upper:] in SET1. + * NEWS: Mention this. + * src/tr.c (get_next) [RE_CHAR_CLASS]: Don't skip the loop when + processing [:lower:] and [:upper:]. + (main): Require [:lower:] or [:upper:] in SET1 only when + when one of those is specified in SET2. + * tests/tr/Test.pm: Add tests for this fix. + Reported by Per Starbäck. + +2007-10-20 Jim Meyering <meyering@redhat.com> + + * tests/misc/help-version: Add a comment. + + Detect printf(3) failure due to ENOMEM. + * src/printf.c: Include "xprintf.h" + (print_direc): Use xprintf, rather than printf. + * bootstrap.conf (gnulib_modules): Add xprintf. + * po/POTFILES.in: Add lib/xprintf.c. + Reported by Bruno Haible. + + Put always-failing programs first in PATH, so tests cannot mistakenly + run installed versions. + * Makefile.maint (my-distcheck): Set up a bogus bin/ dir, to be used + for "make check". + + * doc/coreutils.texi (tee invocation): Fix typo. Add a little. + Add a cross-reference to bashref's Process Substitution node. + + Adjust tests to pass, now that Test.pm ones use check.mk. + * tests/check.mk (vc_exe_in_TESTS): Adjust regexp not to match the + "TESTS = $x-tests" line in each Test.pm-derived Makefile.am file. + * tests/sort/main: Remove this unused file. + + Ensure that Test.pm-derived tests use the right $PATH. + * tests/Makefile.am.in: Include $(top_srcdir)/tests/check.mk. + +2007-10-20 Bob Proulx <bob@proulx.com> + + Prevent "make check" from leaving mktemp /tmp/tmp.* files behind. + * tests/misc/help-version (mktemp_args): Tell mktemp to create + its temporary file in the current directory. + +2007-10-16 Jim Meyering <meyering@redhat.com> + + Show how to make tee redirect to multiple processes. + * doc/coreutils.texi (tee invocation): Tee can redirect output + to multiple _processes_, too. + +2007-10-14 Jim Meyering <meyering@redhat.com> + + Pull all TESTS_ENVIRONMENT settings "up" into tests/check.mk. + * tests/Makefile.am.in (TESTS_ENVIRONMENT): Remove definition. + * tests/chgrp/Makefile.am: Likewise. + * tests/chmod/Makefile.am: Likewise. + * tests/chown/Makefile.am: Likewise. + * tests/cp/Makefile.am: Likewise. + * tests/dd/Makefile.am: Likewise. + * tests/du/Makefile.am: Likewise. + * tests/install/Makefile.am: Likewise. + * tests/ln/Makefile.am: Likewise. + * tests/ls/Makefile.am: Likewise. + * tests/misc/Makefile.am: Likewise. + * tests/mkdir/Makefile.am: Likewise. + * tests/mv/Makefile.am: Likewise. + * tests/readlink/Makefile.am: Likewise. + * tests/rm/Makefile.am: Likewise. + * tests/rmdir/Makefile.am: Likewise. + * tests/tail-2/Makefile.am: Likewise. + * tests/touch/Makefile.am: Likewise. + * tests/check.mk (TESTS_ENVIRONMENT) [EXEEXT, EGREP, MAKE, PERL]: + [CONFIG_HEADER, build_programs, host_os, host_triplet, PATH]: + [REPLACE_GETCWD, CU_TEST_NAME]: Add definitions here. + * tests/misc/pwd-long: Use $abs_top_builddir/src, not $BUILD_SRC_DIR. + * tests/dd/skip-seek: Don't use $ENV{PROG}. + * tests/rm/empty-name: Likewise. + * tests/rm/unreadable: Likewise. + * tests/mv/i-1: Likewise. + + Fix a minor typo. + * configure.ac (AC_INIT): Fix a typo (s/9.6/6.9/) that makes a + difference only when running "make dist" without a .git/ subdir. + +2007-10-09 Jim Meyering <meyering@redhat.com> + + Move the help-version test into misc/. + * tests/help-version: Move to... + * tests/misc/help-version: ...here. + Source test-lib.sh, as usual. + Use $abs_top_builddir, rather than ".." and "../..". + + Make the runcon-no-reorder test slightly more general. + * tests/misc/runcon-no-reorder: Don't hard-code "unconstrained_t". + Use slightly more general "runcon $(id -Z)". + Suggestion from Stephen Smalley. + + Skip the chcon test on a system with no SELinux support. + * tests/test-lib.sh (require_selinux_): New function. + * tests/misc/chcon: Use it. + * tests/misc/selinux: Use it here, too. + * tests/cp/cp-a-selinux: and here. + * tests/selinux: Remove file. + * tests/Makefile.am (EXTRA_DIST): Remove selinux. + Reported by Mike Frysinger and Bauke Jan Douma. + + * src/dircolors.hin: Recognize .lzma as a compressed-file suffix. + + * configure.ac (AM_INIT_AUTOMAKE): Use dist-lzma, rather than dist-bzip2. + + Now that we don't install su, don't make misleading suggestions. + * src/Makefile.am (install-exec-local) [$(INSTALL_SU) != yes]: + Don't suggest running "make install-root". + (uninstall-local) [$(INSTALL_SU) != yes]: Don't even check + the installed binary. + +2007-10-08 Jim Meyering <meyering@redhat.com> + + When forming a truncated name, use the "[...]" prefix even for + an extremely long name in the current directory + * src/remove.c (full_filename_): Rename a local variable. + Use two separate "truncated" variables, in case the second + call to right_justify does not indicate any truncation -- which + would happen only if the single component FILENAME were longer + than 511 bytes and DIR_NAME were empty. + + rm could malfunction under unusual circumstances: + When operating on a relative name longer than 511 bytes, + and (when either processing a directory that is neither writable + nor readable (but still searchable) or when determining whether + to prompt), and encountering an ENOMEM error while forming the + file name, rm would operate on a truncated-to-511-byte name + starting with "[...]" rather than the intended one. + * NEWS: Describe the bugs. + * src/remove.c: Correct two misuses of full_filename: + (full_filename0, xfull_filename): New functions. + (full_filename_): Rewrite to use full_filename0. + (AD_pop_and_chdir): Use xfull_filename, not full_filename. + (write_protected_non_symlink): Likewise. + +2007-10-07 Jim Meyering <meyering@redhat.com> + + Don't let a helper function modify errno. + * src/remove.c (full_filename_): Save and restore errno. + Spotted by Bruno Haible. + + Reflect 2->3 GPL copyright version update in gnulib. + * gl/lib/tempname.h: Update copyright from gnulib. + * gl/lib/tempname.c: Likewise. + * .x-sc_GPL_version: Don't make an exception for those two files. + + * configure.ac (AM_INIT_AUTOMAKE): Don't use dist-lzma just yet. + + New program: mktemp. + * NEWS: Mention this. + * README: Add mktemp to the list. + * AUTHORS: Add this: mktemp: Jim Meyering + * src/mktemp.c: New file. + * src/Makefile.am (bin_PROGRAMS): Add mktemp. + (mktemp_LDADD): Add $(LIB_GETHRXTIME). + * man/mktemp.x: New file. + * man/Makefile.am (dist_man_MANS): Add mktemp.1. + (mktemp.1): New dependency. + * man/.cvsignore: Add mktemp.1. + * man/.gitignore: New file. + * src/.cvsignore, src/.gitignore: Add mktemp. + * tests/misc/mktemp: New file. + * tests/misc/Makefile.am (TESTS): Add mktemp. + * tests/Coreutils.pm (run_tests): Give the POST-test function + access to stdout and stderr contents, so it can verify that + the named-on-stdout file/dir does indeed exist and has proper + permissions, etc. + [po/ChangeLog] + * POTFILES.in: Add src/mktemp.c. + + Make tempname more random, via the randint module. + * gl/modules/tempname (Depends-on): Add randint and stdbool. + * gl/lib/tempname.c: Include randint.h and stdbool.h. + (uint64_t): Remove definition. Not needed. + [_LIBC] (RANDOM_BITS): Remove this block, now that we have proper + random bits. + (check_x_suffix): New function. + (gen_tempname_len): Rename from __gen_tempname. + Add a parameter, x_suffix_len, telling how many X's there must be at + the end of the template. + Use pseudo-random numbers all the way, rather than adding 7777 + from one iteration to the next. + (__gen_tempname): New function, to call gen_tempname_len, requiring a + suffix length of 6. + * gl/lib/tempname.h: Add prototype for gen_tempname_len. + + Convert coreutils' rand*.{c,h,m4} into modules. + First step: move these files to gl/lib: + * lib/rand-isaac.c, lib/rand-isaac.h + * lib/randint.c, lib/randint.h + * lib/randperm.c, lib/randperm.h + * lib/randread.c, lib/randread.h + Step 2: add modules/rand* and remove now-unneeded .m4 files. + * gl/modules/randint: New file. + * gl/modules/randperm: New file. + * gl/modules/randread: New file. + * m4/randint.m4: Remove file. + * m4/randperm.m4: Remove file. + * m4/randread.m4: Remove file. + Step 3: use the new modules + * bootstrap.conf (gnulib_modules): Add randint and randperm. + * m4/prereq.m4 (gl_RANDINT, gl_RANDREAD, gl_RANDPERM): Don't require; + These have been removed. + (gl_ROOT_DEV_INO): Don't require; already handled via bootstrap.conf. + + Copy from gnulib the parts of tempname that we'll modify. + * gl/lib/tempname.c: Copy from gnulib. + * gl/lib/tempname.h: Likewise. + * gl/modules/tempname: Likewise. + Allow GPLv2 on temporarily(?)-imported file from gnulib/libc. + * .x-sc_GPL_version: New file. + * Makefile.am (EXTRA_DIST): Add .x-sc_GPL_version + +2007-10-07 Jim Meyering <meyering@redhat.com> + + Avoid a pseudo-leak in sort. + * src/sort.c (main) [lint]: Avoid a nominal leak. + + Use puts, rather than printf ("%s\n". Slightly cleaner. + * src/tsort.c (tsort): ...and more efficient. + + Avoid seq malfunction on non-POSIX systems: mingw, BeOS, Interix. + * bootstrap.conf (gnulib_modules): Add vasprintf-posix. + Suggestion from Bruno Haible. + + Avoid a used-uninitialized error. + * src/copy.c (copy_internal): Don't overload "use_stat". + +2007-10-05 Jim Meyering <meyering@redhat.com> + + Make a failing cross-partition mv give a sensible diagnostic. + A cross-partition move of a file in a sticky tmpdir and owned by + another user would evoke an invalid diagnostic after copying it: + mv: cannot remove `x': Operation not permitted + Either of the following (mv.c, remove.c) changes would fix the bug by + itself. I think it's slightly better to use both; the added cost is + minimal: mv: an extra lstat-per-mv-cmdline-arg-that-goes-cross-partition, + rm: an extra lstat-per-unlink-that-fails-w/EPERM. + * src/remove.c (remove_entry): Also lstat the file upon EPERM. + * src/mv.c (rm_option_init): Initialize root_dev_ino just as is done + in rm, so that a cross-partition invoked remove.c:rm call works the + same way as one invoked from the command-line use of "rm". That + setting of root_dev_ino makes rm() do the equivalent of an additional + lstat for each argument, which in turn gives rm enough information to + issue the right diagnostic. + * tests/mv/sticky-to-xpart (version): New file. Test for the above. + * tests/mv/Makefile.am (TESTS): Add sticky-to-xpart. + Arrange for "make check-root" to run the new root-only test. + * tests/Makefile.am (tb): New target, to run the new root-only test. + (all_t): Add tb. + * src/c99-to-c89.diff: Adjust offsets. + + Add PACKAGE_VERSION to TESTS_ENVIRONMENT via check.mk. + * tests/check.mk (TESTS_ENVIRONMENT): Add PACKAGE_VERSION here, + rather than in every Makefile.am that needs it. + * tests/rm/Makefile.am (TESTS_ENVIRONMENT): Remove PACKAGE_VERSION. + * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Likewise. + +2007-10-04 Jim Meyering <jim@meyering.net> + + Adapt to new gnulib naming scheme. + * gl/lib/se-context.in.h: Rename from gl/lib/se-context_.h. + * gl/lib/se-selinux.in.h: Rename from gl/lib/se-selinux_.h. + * gl/m4/selinux-context-h.m4: Remove use of AC_LIBSOURCES. + * gl/m4/selinux-selinux-h.m4: Likewise. + * gl/modules/selinux-h (Files, Makefile.am): Reflect renaming. + (Makefile.am) [lib_SOURCES]: Add se-context.in.h and se-selinux.in.h. + + * lib/search_.h: Remove unused file. + + * bootstrap (slurp): Adapt to _.h -> .in.h name change. + (update_po_files): Work also when there are no .po files in po/. + + Remove test program: lib/t-fpending.c. + * lib/t-fpending.c: Remove file. Now, this test is in gnulib. + * lib/Makefile.am: Remove associated rules. + * .gitignore: Remove lib/t-fpending. + +2007-10-03 Jim Meyering <jim@meyering.net> + + * tests/misc/selinux: Skip this test if the initial chcon fails. + +2007-10-02 Jim Meyering <jim@meyering.net> + + Never copy through a symlink that cp has just created. + * src/copy.c (copy_internal): When same-file detection requires + 'stat'ing the destination file, also 'lstat' it and ensure that + it wasn't the destination of a preceding copy operation. + This bug was introduced on 2007-06-18. + * tests/cp/abuse: New test for the above. + * tests/cp/Makefile.am (TESTS): Add abuse. + +2007-09-30 Jim Meyering <jim@meyering.net> + + cp: do not abbreviate in --help output. + * src/cp.c (usage): Don't abbreviate: s/=link/=links/. + Reported by Géraud Meyer in <http://bugs.debian.org/444137>. + +2007-09-29 Eric Blake <ebb9@byu.net> + + Test previous patch. + * tests/misc/groups-dash: New test. + * tests/misc/Makefile.am (TESTS): Add it. + +2007-09-28 Eric Blake <ebb9@byu.net> + + * src/groups.sh: Don't ignore first argument if later argument is --. + +2007-09-27 Jim Meyering <jim@meyering.net> + + Avoid spurious test failure when SELinux stats "selinux/class". + * tests/ls/stat-free-symlinks: Grep for more precise /^stat("x"/. + + Move file-set and hash-triple modules to gnulib. + * bootstrap.conf (gnulib_modules): Remove file-set, now that + it's in gnulib, and the canonicalize module requires it there. + * gl/lib/file-set.c, gl/lib/file-set.h, gl/modules/hash-triple: Remove. + * gl/lib/hash-triple.c, gl/lib/hash-triple.h, gl/modules/file-set: + Remove. + + Add a test to exercise a readlink bug. + * tests/misc/readlink-fp-loop: New file. Test for the readlink bug + fixed through today's change to Gnulib's canonicalize module. + * tests/misc/Makefile.am (TESTS): Add readlink-fp-loop. + Bug report and a test case from mpb.mail@gmail.com. + +2007-09-25 Pádraig Brady <P@draigBrady.com> + + * doc/coreutils.texi (date invocation): + Make "Date input formats" easier to navigate to. + +2007-09-25 Jim Meyering <jim@meyering.net> + + Use XOR, not OR to combine bits. + * gl/lib/hash-triple.c (triple_hash): Use XOR (^), not OR (|), to + combine the bits from hashing the name and those of the inode number. + Add a few comments and remove out-of-context ones. + +2007-09-24 Jim Meyering <jim@meyering.net> + + * NEWS: The recent rm-diagnostic fix also affects cross-partition "mv". + + copy.c: Remove definitions of factored-out functions. + * src/copy.c: Include "file-set.h". + (seen_file, record_file): Remove functions that I factored + out on 2007-08-23. + +2007-09-22 Jim Meyering <jim@meyering.net> + + Don't print the commands of a 10-line script that's run in each subdir. + * tests/check.mk (vc_exe_in_TESTS): Add a leading "@", to reduce noise. + + rm: give a sensible diagnostic when failing to remove a symlink + On some systems (those with openat et al), when rm would fail to + remove a symlink, it would fail with the misleading diagnostic, + "Too many levels of symbolic links". + * NEWS: Mention the bug fix. + * src/remove.c (is_nondir_lstat): New function. + (remove_entry): Use it to catch failed-to-remove symlink (and any + other non-dir) here so that we don't fall through and try to treat + it as directory, which -- with a symlink -- would provoke the bogus + ELOOP failure. + * tests/rm/fail-eacces: Add a test for the above. + * src/c99-to-c89.diff: Adjust offsets. + + rm: fix a tiny, nearly inconsequential bug. + Don't perform a "."-relative lstat, when the file in question + may well not be in ".". Although this is a bug, a few attempts + to exercise it on a linux-2.6.22 system failed. You probably need + a pre-openat system to trigger the failure. The consequence of this + bug would be a lower-quality diagnostic upon failed dir removal. + * src/remove.c (is_dir_lstat): Add a parameter, fd_cwd. + Use it instead of hard-coding AT_FDCWD. + (remove_entry): Call is_dir_lstat with fd_cwd. + +2007-09-22 Karl Berry <karl@freefriends.org> + + * TODO: It'd be nice to add renice. + +2007-09-21 Jim Meyering <jim@meyering.net> + + Avoid test failure due to now-parallelized tests. + * tests/du/two-args: Run "du .." from a sub-directory one level deeper. + +2007-09-16 Jim Meyering <jim@meyering.net> + + * tests/misc/tac-continue: Arrange to remove a temporary file. + + * tests/check.mk (vc_exe_in_TESTS): Don't rely on the value of + $(TESTS), so that "make check TESTS=test-name" works once again. + + * tests/CuTmpdir.pm: Use File::Find + chmod syscall, not chmod -R. + + Revamp most test scripts. + + * tests/rm/v-slash: Avoid test failure with non-C locale. + Reported by Michael Stone. + + Enable some previously omitted test scripts. Add a test cross-check. + * tests/rm/Makefile.am (TESTS): Add empty-name and unreadable. + * tests/rm/empty-name: Likewise. + * tests/rm/unreadable: Reenable this test. Adjust for new rm. + * tests/mkdir/Makefile.am: Add writable-under-readonly. + * tests/mkdir/writable-under-readonly: Add some comments. + This test is always skipped, for now. + * tests/Makefile.am (ta): Hook up the new root-only script. + * tests/tail-2/infloop-1: Make this test pass. + * tests/tail-2/Makefile.am (TESTS): Add infloop-1. + * tests/tail-2/fflush: Remove unused file. + * tests/check.mk (vc_executable_is_in_TESTS): More portable. + * tests/check.mk (check): Depend on the above. + * build-aux/check.mk: Remove comment mentioning AUTHORS file. + + Factor out definitions in TESTS_ENVIRONMENT of srcdir, top_srcdir, etc. + tests/check.mk (top_srcdir): Define. + tests/*/Makefile.am: Remove definitions of $(srcdir), $(top_srcdir), + $(abs_top_srcdir), and $(abs_top_builddir), since they're + defined via the included tests/check.mk. + + tests/general: Remove from VC, this long-unused directory and contents. + + Adapt tests/tail-2/ to use test-lib.sh. + Adapt tests/readlink/ to use test-lib.sh. + + Move the sole test in tests/ls-2/ to tests/misc/. + * tests/ls-2/basic-1: Move this file to ... + * tests/misc/ls-misc: ...here. Don't rely on $PROG in env. + * tests/misc/Makefile.am (TESTS): Add ls-misc. + * tests/Makefile.am (SUBDIRS): Remove ls-2. + * tests/ls-2: Remove the directory. + * configure.ac (AC_CONFIG_FILES): Remove tests/ls-2/Makefile. + + More misc, test-related changes. (some to allow running tests as root) + + Move all tests from test/{od,sha1sum,shred,stty} to tests/misc/. + Reflect these renamings: + od/od-N misc/od-N + od/x8 misc/od-x8 + sha1sum/basic-1 misc/sha1sum + sha1sum/sample-vec misc/sha1sum-vec + shred/exact misc/shred-exact + shred/remove misc/shred-remove + stty/basic-1 misc/stty + stty/invalid misc/stty-invalid + stty/row-col-1 misc/stty-row-col + * tests/misc/Makefile.am (TESTS): Add the new files. + * tests/Makefile.am (SUBDIRS): Remove the dir names. + * tests/od, tests/sha1sum, tests/shred, tests/stty: Remove the + directories. + * configure.ac (AC_CONFIG_FILES): Remove the corresponding Makefile + names. + + Move the two tests in tests/tee to tests/misc/. + * tests/tee/basic: Move this file to ... + * tests/misc/tee: ...here. Don't rely on $PROG in env. + * tests/tee/dash: Move this file to ... + * tests/misc/tee-dash: ...here. Don't rely on $PROG in env. + * tests/misc/Makefile.am (TESTS): Add tee. + * tests/Makefile.am (SUBDIRS): Remove tee. + * tests/tee: Remove the directory. + * configure.ac (AC_CONFIG_FILES): Remove tests/tee/Makefile + + Move the two tests in tests/sum/ to tests/misc/. + * tests/sum/basic-1: Move this file to ... + * tests/misc/sum: ...here. Don't rely on $PROG in env. + * tests/sum/sysv: Move this file to ... + * tests/misc/sum-sysv: ...here. Adapt it to use test-lib.sh. + * tests/misc/Makefile.am (TESTS): Add sum and sum-sysv. + * tests/Makefile.am (SUBDIRS): Remove sum. + * tests/sum: Remove the directory. + * configure.ac (AC_CONFIG_FILES): Remove tests/sum/Makefile. + + Move the sole test in tests/tsort/ to tests/misc/tsort. + * tests/tsort/basic-1: Move this file to ... + * tests/misc/tsort: ...here. Don't rely on $PROG in env. + * tests/misc/Makefile.am (TESTS): Add tsort. + * tests/Makefile.am (SUBDIRS): Remove tsort. + * tests/tsort: Remove the directory. + * configure.ac (AC_CONFIG_FILES): Remove tests/tsort/Makefile. + + Move the sole test in tests/unexpand to tests/misc/unexpand. + * tests/unexpand/basic-1: Move this file to ... + * tests/misc/unexpand: ...here. Don't rely on $PROG in env. + * tests/misc/Makefile.am (TESTS): Add unexpand. + * tests/Makefile.am (SUBDIRS): Remove unexpand. + * tests/unexpand: Remove the directory. + * configure.ac (AC_CONFIG_FILES): Remove tests/unexpand/Makefile. + + Move the sole test in tests/seq to tests/misc/seq. + * tests/seq/basic: Move this file to ... + * tests/misc/seq: ...here. Don't rely on $PROG in env. + * tests/misc/Makefile.am (TESTS): Add seq. + * tests/Makefile.am (SUBDIRS): Remove seq. + * tests/seq: Remove the directory. + * configure.ac (AC_CONFIG_FILES): Remove tests/seq/Makefile + + Convert tests/mkdir/ to use test-lib.sh. + + Move the two tests in tests/md5sum to tests/misc/md5sum. + * tests/md5sum/basic-1: Move this file to ... + * tests/misc/md5sum: ...here. Don't rely on $PROG in env. + * tests/md5sum/newline-1: Move this file to ... + * tests/misc/md5sum-newline: ...here. Don't rely on $PROG in env. + * tests/misc/Makefile.am (TESTS): Add md5sum. + * tests/Makefile.am (SUBDIRS): Remove md5sum. + * tests/md5sum: Remove the directory. + * configure.ac (AC_CONFIG_FILES): Remove tests/md5sum/Makefile + + tests/sample-test: Update to use test-lib.sh. + + Convert tests/misc/ to use test-lib.sh, too. + Convert tests/ls/, too. + Convert tests/ln/, too. + Convert tests/install/, too. + + Move the two tests in tests/fmt to tests/misc/fmt. + * tests/fmt/basic: Move this file to ... + * tests/misc/fmt: ...here. Don't rely on $PROG in env. + * tests/fmt/long-line: Move this file to ... + * tests/misc/fmt-long-line: ...here. + * tests/misc/Makefile.am (TESTS): Add fmt. + * tests/Makefile.am (SUBDIRS): Remove fmt. + * tests/fmt: Remove the directory. + * configure.ac (AC_CONFIG_FILES): Remove tests/fmt/Makefile + + Move the sole test in tests/factor to tests/misc/factor. + * tests/factor/basic: Move this file to ... + * tests/misc/factor: ...here. Don't rely on $PROG in env. + * tests/misc/Makefile.am (TESTS): Add factor. + * tests/Makefile.am (SUBDIRS): Remove factor. + * tests/factor: Remove the directory. + * configure.ac (AC_CONFIG_FILES): Remove tests/factor/Makefile + + Move the sole test in tests/expr to tests/misc/expr. + * tests/expr/basic: Move this file to ... + * tests/misc/expr: ...here. Don't rely on $PROG in env. + * tests/misc/Makefile.am (TESTS): Add expr. + * tests/Makefile.am (SUBDIRS): Remove expr. + * tests/expr: Remove the directory. + * configure.ac (AC_CONFIG_FILES): Remove tests/expr/Makefile + + Convert tests/du/*, too. + + Move the sole test in tests/dircolors to tests/misc/dircolors. + * tests/dircolors/simple: Move this file to... + * tests/misc/dircolors: ...here. Don't rely on $PROG in env. + * tests/misc/Makefile.am (TESTS): Add dircolors. + * tests/Makefile.am (SUBDIRS): Remove dircolors. + * tests/dircolors: Remove the directory. + * configure.ac (AC_CONFIG_FILES): Remove tests/dircolors/Makefile + + Convert tests/dd/*, too. + + Convert tests/mv, too. + * tests/other-fs-tmpdir: Before, all callers would exit 77 upon + failure to find the required dir. Now, exit 77 in this script so + callers don't have to. Adjust callers. + + Adjust chgrp, chmod, chown, cp tests to use test-lib.sh. + * tests/check.mk: Also define abs_top_builddir. + + Parallel "make check" support. + * build-aux/check.mk: New file, from The Vaucanson Group. + * .x-sc_GPL_version: New file, to allow "version 2 or later" + in build-aux/check.mk. + * Makefile.am (EXTRA_DIST): Add .x-sc_GPL_version. + * tests/check.mk: New file. + * tests/Makefile.am (EXTRA_DIST): Add check.mk, mkdtemp and test-lib.sh. + + Begin factoring "sample-test" out of test scripts. + * tests/test-lib.sh: New file, to be sourced by all tests that + were previously derived from the "sample-test" template. + * tests/mkdtemp: New file. + * tests/touch/dir-1: Use test-lib.sh. + * tests/touch/empty-file: Likewise. + * tests/touch/fail-diag: Likewise. + * tests/touch/fifo: Likewise. + * tests/touch/no-create-missing: Likewise. + * tests/touch/no-rights: Likewise. Also, don't sleep. + * tests/touch/not-owner: Likewise. + * tests/touch/obsolescent: Likewise. + * tests/touch/read-only: Likewise. + * tests/touch/relative: Likewise. + * tests/touch/Makefile.am: Include $(top_srcdir)/tests/check.mk, + to get the parallel-"make check" bits. + + Move a slow test into tests/misc. + * tests/check.mk: Wrapper. + * tests/ls/time-1: Move this file to tests/misc/ls-time. + * tests/misc/ls-time: New file. From tests/ls/time-1. + * tests/ls/Makefile.am (TESTS): Remove time-1. + * tests/misc/Makefile.am (TESTS): Add ls-time. + + Add support for parallel "make check" (in tests/misc, for now) + +2007-09-08 Jim Meyering <jim@meyering.net> + + Accommodate gnulib's renaming: __fpending.h -> fpending.h. + * lib/t-fpending.c: Include "fpending.h", not "__fpending.h". + +2007-09-07 Jim Meyering <jim@meyering.net> + + chmod: don't ignore a dangling symlink + * NEWS: Mention the bug fix. + * src/chmod.c (process_file): Handle the case of FTS_SLNONE, + i.e., give a diagnostic saying we cannot operate on such a file. + * tests/chmod/thru-dangling: Compare new stderr output with expected. + +2007-09-07 Bob Proulx <bob@proulx.com> + + Add a test: demonstrate that chmod ignores a dangling symlink + * tests/chmod/thru-dangling: New test. Fails. + * tests/chmod/Makefile.am (TESTS): Add thru-dangling. + +2007-09-05 Jim Meyering <jim@meyering.net> + + Adapt to new SELinux behavior: "?" vs. new "unlabeled" + * src/ls.c (gobble_file): Interpret the new "unlabeled" indicator + from getfilecon/lgetfilecon the same way we interpret a negative + return value: no security context. So we don't print the "+". + * tests/selinux: Recognize that "unlabeled" means insufficient + support for SELinux, just like "?". + +2007-09-03 Jim Meyering <jim@meyering.net> + + Invoke $(AUTOCONF) manually, if needed to get an updated version string. + * GNUmakefile: Don't actually touch configure.ac. + That would make git-version-gen always print "...-dirty". + + Don't change '-'s to '.'s in the string from git-describe. + * build-aux/git-version-gen: Leave '-'s in the string from git-describe. + Otherwise, s/-/./g would make it too hard to distinguish the base + version number from the appended .DD suffixes. + +2007-09-03 Jim Meyering <jim@meyering.net> + + * README-hacking: Require rsync, rather than wget. + +2007-09-02 Jim Meyering <jim@meyering.net> + + * bootstrap (WGET_COMMAND): Remove code to set this variable. + + Ensure that $(VERSION) is up to date for dist-related targets. + * GNUmakefile: Arrange to rerun autoconf, if the version reported by + git-version-gen doesn't match $(VERSION), but only for dist targets. + + bootstrap: uses rsync to download the .po files + * bootstrap (po_download_command_format): New global. + (download_po_files): Use rsync. + (update_po_files): Don't remove .po files after download, + so future rsync runs can take advantage of the copies. + +2007-09-01 Jim Meyering <jim@meyering.net> + + * bootstrap (gnulib_tool): Make sha1sum check quietly. + + Ensure that snapshot version changes make it to groups, too. + * src/Makefile.am (groups): Depend on Makefile. + + Make groups-version executable, + * tests/misc/groups-version: ... as it was in the patch. + +2007-08-31 Eric Blake <ebb9@byu.net> + + Test yesterday's change to groups. + * tests/misc/groups-version: New test. + * tests/misc/Makefile.am (TESTS): Add groups-version. + +2007-08-31 Jim Meyering <jim@meyering.net> + + Solve the unnecessary-.po-file-regeneration problem once and for all. + * bootstrap (download_po_files): New function, renamed from + get_translations. Now, downloads, but doesn't update LINGUAS. + (update_po_files): New function. + +2007-08-30 Jim Meyering <jim@meyering.net> + + Shorten the snapshot version string by removing the "g". + * build-aux/git-version-gen: Remove git-describe's "g" that would + always precede the abbreviated SHA1. Suggestion from Dmitry V. Levin. + + Perform the s,rm,/bin/rm, fix-up properly. No more kludge. + * Makefile.am (EXTRA_DIST): Remove .kludge-stamp. + (.kludge-stamp): Remove rule. Instead, ... + (dist-hook): Do the job here, operating on the file in $(distdir). + (rm_subst): Adjust regexp to match "rm -f rm$(EXEEXT)", not "rm -f rm". + (MAINTAINERCLEANFILES): s/+=/=/, now that this is the sole use. + (dist-hook): Remove the legacy-from-cvs install-sh is-executable check. + * .gitignore: Remove .kludge-stamp. + + Make inter-release --version output more useful. + Now, each snapshot has a version "number" like 6.9-219-g58ddd, + which indicates that it is built using the 219th change set + (in _some_ repository) following the "v6.9" tag, and that 58ddd + is a prefix of the commit SHA1. + * build-aux/git-version-gen: New file. + * configure.ac: Run it to set the version. + * Makefile.am (dist-hook): Arrange so that .version appears only + in distribution tarballs, never in a checked-out repository. + * .gitignore: Add .version here, too. Just in case. + +2007-08-30 Eric Blake <ebb9@byu.net> + + * src/.gitignore: Ignore *.exe for platforms with non-empty $(EXEEXT). + +2007-08-30 Eric Blake <ebb9@byu.net> + + Use PACKAGE_NAME instead of GNU_PACKAGE. + * src/Makefile.am (.sh, uninstall-local): Adjust all users of + hand-rolled GNU_PACKAGE to instead use autoconf-provided + PACKAGE_NAME. + * src/basename.c (main): Likewise. + * src/chroot.c (main): Likewise. + * src/dirname.c (main): Likewise. + * src/echo.c (main): Likewise. + * src/expr.c (main): Likewise. + * src/factor.c (main): Likewise. + * src/groups.sh (version): Likewise. Also, reflect change in + --version output due to GPLv3. + * src/hostid.c (main): Likewise. + * src/hostname.c (main): Likewise. + * src/link.c (main): Likewise. + * src/logname.c (main): Likewise. + * src/nice.c (main): Likewise. + * src/nohup.c (main): Likewise. + * src/printenv.c (main): Likewise. + * src/printf.c (main): Likewise. + * src/pwd.c (main): Likewise. + * src/setuidgid.c (main): Likewise. + * src/sleep.c (main): Likewise. + * src/system.h (case_GETOPT_VERSION_CHAR): Likewise. + * src/test.c (main): Likewise. + * src/true.c (main): Likewise. + * src/unlink.c (main): Likewise. + * src/uptime.c (main): Likewise. + * src/users.c (main): Likewise. + * src/whoami.c (main): Likewise. + * src/yes.c (main): Likewise. + * configure.ac (AC_CHECK_DECLS): No need to check strtoimax, + strtoumax, since gnulib does this. + +2007-08-30 Jim Meyering <jim@meyering.net> + + Ensure that TMPDIR is valid. Otherwise, it would cause test failures. + * tests/misc/tty-eof: Set TMPDIR=. + * tests/misc/sort-compress: Likewise. + + Use EXIT_FAILURE, not EXIT_FAIL, now that EXIT_FAILURE is always 1. + * src/system.h (EXIT_FAIL): Remove definition. + * src/chroot.c (main): EXIT_FAIL -> EXIT_FAILURE. + * src/env.c (main): Likewise. + * src/nice.c (main): Likewise. + * src/su.c (change_identity, main): Likewise. + * src/tty.c (main): Likewise. + Suggestion from Eric Blake. + +2007-08-28 Jim Meyering <jim@meyering.net> + + * src/test.c (usage): Note that [ honors --help and --version, + but that test does not. Suggestion from Dan Jacobson. + + By default, do not install hostname anymore; no kidding, this time. + * src/Makefile.am (EXTRA_PROGRAMS): Remove hostname from this list, + now that it's no longer being installed by default. This should + have been part of the 2007-08-21 change. + (check-duplicate-no-install): New rule to ensure this doesn't + happen again. + (check): Depend on it. + + Reflect renaming: mreadlink-with-size -> areadlink-with-size. + * bootstrap.conf: Update module name. + * src/copy.c (copy_internal): Update header and function names. + * src/ls.c (get_link_name): Likewise. + * src/readlink.c (main): Likewise. + * src/stat.c (print_stat): Likewise. + + Add file system type names and magic numbers from "man 2 statfs". + * src/stat.c (human_fstype): Also handle BEFS, BFS, BINFMT_MISC, + FUSECTL, HUGETLBFS, NFSD and OPENPROM. + +2007-08-27 Jim Meyering <jim@meyering.net> + + Add some file system type names and magic numbers from glibc. + * src/stat.c (human_fstype): Add any file system names and values + present in glibc's linux_fsinfo.h but not in this list. + Alphabetize the S_* names and capitalize the hexadecimal constants. + +2007-08-26 Jim Meyering <jim@meyering.net> + + * tests/misc/fold: Fix a typo: missing \ in a diagnostic + no one is likely ever to see. + +2007-08-25 Jim Meyering <jim@meyering.net> + + * src/dircolors.hin: Add .dz and .svgz as archive suffixes. + + Remove all .cvsignore files from version control. + +2007-08-24 Jim Meyering <jim@meyering.net> + + bootstrap: Ignore more. + * bootstrap (symlink_to_dir): Add a directory name like + uniwidth to e.g., lib/.gitignore. + (slurp): Handle the sys_stat_.h -> sys mapping, too. + * .hgignore: Remove this file, too. + * Makefile.am (EXTRA_DIST): Remove .gitignore and .hgignore. + + No longer version-control .???ignore files in lib/, m4/, and po/. + * .gitignore: Ignore a few files in lib/, m4/, and po/ that are not + picked up automatically. + * lib/.gitignore, lib/.cvsignore: Remove files. + * m4/.gitignore, m4/.cvsignore: Remove files. + * po/.gitignore, po/.cvsignore: Remove files. + + bootstrap: when fetching .po files, do not remove .gmo files. + * bootstrap (get_translations): Don't remove *.gmo files! + They can be expensive to regenerate. + + Create .gitignore and/or .cvsignore from scratch, if absent. + This is in preparation for my removing those files from version + control in the directories managed by gnulib-tool. + * bootstrap: New setting: vc_ignore. + (insert_sorted_if_absent): Create $file if absent. + Adapt to new, possibly empty, list: $vc_ignore. + + * src/system.h (fseeko, ftello): Remove now-unneeded definitions. + * src/od.c (LDBL_DIG): Remove now-unneeded definition. + + Arrange to use tag names like vM.N, rather than COREUTILS-M_N. + * Makefile.maint (this-vc-tag) [git]: Simply use v$(VERSION). + (this-vc-tag-regexp): New variable. + (vc-tag-check): Use it, rather than $(this-vc-tag). + +2007-08-23 Jim Meyering <jim@meyering.net> + + * src/dircolors.hin: Add xterm-16color, xterm-88color and eterm-color. + Suggestion from Dan Nicolaescu. + + Don't let ln be a party to destroying user data. + * src/ln.c: Include "file-set.h", "hash.h" and "hash-triple.h". + (dest_set, DEST_INFO_INITIAL_CAPACITY): New globals. + (do_link): Refuse to remove a just-created link. + Record a name,dev,ino triple for each link we create. + (main): Initialize dest_set, if needed. + * tests/mv/childproof: Test for the above fix. + * NEWS: Document this. + Reported by Eric Blake. + + Move functions from copy.c into new modules, since ln needs them, too. + * bootstrap.conf (gnulib_modules): Add file-set. + * gl/lib/file-set.c (record_file, seen_file): Functions from copy.c. + * gl/lib/file-set.h: Add prototypes. + * gl/lib/hash-triple.c (triple_hash, triple_hash_no_name): + (triple_compare, triple_free): Functions from copy.c. + * gl/lib/hash-triple.h (struct F_triple): Define. From copy.c. + Add prototypes. + * gl/modules/file-set: New module. + * gl/modules/hash-triple: New module. + * src/Makefile.am (copy_sources): New variable. + (ginstall_SOURCES, cp_SOURCES, mv_SOURCES): Use it. + * src/copy.c: Include hash-triple.h. + No longer include hash-pjw.h. + (copy_internal): Don't pass a NULL third argument to record_file, + since that function no longer accepts that. + (record_file): Move this function to file-set.c. + Along the way, remove the code to allow a NULL stat-buffer pointer. + Adjust sole caller. + (seen_file): Move this function to file-set.c. + (struct F_triple): Move declaration to hash-triple.h. + (triple_compare, triple_free, triple_hash, triple_hash_no_name): + Move these functions to hash-triple.c. + + bootstrap: generate more ignorable names + * bootstrap (slurp): When generating ignorable names, also map + .sin to .sed, .gperf to .c, and .y to .c. + + * Makefile.maint (patch-check): Don't remove temporaries upon failure. + +2007-08-22 Jim Meyering <jim@meyering.net> + + * src/c99-to-c89.diff: Adjust offsets. + + Change "rm --verbose -r a//" not to print extra slashes in a///b + * src/remove.c (push_dir): Don't copy trailing slashes onto the stack. + Reported by François Pinard. + * tests/rm/v-slash: New file. Test for the above change. + * tests/rm/Makefile.am (TESTS): Add v-slash. + + * src/date.c: Don't include "getline.h", now removed from gnulib; + its declarations are now in <stdio.h>. + * src/md5sum.c: Likewise. + * src/dircolors.c: Likewise. + + * src/copy.c (DEST_INFO_INITIAL_CAPACITY): Correct a comment. + +2007-08-21 Jim Meyering <jim@meyering.net> + + By default, do not install hostname anymore. + * configure.ac: Add "hostname" to the list of not-installed programs. + * src/Makefile.am (no_install__progs): Add "hostname" here, too. + * NEWS: Mention this. + +2007-08-20 Bob Proulx <bob@proulx.com> + + Clarify touch documentation of file arguments. + * src/touch.c (usage): Improve wording of documentation regarding + file argument handling and special handling of - argument. + * doc/coreutils.texi (touch invocation): Likewise. + Documentation problem reported by Vincent Lefevre. + +2007-08-20 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: The old cp -p bug affected coreutils releases before 6.0. + Problem reported by Soren Spies in + <http://lists.gnu.org/archive/html/bug-coreutils/2007-08/msg00106.html>. + To be conservative, just say the bug was in all versions through 6.6. + +2007-08-19 Eric Blake <ebb9@byu.net> + + Avoid consuming too much seekable input when yesno is used. + * bootstrap.conf (gnulib_modules): Add closein. + * src/system.h (includes): Also include closein.h. + * src/mv.c (main): Use close_stdin, not close_stdout. + * src/cp.c (main): Likewise. + * src/ln.c (main): Likewise. + * src/rm.c (main): Likewise. + * src/install.c (main): Likewise. + * NEWS: Document the fix. + +2007-08-20 Jim Meyering <jim@meyering.net> + + Parallel "make check" support. + * build-aux/check.mk: New file, from The Vaucanson Group. + * .x-sc_GPL_version: New file, to allow "version 2 or later" + in build-aux/check.mk. + * Makefile.am (EXTRA_DIST): Add .x-sc_GPL_version. + * tests/check.mk: New file. + * tests/Makefile.am (EXTRA_DIST): Add check.mk, mkdtemp and test-lib.sh. + + Begin factoring "sample-test" out of test scripts. + * tests/test-lib.sh: New file, to be sourced by all tests that + were previously derived from the "sample-test" template. + * tests/mkdtemp: New file. + * tests/touch/dir-1: Use test-lib.sh. + * tests/touch/empty-file: Likewise. + * tests/touch/fail-diag: Likewise. + * tests/touch/fifo: Likewise. + * tests/touch/no-create-missing: Likewise. + * tests/touch/no-rights: Likewise. Also, don't sleep. + * tests/touch/not-owner: Likewise. + * tests/touch/obsolescent: Likewise. + * tests/touch/read-only: Likewise. + * tests/touch/relative: Likewise. + * tests/touch/Makefile.am: Include $(top_srcdir)/tests/check.mk, + to get the parallel-"make check" bits. + +2007-08-18 Jim Meyering <jim@meyering.net> + + Use new "idcache.h" header. + * src/ls.c: Remove ancient declarations of getuser and getgroup. + Include "idcache.h", instead. + + Run each Coreutils.pm-based test in its own subdirectory. + * tests/CuTmpdir.pm: New file. + * tests/Makefile.am (EXTRA_DIST): Add CuTmpdir.pm. + * tests/misc/od, tests/misc/base64, tests/misc/basename: + * tests/misc/cut, tests/misc/date, tests/misc/dirname: + * tests/misc/expand, tests/misc/fold, tests/misc/head-elide-tail: + * tests/misc/paste-no-nl, tests/misc/pr, tests/misc/sha224sum: + * tests/misc/sha256sum, tests/misc/sha384sum, tests/misc/sha512sum: + * tests/misc/sort-merge, tests/misc/stat-printf, tests/misc/test-diag: + * tests/misc/wc-files0-from, tests/misc/xstrtol: + * tests/dd/skip-seek, tests/dircolors/simple, tests/du/files0-from: + * tests/expr/basic, tests/factor/basic, tests/fmt/basic: + * tests/ls-2/tests, tests/md5sum/basic-1, tests/md5sum/newline-1: + * tests/seq/basic, tests/sha1sum/basic-1, tests/sha1sum/sample-vec: + * tests/sum/basic-1, tests/tsort/basic-1, tests/unexpand/basic-1: + * tests/mv/i-1, tests/rm/empty-name, tests/rm/unreadable: Use it. + * tests/misc/test-diag: Use "$ENV{abs_top_builddir}/src/test", + not "../../src/test", so it works when run from a subdirectory. + * tests/ls-2/tests: Create temp files and dirs from within the perl + script, so that they're removed, when run from a subdirectory. + * tests/ls-2/Makefile.am (TESTS_ENVIRONMENT): Define abs_top_builddir, + so we can use "$ENV{abs_top_builddir}/src/test" in a test script. + +2007-08-16 Jim Meyering <jim@meyering.net> + + Consolidate od tests. + * tests/misc/od: Perform od-zero-len's test here. + Include boilerplate code, so tests run in a subdirectory. + * tests/misc/od-zero-len: Remove this file. + + * tests/ls/time-1: Include sample-test boilerplate code. + Remove the then-unnecessary, hard-coded envvar "unset" commands. + +2007-08-15 Jim Meyering <jim@meyering.net> + + Move a slow test into tests/misc. + * tests/ls/time-1: Move this file to tests/misc/ls-time. + * tests/misc/ls-time: New file. From tests/ls/time-1. + * tests/ls/Makefile.am (TESTS): Remove time-1. + * tests/misc/Makefile.am (TESTS): Add ls-time. + + od --skip (-j) works even on files in /proc, when the kernel lies + * src/od.c (skip): Don't let kernel misinformation (nonempty files + in /proc with stat.st_size == 0) make "od -j N" misbehave. + Patch by Paul Eggert. + * NEWS: Document this work-around. + * tests/misc/od-zero-len: New file, test for the above. + + * src/printf.c (usage): Adjust summary to also mention OPTIONs. + From Karl Berry. + +2007-08-14 Jim Meyering <jim@meyering.net> + + od: fix a bug that arises when skipping exact length of file + * NEWS: Document the bug fix. + * src/od.c (skip): Call fseek even when n_skip is exactly the + same as the length of the current file. Otherwise, the next + iteration would use unadjusted input stream pointer, thus ignoring + the desired "skip". Report and patch by Paul GHALEB. + + * tests/misc/od: New file, test for the above. + * tests/misc/Makefile.am (TESTS): Add od. + +2007-08-10 Paul Eggert <eggert@cs.ucla.edu> + + Accommodate more xstrtol changes. + * src/df.c (long_options): Don't bother prepending "--" to long + options that OPT_STR might decode, as that hack is no longer needed. + (main): Invoke xstrtol_fatal rather than STRTOL_FATAL_ERROR. + * src/du.c (long_options, main): Likewise. + * src/ls.c (decode_switches): Likewise. + * src/od.c (long_options, main): Likewise. + * src/pr.c (first_last_page, main): Likewise. + * src/sort.c (long_options, specify_sort_size): Likewise. + * src/pr.c (first_last_page): Accept option index and option char + instead of an assembled option string. All callers changed. + * src/sort.c (specify_sort_size): Likewise. + * src/system.h (OPT_STR, LONG_OPT_STR, short_opt_str, OPT_STR_INIT): + Remove. + +2007-08-05 Jim Meyering <jim@meyering.net> + + Encapsulate a static variable. + * src/system.h (opt_str_storage): Move static var into... + (short_opt_str): ... new static inline function. + (OPT_STR): Use the new function. + +2007-08-04 Jim Meyering <jim@meyering.net> + + Exercise xstrtol's diagnostics via pr's --pages option. + * tests/misc/xstrtol: New file. + * tests/misc/Makefile.am (TESTS): Add xstrtol. + +2007-08-04 Paul Eggert <eggert@cs.ucla.edu> + + Adapt to new human and xstrtol API. + * src/df.c (long_options): Prepend "--" to long options that + OPT_STR might decode. + * src/du.c (long_options): Likewise. + * src/od.c (long_options): Likewise. + * src/sort.c (long_options): Likewise. + * src/df.c (main): Adjust to new human and xstrtol API. + * src/du.c (main): Likewise. + * src/ls.c (decode_switches): Likewise. + * src/od.c (main): Likewise. + * src/pr.c (first_last_page): Likewise. New argument OPTION. + All callers changed. + * src/sort.c (specify_sort_size): New arg OPTION. All callers + changed. Adjust to new xstrtol API. + * src/system.h (opt_str_storage): New static var. + (OPT_STR, LONG_OPT_STR, OPT_STR_INIT): New macros. + +2007-08-02 Jim Meyering <jim@meyering.net> + + Adjust one more test to accommodate the recent fts change. + This matters only on systems with insufficient openat support. + * tests/du/inacc-dest: Adjust expected diagnostic. + + Adjust the other two "no-x" tests and unify all three. + * tests/du/no-x: Factor out du-specific bits. + * tests/chmod/no-x: Use the same code. + * tests/chgrp/no-x: Use the same code. + + Adapt du's no-x test not to fail on older Linux systems. + * tests/du/no-x: Accept a third variant of the diagnostic. + +2007-07-31 Jim Meyering <jim@meyering.net> + + du: print size (probably incomplete) of each inaccessible directory + * src/du.c (process_file): Print what we know of the size of a + directory even when it is inaccessible. What we print is just the + size of the directory itself, not counting any of its contents. + * tests/du/inacc-dir: Test for this. + * NEWS: Mention this change. + + Add a test for du not counting size of inaccessible directories. + * tests/du/inacc-dir: New file. Test for fts.c bug fixed yesterday. + * tests/du/Makefile.am (TESTS): Add inacc-dir. + * NEWS: Mention the bug fix. + +2007-07-28 Jim Meyering <jim@meyering.net> + + Attempt to copy a regular file, even if stat says it is empty. + * NEWS: Document this bug fix. + * src/copy.c (copy_reg): Read from a regular file, even if it + appears (stat.st_size == 0) to be empty. This reverts an + optimization introduced on 2005-11-23 for coreutils-6.0. + Otherwise, "cp /proc/cpuinfo /tmp" creates an empty file, + on e.g., linux-2.6.20. + * tests/cp/proc-zero-len: New file. Test for the above. + * tests/cp/Makefile.am (TESTS): Add proc-zero-len. + Reported by Dan Berrangé. + +2007-07-26 Bob Proulx <bob@proulx.com> + + sort: Improve sort --random-sort test. + * tests/misc/sort-rand: If "locale" is available pick a random + non-C locale and check "sort --random-sort" behavior using it. + +2007-07-24 Jim Meyering <jim@meyering.net> + + sort: add a test to exercise the affected code. + * tests/sort/Test.pm (realloc-buf): Exercise the code that changed + yesterday. No other test in all of "make check" does this. + * NEWS: Mention the fix. + +2007-07-23 Paul Eggert <eggert@cs.ucla.edu> + + sort: avoid unaligned access. + * src/sort.c (fillbuf): When enlarging the line buffer, ensure that + the new size is a multiple of "sizeof (struct line)". This avoids + alignment problems when indexing from the end of the buffer. + Problem reported by Andreas Schwab in + <http://lists.gnu.org/archive/html/bug-coreutils/2007-07/msg00158.html>. + +2007-07-23 Jim Meyering <jim@meyering.net> + + Update all copyright notices to use the newer form (e.g., remove + the postal address, and add the 'licenses' URL). + + * COPYING: Update to Version 3. + + Update c99/c89 patch for new, copyright-change-induced offsets. + * Makefile.maint (patch-check): Filter out '^Only in...' lines. + * src/c99-to-c89.diff: Handle new c99'isms in seq.c. + +2007-07-22 Jim Meyering <jim@meyering.net> + + * configure.ac: Arrange to rerun configure whenever src/Makefile.am + changes. That file contains the list of program names that must be + substituted into files like man/Makefile. + Add quotes around AC_SUBST arguments. + +2007-07-21 Paul Eggert <eggert@cs.ucla.edu> + + * bootstrap (slurp): Work even in environments where "ls" defaults + to "ls -A". Put in a FIXME, though, since the current code does + not slurp files whose names start with ".", and this looks like + it might be a troublesome area. + +2007-07-20 Jim Meyering <jim@meyering.net> + + Document and add a test for today's sort bug fix. + * NEWS: Describe the bug fix. + * tests/sort/Test.pm (obs-inval): Add a test for today's fix. + +2007-07-20 Andreas Schwab <schwab@suse.de> + + * src/sort.c (main): Don't free a pointer to non-malloc'd memory. + +2007-07-19 Jim Meyering <jim@meyering.net> + + Fix a portability bug in the new ls-color test. + * tests/ls/stat-free-symlinks: Don't rely on the ability of + a built-in printf to interpolate '\e'. Use '\033' instead. + +2007-07-18 Jim Meyering <jim@meyering.net> + + "cp -i --update older newer" no longer prompts; same for mv + * src/copy.c (copy_internal): Perform "update" check before the + possible interactive prompt. Reported by zeno_AT_biyg_DOT_org + in <http://bugzilla.redhat.com/248591> + * tests/mv/update: Add tests for the above. + * NEWS: Mention the bug fix. + +2007-07-15 Jim Meyering <jim@meyering.net> + + ls --color: Don't stat symlinks when neither ORPHAN nor MISSING + attribute has a color. + * src/ls.c (main): Don't set check_symlink_color when C_EXEC is + colored, unless ln=target (aka color_symlink_as_referent) is set. + (gobble_file): Set f->linkok = true also when !check_symlink_color. + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/10608/focus=10927 + Reported by Jeremy Maitin-Shepard. + * tests/strace: New file, contents extracted from... + * tests/mv/atomic: ...here. Source strace. + * tests/ls/stat-free-symlinks: New file. Test for the above. + Use strace to ensure that in this corner case, ls does not call stat. + * tests/ls/Makefile.am (TESTS): Add stat-free-symlinks. + * tests/Makefile.am (EXTRA_DIST): Add strace. + +2007-07-14 Jim Meyering <jim@meyering.net> + + Remove long-deprecated options. + * NEWS: Mention this. + * src/df.c, src/ls.c: Remove --kilobytes option. + * src/du.c: Remove --kilobytes and --megabytes options. + * src/who.c: Remove -i and --idle options. + * src/ptx.c: Remove --copyright option. + + Change interface: make 2nd param _space_-separated, not comma-separated + * m4/include-exclude-prog.m4 (gl_INCLUDE_EXCLUDE_PROG): Remove now- + unnecessary use of tr. + Improve comments. + * configure.ac: Adjust caller, as well as the code that ensures the + 2nd parameter stays in sync with the list in src/Makefile.am. + +2007-07-14 Karel Zak <kzak@redhat.com> + + * m4/include-exclude-prog.m4 (gl_REMOVE_PROG): Fix typo: s/$2/$1/. + (gl_INCLUDE_EXCLUDE_PROG): Quote first use of $2 parameter. + Don't mix comma- and space-separated lists. + Patch from Karel Zak. + +2007-07-13 Jim Meyering <jim@meyering.net> + + Warn about non-portable use of unescaped backslash at end of string, + and treat it as if it were escaped. + * src/tr.c (unquote): Considering that such usage would make GNU tr + from coreutils-5.2.1 and earlier *fail*, the least we can do now is + to warn about it. Solaris' tr ignores it. + * NEWS: Mention this. + + Use proper backslash-quoting inside backticks. + * configure.ac: Otherwise we run afoul of strict GNU tr: + a string ending in a lone backslash would provoke a failure. + +2007-07-12 Jim Meyering <jim@meyering.net> + + Expand default-no-install prog list in ./configure --help output, + and fix some []-quoting bugs in sed expressions. + * configure.ac: Hard-code the list, "arch,su" here as well + as in src/Makefile.am, and ensure the two stay in sync. + * m4/include-exclude-prog.m4 (gl_INCLUDE_EXCLUDE_PROG): Use $2, + rather than the nearly-equivalent shell variable. + Karel Zak reported that ./configure --help's output included + the literal string, $gl_no_install_progs_default. + + Clean up include-exclude-prog.m4. + * m4/include-exclude-prog.m4 (gl_ADD_PROG): Don't modify MAN. + (gl_REMOVE_PROG): Likewise. + Add omitted "\>" in sed regexp. + Remove any leading or trailing spaces. + (gl_ADD_PROG): Remove any leading space. + * configure.ac: Instead, derive $MAN from $optional_bin_progs. + Append $(EXEEXT) to *all* names, not just the first one. + +2007-07-11 Jim Meyering <jim@meyering.net> + + If there's a GPL vN copyright comment, require that N == 3. + * Makefile.maint (sc_GPL_version): New rule. + * tests/misc/arch: Fix the sole violation. + +2007-07-10 Jim Meyering <jim@meyering.net> + + Skip "arch" test if it's not built. + * tests/misc/Makefile.am (built_programs): Define. + (TESTS_ENVIRONMENT): Add $(built_programs), for... + * tests/misc/arch: ...this: skip the test if arch is not built. + * src/Makefile.am (built_programs.list): New rule. + * tests/Makefile.am (built_programs): Rename from all_programs. + (TESTS_ENVIRONMENT): Use built_programs, not all_programs. + * tests/help-version: Likewise. + * NEWS: Mention that using --enable-no-install-program=X may + cause "make check" to fail. + + Add support for enabling/disabling installation of specified programs. + * NEWS: Mention new configure-time options. + Mention that neither arch nor su is built/installed, by default. + * m4/include-exclude-prog.m4: New file. + * configure.ac: Use new macro, gl_ADD_PROG, rather than + manually appending to OPTIONAL_BIN_PROGS and MAN. + Move the code that adds "df" to the list of programs to build from + m4/jm-macros into this file. + Use gl_INCLUDE_EXCLUDE_PROG, then handle special cases: ginstall, [. + (NO_INSTALL_PROGS_DEFAULT): AC_SUBST it. Used by man/Makefile.am. + * man/Makefile.am (dist_man_MANS): Remove from this list all man pages + corresponding to "bin" programs. Add $(MAN) instead. + (optional_mans): Remove all uses. + (check-x-vs-1): Adapt to work even though arch and su are typically + no longer built (and neither are their .1 files). + * src/Makefile.am (install_su): Rename from INSTALL_SU, now that + INSTALL_SU has a different meaning. Use the new $(INSTALL_SU) value. + +2007-07-10 Karel Zak <kzak@redhat.com> + + New program: arch + * NEWS: Mention arch. + * README: Add arch to the list of programs. + * AUTHORS: Add arch. + * src/uname.c: Include "uname.h". + (PROGRAM_NAME): Handle arch, too. + (ARCH_AUTHORS): Define. + (uname_long_options, arch_long_options): Renamed and new globals. + (usage): Handle arch-mode as well as uname-mode. + (decode_switches): New function, extracted from main, + to handle arch-mode as well as uname-mode. + (main): Handle both modes. + * src/uname-arch.c: New program, alias for "uname -m". + * src/uname-uname.c: New file, default uname mode. + * src/uname.h: New file, uname modes. + * src/Makefile.am (EXTRA_PROGRAMS): Add arch. + (uname_SOURCES, arch_SOURCES): Define. + * man/arch.x: New file. + * man/Makefile.am (dist_man_MANS): Add arch.1. + (arch.1): New dependency. + * tests/misc/arch: New test, compare "arch" with "uname -m" + * configure.ac (OPTIONAL_BIN_PROGS): Add arch. + (MAN): Add arch.1. + * .x-sc_require_config_h: Exempt uname-arch.c and uname-uname.c + from the always-include-<config.h> rule. + +2007-07-10 Jim Meyering <jim@meyering.net> + + Change "version 2" to "version 3" in all copyright notices. + +2007-07-09 Jim Meyering <jim@meyering.net> + + Compensate for new c99'isms in seq.c. + * Makefile.maint (patch-check): Use -p1, not -p2, so a patch + generated via "make patch-check REGEN=1" actually works. + * src/c99-to-c89.diff: Handle new c99'isms in seq.c. + +2007-07-09 Pádraig Brady <P@draigBrady.com> + + Fix the automatic number width formatting in seq. + * src/seq.c: Fix the -w logic. Ignore spaces and '+' + characters of input numbers when determining width. + Set format correctly for input numbers in scientific notation. + * tests/seq/basic: Add various number width tests. + Details: <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/10903> + +2007-07-08 Jim Meyering <jim@meyering.net> + + Run the coreutils-specific code only if tests/Makefile.am.in exists. + * bootstrap (mam_template): Move definition out of loop. + + Create symlinks for gl/{lib,m4}/*, just as for gnulib/{lib,m4}/*. + * bootstrap (symlink_to_dir): Rename function from symlink_to_gnulib. + Add a directory parameter. Update all callers. + (cp_mark_as_generated): Also check for -- and link to -- files in gl/. + + * THANKS: Add Pádraig Brady. + +2007-07-08 Jim Meyering <jim@meyering.net> + + Adapt to deeper hierarchy in gnulib. + * bootstrap (symlink_to_dir): If the destination directory doesn't + exist, create it. This is required at least for "lib/uniwidth/cjk.h". + + Use <wchar.h>, not "wcwidth.h". + * src/wc.c: Now that gnulib provides the POSIX-specified <wchar.h>, + include it and <wctype.h>, rather than "wcwidth.h". + * src/ls.c: Include <wchar.h>, rather than "wcwidth.h". + +2007-07-05 Jim Meyering <jim@meyering.net> + + setuidgid: set all groups, not just the primary one. + I wanted to use the xgetgroups function from id.c, so factored + it out and made it into a non-exiting function (hence the "m" + prefix rather than "x"). + * src/setuidgid.c (main): Use mgetgroups. + Include "mgetgroups.h". + + * src/id.c (xgetgroups): Remove function. + Include "mgetgroups.h". + (print_group_list): Use mgetgroups, not xgetgroups. + + * gl/modules/mgetgroups: New module. + * gl/lib/mgetgroups.c: New file. mgetgroups is derived from + id.c's xgetgroups function. + * bootstrap.conf (gnulib_modules): Add mgetgroups. + * gl/m4/mgetgroups.m4: New file. + * gl/lib/mgetgroups.h: New file. + + * bootstrap: Merge in changes from gnulib. + + * src/id.c: Include "getugroups.h" rather than declaring manually. + +2007-07-04 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: pr -F no longer suppresses the footer or the first two blank + lines in the header. + * doc/coreutils.texi (pr invocation): Likewise. Also, a too-short + page length implies -t, not -T. + * src/pr.c (lines_per_header, lines_per_footer): Now constants. + (init_parameters): Don't try to change them. + (print_header): Use the same header and footer format regardless of + wither form feeds are being used. + (usage): Adjust to above change when describing too-short page length. + Too-short page length impliesy -t, not -T. + * tests/pr/2-S_f-t_notab: Adjust to the fact that -F now affects + only formfeed handling; it does not change the header. + * tests/pr/2-Sf-t_notab: Likewise. + * tests/pr/2f-t_notab: Likewise. + * tests/pr/2s_f-t_notab: Likewise. + * tests/pr/2s_w60f-t_nota: Likewise. + * tests/pr/2sf-t_notab: Likewise. + * tests/pr/2sw60f-t_notab: Likewise. + * tests/pr/2w60f-t_notab: Likewise. + * tests/pr/3a3f-0F: Likewise. + * tests/pr/3b3f-0F: Likewise. + * tests/pr/3b3f-0FF: Likewise. + * tests/pr/3b3f-FF: Likewise. + * tests/pr/3f-0F: Likewise. + * tests/pr/3f-FF: Likewise. + * tests/pr/Test.pm: Likewise. + * tests/pr/a3f-0F: Likewise. + * tests/pr/a3f-0FF: Likewise. + * tests/pr/a3f-FF: Likewise. + * tests/pr/b3f-0F: Likewise. + * tests/pr/b3f-0FF: Likewise. + * tests/pr/b3f-FF: Likewise. + * tests/pr/3-5l17f-t: Remove, since it's been renamed to another + file whose name has a line count 7 larger, + reflecting the new line count needed for this behavior. + * tests/pr/3a3l8f-t: Likewise. + * tests/pr/3b3l8f-t: Likewise. + * tests/pr/3l17f-t: Likewise. + * tests/pr/3ml17f-t: Likewise. + * tests/pr/Ja3l17f-lm: Likewise. + * tests/pr/Jb3l17f-lm: Likewise. + * tests/pr/Jml17f-lm-lo: Likewise. + * tests/pr/W-72l17f-ll: Likewise. + * tests/pr/W20l17f-ll: Likewise. + * tests/pr/W26l17f-ll: Likewise. + * tests/pr/W27l17f-ll: Likewise. + * tests/pr/W28l17f-ll: Likewise. + * tests/pr/W35Ja3l17f-lm: Likewise. + * tests/pr/W35Jb3l17f-lm: Likewise. + * tests/pr/W35Jml17f-lmlo: Likewise. + * tests/pr/W35a3l17f-lm: Likewise. + * tests/pr/W35b3l17f-lm: Likewise. + * tests/pr/W35ml17f-lm-lo: Likewise. + * tests/pr/W72Jl17f-ll: Likewise. + * tests/pr/a3l17f-lm: Likewise. + * tests/pr/a3l8f-t: Likewise. + * tests/pr/b3l17f-lm: Likewise. + * tests/pr/b3l8f-t: Likewise. + * tests/pr/l17f-t: Likewise. + * tests/pr/ml17f-0F: Likewise. + * tests/pr/ml17f-lm-lo: Likewise. + * tests/pr/ml17f-t: Likewise. + * tests/pr/ml17f-t-0F: Likewise. + * tests/pr/n+2-5l17f-0FF: Likewise. + * tests/pr/n+2l17f-0FF: Likewise. + * tests/pr/n+2l17f-bl: Likewise. + * tests/pr/n+3l17f-0FF: Likewise. + * tests/pr/n+3l17f-bl: Likewise. + * tests/pr/n+3ml13f-bl-FF: Likewise. + * tests/pr/n+3ml17f-bl-tn: Likewise. + * tests/pr/n+3ml17f-tn-bl: Likewise. + * tests/pr/n+4b2l10f-0FF: Likewise. + * tests/pr/n+5-8b3l10f-FF: Likewise. + * tests/pr/n+5a3l6f-0FF: Likewise. + * tests/pr/n+6b3l6f-FF: Likewise. + * tests/pr/nJml17f-lmlmlo: Likewise. + * tests/pr/nJml17f-lmlolm: Likewise. + * tests/pr/nN1+3l17f-bl: Likewise. + * tests/pr/nN15l17f-bl: Likewise. + * tests/pr/nSml13-bl-FF: Likewise. + * tests/pr/nSml13-t-t-FF: Likewise. + * tests/pr/nSml13-t-tFFFF: Likewise. + * tests/pr/nSml17-bl-FF: Likewise. + * tests/pr/nSml17-t-t-FF: Likewise. + * tests/pr/nSml17-t-tFFFF: Likewise. + * tests/pr/nl17f-bl: Likewise. + * tests/pr/o3Jml17f-lm-lo: Likewise. + * tests/pr/o3a3Sl17f-tn: Likewise. + * tests/pr/o3a3Snl17f-tn: Likewise. + * tests/pr/o3a3l17f-tn: Likewise. + * tests/pr/o3b3Sl17f-tn: Likewise. + * tests/pr/o3b3Snl17f-tn: Likewise. + * tests/pr/o3b3l17f-tn: Likewise. + * tests/pr/o3mSl17f-bl-tn: Likewise. + * tests/pr/o3mSnl17fbltn: Likewise. + * tests/pr/o3ml17f-bl-tn: Likewise. + * tests/pr/w72l17f-ll: Likewise. + * tests/pr/3-5l24f-t: New file, containing the contents of the + file with the same name but with the line count smaller by 7, + reflecting the new behavior with -F. + * tests/pr/3a3l15f-t: Likewise. + * tests/pr/3b3l15f-t: Likewise. + * tests/pr/3l24f-t: Likewise. + * tests/pr/3ml24f-t: Likewise. + * tests/pr/Ja3l24f-lm: Likewise. + * tests/pr/Jb3l24f-lm: Likewise. + * tests/pr/Jml24f-lm-lo: Likewise. + * tests/pr/W-72l24f-ll: Likewise. + * tests/pr/W20l24f-ll: Likewise. + * tests/pr/W26l24f-ll: Likewise. + * tests/pr/W27l24f-ll: Likewise. + * tests/pr/W28l24f-ll: Likewise. + * tests/pr/W35Ja3l24f-lm: Likewise. + * tests/pr/W35Jb3l24f-lm: Likewise. + * tests/pr/W35Jml24f-lmlo: Likewise. + * tests/pr/W35a3l24f-lm: Likewise. + * tests/pr/W35b3l24f-lm: Likewise. + * tests/pr/W35ml24f-lm-lo: Likewise. + * tests/pr/W72Jl24f-ll: Likewise. + * tests/pr/a3l15f-t: Likewise. + * tests/pr/a3l24f-lm: Likewise. + * tests/pr/b3l15f-t: Likewise. + * tests/pr/b3l24f-lm: Likewise. + * tests/pr/l24f-t: Likewise. + * tests/pr/ml24f-0F: Likewise. + * tests/pr/ml24f-lm-lo: Likewise. + * tests/pr/ml24f-t: Likewise. + * tests/pr/ml24f-t-0F: Likewise. + * tests/pr/n+2-5l24f-0FF: Likewise. + * tests/pr/n+2l24f-0FF: Likewise. + * tests/pr/n+2l24f-bl: Likewise. + * tests/pr/n+3l24f-0FF: Likewise. + * tests/pr/n+3l24f-bl: Likewise. + * tests/pr/n+3ml20f-bl-FF: Likewise. + * tests/pr/n+3ml24f-bl-tn: Likewise. + * tests/pr/n+3ml24f-tn-bl: Likewise. + * tests/pr/n+4b2l17f-0FF: Likewise. + * tests/pr/n+5-8b3l17f-FF: Likewise. + * tests/pr/n+5a3l13f-0FF: Likewise. + * tests/pr/n+6b3l13f-FF: Likewise. + * tests/pr/nJml24f-lmlmlo: Likewise. + * tests/pr/nJml24f-lmlolm: Likewise. + * tests/pr/nN1+3l24f-bl: Likewise. + * tests/pr/nN15l24f-bl: Likewise. + * tests/pr/nSml20-bl-FF: Likewise. + * tests/pr/nSml20-t-t-FF: Likewise. + * tests/pr/nSml20-t-tFFFF: Likewise. + * tests/pr/nSml24-bl-FF: Likewise. + * tests/pr/nSml24-t-t-FF: Likewise. + * tests/pr/nSml24-t-tFFFF: Likewise. + * tests/pr/nl24f-bl: Likewise. + * tests/pr/o3Jml24f-lm-lo: Likewise. + * tests/pr/o3a3Sl24f-tn: Likewise. + * tests/pr/o3a3Snl24f-tn: Likewise. + * tests/pr/o3a3l24f-tn: Likewise. + * tests/pr/o3b3Sl24f-tn: Likewise. + * tests/pr/o3b3Snl24f-tn: Likewise. + * tests/pr/o3b3l24f-tn: Likewise. + * tests/pr/o3mSl24f-bl-tn: Likewise. + * tests/pr/o3mSnl24fbltn: Likewise. + * tests/pr/o3ml24f-bl-tn: Likewise. + * tests/pr/w72l24f-ll: Likewise. + +2007-06-23 Jim Meyering <jim@meyering.net> + + Prefer "STREQ (a, b)" over "strcmp (a, b) == 0"; similar for != 0. + * src/base64.c (main): Likewise. + * src/install.c (setdefaultfilecon): Likewise. + * src/sort.c (main): Likewise. + * Makefile.maint (sc_prohibit_strcmp): New rule. + * .x-sc_prohibit_strcmp: New file, to list the few exceptions. + * Makefile.am (EXTRA_DIST): Add .x-sc_prohibit_strcmp. + +2007-06-22 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: seq no longer mishandles obvious cases like + "seq 0 0.000001 0.000003" by omitting the last output number. + * doc/coreutils.texi (seq invocation): Remove advice about workaround + for seq off-by-one problem, since the bug is fixed now. Replace + it with more-generic advice about rounding errors. + * src/seq.c (long_double_format, print_numbers): + New arg NUMERIC_FORMAT. All uses changed. + +2007-06-22 Pádraig Brady <P@draigBrady.com> (trivial change) + + * tests/seq/basic: Add test cases for seq off-by-one problem. + +2007-06-22 Jim Meyering <jim@meyering.net> + + * src/stat.c (long_options): Add a FIXME comment to help ensure + that the deprecated and undocumented "--filesystem" option is + removed someday. + +2007-06-18 Paul Eggert <eggert@cs.ucla.edu> + + A few more symlink-related fixes. Fix a bug triggered by cp + --parents and symlinks. Close some race conditions possible when + the destination replaces a newly-created file with a symlink. + * NEWS: Document that 'cp --parents' no longer mishandles + symlinks in file name components of source. + * src/copy.c (HAVE_LCHOWN): Default to false. + (lchown) [!defined HAVE_LCHOWN]: Define to chown, for convenience. + * src/cp.c (lchown) [!HAVE_LCHOWN]: Likewise. + * src/install.c (lchown [!HAVE_LCHOWN]: Likewise. + * src/copy.c (set_owner): Use lchown instead of chown, for safety + in case the file got replaced by a symlink in the meantime. + * src/cp.c (re_protect): Likewise. + * src/install.c (change_attributes): Likewise. + * src/copy.c (copy_internal): Use ordinary C rather than an #if. + * src/cp.c (lchown) [!HAVE_LCHOWN]: Define to chown, for convenience. + (struct dir_attr): Cache the entire struct stat of the directory, + rather than just its mode, so that we needn't stat the directory + twice (which can lead to races). + (re_protect): Don't use XSTAT as that's not appropriate in + this context (symlinks should be followed here). Instead, use + the cached stat value. + (make_dir_parents_private): Save dir's entire struct stat, not + just its mode. + * tests/cp/cp-parents: Add test to check against bug with + cp --parents and symlinks. + +2007-06-18 Jim Meyering <jim@meyering.net> + + Use mreadlink_with_size (doesn't exit), not xreadlink_with_size. + * bootstrap.conf (gnulib_modules): Add readlink-with-size. + Remove xreadlink and xreadlink-with-size. + * src/copy.c (copy_internal): Use mreadlink_with_size, + not xreadlink_with_size. + * src/ls.c (get_link_name): Likewise. + * src/readlink.c (main): Likewise. + * src/stat.c (print_stat): Likewise. + + * README-hacking: Don't mention Gzip 1.2.4, now that 1.3.12 is out. + +2007-06-16 Jim Meyering <jim@meyering.net> + + Make chgrp and chown diagnostics consistent. + * src/chown.c (main): Emit the diagnostic before the file name, + not after it, to be consistent with chgrp's diagnostic. + * src/chgrp.c (parse_group): Emit a ":" between the diagnostic + and the file name. + Reported by Egmont Koblinger. + * THANKS: Add Egmont Koblinger. + +2007-06-15 Paul Eggert <eggert@cs.ucla.edu> + + Correct cp's handling of destination symlinks in some cases. + * NEWS: "cp" no longer considers a destination symlink to be the + same as the referenced file when copying links or making backups. + * src/copy.c (copy_reg): When following a symlink, use the + followed name in later chown etc. requests, so that the created + file is affected, rather than the symlink. Use O_NOFOLLOW on + source when not dereferencing symlinks; this avoids a race. + Preserve errno correctly when doing multiple open attempts on the + destination. + (copy_internal): Follow destination symlinks only when copying a + regular file and only when we don't intend to remove or rename the + destination first, regardless of whether following source + symlinks; this is because since POSIX and tradition (e.g., + FreeBSD) say we should ordinarily follow destination symlinks if + the system calls would ordinarily do so. + * src/copy.h (struct cp_options): Add comment that 'dereference' + is only for source files. + * src/cp.c (usage): Note that --derereference etc. are only for + source files. + (make_dir_parents_private): Follow symlinks, regardless of whether + --dereference is specified, because these are destination symlinks. + * tests/cp/same-file: Adjust tests to match revised behavior. + Filter out perror output since it might vary from host to host. + Use sed alone instead of also using echo. + + * doc/coreutils.texi (cp invocation): Document the behavior better when + the destination is a symlink. Clarify source versus destination + symlinks. Describe the new behavior for destination symlinks. + +2007-06-15 Jim Meyering <jim@meyering.net> + + * src/copy.c: Include "canonicalize.h". + (copy_reg): Use canonicalize_filename_mode to follow the symlink, + so that we can always open with O_EXCL and avoid a race. + +2007-06-15 Jim Meyering <jim@meyering.net> + + Don't include "quote.h" when it is not used. + * src/md5sum.c: Remove unnecessary inclusion of "quote.h". + * src/expr.c: Likewise. + * src/shred.c: Likewise. + * Makefile.maint (sc_prohibit_quote_without_use): New rule. + * src/c99-to-c89.diff: Adjust offsets. + +2007-06-14 Paul Eggert <eggert@cs.ucla.edu> + + Clarify what "cat" documentation means by "blank" lines. + * doc/coreutils.texi (cat invocation): "Blank" lines actually mean + empty lines. + * src/cat.c (usage): Say that "nonblank" means nonempty. Clarify + --squeeze-blank. + +2007-06-13 Jim Meyering <jim@meyering.net> + + rmdir: give better diagnostics + * src/rmdir.c (remove_parents): Give a more descriptive/consistent + diagnostic upon failure. + (main): Likewise. + Suggestion from Joey Hess. + * THANKS: Add Joey Hess. + + Don't include "quotearg.h" when it is not used. + * Makefile.maint (sc_prohibit_quotearg_without_use): New rule. + * src/cp.c: Don't include "quotearg.h". It wasn't used. + + * README-hacking: List Gperf as a build-requirement, too. + Reported by Steve Ward. + +2007-06-11 Jim Meyering <jim@meyering.net> + + * README: Mention README-hacking, for whose who start from + cloned/checked-out sources rather than from a distribution tarball. + Reported by Steve Ward. + * THANKS: Add Steve Ward. + +2007-06-10 Jim Meyering <jim@meyering.net> + + bug-fix: cp would fail to write through a dangling symlink + * NEWS: Mention the bug fix. + * src/copy.c (copy_reg): When open fails with EEXIST, the destination + is lstat'able, and a symlink, call open again, but now without O_EXCL. + * tests/cp/thru-dangling: New file, to test for the above fix. + * tests/cp/Makefile.am (TESTS): Add thru-dangling. + * THANKS: Add Michael McLagan. + Bug report from Michael McLagan in <http://bugzilla.redhat.com/243588>. + +2007-06-04 Paul Eggert <eggert@cs.ucla.edu> + + * doc/coreutils.texi (Common options): Mention that -h and + --human-readable are equivalent to --block-size=human-readable. + Documentation problem reported by Steve Ward in + <http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00007.html>. + (du invocation): Use optSi rather than duplicating the macro's + contents (incorrectly, since we claimed a "B" was output). + +2007-05-31 Jim Meyering <jim@meyering.net> + + Pull printf-related code from gnulib, rather than using forked copy. + * bootstrap.conf (gnulib_modules): Don't avoid size_max and xsize + modules. While I dislike xsize-style overflow avoidance, maintaining + a forked version of e.g., vasnprintf.c was too much work. + +2007-05-29 Jim Meyering <jim@meyering.net> + + * src/dircolors.hin: Add screen-256color. + Suggested by sdl.web@gmail.com in <http://bugzilla.redhat.com/239266>. + +2007-05-26 Jim Meyering <jim@meyering.net> + + * TODO: Add an entry for comm --output-delimiter=STR + +2007-05-25 James Youngman <jay@gnu.org> + + wc: ignore multibyte-character decoding errors + * src/wc.c (wc): Don't issue an error message when mbrtowc + indicates that we have seen an invalid byte sequence. This + makes "wc /bin/sh" bearable (though the word and line counts + are likely not to be useful). + * NEWS: Mention the change. + +2007-05-22 Jim Meyering <jim@meyering.net> + + Check for an up-to-date copyright year in coreutils.texi. + * Makefile.maint (copyright-check): Also check for an up-to-date + copyright year in doc/$().texi, if that file exists. + * doc/coreutils.texi: Add 2007 to list of Copyright years. + Reported by Karl Berry. + + cut: diagnose a range starting with 0 (-f 0-2) as invalid, and + give a better diagnostic for a field-number/offset of 0. + * NEWS: Mention the fix. + * src/cut.c (ADD_RANGE_PAIR): Add an explicit check. + Based on a patch from James Youngman. + * tests/misc/cut: Add tests for the above. + + "cut -f 2-0" now fails; before, it was equivalent to "cut -f 2-" + Also, diagnose the '-' in "cut -f -" as an invalid range, rather + than interpreting it as the unlimited range, "1-". + * NEWS: Mention these changes. + * src/cut.c (set_fields): Don't interpret an accumulator "value" + of 0 as an unspecified range endpoint. + Give better diagnostics. + Adjust a comment so that it is true also for 64-bit size_t. + + * tests/cut/Test.pm: Add tests for the above. + + stty: fix a harmless syntax nit + * src/stty.c (visible): Use ";" as the statement terminator + between two assignments, not ",". + (integer_arg): Join an unnecessarily wrapped line. + +2007-05-20 Jim Meyering <jim@meyering.net> + + stty: diagnose an invalid hex value in 35-colon commmand-line argument + * NEWS: Mention this. + * src/stty.c (strtoul_tcflag_t, strtoul_cc_t): New functions. + (recover_mode): Use those functions (not sscanf), to parse the + string robustly. + * tests/stty/invalid: New file. Test for the above. + * tests/stty/Makefile.am (TESTS): Add invalid. + * .x-sc_prohibit_atoi_atof: Don't exempt stty.c from this check. + Add tests/stty/invalid so we don't have to obfuscate the comment + about sscanf therein. + * Makefile.maint (sc_prohibit_atoi_atof): Mention sscanf in the + diagnostic, too. + + * TODO: Remove some now-completed or no longer relevant items. + +2007-05-19 Jim Meyering <jim@meyering.net> + + Rename uses of futimens -> gl_futimens; glibc now declares the former. + * src/copy.c (copy_reg): Reflect renaming: futimens -> gl_futimens. + * src/touch.c (touch): Likewise. + +2007-05-18 Jim Meyering <jim@meyering.net> + + * Makefile.maint (my-distcheck): Remove -pedantic from $(CFLAGS) + for now, to avoid c89-check failure due to use of #include_next. + +2007-05-15 Jim Meyering <jim@meyering.net> + + Generate a dozen test-related Makefile.am files at bootstrap-time. + * README-hacking: Build-from-checkout now require Perl, too. + * bootstrap: Now that these generated Makefile.am files are no longer + under version control, they must be created at bootstrap time. + +2007-05-14 Paul Eggert <eggert@cs.ucla.edu> + + * man/chmod.x: Document chmod's behavior with setuid and setgid bits. + Remove misleading implication about leading zero. Problem + reported by Jan Engelhardt in + <http://lists.gnu.org/archive/html/bug-coreutils/2007-05/msg00134.html>. + +2007-05-13 Jim Meyering <jim@meyering.net> + + Remove the generated tests/*/Makefile.am files from version control. + * tests/cut/Makefile.am: git-remove this generated file. + * tests/head/Makefile.am: Likewise. + * tests/join/Makefile.am: Likewise. + * tests/pr/Makefile.am: Likewise. + * tests/sort/Makefile.am: Likewise. + * tests/tac/Makefile.am: Likewise. + * tests/tail/Makefile.am: Likewise. + * tests/test/Makefile.am: Likewise. + * tests/tr/Makefile.am: Likewise. + * tests/uniq/Makefile.am: Likewise. + * tests/wc/Makefile.am: Likewise. + * .cvsignore, .gitignore: Ignore these generated files. + + * src/.cvsignore, src/.gitignore: Add chcon here, ... + * .cvsignore, .gitignore: ... not here. + + Test uniq's new --zero-terminated (-z) option. + * tests/uniq/Test.pm: When possible, create a "-z"-testing variant + of each existing test. + (2z, 3z, 4z, 5z, 20z, 122, 123): New tests from James Youngman. + +2007-05-12 James Youngman <jay@gnu.org> + + Add -z option to uniq. Originally proposed by Egmont Koblinger. + * NEWS: Mention uniq's new option: --zero-terminated (-z). + * src/uniq.c: Add new option, --zero-terminated (-z), to make + uniq use the NUL byte as separator/delimiter rather than newline. + (check_file): Add a parameter: delimiter. Update caller. + Use readlinebuffer_delim in place of readlinebuffer everywhere. + (main): Handle the new option. + (usage): Describe new option the same way sort does. + * doc/coreutils.texi (uniq invocation): Describe the new option. + +2007-05-07 Jim Meyering <jim@meyering.net> + + * NEWS: Mention that last week's tr bug dates back to 1992. + +2007-05-04 Jim Meyering <jim@meyering.net> + + Avoid test failure when run with an unusual umask. + * tests/ls/color-dtype-dir: Set umask to 022. + Suggestion from AIDA Shinra. + + Avoid failure of root-only test when run with a restrictive umask. + * tests/rm/no-give-up: Ensure that non-root can access "d/" through + root-owned ".". Reported by AIDA Shinra. + + tr -c: don't abort when translating with S2 larger than complement of S1 + * src/tr.c (main): Remove invalid assertion triggered by e.g., + tr -c a '[b*256]'. There's nothing wrong with having Set2 larger + than Set1. Reported by Guntram Blohm. + * tests/tr/Test.pm (no-abort-1): Test for the above. + * NEWS: Mention this bug fix. + * THANKS: Add Guntram Blohm. + +2007-05-03 Jim Meyering <jim@meyering.net> + + Avoid test failure when run with a permissive umask. + * tests/rm/no-give-up: Set permissions of test directory properly, + i.e., not depending on umask prohibiting go=w. + Reported by AIDA Shinra. + +2007-05-02 Paul Eggert <eggert@cs.ucla.edu> + + The following commands and options now support the standard size + suffixes kB, M, MB, G, GB, and so on for T, P, Y, Z, and Y: + head -c, head -n, od -j, od -N, od -S, split -b, split -C, + tail -c, tail -n. + * doc/coreutils.texi (od invocation, head invocation, tail invocation): + Document support for new size suffixes. + (head invocation, tail invocation): + Document that -n uses the same suffixes as -c. + (tail invocation): More-clearly document what leading "+" does. + * src/head.c (usage, string_to_integer): Support new suffixes. + * src/od.c (usage, main): Likewise. + * src/split.c (usage, main): Likewise. + * src/tail.c (usage, parse_options): Likewise. + Prompted by a patch from Evan Hunt. + +2007-05-02 Jim Meyering <jim@meyering.net> + + * src/du.c (usage): Tweak description of --dereference-args (-D) again. + Prompted by another request for clarification from Justin Pryzby. + + Invoke rm via 'setuidgid ... env PATH="$PATH" ...', as in fail-eperm. + * tests/rm/fail-2eperm: Patch from AIDA Shinra. + Reported by Peter Dyballa. + * THANKS: Add AIDA Shinra and Peter Dyballa. + +2007-04-28 Paul Eggert <eggert@cs.ucla.edu> + + * src/nohup.c (usage): Describe how standard input and output + are redirected. + +2007-04-25 Jim Meyering <jim@meyering.net> + + * src/du.c (usage): Clarify description of --dereference-args (-D). + Prompted by a report from Justin Pryzby. + + * bootstrap.conf (gnulib_modules): Add fseeko and ftello. + (gnulib_modules): Add autobuild. + +2007-04-24 Jim Meyering <jim@meyering.net> + + * THANKS: Add Andreas Frische. + * NEWS: Mention today's ls --color fix. + * tests/ls-2/tests (sl-dangle): Add a test for today's fix. + +2007-04-24 Eric Blake <ebb9@byu.net> + + ls --color once again colors dangling symlinks correctly + * src/ls.c (gobble_file): Much like the 2007-04-07 fix, + add a term to the expression that decides whether we need + stat and/or lstat calls. Reported by Andreas Frische. + +2007-04-16 Jim Meyering <jim@meyering.net> + + * src/cut.c (usage): Adjust synopsis to show that an OPTION is required. + Reported by Rudolf Kastl. + * THANKS: Add Rudolf Kastl. + +2007-04-11 Paul Eggert <eggert@cs.ucla.edu> + + split --line-bytes=N (-C N): don't create an empty file. + * src/split.c (line_bytes_split): Don't create an empty line + afterwards if the last buffer happens to be exactly full. + * tests/misc/split-fail: Add a test case for this. + * NEWS: mention this. + +2007-04-10 Jim Meyering <jim@meyering.net> + + ls: don't form or compute the length of strings that won't be used. + * src/ls.c (gobble_file): Form and compute length of strings for + block size, owner, group, author, major+minor numbers and file size + only if they'll actually be used. I.e., don't form most of them + when not producing long format output. + +2007-04-07 Jim Meyering <jim@meyering.net> + + Add a test for, and document, today's fix. + * NEWS: Mention today's ls --color fix. + * tests/ls-2/tests (sl-target): Add a test for today's fix. + * THANKS: Add Kirk Kelsey. + +2007-04-07 Eric Blake <ebb9@byu.net> + + Fix a bug in how the LS_COLORS ln=target attribute is handled. + * src/ls.c (gobble_file): Use "stat" (not lstat) also when the + ln=target attribute applies. Reported by Kirk Kelsey. + +2007-04-02 Jim Meyering <jim@meyering.net> + + * src/copy.c (copy_reg): Initialize local "con", before calling + getfscreatecon, in case that function (or its inline stub) does + not set it. + +2007-04-01 Paul Eggert <eggert@cs.ucla.edu> + + * src/ls.c (print_horizontal): Fix bug reported by Mike Frysinger: + ls -x DIR would sometimes output the wrong string in place of the + first entry. + * NEWS: Mention the bug fix. + * tests/ls/x-option: New file. + * tests/ls/Makefile.am (TESTS): Add x-option. + + gnulib moved md5 and sha1 modules into a new crypt/ directory; adapt + * bootstrap.conf (gnulib_modules): Adjust to gnulib's renaming of + md5 to crypt/md5 and sha1 to crypt/sha1. + +2007-03-30 Jim Meyering <jim@meyering.net> + + * NEWS: Mention these SELinux changes. + + * ChangeLog-selinux: Remove file. + Move its contents into this file, removing old dates. + + * src/runcon.c (main): Don't reorder arguments. Reported by + Ulrich Drepper in <http://bugzilla.redhat.com/232652>. + * tests/misc/runcon-no-reorder: New file. Test for the above. + * tests/misc/Makefile.am (TESTS): Add runcon-no-reorder. + + * src/runcon.c (main): Remove "." at end of a diagnostic. + + * src/runcon.c: New program. + * src/Makefile.am (bin_PROGRAMS): Add runcon. + (runcon_LDADD): Define. + * README: Add runcon to the list of programs. + * AUTHORS: Add this: runcon: Russell Coker + * tests/help-version: Add runcon as an exception. + * man/Makefile.am (dist_man_MANS): Add runcon.1. + (runcon.1): New dependency. + + mkfifo, mknod: Accept new "-Z, --context=C" option. + * src/mkfifo.c, src/mknod.c: Include <selinux/selinux.h>. + (main): Honor it. + * src/Makefile.am (mkfifo_LDADD, mknod_LDADD): Use $(LIB_SELINUX). + + mkdir: Accept new "-Z, --context=C" option. + * src/mkdir.c: Include <selinux/selinux.h>. + (main): Honor it. + * src/Makefile.am (mkdir_LDADD): Use $(LIB_SELINUX). + + * tests/cp/cp-a-selinux: New file. Test for the bug reported in + <http://bugzilla.redhat.com/219900>. + * tests/cp/Makefile.am (TESTS): Add cp-a-selinux. + + * tests/selinux: New file. + * tests/Makefile.am (EXTRA_DIST): Add selinux. + * tests/misc/selinux: Source the new script, rather than open coding it. + + Change how "cp -a" and "cp --preserve=context" work 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. + * src/copy.h (struct cp_options) [require_preserve_context]: New member. + * src/copy.c (copy_reg, copy_internal): Implement the above. + * src/mv.c (cp_option_init): Initialize the new member. + * src/install.c (cp_option_init): Likewise. + * src/cp.c (cp_option_init): Likewise. + (decode_preserve_arg): Set it or reset it. + + cp, mv, install: add SELinux support, but unlike with the Red Hat + patch, mv and cp do not provide the "-Z context" option. + * src/copy.c: Include <selinux/selinux.h>. + (restore_default_fscreatecon): New function. + (copy_reg): Make cp --preserve=context work for existing destination. + (copy_internal): Likewise for new destinations. + * src/copy.h (cp_options) [preserve_security_context]: New member. + * src/cp.c: Include <selinux/selinux.h>. + (selinux_enabled): New global. + (usage): Mention new --preserve=context option. + (PRESERVE_CONTEXT): Define/use. + (decode_preserve_arg): Handle PRESERVE_CONTEXT. + (main): Remove an obsolete comment. + If --preserve=context is specified on a system without SELinux + enabled, give a diagnostic and fail. + * src/mv.c: Include <selinux/selinux.h>. + Set x->preserve_security_context if SELinux is enabled. + * src/install.c: Accept new "-Z, --context=C" option. + Accept --preserve-context option (but not -P option). + Accept alternate spelling: --preserve_context, for now. + Include <selinux/selinux.h> and "quotearg.h". + (selinux_enabled, use_default_selinux_context): New globals. + (PRESERVE_CONTEXT_OPTION): Define. + (cp_option_init): Default: do not preserve security context. + (setdefaultfilecon): New function. + (main): Honor new options. + * src/Makefile.am (mv_LDADD, cp_LDADD, ginstall_LDADD): + Add $(LIB_SELINUX). + * src/system.h (GETOPT_SELINUX_CONTEXT_OPTION_DECL): Define. + + * tests/misc/selinux [VERBOSE]: Print version info for each + of the tested tools, not just ls. + + * src/c99-to-c89.diff: Remove the ls.c patch, now that I've + temporarily removed the offending c99'ism. + + * src/chcon.c (usage): Split a string literal that was longer than 509. + + * src/ls.c (gobble_file): Don't call getfilecon unless print_scontext. + Upon failed getfilecon, accept not just ENOTSUP, but also ENODATA. + + * src/c99-to-c89.diff: Adjust offsets. + + * AUTHORS: Add chcon. + + * src/c99-to-c89.diff: Remove trailing blanks. + + * src/chcon.c: Don't include "dirname.h". system.h already includes it. + + * gl/lib/selinux-at.c: Remove a use of HAVE_CONFIG_H. + + * src/c99-to-c89.diff: Handle a new c99'ism in ls.c. + + * src/id.c (main): Tweak id -Z diagnostic. + + id: Add SELinux support: -Z option. + * src/id.c (main): Apply patches from Fedora, with these changes: + Remove #ifdef WITH_SELINUX. + Use error (EXIT_FAILURE, not fprintf+exit(1). + * src/Makefile.am (id_LDADD): Define, so as to add $(LIB_SELINUX). + + stat: Add support for SELinux in the form of a %C format directive. + * src/stat.c (follow_links): Make this variable file-global. + (out_file_context): New function. + (print_statfs): Honor %C. + (print_stat): Honor %C. + (do_stat): Remove follow_links parameter. + (usage): Document the two %C directives. + (main): Accept -Z (though it's a no-op). + * src/Makefile.am (stat_LDADD): Define. + + ls: Add support for SELinux and a slightly modified -Z option. + I started with the patches from Red Hat. + The entries below tell how the code evolved. + + * src/ls.c (print_long_format, print_file_name_and_frills): When + there is no security context (due to getfilecon/lgetfilecon failing + with e.g. ENOTSUP), print it as "?", not "". + * src/ls.c (print_file_name_and_frills): Make -Z work without -l. + (length_of_file_name_and_frills): Likewise. + + * src/ls.c: Remove the --lcontext and --scontext options. + Change the way -Z, --context work so that it no longer implies -l. + Thus, -Z -l will work like -lcontext and -Z without -l will work + like --scontext. + + Adjust tests to reflect new 'ls -l' syntax -- affects only + systems with SELinux when operating on a file with no ACL. + These tests assumed that everything before the first space on + each line is the 10-byte mode string. But there may also be a "+" + in the 11th column, just before the space. However, note that this + is not new. The same thing would have happened even without the + change below, when listing a file with an ACL. + * tests/chmod/equals, tests/cp/cp-parents, tests/cp/fail-perm: + * tests/cp/link-preserve, tests/install/basic-1, tests/misc/mknod: + * tests/mkdir/parents, tests/mkdir/special-1, tests/mv/partition-perm: + + Don't make compilation depend on USE_ACL. An SELinux security + context counts as an "alternate access control method", so ls + must output a "+" for each file with a security context. + * src/ls.c [struct fileinfo] (have_acl): Declare unconditionally. + (FILE_HAS_ACL): Remove macro definition. Use f->have_acl directly. + (gobble_file): Record whether a file has a security context, and + update the condition used to determine whether to print the "+". + (gobble_file): Call getfilecon/lgetfilecon also when + format == long_format, so that we get the "+". + + * src/ls.c (gobble_file): Add a comment explaining why (with a + security context option) ls doesn't exit nonzero due to e.g., + getfilecon failing with errno == ENOTSUP. + + * src/ls.c (gobble_file): Ignore failure of getfilecon if it's due + to ENOTSUP. + + * src/ls.c (gobble_file): Factor out three small blocks using + getfilecon and lgetfilecon. + Don't ignore return value from getfilecon and lgetfilecon. + + * src/ls.c (print_long_format): Don't use ?: (empty 2nd arg with C + ternary operator). + (print_scontext_format): Likewise. + (print_scontext): Declare to be "bool", not int. Adjust uses. + + * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): Add $(LIB_SELINUX). + + * tests/misc/chcon: New file. + * tests/misc/chcon-fail: New file. + * tests/Makefile.am (check-root): Run new, root-only misc/chcon test. + * tests/misc/Makefile.am (TESTS): Add chcon and chcon-fail. + + * tests/misc/Makefile.am (TESTS): Add selinux. + * tests/misc/selinux: New file. + * tests/help-version: Skip chcon. + * man/chcon.x: New file. + * man/Makefile.am: Build chcon.1. + + New program: chcon + * gl/modules/selinux-at: New module. Check for libselinux and set + LIB_SELINUX here, unconditionally, rather than depending on + the configure-time --enable-selinux option. + * gl/modules/selinux-h: New module. + * bootstrap.conf (gnulib_modules): Add selinux-at. + * gl/lib/selinux-at.c, gl/lib/selinux-at.h: New files. + * gl/lib/se-selinux_.h: New file. + * gl/lib/se-context_.h: New file. + * gl/m4/selinux-selinux-h.m4: New file. + * gl/m4/selinux-context-h.m4: New file. + * src/Makefile.am (bin_PROGRAMS): Add chcon. + (chcon_LDADD): Define. + * README: Add chcon to the list of programs. + * src/chcon.c: Rewrite the original (Red Hat) chcon to use fts. + +2007-03-29 Jim Meyering <jim@meyering.net> + + * .vg-suppressions: Add libc-getpwuid-leak. + +2007-03-28 Jim Meyering <jim@meyering.net> + + Help translators include translation team's web or email address. + * src/system.h (emit_bug_reporting_address): New function. + * src/base64.c: Use it rather than a literal printf. + * src/basename.c, src/cat.c, src/chgrp.c, src/chmod.c: + * src/chown.c, src/chroot.c, src/cksum.c, src/comm.c, src/cp.c: + * src/csplit.c, src/cut.c, src/date.c, src/dd.c, src/df.c: + * src/dircolors.c, src/dirname.c, src/du.c, src/echo.c, src/env.c: + * src/expand.c, src/expr.c, src/factor.c, src/fmt.c, src/fold.c: + * src/head.c, src/hostid.c, src/hostname.c, src/id.c, src/install.c: + * src/join.c, src/kill.c, src/link.c, src/ln.c, src/logname.c: + * src/ls.c, src/md5sum.c, src/mkdir.c, src/mkfifo.c, src/mknod.c: + * src/mv.c, src/nice.c, src/nl.c, src/nohup.c, src/od.c: + * src/paste.c, src/pathchk.c, src/pinky.c, src/pr.c, src/printenv.c: + * src/printf.c, src/ptx.c, src/pwd.c, src/readlink.c, src/rm.c: + * src/rmdir.c, src/seq.c, src/setuidgid.c, src/shred.c, src/shuf.c: + * src/sleep.c, src/sort.c, src/split.c, src/stat.c, src/stty.c: + * src/su.c, src/sum.c, src/sync.c, src/system.h, src/tac.c: + * src/tail.c, src/tee.c, src/test.c, src/touch.c, src/tr.c: + * src/true.c, src/tsort.c, src/tty.c, src/uname.c, src/unexpand.c: + * src/uniq.c, src/unlink.c, src/uptime.c, src/users.c, src/wc.c: + * src/who.c, src/whoami.c, src/yes.c: Likewise. + + * src/stty.c: Don't include "vasprintf.h", now that its + declarations are guaranteed to be in gnulib's stdio.h. + * src/who.c: Likewise. + +2007-03-27 Jim Meyering <jim@meyering.net> + + * README: Use "install", not "ginstall" in the list of program names. + * src/Makefile.am (check-README): Substitute s/ginstall/install/. + +2007-03-25 Jim Meyering <jim@meyering.net> + + * src/c99-to-c89.diff: Regenerate. + +2007-03-25 Paul Eggert <eggert@cs.ucla.edu> + + Avoid the need for euidaccess and/or lstat on every directory entry + with 'rm -r dir' (without -f), if we are root, or if we are removing + a directory tree that is full of symbolic links. + * bootstrap.conf (gnulib_modules): Add write-any-file. + * src/copy.c: Include write-any-file.h. + (UNWRITABLE): Remove macro, replacing with.... + (writable_destination): New function, which uses can_write_any_file + to avoid the need for euidaccess when we are privileged. + (overwrite_prompt, abandon_move): Use it. + * src/remove.c: Include write-any-file.h. + (D_TYPE): New macro. + (DT_UNKNOWN, DT_DIR, DT_LNK) [!HAVE_STRUCT_DIRENT_D_TYPE]: New macros. + (write_protected_non_symlink): Don't bother to stat if we can write + any file. + (prompt): New arg PDIRENT_TYPE. All callers changed. + Use readdir dirent type to avoid the need for 'lstat' on each directory + entry in cases like 'rm -r dir', if we are root, or if the tree is + full of symbolic links. + (DT_IS_KNOWN, DT_MUST_BE): Remove. + (remove_entry): New arg DIRENT_TYPE_ARG. All callers changed. + +2007-03-24 Jim Meyering <jim@meyering.net> + + If strace malfunctions, skip the test rather than failing it. + * tests/mv/atomic: Required on a mips-unknown-linux-gnu system + running the aging linux-2.4.27-mipscvs-20040814. + +2007-03-23 Paul Eggert <eggert@cs.ucla.edu> + + * src/pathchk.c: Don't include euidaccess.h, as we don't call + euidaccess. + +2007-03-23 Jim Meyering <jim@meyering.net> + + * README-package-renamed-to-coreutils: Add a URL for the FAQ, + and a couple more archive links. + +2007-03-22 Jim Meyering <jim@meyering.net> + + Post-release version change. + * NEWS: Add a line for 6.9+. + * configure.ac (AC_INIT): Set new version string. + + Version 6.9. + * NEWS: Record release date and new version number. + * configure.ac (AC_INIT): New version number. + + * tests/mv/hard-3: Correct the preceding change: $3 -> $2. + +2007-03-22 Paul Eggert <eggert@cs.ucla.edu> + + Improve a test script. + * tests/mv/hard-3: Check for 'ls' failure, too. + Generate more-useful debugging output when 'ls' fails. + +2007-03-21 Jim Meyering <jim@meyering.net> + + Fix a test script not to claim an ext2 file system is of type xfs. + * tests/du/slink: When using df --local and df --type=TYPE, + test only the exit code. Don't bother with stdout. + Prompted by a report by Thomas Schwinge of an inaccurate diagnostic. + + * gl/lib/savewd.c: Remove this file, since the savewd_save change + is now in gnulib. The other wasn't useful. + +2007-03-20 Jim Meyering <jim@meyering.net> + + * gl/lib/acl.c: Remove this file, now that gnulib's version subsumes it. + + Skip part of this test when "." is not a local file system. + * tests/install/basic-1: Otherwise, it would fail on some NFS + file systems. + * tests/mkdir/p-3: Likewise. + +2007-03-19 Paul Eggert <eggert@cs.ucla.edu> + + * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): + Add $(LIB_ACL_TRIVIAL). + +2007-03-18 Jim Meyering <jim@meyering.net> + + Fix a generic NFS-related test failure. + * tests/mkdir/p-3: When setting up an unreadable "." in an + inaccessible parent, make the parent inaccessible *after* making "." + unreadable. Otherwise, running "chmod a-r ." in an already- + inaccessible parent would fail on NFS with "Stale NFS file handle". + + Fix a bug in how pr -m -s works. + * NEWS: Describe how the fix affects pr. + * src/pr.c (init_parameters): The --merge (-m) option does + not imply --expand-tabs (-e), so don't set "untabify_input". + Reported by Wis Macomson. + * tests/misc/pr: New file. Test for the above fix. + * tests/misc/Makefile.am (TESTS): Add pr. + * THANKS: Update. + +2007-03-17 Jim Meyering <jim@meyering.net> + + Detect use of AC_CONFIG_AUX_DIR also when its argument is quoted. + * bootstrap: Put ""s around use of $build_aux, in case + someone uses a name containing shell meta-characters. + Reported by Alfred M. Szmidt. + * tests/misc/tty-eof: Add shuf to the list of tested commands. + + Avoid test failure on NFS-mounted Solaris ZFS file system. + * tests/du/basic: Skip a test if "." is on a non-local file system. + + Avoid an obscure build failure, prefer waitpid over wait. + * src/install.c (strip): Use waitpid, not wait. It's equivalent, + but feels less obsolescent. + + * bootstrap: Don't use \> in grep regexp. For HP-UX. + +2007-03-16 Jim Meyering <jim@meyering.net> + + Begin adding support for Solaris ZFS (4 entries per trivial ACL) + * gl/lib/acl.c (ACL_NOT_WELL_SUPPORTED): New macro. + (file_has_acl, copy_acl): Use it, rather than enumerating errno values. + (is_trivial_acl): New function. Incomplete, for now. + (file_has_acl, copy_acl): Use the new function, rather than + counting the number of entries in an ACL. + + * bootstrap: Update from gnulib. + + * .x-sc_prohibit_atoi_atof: Add TODO here, too. + +2007-03-16 Paul Eggert <eggert@cs.ucla.edu> + + * src/copy.c: Include filemode.h. + (overwrite_prompt): Say "try to overwrite", not "overwrite", to + make it clearer that the attempt may fail. Problem reported by + Dan Jacobson in: + http://lists.gnu.org/archive/html/bug-coreutils/2007-03/msg00130.html + Output symbolic mode as well as numeric. + * tests/mv/i-2 (fail): Adjust to new prompt format. + +2007-03-15 Jim Meyering <jim@meyering.net> + + Enforce policy: don't use *scanf functions. + * Makefile.maint (sc_prohibit_atoi_atof): Add to regexp and diagnostic. + * .x-sc_prohibit_atoi_atof: Give stty a temporary pass. + * TODO: note that stty.c needs this small clean-up. + +2007-03-13 Jim Meyering <jim@meyering.net> + + Prepare to work on ACL-related failure when using Solaris ZFS. + * gl/lib/acl.c: New file, copied from gnulib. + + Work around a failing test due to an NFS-based race condition. + * tests/cp/sparse: Accept a report that the copy is *smaller*. + +2007-03-12 Jim Meyering <jim@meyering.net> + + Make bootstrap.conf a tiny bit more generic. + * bootstrap.conf (XGETTEXT_OPTIONS): Exclude gettext-related .m4 + files when e.g., AM_GNU_GETTEXT([external] appears in configure.ac. + +2007-03-10 Jim Meyering <jim@meyering.net> + + Try to fix today's NFS-related failure: Treat ESTALE like EACCES. + * gl/lib/savewd.c: Copy this file from gnulib, then change + "errno != EACCES" to (errno != EACCES && errno != ESTALE). + The symptom was this failure in tests/install/basic-1: + ginstall: cannot create directory `rel/a': Stale NFS file handle + + The preceding change solved part of the problem. Now ginstall fails. + * tests/install/basic-1: Temporarily, don't redirect ginstall's + stderr to /dev/null, so I can see why the NFS autobuilder's NFS test + is failing. + + * tests/install/basic-1: When setting up an unreadable "." in an + inaccessible parent, make the parent inaccessible *after* making "." + unreadable. Otherwise, running "chmod a-r ." in an already- + inaccessible parent would fail on NFS with "Stale NFS file handle". + Reported by Bob Proulx. + + * Makefile.maint (po-check): Exclude c99-to-c89.diff. + +2007-03-09 Jim Meyering <jim@meyering.net> + + Avoid test failures on Darwin 7.9.0 (MacOS X 10.3.9) + * tests/chgrp/basic: Don't let failure by chgrp to set the + group of a symlink make this test fail. Do give a diagnostic. + In the chgrp-no-change-ctime test, add darwin7.9.0 as another + known-failing system. + When failing on some other system, print $host_triplet, too. + Also avoid test failures on Darwin 8.8.x (MacOS X 10.4). + Reported by Peter Fales. + +2007-03-08 Jim Meyering <jim@meyering.net> + + * src/c99-to-c89.diff: Reflect the new c99'ism, update offsets. + +2007-03-08 Paul Eggert <eggert@cs.ucla.edu> + + rm without -f: give a better diagnostic when euidaccess fails. + * src/remove.c (write_protected_non_symlink): Return int, not bool, + so that we can indicate failure too (as a postive error number). + (prompt): If write_protected_non_symlink fails, report that error + number and fail rather than charging ahead and removing the dubious + entry. Redo the logic of printing a diagnostic so that we need to + invoke quote (full_filename (...)) only once. More details at: + <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9952/focus=9996> + +2007-03-08 Jim Meyering <jim@meyering.net> + + Generalize a few more cvs-isms. + * bootstrap (checkout_only_file): Rename from CVS_only_file. + Change comments and diagnostics not to say "CVS". + + * bootstrap: Run libtool, if necessary. + + Make bootstrap a little more general. + * bootstrap (build_aux): Factor out/use this definition. + Formally require a "AC_CONFIG_AUX_DIR($build_aux)" line in configure.ac. + (insert_sorted_if_absent): Move function definition "up", to + precede new first use. + If $build_aux/ doesn't exist initially, create it, and + mark it as ignored. + +2007-03-03 Andrew Church <achurch@achurch.org> (tiny change) + Paul Eggert <eggert@cs.ucla.edu> + + Fix a bug: cp -x would fail to set mount point permissions. + * NEWS: mention cp -x bug fix + * src/copy.c (copy_internal): Don't return immediately after + copying a mount point that we do not intend to recurse under. + Based on a patch by Andrew Church. + +2007-03-03 Jim Meyering <jim@meyering.net> + + pwd-unreadable-parent: Skip test on ia64/Linux, too. + * tests/misc/pwd-unreadable-parent: Also skip when $REPLACE_GETCWD. + Reported by Bob Proulx. + +2007-03-02 Jim Meyering <jim@meyering.net> + + pwd-unreadable-parent: Skip test on non-Linux/GNU systems. + * tests/misc/pwd-unreadable-parent: Rather than trying to decide + whether this test has a chance of succeeding, run it only when + $(host_os) is linux-gnu. It was failing on powerpc-apple-darwin8.8.0 + * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Add host_os=$(host_os). + + * tests/misc/pwd-long: Also allow "+" in $PWD. + + Remove another coreutils-ism. Formatting cleanup. + * Makefile.maint (my-distcheck): Update an outdated comment. + (emit_upload_commands): Use $(PACKAGE) rather than "coreutils". + (my-distcheck): Skip the c99/c89 check if there's no such .diff file. + +2007-03-01 Jim Meyering <jim@meyering.net> + + * Makefile.maint (warn_cflags): Hoist, adding "-Dlint -O". + (my-distcheck): Use the new variable, instead of too-long literal. + + Make "make syntax-check" rules less coreutils-specific. + * Makefile.maint (sc_cast_of_x_alloc_return_value): Use CVS_LIST_EXCEPT. + (sc_cast_of_alloca_return_value): Likewise. + (sc_root_tests): Do nothing if there is no check-root target + in tests/Makefile.am. + + Run the writable-files check only for release-building targets. + * Makefile.maint (local-checks-available): Remove writable-files. + (alpha beta major): Put it here, instead. + + "make syntax-check" now runs only Makefile.cfg-selected tests + * Makefile.maint (syntax-check-rules): Hoist this definition so that + it precedes the indirect use in the definition of $(local-check). + (local-check): Use :=, not just "=". + (syntax-check): Depend on $(local-check), not $(syntax-check-rules). + +2007-02-28 Bruno Haible <bruno@clisp.org> + + * bootstrap.conf (gnulib_modules): Replace xreadlink with + xreadlink-with-size. Add xreadlink. + * src/copy.c (copy_internal): Update. + * src/ls.c (is_directory): Update. + * src/stat.c (print_stat): Update. + * src/readlink.c (main): Use the one-argument xreadlink function. + +2007-02-28 Paul Eggert <eggert@cs.ucla.edu> + + * doc/coreutils.texi (Common options): --si outputs "M", not "MB". + Problem reported by Philip Rowlands in + <http://lists.gnu.org/archive/html/bug-coreutils/2007-02/msg00283.html>. + +2007-02-28 Jim Meyering <jim@meyering.net> + + * .x-sc_file_system: Add the new test, tests/misc/df-P, to this + list of exceptions, for the "make distcheck" sc_file_system rule. + + * Makefile.maint (gnulib_snapshot_date): Remove now-unused definition. + +2007-02-27 Paul Eggert <eggert@cs.ucla.edu> + + Make df -P immune to effects of e.g., the BLOCK_SIZE envvar. + * NEWS: With -P, the default block size and output format is not + affected by DF_BLOCK_SIZE, BLOCK_SIZE, or BLOCKSIZE. + * src/df.c (main): Implement this. + +2007-02-27 Jim Meyering <jim@meyering.net> + + Add a test for the above. + * tests/misc/df-P: New file. + * tests/misc/Makefile.am (TESTS): Add df-P. + +2007-02-25 Jim Meyering <jim@meyering.net> + + * Makefile.maint (announcement): Adjust so that it works with + announce-gen's --gnulib-snapshot-time-stamp option. + Indent one of the command lines using TAB, not 8 spaces. + + Post-release version change. + * NEWS: Add a line for 6.8+. + * configure.ac (AC_INIT): Set new version string. + +2007-02-24 Jim Meyering <jim@meyering.net> + + Version 6.8. + * NEWS: Record release date and new version number. + * configure.ac (AC_INIT): New version number. + + Don't skip this test on new-enough Linux/GNU systems. + * tests/misc/pwd-unreadable-parent: Test $REPLACE_GETCWD = 0, + rather than for __GETCWD_PREFIX in config.h (the latter is no + longer defined, ever, due to gnulib changes). + * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Define REPLACE_GETCWD. + + Remove the "gnits" option; it prohibits my using "+" as a version + string suffix, and all it does (beyond the default "gnu" option) + is to _require_ the THANKS file. + * configure.ac (AM_INIT_AUTOMAKE): Remove it. + + Remove all AUTOMAKE_OPTIONS settings in Makefile.am files. + * tests/chgrp/Makefile.am, tests/chmod/Makefile.am: + * tests/chown/Makefile.am, tests/cp/Makefile.am: + * tests/du/Makefile.am, tests/expr/Makefile.am: + * tests/factor/Makefile.am, tests/general/Makefile.am: + * tests/install/Makefile.am, tests/ln/Makefile.am: + * tests/ls/Makefile.am, tests/mkdir/Makefile.am: + * tests/mv/Makefile.am, tests/readlink/Makefile.am: + * tests/rm/Makefile.am, tests/rmdir/Makefile.am: + * tests/seq/Makefile.am, tests/stty/Makefile.am: + * tests/tee/Makefile.am, tests/touch/Makefile.am: + + * README: Document the OSF/1 4.0d build failure and work-around. + Reported by Bruno Haible. + + * NEWS: Use a simple "+" suffix to denote pre-release, not "-dirty". + Nicer connotations. + * configure.ac: Use 6.7+, not 6.7-dirty. + +2007-02-24 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: sort no longer compresses temporaries by default. + * bootstrap.conf: Remove findprog. + * doc/coreutils.texi (sort invocation): The default is to not + compress. Don't treat "" specially. + * src/sort.c: Don't include findprog.h. + (create_temp): Compress only if the user specified --compress-program. + * tests/misc/sort-compress: Adjusts tests to match new behavior. + +2007-02-24 Jim Meyering <jim@meyering.net> + + Avoid a shell syntax error, when building with an inadequate Perl. + * man/Makefile.am (.x.1): Add quotes around $(PERL) in case, since + it can expand to "/.../missing perl". + + * man/Makefile.am (.x.1): Warn when unable to update a man page. + Suggestion from Bruno Haible. + +2007-02-23 Bruno Haible <bruno@clisp.org> + + Handle better the combination of old Perl and a pre-c99 compiler. + * man/Makefile.am (.x.1): If the autoconf test has determined that + perl is missing or not a sufficient version, do nothing. + + * tests/readlink/can-e: Put the closing double-quote at the end of a + backquoted word, not in the middle. Works around a bug in sh on + OSF/1 4.0d. + * tests/readlink/can-f: Likewise. + * tests/readlink/can-m: Likewise. + + * tests/du/slink: Skip the test if executing on an nfsv3 file system. + This avoids a test failure at least on OSF/1 4.0d. + +2007-02-23 Jim Meyering <jim@meyering.net> + + * src/date.c (usage): Split a diagnostic that had grown to be + longer than the C89 maximum of 509 bytes. + +2007-02-23 Ed Santiago <ed@edsantiago.com> + + * src/date.c (usage): Mention that --rfc-3339 uses space, not 'T', + for a separator. Include sample RFC 2822 and 3339 output. + +2007-02-23 Jim Meyering <jim@meyering.net> + + With -Dlint, make shuf free all heap-allocated storage. + * src/shuf.c (main): Move declaration of input_lines to + function scope, and initialize to NULL, so we can free it. + [lint]: Free all malloc'd memory. + * tests/misc/shuf: Also test shuf's -e and -i options. + +2007-02-22 Jim Meyering <jim@meyering.net> + + Merge in a change from some other incarnation of this file (gzip?) + * bootstrap (gnulib_tool): Skip get_translations if there is no po/ dir. + + Adjust preceding change not to perform an unaligned access. + * src/copy.c (copy_reg): Undo previous change. Instead, make + it clearer that we're using a single-byte sentinel, and + [lint]: Initialize sizeof (uintptr_t) - 1 bytes after the sentinel. + Reported by Andreas Schwab. + + Placate valgrind, wrt ./cp --sparse=always + * src/copy.c (copy_reg): Place the sentinel by setting a + full word's worth of bits, not just a single byte's worth. + This avoids a harmless (but distracting) case of memory being + used-uninitialized. + +2007-02-21 Paul Eggert <eggert@cs.ucla.edu> + + Honor dd's noatime flag if possible, even if not supported on build fs + * doc/coreutils.texi (dd invocation): Warn that noatime might not be + reliable. + * src/dd.c (flags, usage): Look at O_NOATIME, not + HAVE_WORKING_O_NOATIME, to decide whether to support the noatime + flag, so that dd attempts O_NOATIME even if the build file system + does not support it. Problem reported by Jim Meyering today in + bug-coreutils. + * tests/dd/misc: Generate a warning, not a failure, if noatime + exists but fails. + +2007-02-21 Jim Meyering <jim@meyering.net> + + * tests/misc/date: Remove vestigial use of Data::Dumper. + +2007-02-20 Paul Eggert <eggert@cs.ucla.edu> + + * src/copy.c (cached_umask): Cast -1 to mode_t to avoid a warning + about out-of-range initializer with Sun C 5.8. + +2007-02-20 Jim Meyering <jim@meyering.net> + + * bootstrap (CVS_only_file): Use README-hacking. + + Now that we use GIT, not cvs, rename README-cvs. + * README-hacking: Renamed from... + Update to reflect that we now use git. + + * README-cvs: ...this. + + * src/env.c (main): When invoked with no arguments (i.e. when printing + the environment), use a local variable to iterate through the global + "environ" array, rather than "environ" itself. This is solely to + avoid changing the environment for an LD_PRELOAD-substituted "puts" + or "exit" function. Tiny patch by Harvey Eneman. See + <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9735>. + * THANKS: Update. + + * bootstrap: Move definitions of temporary directory names and the + new bt_regex "up" to precede all uses, so it's clearer what their + scope is. Also, use [.], rather than \\., since the former works + even if eval'd. + + * bootstrap: Remove occurrences of $bt (._bootmp) from lib/Makefile. + Based on the bison 2007-02-19 change by Joel E. Denny. + +2007-02-19 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: sort now uses a --compress-program option rather than + an environment variable. + * doc/coreutils.texi (sort invocation): Document this. + * src/sort.c (usage): Likewise. + (COMPRESS_PROGRAM_OPTION): New const. + (long_options, create_temp, main): Support new option. + * tests/misc/sort-compress: Test it. + +2007-02-19 Jim Meyering <jim@meyering.net> + + * bootstrap: Fix typo s/dowloading/downloading/ in --help output. + +2007-02-18 Jim Meyering <jim@meyering.net> + + * src/system.h: Don't include exit.h, now that it's subsumed + by the gnulib-generated stdlib.h. + + * tests/rm/fail-eacces: Skip this test when running as root. + Reported by Matthew Woehlke. + + * bootstrap: Use "._bootmp" as the temporary directory name, + not ".#bootmp". The latter's "#" caused trouble with the new, + gnulib-added "LINK_WARNING_H = $(top_srcdir)/.#bootmp/..." line. + +2007-02-14 Paul Eggert <eggert@cs.ucla.edu> + + * bootstrap.conf (gnulib_modules): Add c-strcase. Remove strcase. + * src/dircolors.c: Include c-strcase.h. + (dc_parse_stream): Use c_strcasecmp rather than + strcasecmp to avoid unreliable results in locales like Turkish + where strcasecmp is incompatible with the C locale. + +2007-02-13 Jim Meyering <jim@meyering.net> + + Also check for and print stderr output, in case a program fails. + * tests/misc/tty-eof: Occasionally (not reproducible), this + test would fail, with one or more programs exiting nonzero, e.g., + tty-eof: sha224sum exited with status 1 (expected 0) + Now, maybe we'll get a clue, the next time that happens. + +2007-02-12 Jim Meyering <jim@meyering.net> + + * .x-sc_useless_cpp_parens: Ignore a false-positive in a shell script. + + * tests/misc/pwd-unreadable-parent: Skip the test if we're + definitely using the replacement. + * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Define CONFIG_HEADER. + +2007-02-10 Jim Meyering <jim@meyering.net> + + Remove excess leading spaces that would make help2man misbehave. + * src/printf.c (usage): Remove excess spaces on 2nd line of %b desc. + * src/nl.c (usage): Remove excess spaces on 2nd line of pBRE desc. + * src/dd.c (usage): Remove excess spaces on 2nd line of sync desc. + * src/date.c (usage): Use two spaces after each optional flag, not one. + Reported by Thomas Huriaux in <http://bugs.debian.org/410407>. + + * Makefile.maint (longopt_re): Relax the regexp, making square + brackets optional, so it matches the newly reported violations, too. + + * src/csplit.c (usage): Use two spaces (not one) to separate + each option string from its description, so help2man formats + the derived man page properly. Reported by Thomas Huriaux in + <http://bugs.debian.org/410407>. + * src/df.c (usage): Likewise. + * src/du.c (usage): Likewise. + * src/install.c (usage): Likewise. + * src/ls.c (usage): Likewise. + +2007-02-03 Jim Meyering <jim@meyering.net> + + Test for today's gnulib/lib/getcwd.c fix affecting pwd and readlink + * NEWS: Mention the bug fix. + * tests/misc/pwd-unreadable-parent: New file. + * tests/misc/Makefile.am (TESTS): Ad pwd-unreadable-parent. + +2007-02-02 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: Document fix for cp --preserve=mode. + * src/copy.c (copy_internal): Omit the group- or other-writeable + permissions when creating a directory, to avoid a race condition + if the special mode bits aren't right just after the directory is + created. + * src/cp.c (make_dir_parents_private): Likewise. + * tests/cp/parent-perm-race: Test for the "cp --preserve=mode" + race fix in copy.c. + + * NEWS: Document fix for cp --parents. + * src/cp.c (make_dir_parents_private): Report the error sooner with + "cp --parents DIR/FILE DEST" when DIR is a non-directory, thus not + creating the directory, DEST/DIR. + * tests/cp/cp-parents: Test for the non-race-condition bug fixed + by the above change. + +2007-02-02 Jim Meyering <jim@meyering.net> + + * src/nl.c (proc_text): Use "NULL", not "(struct re_registers *) 0". + + * src/c99-to-c89.diff: Make shred.c Index: and a/b prefixes + consistent, so this can be applied with patch -p0. + Reported by Matthew Woehlke. + + Arrange for "make check-root" to run the new root-only test. + * tests/Makefile.am (t9): New target, to run tests/cp/cp-a-selinux. + (all_t): Add t9. + + * Makefile.maint (patch-check): Use patch with its -p2 option, + since that makes this check slightly more strict. + + Use a directory on a loopback device mounted with -o context=... + * tests/cp/cp-a-selinux: Since this test now runs mount and umount, + it is a root-only one. + +2007-01-29 Jim Meyering <jim@meyering.net> + + Plug a leak in ls. + * src/ls.c (print_dir): Don't leak a "DIR"+fd upon failure to + determine dev/inode or upon detecting a symlink loop. + + * src/ls.c: Rename three global variables. + (cwd_file): Rename from 'files'. + (cwd_n_alloc): Rename from 'nfiles'. + (cwd_n_used): Rename from 'files_index'. + + Shave 8 bytes off the size of "struct fileinfo". + * src/ls.c (fileinfo): Put all members of type "bool" together. + +2007-01-28 Paul Eggert <eggert@cs.ucla.edu> + + Modify "ls" to sort its data faster, using the new gnulib mpsort + module rather than qsort. This is particularly a win in + environments where strcoll is slow, since mpsort typically calls + strcoll less often than qsort does. + * bootstrap.conf (gnulib_modules): Add mpsort. + * src/ls.c: Include mpsort.h. + (sorted_file, sorted_file_alloc): New vars, for a new vector of + pointers to the file info, for speed. + (clear_files, extract_dirs_from_files, sort_files, print_current_files): + (print_many_per_line, print_horizontal, print_with_commas): + (calculate_columns): Set and use new vector. + (initialize_ordering_vector): New function. + +2007-01-26 Paul Eggert <eggert@cs.ucla.edu> + + Adjust to today's change to gnulib, which added a module for + string.h to replace the little include files like strcase.h. + * src/dircolors.c: Don't include strcase.h. + * src/system.h: Don't include mempcpy.h, memrchr.h, stpcpy.h, strpbrk.h. + +2007-01-26 Jim Meyering <jim@meyering.net> + + * src/dd.c (advance_input_after_read_error): Change diagnostic to + say "invalid file offset" rather than "screwy file offset". + + * .x-sc_cast_of_argument_to_free: Remove this file. + * Makefile.am (EXTRA_DIST): Likewise. + +2007-01-25 Dan Hipschman <dsh@linux.ucla.edu> + + * src/sort.c (create_temp): Remove superfluous access-X_OK + check. find_in_path does this for us. + +2007-01-24 Jim Meyering <jim@meyering.net> + + Remove usually-skipped test. + * tests/cp/open-perm-race: Remove this file. It is subsumed + by parent-perm-race. + * tests/cp/Makefile.am (TESTS): Remove open-perm-race. + * tests/sort/Makefile.am: Regenerate. + + Pass "make distcheck" again. + * src/sort.c (usage): Split a diagnostic that had grown to be + longer than the C89 maximum of 509 bytes. + * .x-sc_cast_of_argument_to_free: New file. Allow a cast in sort.c. + FIXME: this is just temporary, while we wait to remove the offending + access-calling code. + * Makefile.am (EXTRA_DIST): Add .x-sc_cast_of_argument_to_free. + * Makefile.maint (sc_cast_of_argument_to_free): Use the + canonical, $$($(CVS_LIST_EXCEPT)). + * m4/.gitignore, m4/.cvsignore, lib/.gitignore, lib/.cvsignore: Update. + +2007-01-24 Paul Eggert <eggert@cs.ucla.edu> + + * NEWS: New option sort -C, proposed by XCU ERN 127, which looks + like it will be approved. Also add --check=quiet, --check=silent + as long aliases, and --check=diagnose-first as an alias for -c. + * doc/coreutils.texi (sort invocation): Document this. + Also, mention that sort -c can take at most one file. + * src/sort.c: Implement this. + Include argmatch.h. + (usage): Document the change. + (CHECK_OPTION): New constant. + (long_options): --check now takes an optional argument, and is now + treated differently from 'c'. + (check_args, check_types): New constant arrays. + (check): New arg CHECKONLY, which suppresses diagnostic if -C. + (main): Parse the new options. + * tests/sort/Test.pm (02d, 02d, incompat5, incompat6): + New tests for -C. + +2007-01-24 Jim Meyering <jim@meyering.net> + + Fix a typo. + * tests/misc/sort-compress: Use $abs_top_builddir, not $top_builddir. + * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Likewise. + + Don't depend on "which". + * tests/misc/sort-compress (SORT): Use $abs_builddir, now which. + * tests/misc/Makefile.am (TESTS_ENVIRONMENT): Export top_builddir. + +2007-01-24 Dan Hipschman <dsh@linux.ucla.edu> + + Test sort compression. + * tests/misc/Makefile.am: Add the test. + * tests/misc/sort-compress: New file containing the tests. + +2007-01-24 Jim Meyering <jim@meyering.net> + + * NEWS: sort temp file compression: tweak wording. + * src/sort.c (struct sortfile) [name]: Declare member to be const. + +2007-01-21 Jim Meyering <jim@meyering.net> + + * src/sort.c (MAX_FORK_RETRIES_COMPRESS, MAX_FORK_RETRIES_DECOMPRESS): + In pipe_fork callers, use these named constants, not "2" and "8". + (proctab, nprocs): Declare to be "static". + (pipe_fork) [lint]: Initialize local, pid, + to avoid unwarranted may-be-used-uninitialized warning. + (create_temp): Use the active voice. Describe parameters, too. + +2007-01-21 James Youngman <jay@gnu.org> + + Centralize all the uses of sigprocmask(). Don't restore an invalid + saved mask. + * src/sort.c (enter_cs, leave_cs): New functions for protecting + code sequences against signal delivery. + * (exit_cleanup): Use enter_cs and leave_cs instead of + calling sigprocmask directly. + (create_temp_file, pipe_fork, zaptemp): Likewise + +2007-01-21 Dan Hipschman <dsh@linux.ucla.edu> + + Add compression of temp files to sort. + * NEWS: Mention this. + * bootstrap.conf: Import findprog. + * configure.ac: Add AC_FUNC_FORK. + * doc/coreutils.texi: Document GNUSORT_COMPRESSOR environment + variable. + * src/sort.c (compress_program): New global, holds the name of the + external compression program. + (struct sortfile): New type used by mergepfs and friends instead + of filenames to hold PIDs of compressor processes. + (proctab): New global, holds compressor PIDs on which to wait. + (enum procstate, struct procnode): New types used by proctab. + (proctab_hasher, proctab_comparator): New functions for proctab. + (nprocs): New global, number of forked but unreaped children. + (reap, reap_some): New function, wait for/cleanup forked processes. + (register_proc, update_proc, wait_proc): New functions for adding, + modifying and removing proctab entries. + (create_temp_file): Change parameter type to pointer to file + descriptor, and return type to pointer to struct tempnode. + (dup2_or_die): New function used in create_temp and open_temp. + (pipe_fork): New function, creates a pipe and child process. + (create_temp): Creates a temp file and possibly a compression + program to which we filter output. + (open_temp): Opens a compressed temp file and creates a + decompression process through which to filter the input. + (mergefps): Change FILES parameter type to struct sortfile array + and update access accordingly. Use open_temp and reap_some. + (avoid_trashing_input, merge): Change FILES parameter like + mergefps and call create_temp instead of create_temp_file. + (sort): Call create_temp instead of create_temp_file. + Use reap_some. + (avoid_trashing_input, merge, sort, main): Adapt to mergefps. + + The idea of compressing sorts temporary files was first + suggested/implemented by Jay Soffian in 1998, and again + by Charles Randall in 2001. + +2007-01-20 Jim Meyering <jim@meyering.net> + + * tests/misc/pwd-long: Work properly even when run from the + wrong one of two or more bind-mounted sibling directories. + Suggestion from Mike Stone in <http://bugs.debian.org/380552>. + +2007-01-20 Paul Eggert <eggert@cs.ucla.edu> + + Standardize on list of signals when an app catches signals. + * src/csplit.c (main): Also catch SIGALRM, SIGPIPE, SIGPOLL, + SIGPROF, SIGVTALRM, SIGXCPU, SIGXFSZ. + * src/ls.c (main): Likewise (except SIGPIPE was already caught). + Note that ls.c is special, as it also catches SIGTSTP. + * src/sort.c (main): Likewise. Also catch SIGQUIT. More details in + <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9510>. + +2007-01-19 Dan Hipschman <dsh@linux.ucla.edu> + and Paul Eggert <eggert@cs.ucla.edu> + + * src/sort.c (cleanup): Clear temphead at the end. + (exit_cleanup): New function. + (main): Don't invoke atexit until we're ready. + Invoke it with exit_cleanup, not with cleanup and close_stdout, + to avoid a race condition with cleanup and signal handling. More + details: http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9508 + +2007-01-18 Jim Meyering <jim@meyering.net> + + * src/c99-to-c89.diff: Adjust remove.c offsets. + +2007-01-17 Jim Meyering <jim@meyering.net> + + Make "rm --interactive=never ..." never prompt. + * NEWS: Mention this. + * src/remove.h (enum rm_interactive): New ternary type. + (struct rm_options) [interactive]: Use it, here -- rather than bool. + * src/remove.c (prompt): Reflect type change. + * src/mv.c (rm_option_init): Initialize to RMI_NEVER now. + * src/rm.c (main): Add a FIXME comment for '-d' option. + Adapt to type change of rm_options.interactive. + + * tests/rm/i-never: New file. Test for the above fix. + * tests/rm/Makefile.am (TESTS): Add i-never. + +2007-01-15 Jim Meyering <jim@meyering.net> + + * bootstrap (gnulib_tool): When adding to .cvsignore and .gitignore, + emit foo.h, for each foo_.h. This yields one false-positive, fts.h, + but that's ok, since fts_.h will eventually be renamed. + + * src/remove.c (remove_dir): Don't use errno in diagnostic. + Root-only test failure reported by Alex van Hout and Jon Grosshart in + <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9415/focus=9415>. + + * bootstrap.conf (avoided_gnulib_modules): Fix my typo: + s/--avoid=canonicalize-lgpl/--avoid=canonicalize-gpl/ + +2007-01-14 Bruno Haible <bruno@clisp.org> + + Enable use of gnulib's new fchdir module. + * bootstrap.conf (avoided_gnulib_modules): Avoid canonicalize-lgpl, + since we use canonicalize. + (gnulib_modules): Add fchdir. + * m4/jm-macros.m4 (coreutils_MACROS): Remove fchdir-stub. + +2007-01-13 Jim Meyering <jim@meyering.net> + + * tests/cp/open-perm-race: Remove gdb-based test. + It would run only when compiled with -g, and besides is now + subsumed by file-perm-race. + * tests/cp/Makefile.am (TESTS): Remove open-perm-race. + + * Transform all Makefile.am files so that when running "make check", + CU_TEST_NAME is set to the name of the test. This is so that when I + run valgrind-enabled (--log-file-qualifier=CU_TEST_NAME) "make check" + on the entire package it is more convenient to map a leak or error + found in a valgrind log file back to the offending test. + Use this command: + (echo tests/Makefile.am.in; find tests -name Makefile.am) \ + |xargs perl -pi -e '/^(\s*)PATH=...VG_PATH_PREFIX/ and ' \ + -e 'print $1,q|CU_TEST_NAME=`basename $(abs_srcdir)`,$$tst |,"\\\n"' + +2007-01-11 Jim Meyering <jim@meyering.net> + + Avoid a leak in expr's implementation of the ":" (match) operator. + * src/expr.c (docolon): Free the regexp buffer using regfree, rather + than doing it manually, being careful to set fastmap to NULL first. + Free any re_regs.start and .end members, if necessary. + + * tests/misc/test-diag: Work also when libc's error function + reports the entire program name ("../../src/test"), rather than + just the final component. + +2007-01-10 Jim Meyering <jim@meyering.net> + + Don't use fts_statp uninitialized for "chown -RLh --preserve-root ...". + * src/chown-core.c (FTSENT_IS_DIRECTORY): New macro. + (change_file_owner): Perform the ROOT_DEV_INO_CHECK only for a + directory. Non-directory entries lack fts_statp data when using + the FTS_NOSTAT option. + +2007-01-07 Jim Meyering <jim@meyering.net> + + * tests/sample-test: Update copyright date to 2007. + * Makefile.maint (copyright-check): Also check the copyright date + in tests/sample-test. + +2007-01-06 Jim Meyering <jim@meyering.net> + + * tests/fmt/basic (pfx-only, pfx-of-pfx): New tests, + based on examples from G.P. Halkes in + <http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/9388>. + +2007-01-06 G.P. Halkes <buscom@ghalkes.nl> + + * src/fmt.c (copy_rest): Correct prefix handling. + Don't elide a line with the prefix followed by only white space. + (get_line): Move EOF-check to loop-termination condition. + * tests/fmt/basic (pfx-1): Adjust test to expect desired result. + (pfx-2): Remove test; its premise was contrary to the documentation. + +2007-01-05 Jim Meyering <jim@meyering.net> + + Avoid a used-uninitialized bug for invalid input, i.e., when the size + of the input, not counting newlines, is 1 % 4. + * gl/lib/base64.c (base64_decode): Don't hard-code inlen==4. + It may be smaller when flushing. + +2007-01-05 Mike Frysinger <vapier@gentoo.org> + + * src/dircolors.hin: Add a TERM directive for cons25. + +2007-01-04 Jim Meyering <jim@meyering.net> + + * Makefile.cfg (local-checks-to-skip): Skip strftime-check, in + case you don't have convenient access to glibc info documentation. + + Use the release year, not the current year. + * src/groups.sh (version): Use a better name: @RELEASE_YEAR@. + * src/Makefile.am (RELEASE_YEAR): Define it. + (.sh): Use it. + Thanks to a prod from Eric Blake. + + Ensure that "group --version" always prints the current year. + * src/groups.sh (version): Use @CURRENT_YEAR@, rather than 2006. + * src/Makefile.am (.sh): Also substitute for @CURRENT_YEAR@. + Suggestion from Eric Blake. + + When decoding, always allow newlines in input, with almost no + performance impact. + * src/base64.c (do_decode): Initialize decode context. + Call base64_decode one more time, after all input is processed. + (usage): When decoding, newlines are always accepted. + + * tests/misc/base64: Add a bunch of tests, for the above. + * gl/lib/base64.c: Include <string.h>. + (base64_decode_ctx_init, get_4, decode_4): New functions. + (base64_decode): Efficiently handle interspersed newlines. + (base64_decode_alloc): Update signature. + * gl/lib/base64.h (struct base64_decode_context): Define. + (base64_decode_ctx_init): Add prototype. + (base64_decode, base64_decode_alloc): Update prototypes. + + * gl/lib/base64.c: Copied from gnulib. + * gl/lib/base64.h: Likewise. + +2007-01-03 Jim Meyering <jim@meyering.net> + + * THANKS: Add Evan Hunt. + +2007-01-03 Bruno Haible <bruno@clisp.org> + + Avoid spurious test failures on MacOS X 10.3.9, in a German locale. + * tests/chown/deref: Apply lang-default. + * tests/misc/split-a: Likewise. + * tests/mv/reply-no: Likewise. + + * src/copy.c (copy_internal): Use mkfifo as a fallback if mknod fails. + Needed on MacOS X. + +2007-01-02 Paul Eggert <eggert@cs.ucla.edu> + + Now, "ls -FRL" always follows symbolic links on Linux. + * NEWS: Mention this bug fix. + * src/ls.c (gobble_file): Fix bug reported by + Nobuyuki Tsuchimura in + http://lists.gnu.org/archive/html/bug-coreutils/2006-12/msg00152.html + where "ls -FRL" didn't follow a symbolic link in some cases on Linux. + * tests/ls/follow-slink: Add a test for this case. + +2007-01-01 Jim Meyering <jim@meyering.net> + + * tests/rm/fail-eperm: Revert last change. The PATH=... setting + is not honored at least on HP-UX 11.23 systems. + Instead, simply transform the actual output diagnostic. + Test failure reported by Bob Proulx. + + + ----- + + Copyright (C) 2007 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without + modification, are permitted provided the copyright notice + and this notice are preserved. diff --git a/ChangeLog-2008 b/ChangeLog-2008 new file mode 100644 index 000000000..aac9febeb --- /dev/null +++ b/ChangeLog-2008 @@ -0,0 +1,374 @@ +2008-02-07 Jim Meyering <meyering@redhat.com> + + We *do* need two different version files. + One for tarball-only, the other to be updated any time we + get a new value of $(VERSION). + * Makefile.am (dist-hook): Create .tarball-version in dist tarball. + * GNUmakefile (_curr-ver): Make git-version-gen use it. + * .gitignore: Ignore it. + + Fix a typo in description of size suffixes: s/GB/G/. + * doc/coreutils.texi (od invocation, head invocation, tail invocation): + Spotted by Bert Wesarg. + + * NEWS [6.9.90]: Mention the added feature that head, od, split and + tail now accept the standard size suffixes (kB, M, MB, G, GB, and + so on for T, P, Y, Z, and Y) on arguments to selected options. + +2008-02-06 Steven Schubiger <schubiger@gmail.com> + + mkdir, split: write --verbose output to stdout, not stderr. + * src/mkdir.c (verbose_output): New function. + (announce_mkdir): Use it. + * src/split.c (usage): Update. + * src/split.c (cwrite): Write to stdout, not stderr. + * doc/coreutils.texi (split invocation): Remove the mention + of --verbose output being printed to stderr. + * tests/mkdir/p-v: Redirect stdout, not stderr. + * tests/misc/split-a: Likewise. + * NEWS: Mention this change. + * TODO: Remove this item. + +2008-02-04 Jim Meyering <meyering@redhat.com> + + * Makefile.maint (announcement): Remove stale comment. + +2008-02-02 Jim Meyering <meyering@redhat.com> + + Clarify a comment. + * tests/sort/Test.pm: Replace a vague ChangeLog reference with a URL. + +2008-01-31 Bob Proulx <bob@proulx.com> + + Improve wording of date and time man page. + * man/date.x: Improve compact description of the --date=STRING. + * man/touch.x: Likewise. + Suggested by A. Costa. + +2008-01-31 Jim Meyering <meyering@redhat.com> + + Remove alignment constraint from the sha*_read_ctx functions. + * lib/sha256.c (set_uint32): New function. + (sha256_read_ctx, sha224_read_ctx): Use it. + * lib/sha512.c (set_uint64): New function. + (sha512_read_ctx, sha384_read_ctx): Use it. + * lib/sha256.h: Remove warning about alignment constraint. + * lib/sha512.h: Likewise. + Prompted by similar changes in gnulib's sha1 and md[45] modules. + + Adapt to new version of vc-list-files. + * tests/check.mk (vc_exe_in_TESTS): Adapt to new constraint + that vc-list-files be run only from $(top_srcdir). + + Pull vc-list-files from gnulib. + * bootstrap.conf (gnulib_modules): Add vc-list-files. + * build-aux/vc-list-files: Remove file. + + Improve the cp/parent-perm test. + * tests/cp/parent-perm: Also check that perms of existing dest + dirs are changed to match those of corresponding src dir + +2008-01-30 Paul Eggert <eggert@cs.ucla.edu> + + Don't modify argv in dd due to ',' in arguments. + * src/dd.c: Include quotearg.h. + (operand_matches): New function. + (parse_symbols, operand_is): Use it. + (parse_symbols): 1st arg is now const pointer. Don't modify it. + msgid arg is now just the message, not a format. + (scanargs): Add some 'const's to check for problems like the above. + +2008-01-30 Jim Meyering <meyering@redhat.com> + + * src/c99-to-c89.diff: Adjust remove.c offsets, again. + + Now that system.h defines is_empty_dir, include "openat.h". + * src/system.h: Include "openat.h" here, ... + * src/chcon.c: ... not here. + * src/chmod.c: Likewise. + * src/chown-core.c: Likewise. + * src/remove.c: Likewise. + + * src/c99-to-c89.diff: Adjust remove.c offsets. + + Improve "rmdir --ignore-fail-on-non-empty" + * src/rmdir.c (remove_parents, main): With --ignore-fail-on-non-empty, + suppress a diagnostic also for other errno values, which can arise + with read-only media or when the parent directory has the immutable + attribute (set via chattr +i). + (errno_may_be_empty, ignorable_failure): New functions. + * src/remove.c (is_empty_dir): Move function to ... + * src/system.h (is_empty_dir): ...here, and make it inline. + Suggested by Josselin Mouette in <http://bugs.debian.org/363011> + via Bob Proulx. + * NEWS: Mention the improvement. + +2008-01-29 Paul Eggert <eggert@cs.ucla.edu> + + Don't modify argv in dd. + * src/dd.c (operand_is): New function. + (scanargs): Use it so that we don't need to modify argv, as a nicety. + Problem reported by Adam Goode in + <http://lists.gnu.org/archive/html/bug-coreutils/2008-01/msg00264.html>. + +2008-01-29 Jim Meyering <meyering@redhat.com> + + * Makefile.am (BUILT_SOURCES): Ensure that .version exists. + Reported by Bob Proulx. + +2008-01-29 Bob Proulx <bob@proulx.com> + + Improve the man pages of --date=STRING for 'date' and 'touch'. + * man/date.x: Add a compact description of the --date=STRING. + * man/touch.x: Likewise. + Reported by A. Costa in http://bugs.debian.org/363011 + +2008-01-29 Michael Stone <mstone@debian.org> + + Improve the description of when dd outputs its final statistics. + * doc/coreutils.texi (dd invocation): Say that dd prints stats + upon normal termination and upon SIGINT. + +2008-01-29 Jim Meyering <meyering@redhat.com> + + Avoid "make distcheck" failure: newly-created man/*.1 files not removed + * Makefile.am (EXTRA_DIST): Add .version. + (.version): New rule. + (dist-hook): Don't create $(distdir)/.version here, now that it's + being distributed. + * man/Makefile.am (common_dep): Use ../.version, not ../VERSION. + (../VERSION): Remove rule. + * GNUmakefile (dummy): Create .version, not VERSION. + Add an extra "...:= $(shell..." statement to ensure that + .version exists even when the preceding code is not run. + * .gitignore: Remove both .version and VERSION. + + ls: don't segfault on files in /proc with an old libselinux + * src/ls.c (gobble_file): Work around a bug in libselinux1-2.0.15 + whereby getfilecon returns 0 yet sets the context to NULL. + Reported by Jan Moringen via Michael Stone in + http://bugs.debian.org/463043 + * tests/ls/Makefile.am (TESTS): Add proc-selinux-segfault. + * tests/ls/proc-selinux-segfault: Test for the above fix. + * NEWS: Mention the fix. + +2008-01-26 Jim Meyering <meyering@redhat.com> + + Work around Darwin9's set-GID-like group ownership inheritance. + This avoids another spurious Mac OS 10.5.1 (Darwin 9.1) test failure. + * tests/cp/preserve-gid: Accept a group ID of 0, as well. + Reported by Elias Pipping. + + Emit "info coreutils 'PROG invocation'" into the man page, + rather than just "info PROG". The latter would often fail + or simply display the man page. + * man/help2man: Change the template. + Prompted by http://bugs.debian.org/399684 + + chcon: correct description of --no-dereference (-h) option. + * src/chcon.c (usage): Remove invalid reference to lchown. + Reported by Göran Uddeborg. + + Ensure that each version string change propagates to man pages. + * man/Makefile.am (common_dep): Don't depend on configure.ac for + version changes. Instead, depend on ../VERSION. + (../VERSION): New rule. + * Makefile.am (DISTCLEANFILES): Define. + * GNUmakefile: Update ./VERSION. + * .gitignore: List VERSION. + Reported by Sven Joachim. + + Avoid cp/preserve-gid test failure on Mac OS 10.5.1 (Darwin 9.1) + * tests/cp/preserve-gid: Set group as well as owner on ".". + Reported by Elias Pipping. + + Improve a warning about non-portable "mv" usage. + * doc/coreutils.texi (mv invocation): Adjust the warning: moving a + dir-symlink-specified-with-a-trailing-slash works in a surprising + manner only on some systems. Reported by Tomas Pospisek in + http://bugs.debian.org/343652. + +2008-01-26 Mike Frysinger <vapier@gentoo.org> + + * src/dircolors.hin (TERM): Add jfbterm. + +2008-01-23 Jim Meyering <meyering@redhat.com> + + Clean up build-related rules. + * Makefile.cfg (gnulib_dir): Update comment. + * Makefile.maint (announcement) [cl_date, utc_date]: Don't set + now-unused variables. + + * TODO: Update the note on getgrouplist. + +2008-01-23 Zvi Har'El <rl@math.technion.ac.il> + + Add a ";", so "make install" works with --enable-install-program=su. + * src/Makefile.am (install_su): Add a semicolon. (tiny change) + +2008-01-23 Jim Meyering <meyering@redhat.com> + + Avoid misinterpreting mgetgroups failure in running root-only tests. + * src/setuidgid.c (main): Don't misinterpret as size_t an error + return from mgetgroups. Reported by Theodoros V. Kalamatianos. + + * README: Remove/convert a few stray mentions of CVS. + +2008-01-22 Jim Meyering <meyering@redhat.com> + + Require automake-1.10.1, for its support of dist-lzma. + * configure.ac (AM_INIT_AUTOMAKE): Require 1.10.1. + + Version 6.10. + + * NEWS: Record release date. + + * README-hacking: Update to reflect existence of automake-1.10.1. + +2008-01-18 Jim Meyering <meyering@redhat.com> + + Update README. + * README: Remove a note about failing tests on SunOS 4. + On Mac OS 10.5.1 (Darwin 9.1), you'll need --disable-acl. + (Running tests as root): Recommend using "check-root", not "check". + +2008-01-17 Jim Meyering <meyering@redhat.com> + + Do not define-away __attribute__ when __STRICT_ANSI__ is set. + * src/system.h (__attribute__): Remove the __STRICT_ANSI__ disjunct. + It has been unnecessary since approximately gcc-2.6, and now, leaving + it would cause gcc -Werror -ansi to fail to compile csplit.c. + * gl/lib/randread.c (__attribute__): Likewise. + +2008-01-16 Jim Meyering <meyering@redhat.com> + + * NEWS: Mention the configure.ac fix. + + * TODO: Add an introduction. + Remove a few entries. Update a few others. + +2008-01-13 Jim Meyering <meyering@redhat.com> + + Remove each output redirection target before writing to it. + * tests/check.mk (vc_exe_in_TESTS): Remove t1 and t2 _first_, + in case they exist beforehand and are not writable. + * build-aux/check.mk (am__check_pre): Likewise, remove $@-t. + +2008-01-13 Elias Pipping <pipping@gentoo.org> + + * configure.ac: Correct a non-portable use of sed. + +2008-01-12 Mike Frysinger <vapier@gentoo.org> + + * src/dircolors.hin (image formats): Add the .svg suffix. + +2008-01-12 Jim Meyering <meyering@redhat.com> + + Use new version of announce-gen. + * Makefile.maint (announcement): Remove use of the + --gnulib-snapshot-time-stamp option. + Use new --gnulib-version option instead. + (gnulib-version): New variable. + +2008-01-11 Jim Meyering <meyering@redhat.com> + + * Version 6.9.92. + + * tests/tr/Test.pm: Prefer en_US.ISO-8859-1 to en_US.iso88591. + Suggestions from James Youngman and Pádraig Brady in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12218/focus=12227 + +2008-01-10 Jim Meyering <meyering@redhat.com> + + * README-hacking: Add Git to the list of required tools. + +2008-01-08 Paul Eggert <eggert@cs.ucla.edu> + + Fix a minor race condition when using cp -p --parents. + * src/cp.c (make_dir_parents_private): If stat fails on the parent + directory, do not add it to the list of directories whose modes + might need fixing later. Also, do not bother invoking 'stat' + unless the stat results might be needed later. + +2008-01-08 Jim Meyering <meyering@redhat.com> + + parent-perm: avoid a bizarre test failure. + * tests/cp/parent-perm: Accommodate the situation in which + chmod ("dir", 02755) returns 0 yet fails to set the S_ISGID bit. + + Remove uses of now-undefined Makefile variable. + * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): Remove uses + of no-longer-defined variable, $(LIB_ACL_TRIVIAL). + +2008-01-07 Jim Meyering <meyering@redhat.com> + + cp (but not copy.c): plug a small leak. + * src/cp.c (do_copy) [--parents]: Free the attribute list. + + Make a racy test failure less likely to happen. + * tests/misc/tty-eof: Uncomment a debug "warn". + This change happens to make this test far less likely to fail. + With that statement commented out, this test would fail about + 20% of the time on my desktop. Now, it's gone 100 iterations + in a row with no failure. + + * NEWS: Mention the cp bug fix. + +2008-01-07 Jan Blunck <jblunck@suse.de> + + cp --parents: don't use uninitialized memory when restoring permissions + * src/cp.c (make_dir_parents_private): Always stat each source + directory, in case its permissions are required in re_protect, + when setting permissions of a just-created destination directory. + +2008-01-07 Jim Meyering <meyering@redhat.com> + + cp: add a test for today's bug fix. + * tests/cp/parent-perm: New script. Test today's change. + Based on reproducer from Jan Blunck. + * tests/cp/Makefile.am (TESTS): Add parent-perm. + +2008-01-06 Jim Meyering <meyering@redhat.com> + + touch: add a test for today's change. + * tests/touch/now-owned-by-other: New script. Test today's change. + * tests/touch/Makefile.am (TESTS): Add now-owned-by-other. + * tests/Makefile.am (all_t): Add td, a new root-only test. + (td): New target. + * NEWS: Mention the improvement. + +2008-01-06 Paul Eggert <eggert@cs.ucla.edu> + + touch: ignore "-d now" option, when appropriate + * src/touch.c (main): Treat "-d now" as if it were absent, if + neither -a nor -m is specified. Problem reported by Dan Jacobson in: + http://lists.gnu.org/archive/html/bug-coreutils/2008-01/msg00010.html + +2008-01-05 Jim Meyering <meyering@redhat.com> + + Avoid tr case-conversion failure in some locales. + * src/tr.c (skip_construct): New function. + (main): When processing a pair of case-converting classes, don't + iterate through the elements of each [:upper:] or [:lower:] class. + Reported by Gerald Pfeifer in + <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12218>. + * tests/tr/Test.pm [tolower-F]: New test for the above fix. + [upcase-xtra, dncase-xtra]: New tests, for a related code path. + * NEWS: Mention the tr bug fix. + +2008-01-02 Jim Meyering <jim@meyering.net> + + * .gitignore: Ignore lzma-compressed files, too. + + Update copyright date. + * tests/sample-test: Likewise. + * doc/coreutils.texi: Likewise. + + + ----- + + Copyright (C) 2008 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without + modification, are permitted provided the copyright notice + and this notice are preserved. |