summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/.gitignore2
-rw-r--r--scripts/Makefile.am10
-rw-r--r--scripts/gensync.sh.in169
-rw-r--r--scripts/makepkg.sh.in85
-rw-r--r--scripts/repo-add.sh.in12
-rw-r--r--scripts/updatesync.sh.in172
6 files changed, 59 insertions, 391 deletions
diff --git a/scripts/.gitignore b/scripts/.gitignore
index 53164a41..f2f19fd8 100644
--- a/scripts/.gitignore
+++ b/scripts/.gitignore
@@ -1,7 +1,5 @@
-gensync
makepkg
pacman-optimize
rankmirrors
repo-add
repo-remove
-updatesync
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 24b9c12d..3185a476 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -2,22 +2,18 @@
AUTOMAKE_OPTIONS = std-options
bin_SCRIPTS = \
- gensync \
makepkg \
pacman-optimize \
rankmirrors \
repo-add \
- repo-remove \
- updatesync
+ repo-remove
EXTRA_DIST = \
- gensync.sh.in \
makepkg.sh.in \
pacman-optimize.sh.in \
rankmirrors.py.in \
repo-add.sh.in \
- repo-remove.sh.in \
- updatesync.sh.in
+ repo-remove.sh.in
# Files that should be removed, but which Automake does not know.
MOSTLYCLEANFILES = $(bin_SCRIPTS) *.tmp
@@ -48,13 +44,11 @@ $(bin_SCRIPTS): Makefile
chmod a-w $@.tmp
mv $@.tmp $@
-gensync: $(srcdir)/gensync.sh.in
makepkg: $(srcdir)/makepkg.sh.in
pacman-optimize: $(srcdir)/pacman-optimize.sh.in
rankmirrors: $(srcdir)/rankmirrors.py.in
repo-add: $(srcdir)/repo-add.sh.in
repo-remove: $(srcdir)/repo-remove.sh.in
re-pacman: $(srcdir)/re-pacman.sh.in
-updatesync: $(srcdir)/updatesync.sh.in
# vim:set ts=2 sw=2 noet:
diff --git a/scripts/gensync.sh.in b/scripts/gensync.sh.in
deleted file mode 100644
index d5dec275..00000000
--- a/scripts/gensync.sh.in
+++ /dev/null
@@ -1,169 +0,0 @@
-#!/bin/bash
-#
-# gensync
-# @configure_input@
-#
-# Copyright (c) 2002-2007 by Judd Vinet <jvinet@zeroflux.org>
-#
-# 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 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 <http://www.gnu.org/licenses/>.
-#
-
-# gettext initialization
-export TEXTDOMAIN='pacman'
-export TEXTDOMAINDIR='@localedir@'
-
-myver='@PACKAGE_VERSION@'
-
-# functions
-
-usage() {
- printf "gensync (pacman) %s\n\n" "$myver"
- printf "$(gettext "Usage: %s <root> <destfile> [package_directory]")\n\n" "$0"
- printf "$(gettext "\
-NOTE: this script is DEPRECATED. It will be removed in the next major\n\
-release of pacman, so please use repo-add and repo-remove instead.\n\n")"
- printf "$(gettext "\
-gensync will generate a sync database by reading all PKGBUILD files\n\
-from <root>. gensync builds the database in a temporary directory\n\
-and then compresses it to <destfile>.\n\n")"
- printf "$(gettext "\
-gensync will calculate md5sums of packages in the same directory as\n\
-<destfile>, unless an alternate [package_directory] is specified.\n\n")"
- printf "$(gettext "\
-note: The <destfile> name is important. It must be of the form\n\
- {treename}.db.tar.gz where {treename} is the name of the custom\n\
- package repository you configured in /etc/pacman.conf. The\n\
- generated database must reside in the same directory as your\n\
- custom packages (also configured in /etc/pacman.conf)\n\n")"
- echo "$(gettext "Example: gensync /var/abs/local /home/mypkgs/custom.db.tar.gz")"
-}
-
-version() {
- printf "gensync (pacman) %s\n" "$myver"
- printf "$(gettext "\
-Copyright (C) 2002-2007 Judd Vinet <jvinet@zeroflux.org>.\n\n\
-This is free software; see the source for copying conditions.\n\
-There is NO WARRANTY, to the extent permitted by law.\n")"
-}
-
-error () {
- local mesg=$1; shift
- printf "==> ERROR: ${mesg}\n" "$@" >&2
-}
-
-die () {
- error $*
- exit 1
-}
-
-check_force () {
- local i
- for i in ${options[@]}; do
- local lc=$(echo $i | tr [:upper:] [:lower:])
- if [ "$lc" = "force" ]; then
- true
- fi
- done
- false
-}
-
-# PROGRAM START
-
-# determine whether we have gettext; make it a no-op if we do not
-if [ ! $(type -t gettext) ]; then
- gettext() {
- echo "$@"
- }
-fi
-
-if [ "$1" = "-h" -o "$1" = "--help" ]; then
- usage
- exit 0
-fi
-
-if [ "$1" = "-V" -o "$1" = "--version" ]; then
- version
- exit 0
-fi
-
-if [ $# -lt 2 ]; then
- usage
- exit 1
-fi
-
-# source system and user makepkg.conf
-if [ -r @sysconfdir@/makepkg.conf ]; then
- source @sysconfdir@/makepkg.conf
-else
- die "$(gettext "%s not found. Can not continue.")" "@sysconfdir@/makepkg.conf"
-fi
-
-if [ -r ~/.makepkg.conf ]; then
- source ~/.makepkg.conf
-fi
-
-
-d=$(dirname $1)
-rootdir="$(cd $d && pwd)/$(basename $1)"
-d="$(dirname $2)"
-destdir="$(cd $d && pwd)"
-destfile="$destdir/$(basename $2)"
-pkgdir=""
-if [ "$3" != "" ]; then
- pkgdir="$3"
-fi
-
-[ ! -d "$rootdir" ] && die "$(gettext "invalid root dir: %s")" $rootdir
-
-printf "$(gettext "\
-NOTE: this script is DEPRECATED. It will be removed in the next major\n\
-release of pacman, so please use repo-add and repo-remove instead.\n\n")"
-
-echo "$(gettext "gensync: building database entries, generating md5sums...")" >&2
-cd "$destdir"
-
-pkgs=""
-forcepkgs=""
-
-for file in $(find "$rootdir"/* -name "$BUILDSCRIPT"); do
- unset pkgname pkgver pkgrel options
-
- source $file || die "$(gettext "failed to parse %s")" $file
- if [ "$arch" = 'any' ]; then
- CARCH='any'
- fi
- if [ "$pkgdir" != "" ]; then
- pkgfile="$pkgdir/$pkgname-$pkgver-$pkgrel-${CARCH}${PKGEXT}"
- else
- pkgfile="$destdir/$pkgname-$pkgver-$pkgrel-${CARCH}${PKGEXT}"
- fi
-
- if [ ! -f "$pkgfile" ]; then
- error "$(gettext "could not find %s-%s-%s-%s%s - skipping")" $pkgname $pkgver $pkgrel $CARCH $PKGEXT
- else
- if check_force; then
- forcepkgs="$forcepkgs $pkgfile"
- else
- pkgs="$pkgs $pkgfile"
- fi
- fi
-done
-
-echo "$(gettext "creating repo DB...")"
-
-# we'll trim the output just a tad, as gensync may be used on large repos
-repo-add $destfile $pkgs --force $force_pkgs \
- | grep -e "package" -e "database"
-
-# vim: set ts=2 sw=2 noet:
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 54676667..7db8b4d7 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -299,6 +299,20 @@ get_downloadclient() {
echo "$agent"
}
+get_downloadcmd() {
+ local dlagent=$1
+ local netfile=$2
+ local file=$3
+
+ if echo "$dlagent" | grep -q "%u" ; then
+ local dlcmd=$(echo "$dlagent" | sed "s|%o|$file.part|" | sed "s|%u|$netfile|")
+ else
+ local dlcmd="$dlagent $netfile"
+ fi
+
+ echo "$dlcmd"
+}
+
check_deps() {
[ $# -gt 0 ] || return
@@ -471,17 +485,20 @@ download_sources() {
fi
# find the client we should use for this URL
- local dlclient=$(get_downloadclient $netfile) || exit $?
+ local dlclient=$(get_downloadclient "$netfile") || exit $?
msg2 "$(gettext "Downloading %s...")" "$file"
# fix flyspray bug #3289
local ret=0
- $dlclient "$netfile" || ret=$?
+ $(get_downloadcmd "$dlclient" "$netfile" "$file") || ret=$?
if [ $ret -gt 0 ]; then
error "$(gettext "Failure while downloading %s")" "$file"
plain "$(gettext "Aborting...")"
exit 1
fi
+ if echo "$dlclient" | grep -q "%o" ; then
+ mv -f "$SRCDEST/$file.part" "$SRCDEST/$file"
+ fi
cp -s --remove-destination "$SRCDEST/$file" "$srcdir/"
done
@@ -716,37 +733,41 @@ tidy_install() {
rm -rf ${DOC_DIRS[@]}
fi
- msg2 "$(gettext "Compressing man pages...")"
- local manpage mandirs ext file link hardlinks hl
- mandirs="usr/man usr/share/man usr/local/man usr/local/share/man opt/*/man"
- find ${mandirs} -type f 2>/dev/null | while read manpage ; do
- # check file still exists (potentially compressed with hard link)
- if [ -f ${manpage} ]; then
- ext="${manpage##*.}"
- file="${manpage##*/}"
- if [ "$ext" != "gz" -a "$ext" != "bz2" ]; then
- # update symlinks to this manpage
- find ${mandirs} -lname "$file" 2>/dev/null | while read link ; do
- rm -f "$link"
- ln -sf "${file}.gz" "${link}.gz"
- done
- # find hard links and remove them
- # the '|| true' part keeps the script from bailing if find returned an
- # error, such as when one of the man directories doesn't exist
- hardlinks="$(find ${mandirs} \! -name "$file" -samefile "$manpage" 2>/dev/null)" || true
- for hl in ${hardlinks}; do
- rm -f "${hl}";
- done
- # compress the original
- gzip -9 "$manpage"
- # recreate hard links removed earlier
- for hl in ${hardlinks}; do
- ln "${manpage}.gz" "${hl}.gz"
- chmod 644 ${hl}.gz
- done
+ if [ "$(check_option zipman)" = "y" ]; then
+ msg2 "$(gettext "Compressing man pages...")"
+ local manpage mandirs ext file link hardlinks hl
+ mandirs="usr/man usr/share/man usr/local/man usr/local/share/man opt/*/man"
+ find ${mandirs} -type f 2>/dev/null |
+ while read manpage ; do
+ # check file still exists (potentially compressed with hard link)
+ if [ -f ${manpage} ]; then
+ ext="${manpage##*.}"
+ file="${manpage##*/}"
+ if [ "$ext" != "gz" -a "$ext" != "bz2" ]; then
+ # update symlinks to this manpage
+ find ${mandirs} -lname "$file" 2>/dev/null |
+ while read link ; do
+ rm -f "$link"
+ ln -sf "${file}.gz" "${link}.gz"
+ done
+ # find hard links and remove them
+ # the '|| true' part keeps the script from bailing if find returned an
+ # error, such as when one of the man directories doesn't exist
+ hardlinks="$(find ${mandirs} \! -name "$file" -samefile "$manpage" 2>/dev/null)" || true
+ for hl in ${hardlinks}; do
+ rm -f "${hl}";
+ done
+ # compress the original
+ gzip -9 "$manpage"
+ # recreate hard links removed earlier
+ for hl in ${hardlinks}; do
+ ln "${manpage}.gz" "${hl}.gz"
+ chmod 644 ${hl}.gz
+ done
+ fi
fi
- fi
- done
+ done
+ fi
if [ "$(check_option strip)" = "y" ]; then
diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in
index 63d94d37..f837262d 100644
--- a/scripts/repo-add.sh.in
+++ b/scripts/repo-add.sh.in
@@ -25,7 +25,6 @@ export TEXTDOMAINDIR='@localedir@'
myver='@PACKAGE_VERSION@'
confdir='@sysconfdir@'
-FORCE=0
REPO_DB_FILE=""
# ensure we have a sane umask set
@@ -54,14 +53,10 @@ error() {
# print usage instructions
usage() {
printf "repo-add (pacman) %s\n\n" "$myver"
- printf "$(gettext "Usage: %s <path-to-db> [--force] <package> ...\n\n")" "$0"
+ printf "$(gettext "Usage: %s <path-to-db> <package> ...\n\n")" "$0"
printf "$(gettext "\
repo-add will update a package database by reading a package file.\n\
Multiple packages to add can be specified on the command line.\n\n")"
- printf "$(gettext "\
-The --force flag will add a 'force' entry to the sync database, which\n\
-tells pacman to skip its internal version number checking and update\n\
-the package regardless.\n\n")"
echo "$(gettext "Example: repo-add /path/to/repo.db.tar.gz pacman-3.0.0.pkg.tar.gz")"
}
@@ -209,7 +204,7 @@ db_write_entry()
[ -n "$builddate" ] && echo -e "%BUILDDATE%\n$builddate\n" >>desc
[ -n "$packager" ] && echo -e "%PACKAGER%\n$packager\n" >>desc
write_list_entry "REPLACES" "$_replaces" "desc"
- [ $FORCE -eq 1 -o -n "$force" ] && echo -e "%FORCE%\n" >>desc
+ [ -n "$force" ] && echo -e "%FORCE%\n" >>desc
# create depends entry
msg2 "$(gettext "Creating 'depends' db entry...")"
@@ -298,7 +293,8 @@ success=0
# parse arguments
for arg in "$@"; do
if [ "$arg" == "--force" -o "$arg" == "-f" ]; then
- FORCE=1
+ warning "$(gettext "the -f and --force options are no longer recognized")"
+ msg2 "$(gettext "use options=(force) in the PKGBUILD instead")"
elif [ -z "$REPO_DB_FILE" ]; then
REPO_DB_FILE=$(readlink -f "$arg")
if ! test_repo_db_file; then
diff --git a/scripts/updatesync.sh.in b/scripts/updatesync.sh.in
deleted file mode 100644
index 5f5cc6c9..00000000
--- a/scripts/updatesync.sh.in
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/bin/bash
-#
-# updatesync
-# @configure_input@
-#
-# Copyright (c) 2004 by Jason Chu <jason@archlinux.org>
-# Derived from gensync (c) 2002-2006 Judd Vinet <jvinet@zeroflux.org>
-#
-# 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 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 <http://www.gnu.org/licenses/>.
-#
-
-# gettext initialization
-export TEXTDOMAIN='pacman'
-export TEXTDOMAINDIR='@localedir@'
-
-myver='@PACKAGE_VERSION@'
-
-# functions
-
-usage() {
- printf "updatesync (pacman) %s\n\n" "$myver"
- printf "$(gettext "Usage: %s <action> <destfile> <option> [package_directory]")\n\n" "$0"
- printf "$(gettext "\
-NOTE: this script is DEPRECATED. It will be removed in the next major\n\
-release of pacman, so please use repo-add and repo-remove instead.\n\n")"
- printf "$(gettext "\
-updatesync will update a sync database by reading a PKGBUILD and\n\
-modifying the destfile. updatesync updates the database in a temporary\n\
-directory and then compresses it to <destfile>.\n\n")"
- printf "$(gettext "There are two types of actions:\n\n")"
- printf "$(gettext "upd - Will update a package's entry or create it if it doesn't exist.\n It takes the package's PKGBUILD as an option.\n")"
- printf "$(gettext "del - Will remove a package's entry from the db. It takes the package's\n name as an option.\n")"
- echo
- printf "$(gettext "\
-updatesync will calculate md5sums of packages in the same directory as\n\
-<destfile>, unless an alternate [package_directory] is specified.\n\n")"
- echo "$(gettext "Example: updatesync upd /home/mypkgs/custom.db.tar.gz PKGBUILD")"
-}
-
-version() {
- printf "updatesync (pacman) %s\n" "$myver"
- printf "$(gettext "\
-Copyright (C) 2004 Jason Chu <jason@archlinux.org>.\n\n\
-This is free software; see the source for copying conditions.\n\
-There is NO WARRANTY, to the extent permitted by law.\n")"
-}
-
-error () {
- local mesg=$1; shift
- printf "==> ERROR: ${mesg}\n" "$@" >&2
-}
-
-die () {
- error $*
- exit 1
-}
-
-check_force () {
- local i
- for i in ${options[@]}; do
- local lc=$(echo $i | tr [:upper:] [:lower:])
- if [ "$lc" = "force" ]; then
- true
- fi
- done
- false
-}
-
-# PROGRAM START
-
-# determine whether we have gettext; make it a no-op if we do not
-if [ ! $(type -t gettext) ]; then
- gettext() {
- echo "$@"
- }
-fi
-
-if [ "$1" = "-h" -o "$1" = "--help" ]; then
- usage
- exit 0
-fi
-
-if [ "$1" = "-V" -o "$1" = "--version" ]; then
- version
- exit 0
-fi
-
-if [ $# -lt 3 ]; then
- usage
- exit 1
-fi
-
-# source system and user makepkg.conf
-if [ -r @sysconfdir@/makepkg.conf ]; then
- source @sysconfdir@/makepkg.conf
-else
- die "$(gettext "%s not found. Can not continue.")" "@sysconfdir@/makepkg.conf"
-fi
-
-if [ -r ~/.makepkg.conf ]; then
- source ~/.makepkg.conf
-fi
-
-if [ "$1" != "upd" -a "$1" != "del" ]; then
- usage
- exit 1
-fi
-
-action=$1
-pkgdb=$2
-option=$3
-pkgdir="$(pwd)"
-if [ "$4" != "" ]; then
- pkgdir="$4"
-fi
-opt_force=""
-
-printf "$(gettext "\
-NOTE: this script is DEPRECATED. It will be removed in the next major\n\
-release of pacman, so please use repo-add and repo-remove instead.\n\n")"
-
-if [ "$action" = "upd" ]; then # INSERT / UPDATE
- if [ ! -f "$option" ]; then
- die "$(gettext "%s not found")" $option
- fi
-
- unset pkgname pkgver pkgrel options
-
- source $option || die "$(gettext "failed to parse %s")" $option
- if [ "$arch" = 'any' ]; then
- CARCH='any'
- fi
- pkgfile="$pkgdir/$pkgname-$pkgver-$pkgrel-${CARCH}${PKGEXT}"
-
- if [ ! -f "$pkgfile" ]; then
- die "$(gettext "could not find %s-%s-%s-%s%s - aborting")" $pkgname $pkgver $pkgrel $CARCH $PKGEXT
- fi
-
- if check_force; then
- opt_force="--force"
- fi
-
- repo-add "$pkgdb" $opt_force "$pkgfile"
-else # DELETE
- fname="$(basename $option)"
- if [ "$fname" = "PKGBUILD" ]; then
- if [ ! -f "$option" ]; then
- die "$(gettext "%s not found")" $option
- fi
-
- unset pkgname pkgver pkgrel options
- source $option
- else
- pkgname=$option
- fi
-
- repo-remove "$pkgdb" "$pkgname"
-fi
-
-exit 0
-# vim: set ts=2 sw=2 noet: