diff options
Diffstat (limited to 'ChangeLog-2007')
-rw-r--r-- | ChangeLog-2007 | 4022 |
1 files changed, 4022 insertions, 0 deletions
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. |