On Mon, Oct 11, 2010 at 4:20 PM, Nezmer <[email protected]> wrote: > Signed-off-by: Nezmer <[email protected]> > --- > contrib/Makefile.am | 18 ++++++++++++++++-- > contrib/bacman.in | 16 ++++++++-------- > contrib/pacdiff.in | 2 +- > contrib/pacscripts.in | 8 ++++---- > contrib/pactree.in | 10 +++++----- > contrib/wget-xdelta.sh.in | 10 +++++----- > contrib/zsh_completion.in | 18 +++++++++--------- > doc/Makefile.am | 12 ++++++++++++ > doc/makepkg.8.txt | 2 +- > doc/pacman.8.txt | 4 ++-- > doc/pacman.conf.5.txt | 12 ++++++------ > scripts/Makefile.am | 3 +++ > scripts/makepkg.sh.in | 2 +- > scripts/pacman-optimize.sh.in | 2 +- > scripts/pkgdelta.sh.in | 2 +- > scripts/rankmirrors.sh.in | 4 ++-- > scripts/repo-add.sh.in | 2 +- > 17 files changed, 78 insertions(+), 49 deletions(-) > > diff --git a/contrib/Makefile.am b/contrib/Makefile.am > index c6243b1..15dc227 100644 > --- a/contrib/Makefile.am > +++ b/contrib/Makefile.am > @@ -9,7 +9,21 @@ EXTRA_DIST = \ > pactree \ > vimprojects \ > wget-xdelta.sh \ > - zsh_completion \ > - README > + zsh_completion So we aren't going to distribute the README anymore? I don't see where this is included anymore.
> + > +BASH := $(shell sh -c 'which bash|| echo /bin/bash') I think this task belongs in configure.ac rather than in the makefiles. It would then allow overrriding rather than auto-detection. See the AC_CHECK_PROGS([PYTHON]) line already in there, you can pretty much do the exact same thing. > + > +edit = sed \ > + -e 's|@sysconfd...@]|$(sysconfdir)|g' \ > + -e 's|@ba...@]|$(BASH)|g' \ > + -e 's|@localstated...@]|$(localstatedir)|g' I know this is nitpicky, but it would be good to keep these in a similar order to the one in scripts/Makefile.am, and keep the directory substitutions together. > + > +$(EXTRA_DIST): Makefile > + @rm -f $@ [email protected] > + @cp -a [email protected] [email protected] # To reserve permissions in tmp files Comments are better if they don't have typos... > + $(edit) [email protected] >[email protected] > + @mv [email protected] $@ I'm not sure which way of doing this is better (vs. the existing logic), other than I know I cribbed the logic in scripts/Makefile.am from existing scripts. What is the idea of preserving permissions rather than explicit permission setting? > + > +all-am: $(EXTRA_DIST) > > # vim:set ts=2 sw=2 noet: > diff --git a/contrib/bacman.in b/contrib/bacman.in > index 6dd7839..2a93f8b 100755 > --- a/contrib/bacman.in > +++ b/contrib/bacman.in > @@ -1,4 +1,4 @@ > -#!/bin/bash > +...@bash@ > # > # bacman: recreate a package from a running system > # This script rebuilds an already installed package using metadata > @@ -67,20 +67,20 @@ fi > # > # Setting environmental variables > # > -if [ ! -r /etc/pacman.conf ]; then > - echo "ERROR: unable to read /etc/pacman.conf" > +if [ ! -r @sysconfdir@/pacman.conf ]; then > + echo "ERROR: unable to read @sysconfdir@/pacman.conf" > exit 1 > fi > > -eval $(awk '/DBPath/ {print $1$2$3}' /etc/pacman.conf) > -pac_db="${DBPath:-/var/lib/pacman/}/local" > +eval $(awk '/DBPath/ {print $1$2$3}' @sysconfdir@/pacman.conf) > +pac_db="${DBPath:-...@localstatedir@/lib/pacman/}/local" > > -if [ ! -r /etc/makepkg.conf ]; then > - echo "ERROR: unable to read /etc/makepkg.conf" > +if [ ! -r @sysconfdir@/makepkg.conf ]; then > + echo "ERROR: unable to read @sysconfdir@/makepkg.conf" > exit 1 > fi > > -source "/etc/makepkg.conf" > +source "@sysconfdir@/makepkg.conf" > if [ -r ~/.makepkg.conf ]; then > source ~/.makepkg.conf > fi > diff --git a/contrib/pacdiff.in b/contrib/pacdiff.in > index 3f26f38..716333a 100755 > --- a/contrib/pacdiff.in > +++ b/contrib/pacdiff.in > @@ -1,4 +1,4 @@ > -#!/bin/bash > +...@bash@ > # pacdiff : a simple pacnew/pacorig/pacsave updater > # > # Copyright (c) 2007 Aaron Griffin <[email protected]> > diff --git a/contrib/pacscripts.in b/contrib/pacscripts.in > index 101fb15..123c79d 100755 > --- a/contrib/pacscripts.in > +++ b/contrib/pacscripts.in > @@ -1,4 +1,4 @@ > -#!/bin/bash > +...@bash@ > # > # pacscripts : tries to print out the {pre,post}_{install,remove,upgrade} > # scripts of a given package > @@ -27,7 +27,7 @@ set -o errexit > progname=$(basename $0) > progver="0.4" > > -conf="/etc/pacman.conf" > +conf="@sysconfdir@/pacman.conf" > > if [ ! -r "$conf" ]; then > echo "ERROR: unable to read $conf" > @@ -36,8 +36,8 @@ fi > > eval $(awk '/DBPath/ {print $1$2$3}' "$conf") > eval $(awk '/CacheDir/ {print $1$2$3}' "$conf") > -pac_db="${DBPath:-/var/lib/pacman}/local" > -pac_cache="${CacheDir:-/var/cache/pacman/pkg}" > +pac_db="${DBPath:-...@localstatedir@/lib/pacman}/local" > +pac_cache="${CacheDir:-...@localstatedir@/cache/pacman/pkg}" > > error() { > local mesg=$1; shift > diff --git a/contrib/pactree.in b/contrib/pactree.in > index 6051724..29c6af6 100755 > --- a/contrib/pactree.in > +++ b/contrib/pactree.in > @@ -1,4 +1,4 @@ > -#!/bin/bash > +...@bash@ > # pactree : a simple dependency tree viewer > # > # Copyright (C) 2008 Carlo "carlocci" Bersani <[email protected]> > @@ -272,14 +272,14 @@ if [ $graphviz -eq 1 ]; then > fi > fi > > -if [ ! -r /etc/pacman.conf ]; then > - echo "ERROR: unable to read /etc/pacman.conf" > +if [ ! -r @sysconfdir@/pacman.conf ]; then > + echo "ERROR: unable to read @sysconfdir@/pacman.conf" > exit 1 > else > - eval $(awk '/DBPath/ {print $1$2$3}' /etc/pacman.conf) > + eval $(awk '/DBPath/ {print $1$2$3}' @sysconfdir@/pacman.conf) > fi > > -pac_db="${DBPath:-/var/lib/pacman}/local" > +pac_db="${DBPath:-...@localstatedir@/lib/pacman}/local" > > if [ ! -d "$pac_db" ] ; then > echo "ERROR: pacman database directory ${pac_db} not found" > diff --git a/contrib/wget-xdelta.sh.in b/contrib/wget-xdelta.sh.in > index 4656f4d..caf0171 100755 > --- a/contrib/wget-xdelta.sh.in > +++ b/contrib/wget-xdelta.sh.in > @@ -1,7 +1,7 @@ > -#!/bin/bash > +...@bash@ > > -if [ -r "/etc/makepkg.conf" ]; then > - source /etc/makepkg.conf > +if [ -r "@sysconfdir@/makepkg.conf" ]; then > + source @sysconfdir@/makepkg.conf > else > echo "wget-xdelta: Unable to find makepkg.conf" > exit 1 > @@ -30,11 +30,11 @@ new_version=$(echo $pkg_data | cut -d ' ' -f 2) > base_url=${file_url%/*} > > # Look for the last version > -for file in $(ls -r /var/cache/pacman/pkg/${pkgname}-*-*{,-$CARCH}$PKGEXT > 2>/dev/null); do > +for file in $(ls -r > @localstatedir@/cache/pacman/pkg/${pkgname}-*-*{,-$CARCH}$PKGEXT > 2>/dev/null); do > [[ "$file" =~ "$CARCH" ]] && arch="-$CARCH" || arch="" > check_version=$(echo $file | \ > sed > "s|^.*/${pkgname}-\([[:alnum:]_\.]*-[[:alnum:]_\.]*\)${arch}$PKGEXT$|\1|" | \ > - grep -v "^/var/cache/pacman/pkg") > + grep -v "^...@localstatedir@/cache/pacman/pkg") > > [ "$check_version" = "" ] && continue > > diff --git a/contrib/zsh_completion.in b/contrib/zsh_completion.in > index f69fe63..1691913 100644 > --- a/contrib/zsh_completion.in > +++ b/contrib/zsh_completion.in > @@ -222,20 +222,20 @@ _pacman_completions_all_groups() { > _pacman_completions_all_packages() { > local -a cmd packages repositories packages_long > > - > repositories=(${(o)${${${(M)${(f)"$(</etc/pacman.conf)"}:#\[*}/\[/}/\]/}:#options}) > + > repositories=(${(o)${${${(M)${(f)"$(<@sysconfdir@/pacman.conf)"}:#\[*}/\[/}/\]/}:#options}) > typeset -U repositories > - packages_long=(/var/lib/pacman/sync/${^repositories}/*(/)) > - > packages=(${(o)${${packages_long/\/var\/lib\/pacman\/sync\//}#*/}%-*-*} ) > + packages_long=(@localstatedir@/lib/pacman/sync/${^repositories}/*(/)) > + > packages=(${(o)${${packages_lo...@localstatedir@/lib/pacman/sync/}#*/}%-*-*} ) > typeset -U packages > _wanted packages expl "packages" compadd - "${(@)packages}" > if [[ $PREFIX != */* ]] ; then > - > repositories=(${(o)${${${(M)${(f)"$(</etc/pacman.conf)"}:#\[*}/\[/}/\]/}:#options}) > + > repositories=(${(o)${${${(M)${(f)"$(<@sysconfdir@/pacman.conf)"}:#\[*}/\[/}/\]/}:#options}) > typeset -U repositories > _wanted repo_packages expl "repository/package" compadd -S "/" > $repositories > else > compset -P '*/' > - packages_long=(/var/lib/pacman/sync/$IPREFIX*(/)) > - > packages=(${(o)${${packages_long/\/var\/lib\/pacman\/sync\//}#*/}%-*-*} ) > + packages_long=(@localstatedir@/lib/pacman/sync/$IPREFIX*(/)) > + > packages=(${(o)${${packages_lo...@localstatedir@/lib/pacman/sync/}#*/}%-*-*} ) > typeset -U packages > _wanted repo_packages expl "repository/package" compadd > ${(@)packages} > fi > @@ -253,15 +253,15 @@ _pacman_completions_installed_groups() { > # provides completions for installed packages > _pacman_completions_installed_packages() { > local -a cmd packages packages_long > - packages_long=(/var/lib/pacman/local/*(/)) > - packages=( ${${packages_long/\/var\/lib\/pacman\/local\//}%-*-*} ) > + packages_long=(@localstatedir@/lib/pacman/local/*(/)) > + packages=( ${${packages_lo...@localstatedir@/lib/pacman/local/}%-*-*} > ) > compadd "$@" -a packages > } > > # provides completions for repository names > _pacman_completions_repositories() { > local -a cmd repositories > - > repositories=(${(o)${${${(M)${(f)"$(</etc/pacman.conf)"}:#\[*}/\[/}/\]/}:#options}) > + > repositories=(${(o)${${${(M)${(f)"$(<@sysconfdir@/pacman.conf)"}:#\[*}/\[/}/\]/}:#options}) > # Uniq the array > typeset -U repositories > compadd "$@" -a repositories > diff --git a/doc/Makefile.am b/doc/Makefile.am > index 2e656f6..461528f 100644 > --- a/doc/Makefile.am > +++ b/doc/Makefile.am > @@ -66,6 +66,10 @@ else > REAL_PACKAGE_VERSION = $(PACKAGE_VERSION) > endif > > +edit = sed \ > + -e 's|@sysconfd...@]|$(sysconfdir)|g' \ > + -e 's|@localstated...@]|$(localstatedir)|g' > + > man_MANS = > dist_man_MANS = $(ASCIIDOC_MANS) repo-remove.8 > > @@ -107,10 +111,18 @@ A2X_OPTS = \ > # These rules are due to the includes and files of the asciidoc text > $(ASCIIDOC_MANS): asciidoc.conf footer.txt > a2x $(A2X_OPTS) --asciidoc-opts="$(ASCIIDOC_OPTS)" [email protected] > + @rm -f [email protected] > + @cp -a $@ [email protected] # To reserve permissions in tmp files > + $(edit) $@ >[email protected] > + @mv [email protected] $@ > > %.html: %.txt > asciidoc $(ASCIIDOC_OPTS) $*.txt > dos2unix $@ > + @rm -f [email protected] > + @cp -a $@ [email protected] # To reserve permissions in tmp files > + $(edit) $@ >[email protected] > + @mv [email protected] $@ Hmm, I don't know at all what you are doing here. We already do sysconfdir substitution using ASCIIDOC_OPTS; surely we can just fix the docs to use that and add localstatedir as well? > HACKING.html: ../HACKING > asciidoc $(ASCIIDOC_OPTS) -o $@ ../HACKING > diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt > index a2fdb3f..4251f38 100644 > --- a/doc/makepkg.8.txt > +++ b/doc/makepkg.8.txt > @@ -53,7 +53,7 @@ Options > in linkman:makepkg.conf[5]. > > *--config* <`/path/to/config`>:: > - Use an alternate config file instead of the `/etc/makepkg.conf` > default; > + Use an alternate config file instead of the > `...@sysconfdir@/makepkg.conf` default; > > *-d, \--nodeps*:: > Do not perform any dependency checks. This will let you override and > diff --git a/doc/pacman.8.txt b/doc/pacman.8.txt > index de1f51f..98922ba 100644 > --- a/doc/pacman.8.txt > +++ b/doc/pacman.8.txt > @@ -118,7 +118,7 @@ Options > > *-b, \--dbpath* <'path'>:: > Specify an alternative database location (a typical default is > - ``/var/lib/pacman''). This should not be used unless you know what > you are > + `...@localstatedir@/lib/pacman''). This should not be used unless > you know what you are > doing. *NOTE*: if specified, this is an absolute path and the root > path is > not automatically prepended. > > @@ -151,7 +151,7 @@ Options > > *\--cachedir* <'dir'>:: > Specify an alternative package cache location (a typical default is > - ``/var/cache/pacman/pkg''). Multiple cache directories can be > specified, > + `...@localstatedir@/cache/pacman/pkg''). Multiple cache directories > can be specified, > and they are tried in the order they are passed to pacman. *NOTE*: this > is an absolute path, the root path is not automatically prepended. > > diff --git a/doc/pacman.conf.5.txt b/doc/pacman.conf.5.txt > index 0e8426a..1bd58e8 100644 > --- a/doc/pacman.conf.5.txt > +++ b/doc/pacman.conf.5.txt > @@ -35,7 +35,7 @@ NoUpgrade = etc/passwd etc/group etc/shadow > NoUpgrade = etc/fstab > > [core] > -Include = /etc/pacman.d/core > +Include = @sysconfdir@/pacman.d/core > > [custom] > Server = file:///home/pkgs > @@ -57,13 +57,13 @@ Options > > *DBPath =* path/to/db/dir:: > Overrides the default location of the toplevel database directory. A > - typical default is ``/var/lib/pacman/''. Most users will not need to > set > + typical default is `...@localstatedir@/lib/pacman/''. Most users will > not need to set > this option. *NOTE*: if specified, this is an absolute path and the > root > path is not automatically prepended. > > *CacheDir =* path/to/cache/dir:: > Overrides the default location of the package cache directory. A > typical > - default is ``/var/cache/pacman/pkg/''. Multiple cache directories can > be > + default is `...@localstatedir@/cache/pacman/pkg/''. Multiple cache > directories can be > specified, and they are tried in the order they are listed in the > config > file. If a file is not found in any cache directory, it will be > downloaded > to the first cache directory with write access. *NOTE*: this is an > absolute > @@ -72,7 +72,7 @@ Options > > *LogFile =* '/path/to/file':: > Overrides the default location of the pacman log file. A typical > default > - is ``/var/log/pacman.log''. This is an absolute path and the root > directory > + is `...@localstatedir@/log/pacman.log''. This is an absolute path and > the root directory > is not prepended. > > *HoldPkg =* package ...:: > @@ -147,7 +147,7 @@ Options > > *UseSyslog*:: > Log action messages through syslog(). This will insert log entries into > - ``/var/log/messages'' or equivalent. > + `...@localstatedir@/log/messages'' or equivalent. > > *ShowSize*:: > Display the size of individual packages for '\--sync' and '\--query' > modes. > @@ -180,7 +180,7 @@ contain a file that lists the servers for that repository. > # use this repository first > Server = ftp://ftp.archlinux.org/core/os/arch > # next use servers as defined in the mirrorlist below > -Include = /etc/pacman.d/mirrorlist > +Include = @sysconfdir@/pacman.d/mirrorlist > -------- > > During parsing, pacman will define the `$repo` variable to the name of the > diff --git a/scripts/Makefile.am b/scripts/Makefile.am > index 31e8fb5..5967ab1 100644 > --- a/scripts/Makefile.am > +++ b/scripts/Makefile.am > @@ -29,12 +29,15 @@ else > REAL_PACKAGE_VERSION = $(PACKAGE_VERSION) > endif > > +BASH := $(shell sh -c 'which bash|| echo /bin/bash') > + > #### Taken from the autoconf scripts Makefile.am #### > edit = sed \ > -e 's|@localed...@]|$(localedir)|g' \ > -e 's|@sysconfd...@]|$(sysconfdir)|g' \ > -e 's|@localstated...@]|$(localstatedir)|g' \ > -e 's|@pref...@]|$(prefix)|g' \ > + -e 's|@ba...@]|$(BASH)|g' \ > -e 's|@package_versi...@]|$(REAL_PACKAGE_VERSION)|g' \ > -e 's|@package_bugrepo...@]|$(PACKAGE_BUGREPORT)|g' \ > -e 's|@package_na...@]|$(PACKAGE_NAME)|g' \ > diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in > index 3a7a4d1..baabf26 100644 > --- a/scripts/makepkg.sh.in > +++ b/scripts/makepkg.sh.in > @@ -1,4 +1,4 @@ > -#!/bin/bash -e > +...@bash@ -e > # > # makepkg - make packages compatible for use with pacman > # @configure_input@ > diff --git a/scripts/pacman-optimize.sh.in b/scripts/pacman-optimize.sh.in > index 78b2345..eb6691c 100644 > --- a/scripts/pacman-optimize.sh.in > +++ b/scripts/pacman-optimize.sh.in > @@ -1,4 +1,4 @@ > -#!/bin/bash > +...@bash@ > # > # pacman-optimize > # @configure_input@ > diff --git a/scripts/pkgdelta.sh.in b/scripts/pkgdelta.sh.in > index 1550fa1..d45678d 100644 > --- a/scripts/pkgdelta.sh.in > +++ b/scripts/pkgdelta.sh.in > @@ -1,4 +1,4 @@ > -#!/bin/bash > +...@bash@ > # > # pkgdelta - create delta files for use with pacman and repo-add > # @configure_input@ > diff --git a/scripts/rankmirrors.sh.in b/scripts/rankmirrors.sh.in > index 0cd4c08..3851b77 100644 > --- a/scripts/rankmirrors.sh.in > +++ b/scripts/rankmirrors.sh.in > @@ -1,4 +1,4 @@ > -#!/bin/bash > +...@bash@ > # > # rankmirrors - read a list of mirrors from a file and rank them by speed > # @configure_input@ > @@ -25,7 +25,7 @@ usage() { > echo "Usage: rankmirrors [options] MIRRORFILE | URL" > echo > echo "Ranks pacman mirrors by their connection and opening speed. > Pacman mirror" > - echo "files are located in /etc/pacman.d/. It can also rank one > mirror if the URL is" > + echo "files are located in @sysconfdir@/pacman.d/. It can also rank > one mirror if the URL is" > echo "provided." > echo > echo "Options:" > diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in > index 8ef940d..4338011 100644 > --- a/scripts/repo-add.sh.in > +++ b/scripts/repo-add.sh.in > @@ -1,4 +1,4 @@ > -#!/bin/bash > +...@bash@ > # > # repo-add - add a package to a given repo database file > # repo-remove - remove a package entry from a given repo database file > -- I think if these points are addressed, this is a really good step forward for codebase portability, so thank you for submitting this. -Dan
