diff options
Diffstat (limited to 'autopull.sh')
-rwxr-xr-x | autopull.sh | 273 |
1 files changed, 0 insertions, 273 deletions
diff --git a/autopull.sh b/autopull.sh deleted file mode 100755 index 249bec9c..00000000 --- a/autopull.sh +++ /dev/null @@ -1,273 +0,0 @@ -#!/bin/sh -# Convenience script for fetching auxiliary files that are omitted from -# the version control repository of this package. - -# Copyright (C) 2003-2023 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 3 of the License, 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, see <https://www.gnu.org/licenses/>. - -# Originally written by Paul Eggert. The canonical version of this -# script is maintained as build-aux/autopull.sh in gnulib. However, -# to be useful to your package, you should place a copy of it under -# version control in the top-level directory of your package. The -# intent is that all customization can be done with a bootstrap.conf -# file also maintained in your version control; gnulib comes with a -# template build-aux/bootstrap.conf to get you started. -# -# Alternatively, you can use an autopull.sh script that is specific -# to your package. - -scriptversion=2022-07-24.15; # UTC - -me="$0" -medir=`dirname "$me"` - -# Read the function library and the configuration. -. "$medir"/bootstrap-funclib.sh - -# Ensure that CDPATH is not set. Otherwise, the output from cd -# would cause trouble in at least one use below. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -usage() { - cat <<EOF -Usage: $me [OPTION]... -Bootstrap this package from the checked-out sources. - -Optional environment variables: - GNULIB_SRCDIR Specifies the local directory where gnulib - sources reside. Use this if you already - have gnulib sources on your machine, and - you want to use these sources. - GNULIB_REFDIR Specifies the local directory where a gnulib - repository (with a .git subdirectory) resides. - Use this if you already have gnulib sources - and history on your machine, and do not want - to waste your bandwidth downloading them again. - GNULIB_URL Cloneable URL of the gnulib repository. - -Options: - --bootstrap-sync if this bootstrap script is not identical to - the version in the local gnulib sources, - update this script, and then restart it with - /bin/sh or the shell \$CONFIG_SHELL - --no-bootstrap-sync do not check whether bootstrap is out of sync - --force attempt to bootstrap even if the sources seem - not to have been checked out - --no-git do not use git to update gnulib. Requires that - \$GNULIB_SRCDIR or the --gnulib-srcdir option - points to a gnulib repository with the correct - revision - --skip-po do not download po files -EOF - bootstrap_print_option_usage_hook - cat <<EOF -If the file bootstrap.conf exists in the same directory as this script, its -contents are read as shell variables to configure the bootstrap. - -For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR -are honored. - -Gnulib sources can be fetched in various ways: - - * If the environment variable GNULIB_SRCDIR is set (either as an - environment variable or via the --gnulib-srcdir option), then sources - are fetched from that local directory. If it is a git repository and - the configuration variable GNULIB_REVISION is set in bootstrap.conf, - then that revision is checked out. - - * Otherwise, if this package is in a git repository with a 'gnulib' - submodule configured, then that submodule is initialized and updated - and sources are fetched from there. If GNULIB_REFDIR is set (either - as an environment variable or via the --gnulib-refdir option) and is - a git repository, then it is used as a reference. - - * Otherwise, if the 'gnulib' directory does not exist, Gnulib sources - are cloned into that directory using git from \$GNULIB_URL, defaulting - to $default_gnulib_url. - If the configuration variable GNULIB_REVISION is set in bootstrap.conf, - then that revision is checked out. - - * Otherwise, the existing Gnulib sources in the 'gnulib' directory are - used. If it is a git repository and the configuration variable - GNULIB_REVISION is set in bootstrap.conf, then that revision is - checked out. - -If you maintain a package and want to pin a particular revision of the -Gnulib sources that has been tested with your package, then there are -two possible approaches: either configure a 'gnulib' submodule with the -appropriate revision, or set GNULIB_REVISION (and if necessary -GNULIB_URL) in bootstrap.conf. - -Running without arguments will suffice in most cases. -EOF -} - -# Parse options. - -# Use git to update gnulib sources -use_git=true - -for option -do - case $option in - --help) - usage - exit;; - --version) - set -e - echo "autopull.sh $scriptversion" - echo "$copyright" - exit 0 - ;; - --skip-po) - SKIP_PO=t;; - --force) - checkout_only_file=;; - --bootstrap-sync) - bootstrap_sync=true;; - --no-bootstrap-sync) - bootstrap_sync=false;; - --no-git) - use_git=false;; - *) - bootstrap_option_hook $option || die "$option: unknown option";; - esac -done - -$use_git || test -n "$GNULIB_SRCDIR" \ - || die "Error: --no-git requires \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option" -test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \ - || die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option is specified, but does not denote a directory" - -if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then - die "Running this script from a non-checked-out distribution is risky." -fi - -check_build_prerequisites $use_git - -if $use_gnulib || $bootstrap_sync; then - prepare_GNULIB_SRCDIR - if $bootstrap_sync; then - upgrade_bootstrap - fi -fi - -# Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6. -# Also find the compatible sha1 utility on the BSDs -if test x"$SKIP_PO" = x; then - find_tool SHA1SUM sha1sum gsha1sum shasum sha1 -fi - -# See if we can use gnulib's git-merge-changelog merge driver. -if $use_git && test -d .git && check_exists git; then - if git config merge.merge-changelog.driver >/dev/null ; then - : - elif check_exists git-merge-changelog; then - echo "$0: initializing git-merge-changelog driver" - git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver' - git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B' - else - echo "$0: consider installing git-merge-changelog from gnulib" - fi -fi - -# ----------------------------- Get translations. ----------------------------- - -download_po_files() { - subdir=$1 - domain=$2 - echo "$me: getting translations into $subdir for $domain..." - cmd=$(printf "$po_download_command_format" "$subdir" "$domain") - eval "$cmd" -} - -# Mirror .po files to $po_dir/.reference and copy only the new -# or modified ones into $po_dir. Also update $po_dir/LINGUAS. -# Note po files that exist locally only are left in $po_dir but will -# not be included in LINGUAS and hence will not be distributed. -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 - - # Mirror *.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" || return - - langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g') - test "$langs" = '*' && langs=x - for po in $langs; 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 "$cksum_file" < "$new_po" > /dev/null 2>&1; then - echo "$me: updated $po_dir/$po.po..." - cp "$new_po" "$po_dir/$po.po" \ - && $SHA1SUM < "$new_po" > "$cksum_file" || return - fi - done -} - -case $SKIP_PO in -'') - if test -d po; then - update_po_files po $package || exit - fi - - if test -d runtime-po; then - update_po_files runtime-po $package-runtime || exit - fi;; -esac - -# ----------------------------------------------------------------------------- - -bootstrap_post_pull_hook \ - || die "bootstrap_post_pull_hook failed" - -# Don't proceed if there are uninitialized submodules. In particular, -# autogen.sh will remove dangling links, which might be links into -# uninitialized submodules. -# But it's OK if the 'gnulib' submodule is uninitialized, as long as -# GNULIB_SRCDIR is set. -if $use_git; then - # Uninitialized submodules are listed with an initial dash. - uninitialized=`git submodule | grep '^-' | awk '{ print $2 }'` - if test -n "$GNULIB_SRCDIR"; then - uninitialized=`echo "$uninitialized" | grep -v '^gnulib$'` - fi - if test -n "$uninitialized"; then - die "Some git submodules are not initialized: "`echo "$uninitialized" | tr '\n' ',' | sed -e 's|,$|.|'`" Either use option '--no-git', or run 'git submodule update --init' and bootstrap again." - fi -fi - -echo "$0: done. Now you can run './autogen.sh'." - -# ---------------------------------------------------------------------------- - -# Local Variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: |