]> Dogcows Code - chaz/tar/commitdiff
* bootstrap: Use rsync to get translations.
authorSergey Poznyakoff <gray@gnu.org.ua>
Thu, 6 Mar 2008 08:17:33 +0000 (08:17 +0000)
committerSergey Poznyakoff <gray@gnu.org.ua>
Thu, 6 Mar 2008 08:17:33 +0000 (08:17 +0000)
* doc/tar.texi: Minor change.
* lib/.cvsignore: Update
* po/.cvsignore: Update
* src/system.c: Remove include setenv.h.
* tests/atlocal.in (STAR_DATA_URL): Update.
* tests/star/README: Update URL.

ChangeLog
bootstrap
doc/tar.texi
lib/.cvsignore
src/system.c
tests/atlocal.in
tests/star/README

index c2eec4d330ac71e1dd7f6d6db5018be47ceaaaf6..83a613f8aa62fbbf040bb6bcf403a69ead22f24f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-03-06  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       * bootstrap: Use rsync to get translations.
+       * doc/tar.texi: Minor change.
+       * lib/.cvsignore: Update
+       * po/.cvsignore: Update
+       * src/system.c: Remove include setenv.h.
+       * tests/atlocal.in (STAR_DATA_URL): Update.
+       * tests/star/README: Update URL. 
+
 2008-02-09  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        * doc/tar.texi: Fix a typo. Reported by Denis Excoffier.
 2008-02-09  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        * doc/tar.texi: Fix a typo. Reported by Denis Excoffier.
index a318f68f2c7bd73219faea1a6980f46e40d4a641..a967cc74f0e6123a01091aed5423d1108264931a 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -49,7 +49,7 @@ Options:
  --force                  Attempt to bootstrap even if the sources seem
                           not to have been checked out.
  --skip-po                Do not download po files.
  --force                  Attempt to bootstrap even if the sources seem
                           not to have been checked out.
  --skip-po                Do not download po files.
- --update-po[=LANG]       Update po file(s) and exit.
+ --update-po              Update po files and exit.
  --cvs-user=USERNAME      Set the CVS username to be used when accessing
                           the paxutils repository.
 
  --cvs-user=USERNAME      Set the CVS username to be used when accessing
                           the paxutils repository.
 
@@ -116,11 +116,13 @@ gnulib_modules=
 # Any gnulib files needed that are not in modules.
 gnulib_files=
 
 # 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() {
-       echo "http://translationproject.org/domain/$1.html"
-}
+# The command to download all .po files for a specified domain into
+# a specified directory.  Fill in the first %s is the domain name, and
+# the second with the destination directory.  Use rsync's -L and -r
+# options because the latest/%s directory and the .po files within are
+# all symlinks.
+po_download_command_format=\
+"rsync -Lrtvz 'translationproject.org::tp/latest/%s/' '%s'"
 
 extract_package_name='
   /^AC_INIT(/{
 
 extract_package_name='
   /^AC_INIT(/{
@@ -223,78 +225,60 @@ echo "$0: Bootstrapping CVS $package..."
 
 # Get translations.
 
 
 # Get translations.
 
-get_translations() {
+download_po_files() {
   subdir=$1
   domain=$2
   subdir=$1
   domain=$2
-  po_file=$3
-
-  case $WGET_COMMAND in
-  '')
-    echo "$0: wget not available; skipping translations";;
-  ?*)
-    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" "$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
-       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 
-    ;;
-  esac &&
-  ls "$subdir"/*.po 2>/dev/null |
-    sed 's|.*/||; s|\.po$||' >"$subdir/LINGUAS" &&
-  rm -f "$subdir/$domain.html"
+  echo "$0: getting translations into $subdir for $domain..."
+  cmd=`printf "$po_download_command_format" "$domain" "$subdir"`
+  eval "$cmd"
 }
 
 }
 
-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
+# Download .po files to $po_dir/.reference and copy only the new
+# or modified ones into $po_dir.  Also update $po_dir/LINGUAS.
+update_po_files() {
+  # Directory containing primary .po files.
+  # Overwrite them only when we're sure a .po file is new.
+  po_dir=$1
+  domain=$2
+
+  # Download *.po files into this dir.
+  # Usually contains *.s1 checksum files.
+  ref_po_dir="$po_dir/.reference"
+
+  test -d $ref_po_dir || mkdir $ref_po_dir || return
+  download_po_files $ref_po_dir $domain \
+    && ls "$ref_po_dir"/*.po 2>/dev/null |
+      sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS"
+
+  langs=`cd $ref_po_dir && echo *.po|sed 's/\.po//g'`
+  test "$langs" = '*' && langs=x
+  for po in `cd $ref_po_dir && echo *.po|sed 's/\.po//g'`; do
+    case $po in x) continue;; esac
+    new_po="$ref_po_dir/$po.po"
+    cksum_file="$ref_po_dir/$po.s1"
+    if ! test -f "$cksum_file" ||
+       ! test -f "$po_dir/$po.po" ||
+       ! sha1sum -c --status "$cksum_file" < "$new_po" > /dev/null; then
+      echo "updated $po_dir/$po.po..."
+      cp "$new_po" "$po_dir/$po.po" && sha1sum < "$new_po" > "$cksum_file"
+    fi
+  done
+}
 
 case $DOWNLOAD_PO in
 'skip')
   ;;
 '')
 
 case $DOWNLOAD_PO in
 'skip')
   ;;
 '')
-  get_translations po $package || exit
+  if test -d po; then
+    update_po_files po $package || exit
+  fi
   ;;
 'only')
   ;;
 'only')
-  get_translations po $package
-  exit
-  ;;
-*.po)
-  get_translations po $package "$DOWNLOAD_PO"
+  if test -d po; then
+    update_po_files po $package || exit
+  fi
   exit
   ;;
   exit
   ;;
-*)
-  get_translations po $package "${DOWNLOAD_PO}.po"
-  exit
 esac
 
 # Get paxutils files.
 esac
 
 # Get paxutils files.
index 4e382151fbb3a5c3a48d150a6768cb9c59748fad..29fe5aab785dd7f4e152ac13b2061f24e04b91c0 100644 (file)
@@ -1765,6 +1765,7 @@ use @w{@kbd{tar --list --verbose}} to list them correctly.
 
 @node going further
 @section Going Further Ahead in this Manual
 
 @node going further
 @section Going Further Ahead in this Manual
+@UNREVISED
 
 @FIXME{need to write up a node here about the things that are going to
 be in the rest of the manual.}
 
 @FIXME{need to write up a node here about the things that are going to
 be in the rest of the manual.}
index 6f13217c98104e2bfe12d908e8f5c81590ce4fd2..0290a6e677fad753289b807eededeff6666e7ebc 100644 (file)
@@ -87,6 +87,7 @@ getopt.h
 getopt.in.h
 getopt1.c
 getopt_int.h
 getopt.in.h
 getopt1.c
 getopt_int.h
+getpagesize.c
 getpagesize.h
 gettext.h
 gettime.c
 getpagesize.h
 gettext.h
 gettime.c
@@ -196,6 +197,7 @@ streq.h
 strerror.c
 string.h
 string.in.h
 strerror.c
 string.h
 string.in.h
+strings.in.h
 stripslash.c
 strncasecmp.c
 strndup.c
 stripslash.c
 strncasecmp.c
 strndup.c
index fb5a8fa5a147e2040cfd99535ab5d5d6bf5eec30..e57e6dafb6398e6b65d3a5cfb5e4b11fa5445112 100644 (file)
@@ -17,7 +17,6 @@
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 #include <system.h>
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 #include <system.h>
-#include <setenv.h>
 
 #include "common.h"
 #include <rmt.h>
 
 #include "common.h"
 #include <rmt.h>
index f0950807acbed72dab761918ad17451f2e0514da..380cac01aed4882869207bd043635e6f3917cecd 100644 (file)
@@ -13,7 +13,7 @@ if test -z "$TEST_DATA_DIR"; then
   TEST_DATA_DIR=$abs_builddir
 fi
 
   TEST_DATA_DIR=$abs_builddir
 fi
 
-STAR_DATA_URL=http://download.berlios.de/pub/star/testscripts
+STAR_DATA_URL=ftp://ftp.berlios.de/pub/star/testscripts
 if test -z "$STAR_TESTSCRIPTS"; then
   STAR_TESTSCRIPTS=$TEST_DATA_DIR
 fi  
 if test -z "$STAR_TESTSCRIPTS"; then
   STAR_TESTSCRIPTS=$TEST_DATA_DIR
 fi  
index e4be22f8ea0a42e8a4ac917c55827a96024ae3e8..e247ff4fba4cde651de2defd04b96180b7294159 100644 (file)
@@ -1,6 +1,6 @@
 This directory contains scripts for testing GNU tar using
 star "test archives". The archives themselves can be obtained
 This directory contains scripts for testing GNU tar using
 star "test archives". The archives themselves can be obtained
-from http://download.berlios.de/pub/star/testscripts.
+from ftp://ftp.berlios.de/pub/star/testscripts.
 
 These tests are disabled by default. There are two ways to run
 them.  The simplest is by `make check-full' command.  It requires wget
 
 These tests are disabled by default. There are two ways to run
 them.  The simplest is by `make check-full' command.  It requires wget
This page took 0.045913 seconds and 4 git commands to generate.