diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/.gitignore | 2 | ||||
| -rw-r--r-- | scripts/Makefile.am | 10 | ||||
| -rw-r--r-- | scripts/gensync.sh.in | 169 | ||||
| -rw-r--r-- | scripts/makepkg.sh.in | 85 | ||||
| -rw-r--r-- | scripts/repo-add.sh.in | 12 | ||||
| -rw-r--r-- | scripts/updatesync.sh.in | 172 | 
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 79c3fd17..1eb3d3a7 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: | 
