canonicalize: fix references to stat() and lstat()
[gnulib.git] / ChangeLog
index 0ef0571..ff9c84a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,490 @@
+2011-12-30  Pádraig Brady  <P@draigBrady.com>
+
+       canonicalize: fix references to stat() and lstat()
+       * lib/canonicalize.c (canonicalize_filename_mode):
+       Ensure references always resolve to a replacement
+       function if required (even via a macro).
+
+2011-12-30  Jim Meyering  <meyering@redhat.com>
+
+       gitlog-to-changelog: remove a little duplication
+       * build-aux/gitlog-to-changelog (main): Grep @lines once,
+       rather than twice.
+
+2011-12-29  Pádraig Brady  <P@draigBrady.com>
+
+       canonicalize: add support for not resolving symlinks
+       * lib/canonicalize.h: Add the CAN_NOLINKS flag to
+       indicate we don't want to follow symlinks.  Also
+       provide CAN_MODE_MASK to aid setting these existing
+       mutually exclusive values.
+       * lib/canonicalize.c (canonicalize_filename_mode):
+       Extract the flags from can_mode parameter, which
+       are currently just used to select between stat()
+       and lstat().  Also ensure that mutually exclusive
+       values are flagged immediately as invalid.
+       * tests/test-canonicalize.c: Verify symlinks are
+       not followed, and that invalid flag combinations
+       are diagnosed.
+
+2011-12-25  Jim Meyering  <meyering@redhat.com>
+
+       gitlog-to-changelog: do not clump multi-paragraph entries
+       Identical header lines (date,name,email+coauthors) are suppressed,
+       thus putting all entries with those same characteristics under
+       a single header.  However, when a log entry consists of two or
+       more paragraphs, it may not be clear where it starts and ends.
+       This change makes it so that such an entry is always separated
+       from others by a header line, even when that header would
+       otherwise be suppressed.
+       * build-aux/gitlog-to-changelog: Implement the above.
+       Inspired by a related request from Stefano Lattarini in
+       http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/29456
+
+2011-12-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       announce-gen: fix `cmd' typo in diagnostic
+       * build-aux/announce-gen (print_changelog_deltas): Fix typo in
+       diagnostic: a missing '$' meant that the command was not output.
+
+2011-12-23  Jim Meyering  <meyering@redhat.com>
+
+       test-framework-sh: distribute init.sh
+       * modules/test-framework-sh (EXTRA_DIST): Append init.sh.
+       Otherwise, "make -C gnulib-tests check" (at least in grep) would
+       fail due to the lack of init.sh.
+
+       maint: remove explicit Files: tests/init.sh; depend on test-framework-sh
+       * modules/atexit-tests: Rather than listing tests/init.sh,
+       now that there's a module for it, simply depend on that new module.
+       * modules/closein-tests: Likewise.
+       * modules/exclude-tests: Likewise.
+       * modules/getcwd-tests: Likewise.
+       * modules/perror-tests: Likewise.
+       * modules/pread-tests: Likewise.
+       * modules/pwrite-tests: Likewise.
+       * modules/vc-list-files-tests: Likewise.
+       * modules/verify-tests: Likewise.
+       * modules/xalloc-die-tests: Likewise.
+       * modules/xstrtoimax-tests: Likewise.
+       * modules/xstrtol-tests: Likewise.
+       * modules/xstrtoll-tests: Likewise.
+       * modules/xstrtoumax-tests: Likewise.
+       * modules/yesno-tests: Likewise.
+
+2011-12-22  Jim Meyering  <meyering@redhat.com>
+
+       test-framework-sh: add minimal tests of init.sh's compare function
+       * modules/test-framework-sh-tests: New file.
+       * tests/test-init.sh: New file.
+
+       test-framework-sh: new module
+       * modules/test-framework-sh: New file.
+       * MODULES.html.sh (Support for maintaining and releasing projects):
+       List it.
+
+       init.sh: do not emit simulated diff output to stderr
+       * tests/init.sh (compare_dev_null_): Print to stdout, not stderr.
+
+2011-12-22  Reuben Thomas  <rrt@sc3d.org>
+
+       .gitignore: ignore gnulib.dvi and regex.info
+       * doc/.gitignore:add gnulib.dvi and regex.info
+
+2011-12-22  Jim Meyering  <meyering@redhat.com>
+
+       init.sh: correct previous change
+       * tests/init.sh (compare): My previous change was wrong.
+       Don't clobber "$?".  Spotted by Stefano Lattarini and Pádraig Brady.
+
+       init.sh: avoid unwarranted test failure when using "set -e"
+       * tests/init.sh (compare): Ignore nonzero exit from compare_dev_null_.
+       Otherwise, in a test script that uses "set -e" (like many in vc-dwim)
+       a use like "compare exp out" would get evoke an unconditional failure.
+
+2011-12-21  Alfred M. Szmidt  <ams@gnu.org>
+
+       bootstrap: fix it to honor $ACLOCAL_FLAGS once again
+       The 2011-12-17 change, commit 767ccd40, replaced a manual invocation
+       of aclocal that used explicit $ACLOCAL_FLAGS with an invocation of
+       autoreconf that did not.
+       * build-aux/bootstrap: Use $ACLOCAL_FLAGS when invoking autoreconf.
+       Reported by Mats Erik Andersson <gnu@gisladisker.se>.
+
+2011-12-17  Jim Meyering  <meyering@redhat.com>
+
+       bootstrap: remove some now-unneeded code
+       This script arose back when gnulib-tool was young.
+       Since then, it has seen improvements that render much of this
+       script unnecessary.  In particular, it can now make symlinks
+       to the files it uses.  Also, I no longer see as much value in
+       marking files as read-only via comments.
+       If you relied on the symlink-creation feature of the preceding
+       version of this script, you can get most of that functionality
+       by adding the --symlink option to the definition of
+       gnulib_tool_option_extras in your bootstrap.conf file.
+       * build-aux/bootstrap (AUTOPOINT, AUTORECONF): Factor out definitions.
+       Run autopoint and libtoolize *before* gnulib-tool.
+       After it, run an abbreviated autoreconf, rather than a loop around
+       all tools.
+       (slirp, bt_mark_as_generated): Remove functions.
+
+2011-12-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       ftoastr: fix typo
+       * lib/ftoastr.h: Fix misspelling in comment.
+
+2011-12-18  Reuben Thomas  <rrt@sc3d.org>
+
+       * top/README-release: fix punctuation.
+
+2011-12-17  Jim Meyering  <meyering@redhat.com>
+
+       bootstrap: correct the recent buildreq change
+       The 2011-12-07 commit, 39f5f1e4, omitted some '*'s, and thus
+       had no effect.
+       * build-aux/bootstrap (buildreq): Bracket each search term with
+       "*...*", so that the shell "case" statement works as intended.
+       Add comments.
+
+2011-12-17  Bernhard Voelker  <mail@bernhard-voelker.de>
+
+       build: let bootstrap resort to wget when downloading .po files
+       * build-aux/bootstrap (download_po_files): Fallback to wget when
+       downloading the .po files via rsync fails.  This is necessary to
+       bootstrap from behind a strict firewall.
+
+2011-12-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       stdint: don't assume C++11 when compiling with g++
+       Problem reported for glibc 2.14 and g++ by Alexander V. Lukyanov in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2011-12/msg00099.html>.
+       * m4/stdint.m4 (gl_STDINT_H): Don't go to extra work to make it
+       work also in C++ before C++11, as that improperly inhibits
+       generating a substitute stdint.h for that case.
+
+2011-12-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       alloca: protect comment from gnulib-tool
+       * lib/alloca.c: Change "GCC version 2" to "GCC 2" in comment, so
+       that gnulib-tool doesn't think it's a license, and munge it to
+       say "GCC version 3".
+
+2011-12-15  Ludovic Courtès  <ludo@gnu.org>  (tiny change)
+
+       localcharset: Use an absolute path in TESTS_ENVIRONMENT.
+       * modules/localcharset (LOCALCHARSET_TESTS_ENVIRONMENT): Use
+       $(abs_top_builddir) instead of $(top_builddir).
+
+2011-12-14  Alex Nelson  <ajnelson@cs.ucsc.edu>  (tiny change)
+
+       strftime-tests: also test nanoseconds
+       * tests/test-strftime.c (T): Add a test of %N.
+
+2011-12-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       inttypes, stdint: add C++11 support
+       C++11 says there's no need to define __STDC_CONSTANT_MACROS etc.
+       when including inttypes.h and stdint.h.  Support this change to
+       the standard.
+       * doc/posix-headers/inttypes.texi (inttypes.h):
+       * doc/posix-headers/stdint.texi (stdint.h): Document this.
+       * lib/inttypes.in.h (__STDC_FORMAT_MACROS) [! __cplusplus]:
+       Define if not defined already, for the benefit of pre-C++11 hosts.
+       Define the standard format macros (e.g., PRId8) always.
+       * lib/stdint.in.h (__STDC_CONSTANT_MACROS, __STDC_LIMIT_MACROS):
+       Likewise, if __cpluspus.  Define the standard constant and limit
+       macros (e.g., INT8_C, INT8_MAX) always.
+       * m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): Do not define
+       GL_TRIGGER_STDC_LIMIT_MACROS or __STDC_LIMIT_MACROS; no longer needed.
+       * m4/stdint.m4 (gl_STDINT_H): Update comments about these macros.
+       * tests/test-inttypes.c (__STDC_LIMIT_MACROS, __STDC_CONSTANT_MACROS)
+       (__STDC_FORMAT_MACROS): Do not define, since we assume C++11 API now.
+       * tests/test-stdint.c (__STDC_LIMIT_MACROS, __STDC_CONSTANT_MACROS):
+       Likewise.
+
+2011-12-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       nonblocking tests: Fix test failure on Linux/PPC.
+       Suggested by Prerna Saxena in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2011-12/msg00080.html>.
+       * tests/test-nonblocking-pipe.h (PIPE_DATA_BLOCK_SIZE) [Linux/PPC64]:
+       Set to 1100000.
+
+2011-12-12  Jim Meyering  <meyering@redhat.com>
+
+       argmatch: don't hard-code `' when listing valid option arguments
+       * lib/argmatch.c (argmatch_valid): Don't hard-code `%s'.  Instead,
+       use the quote function to add quotes.  Use fputs rather than
+       fprintf for the format string with no format directive.
+
+2011-12-07  Eric Blake  <eblake@redhat.com>
+
+       bootstrap: detect tools required by gnulib-tool
+       * build-aux/bootstrap (buildreq): Provide minimum implicit
+       dependencies.
+       * DEPENDENCIES: Mention patch as a prereq.
+
+2011-12-04  Bruno Haible  <bruno@clisp.org>
+
+       sethostname: Port to Windows platforms.
+       * lib/sethostname.c: Provide an alternate implementation for Windows
+       platforms.
+       * tests/test-sethostname2.c (geteuid): Redefine on Cygwin.
+       (main): Skip the test if sethostname() fails with EPERM. On Windows
+       platforms, don't check the result of gethostname().
+
+2011-12-04  Bruno Haible  <bruno@clisp.org>
+           Jim Meyering  <meyering@redhat.com>
+
+       tests: Avoid spurious error message on platforms without mktemp program.
+       * tests/init.sh (mktempd_): Run mktemp in a subcommand.
+
+2011-12-04  Bruno Haible  <bruno@clisp.org>
+
+       sethostname: Fix documentation.
+       * doc/glibc-functions/sethostname.texi: Move the Solaris problem to the
+       "not fixed" section.
+
+2011-12-03  Bruno Haible  <bruno@clisp.org>
+
+       gnulib-tool: Verify that the License field is present and non-empty.
+       * gnulib-tool (func_get_license_raw): New function, extracted from
+       func_get_license.
+       (func_get_license): Use it. Warn if the module is not a test module and
+       has no license.
+       Suggested by Jim Meyering.
+
+2011-12-03  Bruno Haible  <bruno@clisp.org>
+
+       sethostname tests: Fix link error on mingw.
+       * tests/test-sethostname1.c: New file, extracted from
+       tests/test-sethostname.c.
+       * tests/test-sethostname2.c: New file, extracted from
+       tests/test-sethostname.c.
+       * tests/test-sethostname.c: Remove file.
+       * modules/sethostname-tests (Files): Add tests/test-sethostname1.c,
+       tests/test-sethostname2.c. Remove tests/test-sethostname.c.
+       (Depends-on): Add gethostname.
+       (Makefile.am): Compile both test-sethostname1 and test-sethostname2.
+       Link the latter with $(GETHOSTNAME_LIB).
+
+       sethostname tests: Fix compilation error on mingw.
+       * tests/test-sethostname.c: Don't include <sys/types.h>.
+       (geteuid): Use a dummy value without uid_t.
+       * modules/sethostname-tests (Depends-on): Remove sys_types.
+
+       sethostname tests: Avoid a gcc warning.
+       * tests/test-sethostname.c (main): Remove an unused variable.
+
+       Tweak last commit.
+       * modules/sethostname-tests (Files): Sort by decreasing importance.
+       (configure.ac): Check for geteuid.
+       * tests/test-sethostname.c (main): Emit error messages to stderr. Skip
+       the test when there's nothing to test. Drop an unnecessary cast.
+       Improve an error message. Verify that the final sethostname() call
+       succeeds.
+
+2011-12-01  Ben Walton  <bwalton@artsci.utoronto.ca>
+
+       Add a test suite for the sethostname module.
+       * modules/sethostname-tests: New file.  A test program
+       for the sethostname module.
+       * tests/test-sethostname.c: Likewise.
+
+2011-12-03  Bruno Haible  <bruno@clisp.org>
+
+       Tweak last commit.
+       * lib/unistd.in.h (sethostname): Keep declarations in alphabetic order.
+       Fix preprocessor directives indentation. Fix typos.
+       * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Keep alphabetic order.
+       * modules/unistd (Makefile): Likewise.
+
+2011-12-01  Ben Walton  <bwalton@artsci.utoronto.ca>
+
+       Integrate the sethostname module into unistd.
+       * lib/unistd.in.h: Integrate the SETHOSTNAME preprocessor handling
+       into the unistd.h header.
+       * m4/unistd_h.m4: Setup the autoconf handling for the SETHOSTNAME
+       preprocessor directives.
+       * modules/unistd: Setup the Makefile substitutions of the
+       SETHOSTNAME preprocessor directives.
+
+2011-12-03  Bruno Haible  <bruno@clisp.org>
+
+       Tweak last commit.
+       * lib/sethostname.c: Don't include <string.h>.
+       (sethostname): No need to copy the argument string to the stack. Don't
+       call clearerr. Preserve errno when fprintf failed.
+       * m4/sethostname.m4 (gl_FUNC_SETHOSTNAME): Comment about HOST_NAME_MAX.
+       Don't invoke AC_REPLACE_FUNCS.
+       * modules/sethostname (Link): Remove empty section.
+       * doc/glibc-functions/sethostname.texi: Gnulib does not fix the ENOSYS
+       failure problem.
+
+2011-12-01  Ben Walton  <bwalton@artsci.utoronto.ca>
+
+       New module 'sethostname'.
+       * lib/sethostname.c (sethostname): New file.  Provide sethostname
+       for systems that lack it.
+       * m4/sethostname.m4 (gl_FUNC_SETHOSTNAME): New file.  Detection of
+       sethostname declaration and function.
+       * modules/sethostname: New file.  Define the sethostname module.
+
+2011-12-03  Bruno Haible  <bruno@clisp.org>
+
+       Tweak last commit.
+       * m4/gethostname.m4 (gl_PREREQ_HOST_NAME_MAX): Trim blank line.
+
+2011-12-01  Ben Walton  <bwalton@artsci.utoronto.ca>
+
+       Split the HOST_NAME_MAX detection into a separate m4 macro.
+       * m4/gethostname.m4 (gl_PREREQ_HOST_NAME_MAX): Make this a separate
+       macro so it can be used by the pending sethostname module.
+
+2011-12-03  Bruno Haible  <bruno@clisp.org>
+
+       Fix module descriptions syntax.
+       * modules/argv-iter (License): Fix syntax.
+       * modules/di-set (License): Likewise.
+       * modules/ino-map (License): Likewise.
+       Reported by Stefano Lattarini <stefano.lattarini@gmail.com>.
+
+2011-12-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       stdalign: port to Clang 3.0
+       Problem reported by Simon Josefsson in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2011-12/msg00005.html>.
+       * doc/posix-headers/stdalign.texi (stdalign.h): Mention Clang 3.0,
+       which has <stdalign.h> but which does not define alignof.
+       * m4/stdalign.m4 (gl_STDALIGN_H): Check for Clang 3.0's problem.
+
+2011-12-01  Eric Blake  <eblake@redhat.com>
+
+       mktempd: silence dd usage
+       * build-aux/mktempd (rand_bytes): Silence dd.
+
+2011-11-30  Simon Josefsson  <simon@josefsson.org>
+
+       manywarnings: Don't mention gcc version in docstring.
+       * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Doc fix.  Suggested by
+       Jim Meyering <meyering@redhat.com>.
+
+2011-11-30  Jim Meyering  <meyering@redhat.com>
+
+       hash: mark a few floating point constants with "f" suffix
+       * lib/hash.c (DEFAULT_GROWTH_THRESHOLD, DEFAULT_GROWTH_FACTOR)
+       (DEFAULT_SHRINK_THRESHOLD, DEFAULT_SHRINK_FACTOR): Mark literal
+       floating point constants with "f", since they're destined to be
+       saved/used as "float"s.
+
+2011-11-29  Paolo Bonzini  <bonzini@gnu.org>
+
+       float tests: Correct and re-enable assertion about LDBL_MIN_EXP.
+       * tests/test-float.c (test_long_double): Correct and re-enable the
+       assertion about LDBL_MIN_EXP that was disabled on 2011-08-31.
+
+2011-11-29  Matthew Wala  <wala1@illinois.edu>  (tiny change)
+
+       Avoid subtracting two pointers that don't point into the same block.
+       * lib/argp-help.c (hol_append): Reorder pointer subtractions so that
+       only pointers into the same memory block are subtracted. We cannot
+       assume that sizeof (ptrdiff_t) == sizeof (void *).
+
+2011-11-29  Eric Blake  <eblake@redhat.com>
+
+       maint.mk: add syntax check for use of compare from init.sh
+       * top/maint.mk (sc_prohibit_reversed_compare_failure): New rule,
+       moved here from coreutils.
+
+       manywarnings: drop -Wunsuffixed-float-constants
+       * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): C99 does not allow
+       '1.0D', which is the only way to silence this warning for 'double'.
+
+2011-11-29  Jim Meyering  <meyering@redhat.com>
+
+       hash: mark compute_bucket_size with the pure attribute
+       * lib/hash.c (compute_bucket_size): Use _GL_ATTRIBUTE_PURE.
+
+       quotearg, propername: correct pragma guard expression
+       * lib/quotearg.c: Enable pragma for gcc-4.6 and newer, not 4.3 and newer.
+       * lib/propername.c: Likewise.  Reported by Bernhard Voelker.
+
+2011-11-28  Jim Meyering  <meyering@redhat.com>
+
+       propername: do not mark proper_name with the const attribute
+       * lib/propername.h (proper_name): Do *not* mark as _GL_ATTRIBUTE_CONST,
+       since it examines data pointed to by its parameter.
+       * lib/propername.c (proper_name): Instead, add a pragma to suppress
+       the suggestion from -Wsuggest-attribute=const.
+
+       propername: mark one more function as const
+       * lib/propername.h (proper_name): Mark as _GL_ATTRIBUTE_CONST.
+
+2011-11-27  Jim Meyering  <meyering@redhat.com>
+
+       mark functions with const and pure attributes
+
+       Mark functions per suggestions from gcc-4.6 when using these options:
+       -Wsuggest-attribute=pure -Wsuggest-attribute=const.
+       Use gnulib's _GL_ATTRIBUTE_PURE and _GL_ATTRIBUTE_CONST macros.
+       Follow these guidelines: when possible, apply the attribute to
+       an extern declaration, not to its definition.  Apply it to the
+       definition only when the definition is static.
+       * lib/argmatch.h (argmatch, argmatch_to_argument): Mark.
+       * lib/argv-iter.h (argv_iter_n_args): Likewise.
+       * lib/base64.h (isbase64): Likewise.
+       * lib/basename-lgpl.c (last_component, base_len): Likewise.
+       * lib/c-ctype.h (c_isascii, c_isalnum, c_isalpha): Likewise.
+       (c_isblank, c_iscntrl, c_isdigit, c_islower, c_isgraph): Likewise.
+       (c_isprint, c_ispunct, c_isspace, c_isupper, c_isxdigit): Likewise.
+       (c_tolower, c_toupper): Likewise.
+       * lib/c-strcase.h (c_strcasecmp, c_strncasecmp): Likewise.
+       * lib/chdir-long.c (find_non_slash): Likewise.
+       * lib/dirname.h (base_len, dir_len, last_component): Likewise.
+       * lib/exclude.h (fnmatch_pattern_has_wildcards): Likewise.
+       * lib/file-type.h (file_type): Likewise.
+       * lib/filenamecat-lgpl.c (longest_relative_suffix): Likewise.
+       * lib/filevercmp.c (verrevcmp): Likewise.
+       * lib/freadahead.h (freadahead): Likewise.
+       * lib/fts.c (fts_maxarglen): Likewise.
+       * lib/hash-pjw.h (hash_pjw): Likewise.
+       * lib/hash-triple.h (triple_hash_no_name, triple_compare_ino_str):
+       * lib/hash.c (is_prime, next_prime): Likewise.
+       * lib/hash.c (hash_get_n_buckets, hash_get_n_buckets_used): Likewise.
+       (hash_get_n_entries, hash_get_max_bucket_length): Likewise.
+       (hash_table_ok, hash_get_first, hash_string): Likewise.
+       (compute_bucket_size): Likewise.
+       * lib/i-ring.h (i_ring_empty): Likewise.
+       * lib/isnan.c (isnanl): Likewise.
+       * lib/math.h (isnanl, rpl_isnanl): Likewise.
+       * lib/memcasecmp.h (memcasecmp): Likewise.
+       * lib/memchr2.h (memchr2): Likewise.
+       * lib/memcmp2.h (memcmp2): Likewise.
+       * lib/parse-datetime.y (lookup_zone): Likewise.
+       * lib/sockets.h (gl_sockets_startup, gl_sockets_cleanup)
+       [!WINDOWS_SOCKETS]: Likewise.
+       * lib/strnlen1.h (strnlen1): Likewise.
+       * lib/uniwidth.in.h (uc_width): Likewise.
+       * lib/quotearg.c: Add pragma to avoid unwarranted suggestion from
+       gcc's -Wsuggest-attribute=pure for quoting_options_from_style.
+       (quoting_options_from_style): Add a comment.
+       * lib/propername.h (proper_name): Add a comment.
+
+2011-11-27  Bruno Haible  <bruno@clisp.org>
+
+       Remove unused macros from !_LIBC code in glibc-borrowed files.
+       * lib/fnmatch.c (STRCOLL): Remove macro.
+       * lib/fnmatch_loop.c (STRCOLL): Remove undef.
+       * lib/glob.c (__stat, __readdir64): Remove macros.
+       * lib/tempname.c (__open64, __xstat64): Remove macros.
+       Suggested by Paul Eggert.
+
+2011-11-27  Bruno Haible  <bruno@clisp.org>
+
+       getcwd: Fix link error on MSVC 9.
+       * modules/getcwd (Depends-on): Add readdir, rewinddir.
+
 2011-11-27  Bruno Haible  <bruno@clisp.org>
 
        Don't set REPLACE_FOO to 1 if HAVE_FOO is 0.