# Bootstrap this package from CVS.
-# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# 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)
+# the Free Software Foundation; either version 3, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
--skip-po Do not download po files.
--update-po[=LANG] Update po file(s) and exit.
--cvs-user=USERNAME Set the CVS username to be used when accessing
- the gnulib repository.
+ the paxutils repository.
If the file bootstrap.conf exists in the current working directory, its
contents are read as shell variables to configure the bootstrap.
if [ ! -d $1 ]; then
echo "$0: getting $1 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 $1 in
+ paxutils)
+ 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
- case $CVS_RSH in
- '') CVS_RSH=ssh; export CVS_RSH;;
+ CVSURL=${CVS_PREFIX}cvs.savannah.gnu.org:/cvsroot/"$1"
+ ;;
+
+ gnulib)
+ CVSURL=:pserver:anonymous@pserver.git.sv.gnu.org:/gnulib.git
+ ;;
+
esac
trap "cleanup $1" 1 2 13 15
- cvs -z3 -q -d ${CVS_PREFIX}cvs.savannah.gnu.org:/cvsroot/"$1" co $1 ||
- cleanup $1
+ cvs -z3 -q -d $CVSURL co $1 || cleanup $1
trap - 1 2 13 15
fi
# 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/'
+tp_url() {
+ echo "http://translationproject.org/domain/$1.html"
+}
extract_package_name='
/^AC_INIT(/{
'')
echo "$0: wget not available; skipping translations";;
?*)
- echo "$0: getting ${po_file:-translations} into $subdir for $domain..." &&
+ url=`tp_url $domain`
+ baseurl=`expr "$url" : '\(.*\)/.*'`
+ echo "$0: getting translations into $subdir for $domain..." &&
case $po_file in
'') (cd $subdir && rm -f dummy `ls | sed -n '/\.gmo$/p; /\.po/p'`);;
esac &&
-
- $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 po_file="$po_file" -v subdir="$subdir" '
+
+ $WGET_COMMAND -O "$subdir/$domain.html" "$url" &&
+
+ sed -n 's|.*href="\(.*\)/\([^/][^/]*\)/'"$domain"'-\([^/"]*\)\.[^."]*\.po".*|\2:\3:\1|p' <"$subdir/$domain.html" |
+ sort -t: -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, $3 }
+ { lang = $1; ver = $2 }
+ END { if (lang) print lang, ver, $3 }
+ ' | awk -v domain="$domain" -v baseurl="$baseurl" -v subdir="$subdir" \
+ -v po_file="$po_file" '
{
lang = $1
if (po_file && po_file != (lang ".po")) next
-
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 "{ $WGET_COMMAND -O %s/%s.po %s/%s/%s/%s-%s.%s.po &&\n", subdir, lang, baseurl, $3, 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;;
+ ' | WGET_COMMAND="$WGET_COMMAND" sh
+ ;;
esac &&
ls "$subdir"/*.po 2>/dev/null |
sed 's|.*/||; s|\.po$||' >"$subdir/LINGUAS" &&
`
fi
+ignore_file_list=
+cleanup_ifl() {
+ test -n "$ignore_file_list" && rm -f $ignore_file_list
+}
+
+trap 'cleanup_ifl' 1 2 3 15
+
+# ignorefile DIR FILE
+# add FILE to the temporary ignorelist in the directory DIR
+ignorefile() {
+ file=$1/.ignore.$$
+ echo "$2" >> $file
+ if `echo $ignore_list | grep -qv $file`; then
+ ignore_file_list="$ignore_file_list
+$file"
+ fi
+}
+
# copy_files srcdir dstdir
copy_files() {
for file in `cat $1/DISTFILES`
fi
echo "$0: Copying file $1/$file to $2/$dst"
cp -p $1/$file $2/$dst
+ ignorefile $2 $dst
done
}
-copy_files ${PAXUTILS_SRCDIR}/m4 m4
-echo "$0: Creating m4/paxutils.m4"
-(echo "# This file is generated automatically. Please, do not edit."
- echo "#"
- echo "AC_DEFUN([${package}_PAXUTILS],["
- cat ${PAXUTILS_SRCDIR}/m4/DISTFILES | sed '/^#/d;s/\(.*\)\.m4/pu_\1/' | tr a-z A-Z
- echo "])") > ./m4/paxutils.m4
-
-if [ -d rmt ]; then
- :
-else
- mkdir rmt
-fi
-
-for dir in doc rmt lib tests
-do
- copy_files ${PAXUTILS_SRCDIR}/$dir $dir
-done
-
-copy_files ${PAXUTILS_SRCDIR}/paxlib lib pax
-
# Get gnulib files.
case ${GNULIB_SRCDIR--} in
gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
<$gnulib_tool || exit
+ensure_dir_exists()
+{
+ d=`dirname $dst`
+ test -d "$d" || mkdir -p -- "$d"
+}
+
symlink_to_gnulib()
{
src=$GNULIB_SRCDIR/$1
test -f "$dst" &&
cmp -s "$src" "$dst" || {
echo "$0: cp -fp $src $dst" &&
+ ensure_dir_exists $dst &&
cp -fp "$src" "$dst"
}
else
esac
echo "$0: ln -fs $dot_dots$src $dst" &&
+ ensure_dir_exists $dst &&
ln -fs "$dot_dots$src" "$dst"
}
fi
done
if test $file = Makefile.am; then
copied=$copied${sep}gnulib.mk; sep=$nl
- remove_intl='/^[^#].*\/intl/s/^/#/'
+ remove_intl='/^[^#].*\/intl/s/^/#/;'"s,/$bt,,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 &&
fi
ig=$dir/$dot_ig
+ if [ -f $dir/.ignore.$$ ]; then
+ tfile=$dir/.ignore.$$
+ else
+ tfile=
+ fi
if test -f $ig; then
echo "$copied" | sort -u - $ig | cmp -s - $ig ||
- echo "$copied" | sort -u - $ig -o $ig
+ echo "$copied" | sort -u - $ig $tfile -o $ig
else
copied="$dot_ig
$copied"
$package.pot
$copied"
fi
- echo "$copied" | sort -u -o $ig
+ echo "$copied" | sort -u - $tfile -o $ig
fi || exit
fi
done
rm -fr $bt $bt2 || exit
+# Import from paxutils
+copy_files ${PAXUTILS_SRCDIR}/m4 m4
+echo "$0: Creating m4/paxutils.m4"
+(echo "# This file is generated automatically. Please, do not edit."
+ echo "#"
+ echo "AC_DEFUN([${package}_PAXUTILS],["
+ cat ${PAXUTILS_SRCDIR}/m4/DISTFILES | sed '/^#/d;s/\(.*\)\.m4/pu_\1/' | tr a-z A-Z
+ echo "])") > ./m4/paxutils.m4
+ignorefile m4 paxutils.m4
+
+if [ -d rmt ]; then
+ :
+else
+ mkdir rmt
+fi
+
+for dir in doc rmt lib tests
+do
+ copy_files ${PAXUTILS_SRCDIR}/$dir $dir
+done
+
+copy_files ${PAXUTILS_SRCDIR}/paxlib lib pax
# Reconfigure, getting other files.
# Copy identical files from po to runtime-po.
(cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
fi
-
+cleanup_ifl
echo "$0: done. Now you can run './configure'."