digests, copy-file: increase the IO buffer size from 4KiB to 32KiB
[gnulib.git] / ChangeLog
index da30191..e2f8551 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,351 @@
+2009-10-22  Pádraig Brady  <P@draigBrady.com>
+
+       Use a better IO block size for modern systems
+       * lib/copy-file.c (copy_file_preserving): Used a 32KiB malloced buffer.
+       * lib/md2.c: Likewise.
+       * lib/md4.c: Likewise.
+       * lib/md5.c: Likewise.
+       * lib/sha1.c: Likewise.
+       * lib/sha256.c: Likewise.
+       * lib/sha512.c: Likewise.
+
+2009-10-22  Eric Blake  <ebb9@byu.net>
+
+       tests: avoid several compiler warnings
+       * tests/test-getcwd.c (main): Avoid buffer underflow.
+       * tests/test-getdate.c (main): String literals are not safe with
+       putenv, so use setenv.  Declare unused argument.
+       * modules/getdate-tests (Depends-on): Add setenv.
+       * tests/test-argv-iter.c (main): Declare unused argument.  Avoid
+       problems with string literals in char *.
+       * tests/test-hash.c (main): Avoid shadowing declaration.
+       (insert_new): Treat string literals as char const *.
+       * tests/test-getopt.h (test_getopt): Likewise.
+       (getopt_loop): Alter types to minimize casting elsewhere.
+       * tests/test-getopt_long.h (test_getopt_long, getopt_long_loop)
+       (test_getopt_long_posix): Likewise.
+       (do_getopt_long): Add wrapper to minimize casting.
+       * tests/test-atexit.c (clear_temp_file): Use void.
+       * tests/test-areadlink-with-size.c (main): Declare unused
+       arguments.
+       * tests/test-areadlink.c (main): Likewise.
+       * tests/test-areadlinkat-with-size.c (main): Likewise.
+       * tests/test-areadlinkat.c (main): Likewise.
+       * tests/test-canonicalize-lgpl.c (main): Likewise.
+       * tests/test-canonicalize.c (main): Likewise.
+       * tests/test-dirent-safer.c (main): Likewise.
+       * tests/test-dirname.c (main): Likewise.
+       * tests/test-dup2.c (main): Likewise.
+       * tests/test-fchdir.c (main): Likewise.
+       * tests/test-fcntl-h.c (main): Likewise.
+       * tests/test-fcntl-safer.c (main): Likewise.
+       * tests/test-fdopendir.c (main): Likewise.
+       * tests/test-fdutimensat.c (main): Likewise.
+       * tests/test-fflush.c (main): Likewise.
+       * tests/test-filenamecat.c (main): Likewise.
+       * tests/test-filevercmp.c (main): Likewise.
+       * tests/test-fopen-safer.c (main): Likewise.
+       * tests/test-fopen.c (main): Likewise.
+       * tests/test-fpending.c (main): Likewise.
+       * tests/test-fpurge.c (main): Likewise.
+       * tests/test-freading.c (main): Likewise.
+       * tests/test-fstatat.c (main): Likewise.
+       * tests/test-fsync.c (main): Likewise.
+       * tests/test-futimens.c (main): Likewise.
+       * tests/test-getndelim2.c (main): Likewise.
+       * tests/test-gettimeofday.c (main): Likewise.
+       * tests/test-getopt.c (main): Likewise.
+       * tests/test-i-ring.c (main): Likewise.
+       * tests/test-inttypes.c (main): Likewise.
+       * tests/test-link.c (main): Likewise.
+       * tests/test-lstat.c (main): Likewise.
+       * tests/test-math.c (main): Likewise.
+       * tests/test-md5.c (main): Likewise.
+       * tests/test-memchr2.c (main): Likewise.
+       * tests/test-memrchr.c (main): Likewise.
+       * tests/test-mkdir.c (main): Likewise.
+       * tests/test-mkdirat.c (main): Likewise.
+       * tests/test-mkfifoat.c (main): Likewise.
+       * tests/test-open.c (main): Likewise.
+       * tests/test-openat-safer.c (main): Likewise.
+       * tests/test-openat.c (main): Likewise.
+       * tests/test-quotearg.c (main): Likewise.
+       * tests/test-rawmemchr.c (main): Likewise.
+       * tests/test-readlink.c (main): Likewise.
+       * tests/test-remove.c (main): Likewise.
+       * tests/test-rename.c (main): Likewise.
+       * tests/test-renameat.c (main): Likewise.
+       * tests/test-rmdir.c (main): Likewise.
+       * tests/test-sha1.c (main): Likewise.
+       * tests/test-signal.c (main): Likewise.
+       * tests/test-sigaction.c (main): Likewise.
+       * tests/test-stat.c (main): Likewise.
+       * tests/test-stat-time.c (main): Likewise.
+       * tests/test-stddef.c (main): Likewise.
+       * tests/test-stdint.c (main): Likewise.
+       * tests/test-stdio.c (main): Likewise.
+       * tests/test-stdlib.c (main): Likewise.
+       * tests/test-strchrnul.c (main): Likewise.
+       * tests/test-strerror.c (main): Likewise.
+       * tests/test-string.c (main): Likewise.
+       * tests/test-strtod.c (main): Likewise.
+       * tests/test-strverscmp.c (main): Likewise.
+       * tests/test-symlink.c (main): Likewise.
+       * tests/test-symlinkat.c (main): Likewise.
+       * tests/test-sys_stat.c (main): Likewise.
+       * tests/test-sys_time.c (main): Likewise.
+       * tests/test-time.c (main): Likewise.
+       * tests/test-unistd.c (main): Likewise.
+       * tests/test-unlink.c (main): Likewise.
+       * tests/test-unlinkat.c (main): Likewise.
+       * tests/test-utimens.c (main): Likewise.
+       * tests/test-utimensat.c (main): Likewise.
+       * tests/test-version-etc.c (main): Likewise.
+       * tests/test-wchar.c (main): Likewise.
+       * tests/test-wctype.c (main): Likewise.
+       * tests/test-xprintf-posix.c (main): Likewise.
+       * tests/test-posixtm.c (main): Likewise.
+       (STREQ): Delete unused macro.
+       * tests/test-linkat.c (main): Declare unused arguments.  Avoid
+       shadowed variables.
+       * tests/test-memchr.c (main): Likewise.
+
+2009-10-21  Eric Blake  <ebb9@byu.net>
+
+       areadlinkat: avoid failure on older glibc
+       * lib/at-func.c (AT_FUNC_NAME): Check for explicit FUNC_FAIL,
+       rather than mis-comparing 0 against FUNC_RESULT of char*.
+
+2009-10-21  Bruno Haible  <bruno@clisp.org>
+
+       * modules/stpncpy (License): Relicense under LGPLv2+.
+       Reported by David Lutterkort <lutter@redhat.com>.
+
+2009-10-20  Eric Blake  <ebb9@byu.net>
+
+       utimensat: work around Solaris 9 bug
+       * lib/utimens.c (fdutimens, lutimens): Force a stat if platform
+       has trailing slash bugs.
+       * tests/test-lutimens.h (test_lutimens): Enhance test.
+       * tests/test-utimens.h (test_utimens): Likewise.
+       * doc/posix-functions/utime.texi (utime): Enhance documentation.
+       * doc/posix-functions/utimes.texi (utimes): Likewise.
+       * doc/posix-functions/utimensat.texi (utimensat): Likewise.
+       * doc/glibc-functions/futimesat.texi (futimesat): Likewise.
+       * doc/glibc-functions/lutimes.texi (lutimes): Likewise.
+       * doc/posix-functions/futimens.texi (futimens): Likewise.
+
+       fdutimensat: new module
+       * modules/fdutimensat: New file.
+       * lib/fdutimensat.c (fdutimensat): Likewise.
+       * lib/utimens.h (fdutimensat, lutimensat): Declare new functions.
+       * MODULES.html.sh (File system functions): Mention module.
+       * modules/fdutimensat-tests: New test.
+       * tests/test-fdutimensat.c: Likewise.
+
+       doc: regenerate INSTALL
+       * doc/INSTALL: Reflect recent autoconf update.
+       * doc/INSTALL.ISO: Likewise.
+       * doc/INSTALL.UTF-8: Likewise.
+
+2009-10-20  Pádraig Brady  <P@draigBrady.com>
+
+       acl: warn if ACL support is not detected
+       * m4/acl.m4 (gl_FUNC_ACL): Output a warning if ACL support is not found.
+
+2009-10-19  Giuseppe Scrivano  <gscrivano@gnu.org>
+
+       * lib/nproc.h: Add extern "C" block for C++.
+
+2009-10-18  Reuben Thomas  <rrt@sc3d.org>
+           Bruno Haible  <bruno@clisp.org>
+
+       * doc/posix-functions/isascii.texi: Document the 2 alternative APIs.
+       * doc/posix-functions/isalnum.texi: Document the 4 alternative APIs.
+       * doc/posix-functions/isalpha.texi: Likewise.
+       * doc/posix-functions/isblank.texi: Likewise.
+       * doc/posix-functions/iscntrl.texi: Likewise.
+       * doc/posix-functions/isdigit.texi: Likewise.
+       * doc/posix-functions/isgraph.texi: Likewise.
+       * doc/posix-functions/islower.texi: Likewise.
+       * doc/posix-functions/isprint.texi: Likewise.
+       * doc/posix-functions/ispunct.texi: Likewise.
+       * doc/posix-functions/isspace.texi: Likewise.
+       * doc/posix-functions/isupper.texi: Likewise.
+       * doc/posix-functions/isxdigit.texi: Likewise.
+
+2009-10-18  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'isblank'.
+       * modules/isblank-tests: New file.
+       * tests/test-isblank.c: New file.
+
+       New module 'isblank'.
+       * lib/isblank.c: New file.
+       * m4/isblank.m4: New file.
+       * modules/isblank: New file.
+       * doc/posix-functions/isblank.texi: Mention the new module.
+
+2009-10-18  Bruno Haible  <bruno@clisp.org>
+
+       New module 'ctype'.
+       * lib/ctype.in.h: New file.
+       * m4/ctype.m4: New file.
+       * modules/ctype: New file.
+       * doc/posix-headers/ctype.texi: Mention the new module.
+
+2009-10-18  Jim Meyering  <meyering@redhat.com>
+
+       m4: stylistic-only: hoist AC_SUBST to be adjacent to initialization
+       Declare a variable like LIB_CLOCK_GETTIME to be AC_SUBSTituted
+       right after its initialization, rather than farther down.
+       Keeping these in close proximity makes it easier to ensure
+       that each such variable is initialized.  E.g.,
+
+           LIB_CLOCK_GETTIME=
+           AC_SUBST([LIB_CLOCK_GETTIME])
+
+       This change also increments these serial numbers.
+       * m4/clock_time.m4 (gl_CLOCK_TIME): Hoist AC_SUBST use.
+       * m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Likewise.
+       * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
+
+2009-10-18  Bruno Haible  <bruno@clisp.org>
+
+       Don't let environment variables perturb build.
+       * m4/gethrxtime.m4 (gl_GETHRXTIME): Initialize LIB_GETHRXTIME here...
+       (gl_PREREQ_GETHRXTIME): ... not here.
+
+2009-10-18  Bruno Haible  <bruno@clisp.org>
+
+       Avoid symlink attack in localcharset module.
+       * lib/localcharset.c: Include <fcntl.h>, <unistd.h>.
+       (O_NOFOLLOW): Define fallback.
+       (get_charset_aliases): Don't open the file if it is a symbolic link.
+       * m4/fcntl_h.m4 (gl_FCNTL_O_FLAGS): New macro, extracted from
+       gl_FCNTL_H.
+       (gl_FCNTL_H): Require it.
+       * m4/localcharset.m4 (gl_LOCALCHARSET): Likewise.
+       * modules/localcharset (Files): Add m4/fcntl_h.m4.
+       Reported by Fergal Glynn <fglynn@veracode.com>.
+
+2009-10-18  Bruno Haible  <bruno@clisp.org>
+
+       Implement nproc for mingw.
+       * lib/nproc.c: Include <windows.h>
+       (num_processors): On native Windows platforms, try GetSystemInfo.
+
+2009-10-18  Bruno Haible  <bruno@clisp.org>
+
+       Implement nproc for IRIX.
+       * lib/nproc.c: Include <sys/sysmp.h>.
+       (num_processors): On IRIX systems, try sysmp.
+       * m4/nproc.m4 (gl_PREREQ_NPROC): Check for sys/sysmp.h and sysmp.
+
+2009-10-18  Bruno Haible  <bruno@clisp.org>
+
+       Implement nproc for HP-UX.
+       * lib/nproc.c: Include <sys/pstat.h>
+       (num_processors): On HP-UX systems, try pstat_getdynamic.
+       * m4/nproc.m4 (gl_PREREQ_NPROC): Check for sys/pstat.h and
+       pstat_getdynamic.
+
+2009-10-18  Giuseppe Scrivano  <gscrivano@gnu.org>
+           Bruno Haible  <bruno@clisp.org>
+
+       Implement nproc for NetBSD, OpenBSD.
+       * lib/nproc.c: Include <sys/types.h>, <sys/param.h>, <sys/sysctl.h>.
+       (ARRAY_SIZE): New macro.
+       (num_processors): On BSD systems, try sysctl of HW_NCPU.
+       * m4/nproc.m4: New file.
+       * modules/nproc (Files): Add m4/nproc.m4.
+       (configure.ac): Invoke gl_NPROC. Remove AC_LIBOBJ invocation.
+       (Makefile.am): Instead, augment lib_SOURCES.
+
+2009-10-18  Bruno Haible  <bruno@clisp.org>
+
+       Fix recognition of sys/sysctl.h on OpenBSD 4.0.
+       * m4/physmem.m4 (gl_PHYSMEM): Before including sys/sysctl.h, include
+       sys/param.h.
+
+2009-10-16  Eric Blake  <ebb9@byu.net>
+
+       utimensat: new module
+       * modules/utimensat: New file.
+       * lib/utimensat.c (utimensat): Likewise.
+       * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise.
+       * lib/utimens.c (utimensat): Avoid recursion into rpl_utimensat,
+       so we can work around Linux bugs.
+       * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add witnesses.
+       * modules/sys_stat (Makefile.am): Substitute them.
+       * lib/sys_stat.in.h (utimensat): Declare it.
+       * MODULES.html.sh (systems lacking POSIX:2008): Mention module.
+       * doc/posix-functions/utimensat.texi (utimensat): Likewise.
+       * modules/utimensat-tests: New test.
+       * tests/test-utimensat.c: Likewise.
+
+       utimens: let lutimens work on non-symlinks
+       * lib/utimens.c (lutimens): Fall back to utimens rather than
+       failing with ENOSYS, when file is not a symlink.
+       (utimens): Reduce redirection.
+       * tests/test-lutimens.h (test_lutimens): Update test to cover
+       non-symlinks.
+       * tests/test-utimens.h (test_utimens): Update test to cover
+       symlinks.
+       * tests/test-utimens.c (main): Update caller.
+
+       utimens: cache whether utimensat syscall works
+       * lib/utimens.c (utimensat_works_really): New cache variable.
+       (fdutimens, lutimens): Use it to avoid failing syscall.
+
+       test-stat-time, test-utimens: improve portability
+       * tests/test-stat-time.c (nap): Lengthen delay to 20ms, for
+       ext4 on alpha, and for cygwin.
+       * tests/test-utimens-common.h: New file.
+       (nap): Factor delays into single function.
+       * tests/test-lutimens.h (test_lutimens): Use new header.
+       * tests/test-futimens.h (test_futimens): Likewise.
+       * tests/test-utimens.h (test_utimens): Likewise.  Also, force NFS
+       timestamps to occur from same machine, as was done previously for
+       test_utimens.
+       * modules/utimens-tests (Files): Ship new file.
+       * modules/futimens-tests (Files): Likewise.
+       Reported in part by Jim Meyering.
+
+       sys_stat: sort replacement declarations
+       * lib/sys_stat.in.h: Sort declarations.
+       * lib/futimens.c (futimens): Fix typo.
+
+2009-10-15  Jim Meyering  <meyering@redhat.com>
+
+       don't let environment settings perturb build
+       Setting the envvars, LIB_CLOCK_GETTIME, LIB_EACCESS or LIB_NANOSLEEP
+       could cause a configure-time and/or build-time malfunction.
+       Typically, a configure-time function-in-library test is performed
+       via code like this:
+
+         LIB_VAR=
+         AC_SUBST([LIB_VAR])
+         prefix_saved_LIBS=$LIBS
+           AC_SEARCH_LIBS([FUNC], [LIB_NAME],
+                      [test "$ac_cv_search_FUNC" = "none required" ||
+                       LIB_VAR=$ac_cv_search_FUNC])
+         LIBS=$prefix_saved_LIBS
+
+       However, in each of the files affected by this change, the LIB_VAR=
+       initialization was omitted.  Thus, when set in the environment, its
+       value would propagate into generated Makefiles when FUNC is not found
+       in LIB_NAME.
+       * m4/clock_time.m4 (gl_CLOCK_TIME): Initialize AC_SUBST'd var.
+       * m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Likewise.
+       * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
+
 2009-10-14  Eric Blake  <ebb9@byu.net>
 
+       fchdir: avoid infinite recursion in mingw
+       * lib/fchdir.c (rpl_fstat): Call system fstat, rather than
+       recursing.
+
        test-stat-time: port to mingw
        * tests/test-stat-time.c (force_unlink): Return a value.
        (test_ctime) [W32]: Fix compilation error.
 
 2009-06-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
-       * lib/argp-version-etc.c (program_authors): Add const
-       qualifier.
-       * lib/version-etc.c: Fix typos in the comments.
-       * modules/argp-version-etc: Depends on version-etc.
+       * lib/argp-version-etc.c (program_authors): Add const
+       qualifier.
+       * lib/version-etc.c: Fix typos in the comments.
+       * modules/argp-version-etc: Depends on version-etc.
 
 2009-06-25  Sergey Poznyakoff  <gray@gnu.org.ua>