Fix copyright header in build-aux scripts.
[gnulib.git] / ChangeLog
index 1f8d5e8..5233f2f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,395 @@
+2009-09-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       Fix copyright header in build-aux scripts.
+       * build-aux/git-version-gen: Fix copyright header to match GPLv3
+       recommendation.
+       * build-aux/ncftpput-ftp: Likewise.
+       * build-aux/update-copyright: Likewise.
+
+2009-09-09  Eric Blake  <ebb9@byu.net>
+
+       test-link: allow Linux choice of errno
+       * tests/test-link.c (main): Relax test for alternate error.
+
+       strndup: fix improper m4 caching
+       * m4/strndup.m4 (gl_FUNC_STRNDUP): Rework to avoid side effects
+       inside AC_CACHE_CHECK.  Use REPLACE_STRNDUP, not HAVE_STRNDUP.
+       (gl_PREREQ_STRNDUP): Delete.
+       * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Update default.
+       * modules/string (Makefile.am): Substitute it.
+       * lib/string.in.h (strndup): Modernize prototype.
+
+       getcwd: port to mingw
+       * m4/getcwd.m4 (gl_FUNC_GETCWD): Mingw directories are very
+       different from the POSIX assumptions made throughout the getcwd
+       module; fortunately, the mingw getcwd does not need replacement.
+       (gl_FUNC_GETCWD_NULL): Skip test on mingw.
+       * modules/getcwd-tests: New test.
+       * tests/test-getcwd.c: Likewise.
+
+       link: fix platform bugs
+       * m4/link.m4 (gl_FUNC_LINK): Detect Solaris and Cygwin bugs.
+       * lib/link.c (link): Work around them.  Fix related mingw bug.
+       * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add REPLACE_LINK.
+       * modules/unistd (Makefile.am): Substitute it.
+       * lib/unistd.in.h (link): Declare replacement.
+       * doc/posix-functions/link.texi (link): Document this.
+       * modules/link (Depends-on): Add strdup-posix, sys_stat.
+
+       test-link: consolidate into single C program, test more cases
+       * tests/test-link.sh: Delete.
+       * tests/test-link.c: Test more error conditions.  Exposes bugs on
+       at least Cygwin and Solaris.
+       * modules/link-tests (Files): Remove unused file.
+       (Depends-on): Add errno, sys_stat.
+       (Makefile.am): Simplify.
+
+2009-09-08  Bruno Haible  <bruno@clisp.org>
+
+       Work around towlower, towupper bug on mingw.
+       * lib/wctype.in.h (towlower, towupper) [__MINGW32__]: New replacements.
+       * m4/wctype.m4 (gl_WCTYPE_H): Replace <wctype.h> also on mingw.
+       * doc/posix-functions/towlower.texi: Mention the mingw bug.
+       * doc/posix-functions/towupper.texi: Likewise.
+       Reported by Eric Blake.
+
+2009-09-08  Jim Meyering  <meyering@redhat.com>
+
+       build: don't try to run autoheader if we don't use it
+       * build-aux/bootstrap: Define AUTOHEADER=true when AC_CONFIG_HEADERS
+       is not used in configure.ac.
+
+2009-09-08  Eric Blake  <ebb9@byu.net>
+
+       euidaccess: fix compilation error
+       * lib/euidaccess.c (includes): Add <fcntl.h>, for AT_EACCESS.
+
+       rawmemchr: relax license
+       * modules/rawmemchr (License): Derived from glibc, so LGPLv2+ is
+       okay.
+       Reported by Jim Meyering.
+
+       mkfifoat: new module
+       * modules/mkfifoat: New file.
+       * lib/mkfifoat.c: Likewise.
+       * m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Likewise.
+       * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add witnesses.
+       * modules/sys_stat (Makefile.am): Use them.
+       * lib/sys_stat.in.h (mkfifoat, mknodat): Declare them.
+       * MODULES.html.sh (File system functions): Mention module.
+       * doc/posix-functions/mkfifoat.texi (mkfifoat): Likewise.
+       * doc/posix-functions/mknodat.texi (mknodat): Likewise.
+       * modules/mkfifoat-tests: New test.
+       * tests/test-mkfifoat.c: Likewise.
+
+       strchrnul: relax license
+       * modules/strchrnul (License): Derived from glibc, so LGPLv2+ is
+       okay.
+       Reported by Jim Meyering.
+
+2009-09-08  Eric Blake  <ebb9@byu.net>
+
+       fstatat: fix compilation on Solaris
+       * lib/fstatat.c (includes): Add fcntl.h.
+       Reported by Pádraig Brady.
+
+2009-09-07  Eric Blake  <ebb9@byu.net>
+
+       rename: modernize replacement
+       * modules/rename (Depends-on): Add stdio.
+       (configure.ac): Declare witness.
+       * m4/rename.m4 (gl_FUNC_RENAME): Ensure dependency order, and let
+       stdio take care of replacement.
+       * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Add new defaults.
+       * modules/stdio (Makefile.am): Substitute them.
+       * lib/stdio.in.h (rename): Declare replacement.
+       * lib/rename.c (includes): Allow cross-compilation to non-windows
+       machines.
+       * doc/posix-functions/rename.texi (rename): Improve
+       documentation.
+
+       stdio: sort witness names
+       * modules/stdio (Makefile.am): Sort replacements.
+       * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise.
+       * lib/stdio.in.h: Likewise.
+
+       getcwd: minor cleanups
+       * lib/getcwd.c (AT_FDCWD): Delete; rely on <fcntl.h> instead.
+       (is_ENAMETOOLONG): Delete; ENAMETOOLONG is portable.
+
+       openat: provide more convenience names
+       * modules/faccessat (configure.ac): Add C witness.
+       * lib/unistd.in.h (readlinkat): Fix typo.
+       * lib/openat.h (statat, lstatat, accessat, euidaccessat): New
+       convenience wrappers.
+       * top/maint.mk (sc_prohibit_openat_without_use): Allow these
+       wrappers in syntax checks.
+
+2009-09-06  Eric Blake  <ebb9@byu.net>
+
+       doc: fix comments in recent patches
+       * lib/faccessat.c: Mention correct function.
+       * lib/fchmodat.c: Likewise.
+       * lib/fchownat.c: Likewise.
+       * lib/symlinkat.c: Likewise.
+       * doc/posix-headers/fcntl.texi (fcntl.h): Cygwin 1.7 has AT_*
+       constants.
+
+       faccessat, symlinkat: continue cleanup of previous patch
+       * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Ensure dependency order.
+       * m4/faccessat.m4 (gl_FUNC_FACCESSAT): Likewise.
+       * modules/unistd (Makefile.am): Substitute GNULIB_READLINKAT.
+       * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Offer GNULIB_READLINKAT.
+       * modules/symlinkat (configure.ac): Set GNULIB_READLINKAT.
+       * lib/unistd.in.h (readlinkat): Declare if GNULIB_READLINKAT is
+       set.
+
+2009-09-06  Bruno Haible  <bruno@clisp.org>
+
+       * lib/sys_stat.in.h (fchmodat): Declare if GNULIB_FCHMODAT is set.
+       (fstatat): Declare if GNULIB_FSTATAT is set.
+       (mkdirat): Declare if GNULIB_MKDIRAT is set.
+       * lib/unistd.in.h (fchownat): Declare if GNULIB_FCHOWNAT is set.
+       (unlinkat): Declare if GNULIB_UNLINKAT is set.
+       * modules/fcntl-h (Files): Remove m4/openat.m4.
+       * modules/sys_stat (Files): Remove m4/openat.m4.
+       (Makefile.am): Substitute GNULIB_FCHMODAT, GNULIB_FSTATAT,
+       GNULIB_MKDIRAT instead of GNULIB_OPENAT.
+       * modules/unistd (Files): Remove m4/openat.m4.
+       (Makefile.am): Substitute GNULIB_FCHOWNAT, GNULIB_UNLINKAT instead of
+       GNULIB_OPENAT.
+       * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Initialize GNULIB_OPENAT,
+       HAVE_OPENAT here. Don't require gl_OPENAT_DEFAULTS.
+       * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize
+       GNULIB_FCHMODAT, GNULIB_FSTATAT, GNULIB_MKDIRAT, HAVE_FCHMODAT,
+       HAVE_FSTATAT, HAVE_MKDIRAT, REPLACE_FSTATAT here. Don't require
+       gl_OPENAT_DEFAULTS.
+       * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_FCHOWNAT,
+       GNULIB_UNLINKAT, HAVE_FCHOWNAT, HAVE_UNLINKAT, REPLACE_FCHOWNAT here.
+       Don't require gl_OPENAT_DEFAULTS.
+       * m4/openat.m4 (gl_FUNC_OPENAT): Require gl_FCNTL_H_DEFAULTS,
+       gl_SYS_STAT_H_DEFAULTS, gl_UNISTD_H_DEFAULTS. Set GNULIB_FCHMODAT,
+       GNULIB_FSTATAT, GNULIB_MKDIRAT, GNULIB_FCHOWNAT, GNULIB_UNLINKAT.
+       (gl_OPENAT_DEFAULTS): Remove macro.
+
+2009-09-06  Bruno Haible  <bruno@clisp.org>
+
+       * modules/openat (configure.ac): Remove unneeded witness.
+
+2009-09-06  Bruno Haible  <bruno@clisp.org>
+
+       Set errno to ENOSYS when a function is entirely unsupported.
+       * lib/chown.c (rpl_chown) [!HAVE_CHOWN]: Set errno to ENOSYS instead of
+       EOPNOTSUPP.
+       * lib/lchown.c (lchown) [!HAVE_CHOWN]: Likewise.
+       * modules/chown (Depends-on): Remove errno.
+
+2009-09-06  Bruno Haible  <bruno@clisp.org>
+
+       * doc/posix-headers/fcntl.texi (AT_*): Mention affected platforms.
+
+2009-09-06  Bruno Haible  <bruno@clisp.org>
+
+       * lib/sys_stat.in.h: Fix preprocessor command indentation.
+
+2009-09-06  Ben Pfaff  <blp@gnu.org>
+           Bruno Haible  <bruno@clisp.org>
+
+       Work around a glibc bug in strtok_r.
+       * lib/string.in.h (strtok_r): Replace if REPLACE_STRTOK_R is set.
+       Undefine if UNDEFINE_STRTOK_R is set.
+       * lib/strtok_r.c (strtok_r, __strtok_r) [!_LIBC]: Don't undefine.
+       * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize
+       REPLACE_STRTOK_R and UNDEFINE_STRTOK_R.
+       * m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Check against the glibc bug.
+       * modules/string (Makefile.am): Substitute REPLACE_STRTOK_R,
+       UNDEFINE_STRTOK_R.
+       * doc/posix-functions/strtok_r.texi: Mention the glibc 2.7 bug.
+
+2009-09-06  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       exclude: minor fix
+       * lib/exclude.c: Include wctype.h
+
+2009-09-06  Akim Demaille  <demaille@gostai.com>
+
+       bootstrap: improve error message
+       * build-aux/bootstrap (find_tool): Upon failure, report the list
+       of candidates.
+       Honor the initial value of the envvar.
+
+2009-09-05  Eric Blake  <ebb9@byu.net>
+
+       symlinkat: new module
+       * modules/symlinkat: New file.
+       * lib/symlinkat.c: Likewise.
+       * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Likewise.
+       * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witnesses.
+       * modules/unistd (Makefile.am): Use them.
+       * lib/unistd.in.h (symlinkat, readlinkat): Declare them.
+       (faccessat) [GNULIB_POSIXCHECK]: Fix typo.
+       * lib/at-func.c (FUNC_RESULT): New macro, defaulting to int.
+       * MODULES.html.sh (File system functions): Mention module.
+       * doc/posix-functions/symlinkat.texi (symlinkat): Likewise.
+       * doc/posix-functions/readlinkat.texi (readlinkat): Likewise.
+       * modules/symlinkat-tests: New test.
+       * tests/test-symlinkat.c: Likewise.
+
+       test-openat-safer: add more checks
+       * tests/test-openat-safer.c (main): Check more code paths.
+
+2009-09-05  Jim Meyering  <meyering@redhat.com>
+
+       syntax-check: detect unnecessary inclusion of openat.h
+       * top/maint.mk (sc_prohibit_openat_without_use): New rule.
+
+2009-09-05  Bruno Haible  <bruno@clisp.org>
+
+       Support towlower, towupper.
+       * doc/posix-functions/towlower.texi: Mention module wctype.
+       * doc/posix-functions/towupper.texi: Likewise.
+       * lib/wctype.in.h (towlower, towupper): New functions.
+       * tests/test-wctype.c: Include stdio.h, stdlib.h.
+       (ASSERT): New macro.
+       (e): New variable.
+       (main): Test also towlower, towupper. Test WEOF argument.
+       Reported by Alan Hourihane <alanh@fairlite.co.uk>.
+
+2009-09-05  Bruno Haible  <bruno@clisp.org>
+
+       Fix conversion behaviour when the input is invalid.
+       * lib/striconveh.c (mem_cd_iconveh_internal): Fix storing of question
+       mark occurring in first pass of indirect conversion.
+       * tests/test-striconveh.c (main): Test conversion of invalid ASCII
+       input.
+       Found by clang's static analyzer.
+
+2009-09-05  Bruno Haible  <bruno@clisp.org>
+
+       * tests/test-striconveh.c (main): Test indirect conversion on platforms
+       where direct conversion is possible.
+
+2009-09-04  Eric Blake  <ebb9@byu.net>
+
+       openat: fail with ENOENT on empty name
+       * lib/openat-proc.c (openat_proc_name): Special-case the empty
+       buffer.
+
+       link-follow: fix logic bug in prior patch
+       * m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Fix bug that
+       reversed sense of yes and no in prior patch.  Avoid confusing
+       compilation failure with desired semantics.
+
+       link-follow: accomodate mingw and cross-compilation
+       * m4/link-follow.m4 (gl_AC_FUNC_LINK_FOLLOWS_SYMLINK): Rename...
+       (gl_FUNC_LINK_FOLLOWS_SYMLINK): ...to this.  Change
+       cross-compilation results to -1, to make linkat easier to
+       implement when cross-compiling.  Trivially support mingw.
+       * modules/link-follow (configure.ac): Call new name.
+       * NEWS: Mention this.
+
+2009-09-03  Eric Blake  <ebb9@byu.net>
+
+       faccessat: compile replacement
+       * m4/faccessat.m4 (gl_FUNC_FACCESSAT): Build replacement when
+       needed.
+
+       fts: fix compilation error
+       * lib/fts.c (includes): Re-add "openat.h", for
+       openat_needs_fchdir.
+
+       faccessat: new module
+       * modules/faccessat: New file.
+       * lib/faccessat.c: Likewise.
+       * m4/faccessat.m4 (gl_FUNC_FACCESSAT): Likewise.
+       * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness.
+       * modules/unistd (Makefile.am): Use it.
+       * lib/unistd.in.h (faccessat): Declare it.
+       (F_OK, X_OK, W_OK, R_OK): Provide definitions.
+       * lib/fcntl.in.h (AT_SYMLINK_FOLLOW, AT_EACCESS): Likewise.
+       * MODULES.html.sh (File system functions): Mention it.
+       * doc/posix-functions/faccessat.texi (faccessat): Likewise.
+       * doc/posix-headers/fcntl.texi (fcntl.h): Likewise.
+
+       euidaccess: prefer POSIX over non-standard implementation
+       * m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Check for faccessat.
+       * lib/euidaccess.c (euidaccess): Use it if available.
+
+       openat: make template easier to use
+       * lib/at-func.c (CALL_FUNC): Allow AT_FUNC_USE_F1_COND and
+       AT_FUNC_F2 to be undefined.
+       (VALIDATE_FLAG): New macro; use it to reject bad flags.
+       (AT_FUNC_USE_F1_COND): Change sense to just flag bit.
+       * lib/fchmodat.c (AT_FUNC_USE_F1_COND): Adjust.
+       * lib/fchownat.c (AT_FUNC_USE_F1_COND): Likewise.
+       * lib/openat.c (AT_FUNC_USE_F1_COND) [fstatat, unlinkat]:
+       Likewise.
+       * lib/mkdirat.c (AT_FUNC_F2, AT_FUNC_USE_F1_COND): Delete.
+       * lib/selinux-at.c (AT_FUNC_F2, AT_FUNC_USE_F1_COND)
+       [getfileconat, lgetfileconat, setfileconat, lsetfileconat]:
+       Likewise.
+
+       openat: declare in POSIX headers
+       * NEWS: Mention this.
+       * modules/openat (configure.ac): Declare witnesses.
+       (Depends-on): Add fcntl-h, sys_stat, unistd.
+       (Include): Mention correct headers.
+       * modules/fcntl-h (Depends-on): Add link-warning.
+       (Files): Add openat.m4.
+       (Makefile.am): Substitute witnesses.
+       * modules/sys_stat (Files, Makefile.am): Likewise.
+       * modules/unistd (Files, Makefile.am): Likewise.
+       * m4/openat.m4 (gl_FUNC_OPENAT, gl_FUNC_FCHOWNAT): Set witnesses.
+       (gl_OPENAT_DEFAULTS): New macro.
+       * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Use it.
+       * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Likewise.
+       * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Likewise.
+       (SYS_STAT_H): Remove unused variable.
+       * doc/posix-headers/fcntl.texi (fcntl.h): Update content.
+       * lib/fcntl--.h (includes): Remove unneeded header.
+       * lib/openat-safer.c (includes): Likewise.
+       * lib/openat.h (AT_FDCWD, AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR)
+       (openat, fstatat, unlinkat, mkdirat, fchmodat, fchownat): Move to
+       appropriate headers.
+       (__OPENAT_PREFIX): Delete.
+       * lib/fcntl.in.h (openat): Provide declaration.
+       (AT_FDCWD): Fix Solaris bug.
+       (AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR): Provide macros.
+       * lib/sys_stat.in.h (fstatat, mkdirat): Provide declaration.
+       * lib/fchmodat.c (includes):  Adjust to find declaration.
+       * lib/fchownat.c (includes): Likewise.
+       * lib/mkdirat.c (includes): Likewise.
+       * lib/fstatat.c (includes): Likewise.  Ensure original fstatat is
+       still visible.
+
 2009-09-02  Eric Blake  <ebb9@byu.net>
 
+       errno: use consistently
+       * lib/c-stack.c (ENOTSUP): <errno.h> guarantees a definition.
+       * lib/canonicalize-lgpl.c (ENAMETOOLONG): Likewise.
+       * lib/canonicalize.c (ELOOP): Likewise.
+       * lib/inet_ntop.c (EAFNOSUPPORT): Likewise.
+       * lib/inet_pton.c (EAFNOSUPPORT): Likewise.
+       * lib/lchown.c (EOPNOTSUPP): Likewise.
+       * lib/openat-priv.h (ENOSYS, EOPNOTSUPP): Likewise.
+       * lib/savewd.c (ESTALE): Likewise.
+       * lib/settime.c (ENOSYS): Likewise.
+       * lib/utimens.c (ENOSYS): Likewise.
+       * lib/xgethostname.c (ENAMETOOLONG): Likewise.
+       * lib/chdir-safer.c (ELOOP): Likewise.
+       (chdir_no_follow): Use HAVE_READLINK, not ELOOP, as witness.
+       * modules/c-stack (Depends-on): Add errno.
+       * modules/canonicalize (Depends-on): Likewise.
+       * modules/chdir-safer (Depends-on): Likewise.
+       * modules/fdopendir (Depends-on): Likewise.
+       * modules/inet_ntop (Depends-on): Likewise.
+       * modules/inet_pton (Depends-on): Likewise.
+       * modules/lchown (Depends-on): Likewise.
+       * modules/openat (Depends-on): Likewise.
+       * modules/savewd (Depends-on): Likewise.
+       * modules/settime (Depends-on): Likewise.
+       * m4/chdir-safer.m4 (gl_CHDIR_SAFER): Check for readlink.
+
        fts: avoid leaking fds
        * modules/fts (Depends-on): Add cloexec.
        * lib/fts.c (opendirat, diropen, fts_build): Set close-on-exec