]> Dogcows Code - chaz/tar/blobdiff - bootstrap
Add fseeko and snprintf.
[chaz/tar] / bootstrap
index 0ea005f8a593585722c8145dd777dbbfe8ab8494..a318f68f2c7bd73219faea1a6980f46e40d4a641 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -2,11 +2,11 @@
 
 # Bootstrap this package from CVS.
 
 
 # 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
 
 # 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,
 # any later version.
 
 # This program is distributed in the hope that it will be useful,
@@ -51,7 +51,7 @@ Options:
  --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
  --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 the file bootstrap.conf exists in the current working directory, its
 contents are read as shell variables to configure the bootstrap.
@@ -69,24 +69,34 @@ checkout() {
   if [ ! -d $1 ]; then
     echo "$0: getting $1 files..."
 
   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
 
     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
 
     trap - 1 2 13 15
   fi
@@ -108,8 +118,9 @@ gnulib_files=
 
 # Translation Project URL, for the registry of all projects
 # and for the translation-team master directory.
 
 # 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(/{
 
 extract_package_name='
   /^AC_INIT(/{
@@ -221,33 +232,35 @@ get_translations() {
   '')
     echo "$0: wget not available; skipping translations";;
   ?*)
   '')
     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 &&
     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
       {
        lang = $1
         if (po_file && po_file != (lang ".po")) next
-       
        ver = $2
        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 ":" }
        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" &&
   esac &&
   ls "$subdir"/*.po 2>/dev/null |
     sed 's|.*/||; s|\.po$||' >"$subdir/LINGUAS" &&
@@ -298,6 +311,24 @@ if [ -r $PAXUTILS_SRCDIR/gnulib.modules ]; then
   `
 fi
 
   `
 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`
 # copy_files srcdir dstdir
 copy_files() {
   for file in `cat $1/DISTFILES`
@@ -314,30 +345,10 @@ copy_files() {
     fi
     echo "$0: Copying file $1/$file to $2/$dst"
     cp -p $1/$file $2/$dst
     fi
     echo "$0: Copying file $1/$file to $2/$dst"
     cp -p $1/$file $2/$dst
+    ignorefile $2 $dst
   done
 }
 
   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
 # Get gnulib files.
 
 case ${GNULIB_SRCDIR--} in
@@ -349,6 +360,12 @@ esac
 gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
 <$gnulib_tool || exit
 
 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
 symlink_to_gnulib()
 {
   src=$GNULIB_SRCDIR/$1
@@ -365,6 +382,7 @@ symlink_to_gnulib()
       test -f "$dst" &&
       cmp -s "$src" "$dst" || {
        echo "$0: cp -fp $src $dst" &&
       test -f "$dst" &&
       cmp -s "$src" "$dst" || {
        echo "$0: cp -fp $src $dst" &&
+       ensure_dir_exists $dst &&
        cp -fp "$src" "$dst"
       }
     else
        cp -fp "$src" "$dst"
       }
     else
@@ -387,6 +405,7 @@ symlink_to_gnulib()
        esac
 
        echo "$0: ln -fs $dot_dots$src $dst" &&
        esac
 
        echo "$0: ln -fs $dot_dots$src $dst" &&
+       ensure_dir_exists $dst &&
        ln -fs "$dot_dots$src" "$dst"
       }
     fi
        ln -fs "$dot_dots$src" "$dst"
       }
     fi
@@ -458,7 +477,7 @@ slurp() {
       done
       if test $file = Makefile.am; then
         copied=$copied${sep}gnulib.mk; sep=$nl
       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 &&
         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 &&
@@ -497,9 +516,14 @@ $copied"
       fi
 
       ig=$dir/$dot_ig
       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 ||
       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"         
       else
           copied="$dot_ig
 $copied"         
@@ -515,7 +539,7 @@ stamp-po
 $package.pot
 $copied"
           fi  
 $package.pot
 $copied"
           fi  
-          echo "$copied" | sort -u -o $ig
+          echo "$copied" | sort -u - $tfile -o $ig
       fi || exit
     fi
   done
       fi || exit
     fi
   done
@@ -564,6 +588,28 @@ slurp $bt2 $bt || exit
 
 rm -fr $bt $bt2 || exit
 
 
 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.
 
 
 # Reconfigure, getting other files.
 
@@ -619,5 +665,5 @@ if test -d runtime-po; then
   # Copy identical files from po to runtime-po.
   (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
 fi
   # 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'."
 echo "$0: done.  Now you can run './configure'."
This page took 0.027106 seconds and 4 git commands to generate.