summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2007-03-15 22:58:36 +0000
committerPaul Eggert <eggert@cs.ucla.edu>2007-03-15 22:58:36 +0000
commiteee009073c7e98c56ad5d8b8f9a7e583e7460012 (patch)
tree1b4d34d075f88bc7378b49b86766241879e66157
parent02489b329f4a273a8bc43c11f37e277196d64dd8 (diff)
downloadgnulib-eee009073c7e98c56ad5d8b8f9a7e583e7460012.tar.gz
* lib/quotearg.c: Include <wctype.h> early, before the definition of
the iswprint macro. Needed on Solaris 2.5.1. 2007-03-12 Bruno Haible <bruno@clisp.org> * tests/test-printf-frexp.c (main): Declare x as volatile. 2007-03-12 Simon Josefsson <simon@josefsson.org> * doc/gnulib.texi (Build robot for gnulib): New section. 2007-03-12 Jim Meyering <jim@meyering.net> * build-aux/bootstrap: New file. * build-aux/bootstrap.conf: New file, from coreutils. 2007-03-11 Bruno Haible <bruno@clisp.org> * m4/cycle-check.m4 (gl_CYCLE_CHECK): Require AC_C_INLINE. 2007-03-12 Simon Josefsson <simon@josefsson.org> * lib/des.h, lib/des.c, lib/gc-gnulib.c: Use gl_ namespace, to avoid collisions with 'des_setkey'. Reported by Bruno Haible <bruno@clisp.org>. Also change 'tripledes_' to '3des_'. 2007-03-11 Bruno Haible <bruno@clisp.org> * m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): If the test program fails to compile, set LOCALE_TR_UTF8 to 'none' instead of empty. 2007-03-11 Bruno Haible <bruno@clisp.org> * lib/stdint_.h (INT64_MIN, INTMAX_MIN): Avoid using the ~INT..._MAX formula. Needed for SunPRO C 5.0.
-rw-r--r--ChangeLog38
-rwxr-xr-xbuild-aux/bootstrap539
-rw-r--r--build-aux/bootstrap.conf61
-rw-r--r--doc/gnulib.texi62
-rw-r--r--lib/des.c44
-rw-r--r--lib/des.h43
-rw-r--r--lib/gc-gnulib.c8
-rw-r--r--lib/quotearg.c3
-rw-r--r--lib/stdint_.h7
-rw-r--r--m4/cycle-check.m45
-rw-r--r--m4/locale-tr.m44
-rw-r--r--tests/test-printf-frexp.c7
12 files changed, 763 insertions, 58 deletions
diff --git a/ChangeLog b/ChangeLog
index f5626f4b4f..b9180f29f7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,41 @@
+2007-03-12 Bruno Haible <bruno@clisp.org>
+
+ * lib/quotearg.c: Include <wctype.h> early, before the definition of
+ the iswprint macro. Needed on Solaris 2.5.1.
+
+2007-03-12 Bruno Haible <bruno@clisp.org>
+
+ * tests/test-printf-frexp.c (main): Declare x as volatile.
+
+2007-03-12 Simon Josefsson <simon@josefsson.org>
+
+ * doc/gnulib.texi (Build robot for gnulib): New section.
+
+2007-03-12 Jim Meyering <jim@meyering.net>
+
+ * build-aux/bootstrap: New file.
+ * build-aux/bootstrap.conf: New file, from coreutils.
+
+2007-03-11 Bruno Haible <bruno@clisp.org>
+
+ * m4/cycle-check.m4 (gl_CYCLE_CHECK): Require AC_C_INLINE.
+
+2007-03-12 Simon Josefsson <simon@josefsson.org>
+
+ * lib/des.h, lib/des.c, lib/gc-gnulib.c: Use gl_ namespace, to
+ avoid collisions with 'des_setkey'. Reported by Bruno Haible
+ <bruno@clisp.org>. Also change 'tripledes_' to '3des_'.
+
+2007-03-11 Bruno Haible <bruno@clisp.org>
+
+ * m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): If the test program fails to
+ compile, set LOCALE_TR_UTF8 to 'none' instead of empty.
+
+2007-03-11 Bruno Haible <bruno@clisp.org>
+
+ * lib/stdint_.h (INT64_MIN, INTMAX_MIN): Avoid using the ~INT..._MAX
+ formula. Needed for SunPRO C 5.0.
+
2007-03-11 Bruno Haible <bruno@clisp.org>
* modules/long-options (Depends-on): Add getopt.
diff --git a/build-aux/bootstrap b/build-aux/bootstrap
new file mode 100755
index 0000000000..7d214d3bf7
--- /dev/null
+++ b/build-aux/bootstrap
@@ -0,0 +1,539 @@
+#! /bin/sh
+
+# Bootstrap this package from checked-out sources.
+
+# Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+# Written by Paul Eggert.
+
+nl='
+'
+
+# Ensure file names are sorted consistently across platforms.
+# Also, ensure diagnostics are in English, e.g., "wget --help" below.
+LC_ALL=C
+export LC_ALL
+
+# Temporary directory names.
+bt='._bootmp'
+bt_regex=`echo "$bt"| sed 's/\./[.]/g'`
+bt2=${bt}2
+
+usage() {
+ echo >&2 "\
+Usage: $0 [OPTION]...
+Bootstrap this package from the checked-out sources.
+
+Options:
+ --gnulib-srcdir=DIRNAME Specify the local directory where gnulib
+ sources reside. Use this if you already
+ have gnulib sources on your machine, and
+ do not want to waste your bandwidth downloading
+ them again.
+ --copy Copy files instead of creating symbolic links.
+ --force Attempt to bootstrap even if the sources seem
+ not to have been checked out.
+ --skip-po Do not download po files.
+ --cvs-user=USERNAME Set the username to use when checking out
+ sources from the gnulib repository.
+
+If the file .bootstrap.conf exists in the current working directory, its
+contents are read as shell variables to configure the bootstrap.
+
+Running without arguments will suffice in most cases.
+"
+}
+
+# Configuration.
+
+# List of gnulib modules needed.
+gnulib_modules=
+
+# Any gnulib files needed that are not in modules.
+gnulib_files=
+
+# Translation Project URL, for the registry of all projects
+# and for the translation-team master directory.
+TP_URL='http://www.iro.umontreal.ca/translation/registry.cgi?domain='
+TP_PO_URL='http://www.iro.umontreal.ca/translation/teams/PO/'
+
+extract_package_name='
+ /^AC_INIT(/{
+ /.*,.*,.*,/{
+ s///
+ s/[][]//g
+ p
+ q
+ }
+ s/AC_INIT(\[*//
+ s/]*,.*//
+ s/^GNU //
+ y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
+ s/[^A-Za-z0-9_]/-/g
+ p
+ }
+'
+package=`sed -n "$extract_package_name" configure.ac` || exit
+
+build_aux=build-aux
+# Extra files from gnulib, which override files from other sources.
+gnulib_extra_files="
+ $build_aux/install-sh
+ $build_aux/missing
+ $build_aux/mdate-sh
+ $build_aux/texinfo.tex
+ $build_aux/depcomp
+ $build_aux/config.guess
+ $build_aux/config.sub
+ doc/INSTALL
+"
+
+# Other locale categories that need message catalogs.
+EXTRA_LOCALE_CATEGORIES=
+
+# Additional xgettext options to use. Use "\\\newline" to break lines.
+XGETTEXT_OPTIONS='\\\
+ --flag=_:1:pass-c-format\\\
+ --flag=N_:1:pass-c-format\\\
+ --flag=error:3:c-format --flag=error_at_line:5:c-format\\\
+'
+
+# Files we don't want to import.
+excluded_files=
+
+# File that should exist in the top directory of a checked out hierarchy,
+# but not in a distribution tarball.
+checkout_only_file=README-hacking
+
+# Whether to use copies instead of symlinks.
+copy=false
+
+# Override the default configuration, if necessary.
+test -r bootstrap.conf && . ./bootstrap.conf
+
+# Translate configuration into internal form.
+
+# Parse options.
+
+for option
+do
+ case $option in
+ --help)
+ usage
+ exit;;
+ --gnulib-srcdir=*)
+ GNULIB_SRCDIR=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;;
+ --cvs-user=*)
+ CVS_USER=`expr "$option" : '--cvs-user=\(.*\)'`;;
+ --skip-po)
+ SKIP_PO=t;;
+ --force)
+ checkout_only_file=;;
+ --copy)
+ copy=true;;
+ *)
+ echo >&2 "$0: $option: unknown option"
+ exit 1;;
+ esac
+done
+
+if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
+ echo "$0: Bootstrapping from a non-checked-out distribution is risky." >&2
+ exit 1
+fi
+
+# If $STR is not already on a line by itself in $FILE, insert it,
+# sorting the new contents of the file and replacing $FILE with the result.
+insert_sorted_if_absent() {
+ file=$1
+ str=$2
+ echo "$str" | sort -u - $file | cmp -s - $file \
+ || echo "$str" | sort -u - $file -o $file \
+ || exit 1
+}
+
+# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
+grep '^[ ]*AC_CONFIG_AUX_DIR('$build_aux')' configure.ac >/dev/null ||
+ {
+ echo "$0: expected line not found in configure.ac. Add the following:" >&2
+ echo " AC_CONFIG_AUX_DIR($build_aux)" >&2.
+ }
+
+# If $build_aux doesn't exist, create it now, otherwise some bits
+# below will malfunction. If creating it, also mark it as ignored.
+if test ! -d $build_aux; then
+ mkdir $build_aux
+ for ig in .cvsignore .gitignore; do
+ test -f $ig && insert_sorted_if_absent $ig $build_aux
+ done
+fi
+
+echo "$0: Bootstrapping from checked-out $package sources..."
+
+cleanup_gnulib() {
+ status=$?
+ rm -fr gnulib
+ exit $status
+}
+
+# Get gnulib files.
+
+case ${GNULIB_SRCDIR--} in
+-)
+ if [ ! -d gnulib ]; then
+ echo "$0: getting gnulib files..."
+
+ case ${CVS_AUTH-pserver} in
+ pserver)
+ CVS_PREFIX=':pserver:anonymous@';;
+ ssh)
+ CVS_PREFIX="$CVS_USER${CVS_USER+@}";;
+ *)
+ echo "$0: $CVS_AUTH: Unknown CVS access method" >&2
+ exit 1;;
+ esac
+
+ case $CVS_RSH in
+ '') CVS_RSH=ssh; export CVS_RSH;;
+ esac
+
+ trap cleanup_gnulib 1 2 13 15
+
+ cvs -z3 -q -d ${CVS_PREFIX}cvs.savannah.gnu.org:/cvsroot/gnulib co gnulib ||
+ cleanup_gnulib
+
+ trap - 1 2 13 15
+ fi
+ GNULIB_SRCDIR=gnulib
+esac
+
+gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
+<$gnulib_tool || exit
+
+# Get translations.
+
+get_translations() {
+ subdir=$1
+ domain=$2
+
+ case $WGET_COMMAND in
+ '')
+ echo "$0: wget not available; skipping translations";;
+ ?*)
+ echo "$0: getting translations into $subdir for $domain..." &&
+
+ (cd $subdir && rm -f dummy `ls | sed -n '/\.gmo$/p; /\.po/p'`) &&
+ $WGET_COMMAND -O "$subdir/$domain.html" "$TP_URL$domain" &&
+
+ sed -n 's|.*"http://[^"]*/translation/teams/PO/\([^/"]*\)/'"$domain"'-\([^/"]*\)\.[^."]*\.po".*|\1.\2|p' <"$subdir/$domain.html" |
+ sort -k 1,1 -k 2,2n -k2,2 -k3,3n -k3,3 -k4,4n -k4,4 -k5,5n -k5.5 |
+ awk -F. '
+ { if (lang && $1 != lang) print lang, ver }
+ { lang = $1; ver = substr($0, index($0, ".") + 1) }
+ END { if (lang) print lang, ver }
+ ' | awk -v domain="$domain" -v subdir="$subdir" '
+ {
+ lang = $1
+ ver = $2
+ urlfmt = ""
+ printf "{ $WGET_COMMAND -O %s/%s.po '\'"$TP_PO_URL"'/%s/%s-%s.%s.po'\'' &&\n", subdir, lang, lang, domain, ver, lang
+ printf " msgfmt -c -o /dev/null %s/%s.po || {\n", subdir, lang
+ printf " echo >&2 '\'"$0"': omitting translation for %s'\''\n", lang
+ printf " rm -f %s/%s.po; }; } &&\n", subdir, lang
+ }
+ END { print ":" }
+ ' | WGET_COMMAND="$WGET_COMMAND" sh;;
+ esac &&
+ ls "$subdir"/*.po 2>/dev/null |
+ sed 's|.*/||; s|\.po$||' >"$subdir/LINGUAS" &&
+ rm -f "$subdir/$domain.html"
+}
+
+case $SKIP_PO in
+'')
+ case `wget --help` in
+ *'--no-cache'*)
+ WGET_COMMAND='wget -nv --no-cache';;
+ *'--cache=on/off'*)
+ WGET_COMMAND='wget -nv --cache=off';;
+ *'--non-verbose'*)
+ WGET_COMMAND='wget -nv';;
+ *)
+ WGET_COMMAND='';;
+ esac
+
+ if test -d po; then
+ get_translations po $package || exit
+ fi
+
+ if test -d runtime-po; then
+ get_translations runtime-po $package-runtime || exit
+ fi;;
+esac
+
+symlink_to_gnulib()
+{
+ src=$GNULIB_SRCDIR/$1
+ dst=${2-$1}
+
+ test -f "$src" && {
+ if $copy; then
+ {
+ test ! -h "$dst" || {
+ echo "$0: rm -f $dst" &&
+ rm -f "$dst"
+ }
+ } &&
+ test -f "$dst" &&
+ cmp -s "$src" "$dst" || {
+ echo "$0: cp -fp $src $dst" &&
+ cp -fp "$src" "$dst"
+ }
+ else
+ test -h "$dst" &&
+ src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 &&
+ dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 &&
+ test "$src_i" = "$dst_i" || {
+ dot_dots=
+ case $src in
+ /*) ;;
+ *)
+ case /$dst/ in
+ *//* | */../* | */./* | /*/*/*/*/*/)
+ echo >&2 "$0: invalid symlink calculation: $src -> $dst"
+ exit 1;;
+ /*/*/*/*/) dot_dots=../../../;;
+ /*/*/*/) dot_dots=../../;;
+ /*/*/) dot_dots=../;;
+ esac;;
+ esac
+
+ echo "$0: ln -fs $dot_dots$src $dst" &&
+ ln -fs "$dot_dots$src" "$dst"
+ }
+ fi
+ }
+}
+
+cp_mark_as_generated()
+{
+ cp_src=$1
+ cp_dst=$2
+
+ if cmp -s "$cp_src" "$GNULIB_SRCDIR/$cp_dst"; then
+ symlink_to_gnulib "$cp_dst"
+ else
+ case $cp_dst in
+ *.[ch]) c1='/* '; c2=' */';;
+ *.texi) c1='@c '; c2= ;;
+ *.m4|*/Make*|Make*) c1='# ' ; c2= ;;
+ *) c1= ; c2= ;;
+ esac
+
+ if test -z "$c1"; then
+ cmp -s "$cp_src" "$cp_dst" || {
+ echo "$0: cp -f $cp_src $cp_dst" &&
+ rm -f "$cp_dst" &&
+ sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst"
+ }
+ else
+ # Copy the file first to get proper permissions if it
+ # doesn't already exist. Then overwrite the copy.
+ cp "$cp_src" "$cp_dst-t" &&
+ (
+ echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2" &&
+ echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" &&
+ sed "s!$bt_regex/!!g" "$cp_src"
+ ) > $cp_dst-t &&
+ if cmp -s "$cp_dst-t" "$cp_dst"; then
+ rm -f "$cp_dst-t"
+ else
+ echo "$0: cp $cp_src $cp_dst # with edits" &&
+ mv -f "$cp_dst-t" "$cp_dst"
+ fi
+ fi
+ fi
+}
+
+version_controlled_file() {
+ dir=$1
+ file=$2
+ found=no
+ if test -d CVS; then
+ grep -F "/$file/" $dir/CVS/Entries 2>/dev/null |
+ grep '^/[^/]*/[0-9]' > /dev/null && found=yes
+ elif test -d .git; then
+ git-rm -n "$dir/$file" > /dev/null 2>&1 && found=yes
+ else
+ echo "$0: no version control for $dir/$file?" >&2
+ fi
+ test $found = yes
+}
+
+slurp() {
+ for dir in . `(cd $1 && find * -type d -print)`; do
+ copied=
+ sep=
+ for file in `ls $1/$dir`; do
+ test -d $1/$dir/$file && continue
+ for excluded_file in $excluded_files; do
+ test "$dir/$file" = "$excluded_file" && continue 2
+ done
+ if test $file = Makefile.am; then
+ copied=$copied${sep}gnulib.mk; sep=$nl
+ remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g"
+ sed "$remove_intl" $1/$dir/$file | cmp -s - $dir/gnulib.mk || {
+ echo "$0: Copying $1/$dir/$file to $dir/gnulib.mk ..." &&
+ rm -f $dir/gnulib.mk &&
+ sed "$remove_intl" $1/$dir/$file >$dir/gnulib.mk
+ }
+ elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
+ version_controlled_file $dir $file; then
+ echo "$0: $dir/$file overrides $1/$dir/$file"
+ else
+ copied=$copied$sep$file; sep=$nl
+ if test $file = gettext.m4; then
+ echo "$0: patching m4/gettext.m4 to remove need for intl/* ..."
+ rm -f $dir/$file
+ sed '
+ /^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\
+ AC_DEFUN([AM_INTL_SUBDIR], [
+ /^AC_DEFUN(\[gt_INTL_SUBDIR_CORE],/,/^]/c\
+ AC_DEFUN([gt_INTL_SUBDIR_CORE], [])
+ $a\
+ AC_DEFUN([gl_LOCK_EARLY], [])
+ ' $1/$dir/$file >$dir/$file
+ else
+ cp_mark_as_generated $1/$dir/$file $dir/$file
+ fi
+ fi || exit
+ done
+
+ for dot_ig in .cvsignore .gitignore; do
+ ig=$dir/$dot_ig
+ if test -n "$copied" && test -f $ig; then
+ insert_sorted_if_absent $ig "$copied"
+ # If an ignored file name ends with _.h, then also add
+ # the name with just ".h". Many gnulib headers are generated,
+ # e.g., stdint_.h -> stdint.h, dirent_.h ->..., etc.
+ f=`echo "$copied"|sed 's/_\.h$/.h/'`
+ insert_sorted_if_absent $ig "$f"
+ fi
+ done
+ done
+}
+
+
+# Create boot temporary directories to import from gnulib and gettext.
+rm -fr $bt $bt2 &&
+mkdir $bt $bt2 || exit
+
+# Import from gnulib.
+
+gnulib_tool_options="\
+ --import\
+ --no-changelog\
+ --aux-dir $bt/$build_aux\
+ --doc-base $bt/doc\
+ --lib lib$package\
+ --m4-base $bt/m4/\
+ --source-base $bt/lib/\
+ --tests-base $bt/tests\
+ --local-dir gl\
+"
+echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
+$gnulib_tool $gnulib_tool_options --import $gnulib_modules &&
+slurp $bt || exit
+
+for file in $gnulib_files; do
+ symlink_to_gnulib $file || exit
+done
+
+
+# Import from gettext.
+
+echo "$0: (cd $bt2; autopoint) ..."
+cp configure.ac $bt2 &&
+(cd $bt2 && autopoint && rm configure.ac) &&
+slurp $bt2 $bt || exit
+
+rm -fr $bt $bt2 || exit
+
+
+# Reconfigure, getting other files.
+
+for command in \
+ libtool \
+ 'aclocal --force -I m4' \
+ 'autoconf --force' \
+ 'autoheader --force' \
+ 'automake --add-missing --copy --force-missing';
+do
+ if test "$command" = libtool; then
+ grep '^[ ]*AM_PROG_LIBTOOL\>' configure.ac >/dev/null ||
+ continue
+ command='libtoolize -c -f'
+ fi
+ echo "$0: $command ..."
+ $command || exit
+done
+
+
+# Get some extra files from gnulib, overriding existing files.
+
+for file in $gnulib_extra_files; do
+ case $file in
+ */INSTALL) dst=INSTALL;;
+ *) dst=$file;;
+ esac
+ symlink_to_gnulib $file $dst || exit
+done
+
+
+# Create gettext configuration.
+echo "$0: Creating po/Makevars from po/Makevars.template ..."
+rm -f po/Makevars
+sed '
+ /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
+ /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
+ /^XGETTEXT_OPTIONS *=/{
+ s/$/ \\/
+ a\
+ '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
+ }
+' po/Makevars.template >po/Makevars
+
+if test -d runtime-po; then
+ # Similarly for runtime-po/Makevars, but not quite the same.
+ rm -f runtime-po/Makevars
+ sed '
+ /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
+ /^subdir *=.*/s/=.*/= runtime-po/
+ /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
+ /^XGETTEXT_OPTIONS *=/{
+ s/$/ \\/
+ a\
+ '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
+ }
+ ' <po/Makevars.template >runtime-po/Makevars
+
+ # Copy identical files from po to runtime-po.
+ (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
+fi
+
+echo "$0: done. Now you can run './configure'."
diff --git a/build-aux/bootstrap.conf b/build-aux/bootstrap.conf
new file mode 100644
index 0000000000..60baa590c8
--- /dev/null
+++ b/build-aux/bootstrap.conf
@@ -0,0 +1,61 @@
+# Bootstrap configuration.
+
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+
+# gnulib modules used by this package.
+gnulib_modules="
+"
+
+# Additional xgettext options to use. Use "\\\newline" to break lines.
+XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\
+ --from-code=UTF-8\\\
+ --flag=asprintf:2:c-format --flag=vasprintf:2:c-format\\\
+ --flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\\\
+ --flag=wrapf:1:c-format\\\
+'
+
+# If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]"
+# appears in configure.ac, exclude some unnecessary files.
+# Without grep's -E option (not portable enough, pre-configure),
+# the following test is ugly. Also, this depends on the existence
+# of configure.ac, not the obsolescent-named configure.in. But if
+# you're using this infrastructure, you should care about such things.
+
+gettext_external=0
+grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null &&
+ gettext_external=1
+grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null &&
+ gettext_external=1
+
+if test $gettext_external = 1; then
+ # Gettext supplies these files, but we don't need them since
+ # we don't have an intl subdirectory.
+ excluded_files='
+ m4/glibc2.m4
+ m4/intdiv0.m4
+ m4/lcmessage.m4
+ m4/lock.m4
+ m4/printf-posix.m4
+ m4/size_max.m4
+ m4/uintmax_t.m4
+ m4/ulonglong.m4
+ m4/visibility.m4
+ m4/xsize.m4
+ '
+fi
diff --git a/doc/gnulib.texi b/doc/gnulib.texi
index 032fa43264..683bc94774 100644
--- a/doc/gnulib.texi
+++ b/doc/gnulib.texi
@@ -1,5 +1,5 @@
\input texinfo @c -*-texinfo-*-
-@comment $Id: gnulib.texi,v 1.32 2007-03-01 02:14:04 haible Exp $
+@comment $Id: gnulib.texi,v 1.33 2007-03-15 22:58:36 eggert Exp $
@comment %**start of header
@setfilename gnulib.info
@settitle GNU Gnulib
@@ -7,7 +7,7 @@
@syncodeindex pg cp
@comment %**end of header
-@set UPDATED $Date: 2007-03-01 02:14:04 $
+@set UPDATED $Date: 2007-03-15 22:58:36 $
@copying
This manual is for GNU Gnulib (updated @value{UPDATED}),
@@ -101,6 +101,7 @@ Resources:
* Windows sockets::
* Libtool and Windows::
* License Texinfo sources::
+* Build robot for gnulib::
@end menu
@@ -354,6 +355,63 @@ option to @command{gnulib-tool}.
Of course the license texts themselves should not be changed at all.
+@node Build robot for gnulib
+@section Build robot for gnulib
+
+To simplify testing on a wide set of platforms, gnulib is built on
+many platforms every day and the results are uploaded to:
+
+@url{http://autobuild.josefsson.org/gnulib/}
+
+If you wish to help the gnulib development effort with build logs for
+your favorite platform, you may perform these steps:
+
+@enumerate
+
+@item Create gnulib directory
+
+On a machine with recent automake, autoconf, m4 installed and with a
+gnulib cvs checkout (typically a Linux machine), use
+
+@example
+gnulib-tool --create-megatestdir --with-tests --dir=..."
+@end example
+
+Note: The created directory uses ca. 512 MB on disk.
+
+@item Transfer gnulib directory
+
+Transfer this directory to a build machine (HP-UX, Cygwin, or
+whatever). Often it is easier to transfer one file, and this can be
+achieved by running, inside the directory the following commands:
+
+@example
+./configure
+make dist
+@end example
+
+And then transferring the @file{dummy-0.tar.gz} file.
+
+@item Build modules
+
+On the build machine, run ./autobuild (or "nohup ./autobuild"). It
+creates a directory 'logs/' with a log file for each module.
+
+@item Submit build logs
+
+Submit each log file to Simon's site, either through a
+
+@example
+mail `echo gnulib__at__autobuild.josefsson.org | sed -e s/__at__/@/`
+@end example
+
+or through netcat
+
+@example
+autobuild-submit logs/*
+@end example
+
+@end enumerate
@node Particular Modules
@chapter Particular Modules
diff --git a/lib/des.c b/lib/des.c
index 3b171a7c11..36e86a1006 100644
--- a/lib/des.c
+++ b/lib/des.c
@@ -1,5 +1,5 @@
/* des.c --- DES and Triple-DES encryption/decryption Algorithm
- * Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006
+ * Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007
* Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify
@@ -54,7 +54,7 @@
* unsigned char plaintext[8];
* unsigned char ciphertext[8];
* unsigned char recoverd[8];
- * des_ctx context;
+ * gl_des_ctx context;
*
* // Fill 'key' and 'plaintext' with some data
* ....
@@ -77,20 +77,20 @@
* unsigned char plaintext[8];
* unsigned char ciphertext[8];
* unsigned char recoverd[8];
- * tripledes_ctx context;
+ * gl_3des_ctx context;
*
* // If you would like to use two 64bit keys, fill 'key1' and'key2'
* // then setup the encryption context:
- * tripledes_set2keys(&context, key1, key2);
+ * gl_3des_set2keys(&context, key1, key2);
*
* // To use three 64bit keys with Triple-DES use:
- * tripledes_set3keys(&context, key1, key2, key3);
+ * gl_3des_set3keys(&context, key1, key2, key3);
*
* // Encrypting plaintext with Triple-DES
- * tripledes_ecb_encrypt(&context, plaintext, ciphertext);
+ * gl_3des_ecb_encrypt(&context, plaintext, ciphertext);
*
* // Decrypting ciphertext to recover the plaintext with Triple-DES
- * tripledes_ecb_decrypt(&context, ciphertext, recoverd);
+ * gl_3des_ecb_decrypt(&context, ciphertext, recoverd);
*/
@@ -324,7 +324,7 @@ static const unsigned char weak_keys_chksum[20] = {
};
bool
-des_is_weak_key (const char * key)
+gl_des_is_weak_key (const char * key)
{
char work[8];
int i, left, right, middle, cmp_result;
@@ -424,14 +424,6 @@ des_is_weak_key (const char * key)
data[6] = (right >> 8) &0xff; data[7] = right &0xff;
/*
- * Handy macros for encryption and decryption of data
- */
-#define des_ecb_encrypt(ctx, from, to) des_ecb_crypt(ctx, from, to, 0)
-#define des_ecb_decrypt(ctx, from, to) des_ecb_crypt(ctx, from, to, 1)
-#define tripledes_ecb_encrypt(ctx, from, to) tripledes_ecb_crypt(ctx,from,to,0)
-#define tripledes_ecb_decrypt(ctx, from, to) tripledes_ecb_crypt(ctx,from,to,1)
-
-/*
* des_key_schedule(): Calculate 16 subkeys pairs (even/odd) for
* 16 encryption rounds.
* To calculate subkeys for decryption the caller
@@ -530,7 +522,7 @@ des_key_schedule (const char * _rawkey, uint32_t * subkey)
}
void
-des_setkey (des_ctx *ctx, const char * key)
+gl_des_setkey (gl_des_ctx *ctx, const char * key)
{
int i;
@@ -544,7 +536,7 @@ des_setkey (des_ctx *ctx, const char * key)
}
bool
-des_makekey (des_ctx *ctx, const char * key, size_t keylen)
+gl_des_makekey (gl_des_ctx *ctx, const char * key, size_t keylen)
{
if (keylen != 8)
return false;
@@ -555,7 +547,7 @@ des_makekey (des_ctx *ctx, const char * key, size_t keylen)
}
void
-des_ecb_crypt (des_ctx *ctx, const char * _from, char * _to, int mode)
+gl_des_ecb_crypt (gl_des_ctx *ctx, const char * _from, char * _to, int mode)
{
const unsigned char *from = (const unsigned char *) _from;
unsigned char *to = (unsigned char *) _to;
@@ -579,7 +571,7 @@ des_ecb_crypt (des_ctx *ctx, const char * _from, char * _to, int mode)
}
void
-tripledes_set2keys (tripledes_ctx *ctx, const char * key1, const char * key2)
+gl_3des_set2keys (gl_3des_ctx *ctx, const char * key1, const char * key2)
{
int i;
@@ -603,7 +595,7 @@ tripledes_set2keys (tripledes_ctx *ctx, const char * key1, const char * key2)
}
void
-tripledes_set3keys (tripledes_ctx *ctx, const char * key1,
+gl_3des_set3keys (gl_3des_ctx *ctx, const char * key1,
const char * key2, const char * key3)
{
int i;
@@ -626,9 +618,9 @@ tripledes_set3keys (tripledes_ctx *ctx, const char * key1,
}
void
-tripledes_ecb_crypt (tripledes_ctx *ctx,
- const char * _from,
- char * _to, int mode)
+gl_3des_ecb_crypt (gl_3des_ctx *ctx,
+ const char * _from,
+ char * _to, int mode)
{
const unsigned char *from = (const unsigned char *) _from;
unsigned char *to = (unsigned char *) _to;
@@ -668,12 +660,12 @@ tripledes_ecb_crypt (tripledes_ctx *ctx,
}
bool
-tripledes_makekey (tripledes_ctx *ctx, const char * key, size_t keylen)
+gl_3des_makekey (gl_3des_ctx *ctx, const char * key, size_t keylen)
{
if (keylen != 24)
return false;
- tripledes_set3keys (ctx, key, key + 8, key + 16);
+ gl_3des_set3keys (ctx, key, key + 8, key + 16);
return !(des_is_weak_key (key)
|| des_is_weak_key (key + 8)
diff --git a/lib/des.h b/lib/des.h
index c15960701b..9ada75277d 100644
--- a/lib/des.h
+++ b/lib/des.h
@@ -1,5 +1,5 @@
/* des.h --- DES cipher implementation.
- * Copyright (C) 2005 Free Software Foundation, Inc.
+ * Copyright (C) 2005, 2007 Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
@@ -34,7 +34,7 @@ typedef struct
{
uint32_t encrypt_subkeys[32];
uint32_t decrypt_subkeys[32];
-} des_ctx;
+} gl_des_ctx;
/*
* Encryption/Decryption context of Triple-DES
@@ -43,12 +43,12 @@ typedef struct
{
uint32_t encrypt_subkeys[96];
uint32_t decrypt_subkeys[96];
-} tripledes_ctx;
+} gl_3des_ctx;
/* Check whether the 8 byte key is weak. Does not check the parity
* bits of the key but simple ignore them. */
extern bool
-des_is_weak_key (const char * key);
+gl_des_is_weak_key (const char * key);
/*
* DES
@@ -59,21 +59,21 @@ des_is_weak_key (const char * key);
* Does not check parity bits, but simply ignore them. Does not check
* for weak keys. */
extern void
-des_setkey (des_ctx *ctx, const char * key);
+gl_des_setkey (gl_des_ctx *ctx, const char * key);
/* Fill a DES context CTX with subkeys calculated from 64bit KEY, with
* weak key checking. Does not check parity bits, but simply ignore
* them. */
extern bool
-des_makekey (des_ctx *ctx, const char * key, size_t keylen);
+gl_des_makekey (gl_des_ctx *ctx, const char * key, size_t keylen);
/* Electronic Codebook Mode DES encryption/decryption of data
* according to 'mode'. */
extern void
-des_ecb_crypt (des_ctx *ctx, const char * from, char * to, int mode);
+gl_des_ecb_crypt (gl_des_ctx *ctx, const char * from, char * to, int mode);
-#define des_ecb_encrypt(ctx, from, to) des_ecb_crypt(ctx, from, to, 0)
-#define des_ecb_decrypt(ctx, from, to) des_ecb_crypt(ctx, from, to, 1)
+#define gl_des_ecb_encrypt(ctx, from, to) gl_des_ecb_crypt(ctx, from, to, 0)
+#define gl_des_ecb_decrypt(ctx, from, to) gl_des_ecb_crypt(ctx, from, to, 1)
/* Triple-DES
* ----------
@@ -83,7 +83,9 @@ des_ecb_crypt (des_ctx *ctx, const char * from, char * to, int mode);
* 64bit keys in KEY1 and KEY2. Does not check the parity bits of the
* keys, but simply ignore them. Does not check for weak keys. */
extern void
-tripledes_set2keys (tripledes_ctx *ctx, const char * key1, const char * key2);
+gl_3des_set2keys (gl_3des_ctx *ctx,
+ const char * key1,
+ const char * key2);
/*
* Fill a Triple-DES context CTX with subkeys calculated from three
@@ -91,24 +93,29 @@ tripledes_set2keys (tripledes_ctx *ctx, const char * key1, const char * key2);
* of the keys, but simply ignore them. Does not check for weak
* keys. */
extern void
-tripledes_set3keys (tripledes_ctx *ctx, const char * key1,
- const char * key2, const char * key3);
+gl_3des_set3keys (gl_3des_ctx *ctx,
+ const char * key1,
+ const char * key2,
+ const char * key3);
/* Fill a Triple-DES context CTX with subkeys calculated from three
* concatenated 64bit keys in KEY, with weak key checking. Does not
* check the parity bits of the keys, but simply ignore them. */
extern bool
-tripledes_makekey (tripledes_ctx *ctx, const char * key, size_t keylen);
+gl_3des_makekey (gl_3des_ctx *ctx,
+ const char * key,
+ size_t keylen);
/* Electronic Codebook Mode Triple-DES encryption/decryption of data
* according to 'mode'. Sometimes this mode is named 'EDE' mode
* (Encryption-Decryption-Encryption). */
extern void
-tripledes_ecb_crypt (tripledes_ctx *ctx,
- const char * from,
- char * to, int mode);
+gl_3des_ecb_crypt (gl_3des_ctx *ctx,
+ const char * from,
+ char * to,
+ int mode);
-#define tripledes_ecb_encrypt(ctx, from, to) tripledes_ecb_crypt(ctx,from,to,0)
-#define tripledes_ecb_decrypt(ctx, from, to) tripledes_ecb_crypt(ctx,from,to,1)
+#define gl_3des_ecb_encrypt(ctx, from, to) gl_3des_ecb_crypt(ctx,from,to,0)
+#define gl_3des_ecb_decrypt(ctx, from, to) gl_3des_ecb_crypt(ctx,from,to,1)
#endif /* DES_H */
diff --git a/lib/gc-gnulib.c b/lib/gc-gnulib.c
index f414f433ef..7f8d79066b 100644
--- a/lib/gc-gnulib.c
+++ b/lib/gc-gnulib.c
@@ -187,7 +187,7 @@ typedef struct _gc_cipher_ctx {
arcfour_context arcfourContext;
#endif
#ifdef GNULIB_GC_DES
- des_ctx desContext;
+ gl_des_ctx desContext;
#endif
#ifdef GNULIB_GC_RIJNDAEL
rijndaelKeyInstance aesEncKey;
@@ -305,7 +305,7 @@ gc_cipher_setkey (gc_cipher_handle handle, size_t keylen, const char *key)
case GC_DES:
if (keylen != 8)
return GC_INVALID_CIPHER;
- des_setkey (&ctx->desContext, key);
+ gl_des_setkey (&ctx->desContext, key);
break;
#endif
@@ -443,7 +443,7 @@ gc_cipher_encrypt_inline (gc_cipher_handle handle, size_t len, char *data)
#ifdef GNULIB_GC_DES
case GC_DES:
for (; len >= 8; len -= 8, data += 8)
- des_ecb_encrypt (&ctx->desContext, data, data);
+ gl_des_ecb_encrypt (&ctx->desContext, data, data);
break;
#endif
@@ -515,7 +515,7 @@ gc_cipher_decrypt_inline (gc_cipher_handle handle, size_t len, char *data)
#ifdef GNULIB_GC_DES
case GC_DES:
for (; len >= 8; len -= 8, data += 8)
- des_ecb_decrypt (&ctx->desContext, data, data);
+ gl_des_ecb_decrypt (&ctx->desContext, data, data);
break;
#endif
diff --git a/lib/quotearg.c b/lib/quotearg.c
index c9e89bf288..f7f326ac50 100644
--- a/lib/quotearg.c
+++ b/lib/quotearg.c
@@ -32,6 +32,7 @@
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
+#include <wctype.h>
#include "gettext.h"
#define _(msgid) gettext (msgid)
@@ -54,8 +55,6 @@
# define mbsinit(ps) 1
#endif
-#include <wctype.h>
-
#ifndef SIZE_MAX
# define SIZE_MAX ((size_t) -1)
#endif
diff --git a/lib/stdint_.h b/lib/stdint_.h
index 92d64539a0..4fa52516d7 100644
--- a/lib/stdint_.h
+++ b/lib/stdint_.h
@@ -277,7 +277,9 @@
#undef INT64_MIN
#undef INT64_MAX
#ifdef GL_INT64_T
-# define INT64_MIN (~ INT64_MAX)
+/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
+ evaluates the latter incorrectly in preprocessor expressions. */
+# define INT64_MIN (- INTMAX_C (1) << 63)
# define INT64_MAX INTMAX_C (9223372036854775807)
#endif
@@ -377,10 +379,11 @@
#undef INTMAX_MIN
#undef INTMAX_MAX
-#define INTMAX_MIN (~ INTMAX_MAX)
#ifdef INT64_MAX
+# define INTMAX_MIN INT64_MIN
# define INTMAX_MAX INT64_MAX
#else
+# define INTMAX_MIN INT32_MIN
# define INTMAX_MAX INT32_MAX
#endif
diff --git a/m4/cycle-check.m4 b/m4/cycle-check.m4
index 090f89de76..608f781aa9 100644
--- a/m4/cycle-check.m4
+++ b/m4/cycle-check.m4
@@ -1,10 +1,11 @@
-#serial 4
-dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+#serial 5
+dnl Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_CYCLE_CHECK],
[
+ AC_REQUIRE([AC_C_INLINE])
AC_LIBOBJ([cycle-check])
])
diff --git a/m4/locale-tr.m4 b/m4/locale-tr.m4
index 7f06584fa4..2286c181bb 100644
--- a/m4/locale-tr.m4
+++ b/m4/locale-tr.m4
@@ -1,4 +1,4 @@
-# locale-tr.m4 serial 1
+# locale-tr.m4 serial 2
dnl Copyright (C) 2003, 2005-2007 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -72,6 +72,8 @@ changequote([,])dnl
fi
fi
fi
+ else
+ gt_cv_locale_tr_utf8=none
fi
rm -fr conftest*
])
diff --git a/tests/test-printf-frexp.c b/tests/test-printf-frexp.c
index 9465c2009b..b821e4613d 100644
--- a/tests/test-printf-frexp.c
+++ b/tests/test-printf-frexp.c
@@ -40,7 +40,12 @@ int
main ()
{
int i;
- double x;
+ /* The use of 'volatile' guarantees that excess precision bits are dropped
+ when dealing with denormalized numbers. It is necessary on x86 systems
+ where double-floats are not IEEE compliant by default, to avoid that the
+ results become platform and compiler option dependent. 'volatile' is a
+ portable alternative to gcc's -ffloat-store option. */
+ volatile double x;
for (i = 1, x = 1.0; i <= DBL_MAX_EXP; i++, x *= 2.0)
{