From 05f0a28932c1acab7a9ddb58435d69626dad54da Mon Sep 17 00:00:00 2001 From: Nezmer Date: Tue, 12 Oct 2010 02:23:16 +0300 Subject: Use sysconfdir, localstatedir, BASH instead of hardcoded values This applies to contrib/ files, our scripts, and the documentation. Dan: fix 'make clean' in contrib/ directory. Signed-off-by: Nezmer Signed-off-by: Dan McGee --- configure.ac | 1 + contrib/Makefile.am | 33 +++++++++++++++++++++++++++++++-- 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 | 1 + doc/makepkg.8.txt | 2 +- doc/pacman.8.txt | 4 ++-- doc/pacman.conf.5.txt | 12 ++++++------ scripts/Makefile.am | 1 + 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 +- 18 files changed, 81 insertions(+), 49 deletions(-) diff --git a/configure.ac b/configure.ac index 37b26f25..115aeb15 100644 --- a/configure.ac +++ b/configure.ac @@ -127,6 +127,7 @@ AC_PROG_LN_S AC_PROG_MAKE_SET AC_PROG_LIBTOOL AC_CHECK_PROGS([PYTHON], [python2.7 python2.6 python2.5 python2 python], [false]) +AC_CHECK_PROGS([BASH], [bash bash4 bash3], [false]) # find installed gettext AM_GNU_GETTEXT([external]) diff --git a/contrib/Makefile.am b/contrib/Makefile.am index c6243b16..dd0b767c 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -1,4 +1,4 @@ -EXTRA_DIST = \ +OURFILES = \ PKGBUILD.vim \ bacman \ bash_completion \ @@ -9,7 +9,36 @@ EXTRA_DIST = \ pactree \ vimprojects \ wget-xdelta.sh \ - zsh_completion \ + zsh_completion + +EXTRA_DIST = \ + PKGBUILD.vim.in \ + bacman.in \ + bash_completion.in \ + pacdiff.in \ + paclist.in \ + pacscripts.in \ + pacsearch.in \ + pactree.in \ + vimprojects.in \ + wget-xdelta.sh.in \ + zsh_completion.in \ README +# Files that should be removed, but which Automake does not know. +MOSTLYCLEANFILES = $(OURFILES) *.tmp + +edit = sed \ + -e 's|@sysconfdir[@]|$(sysconfdir)|g' \ + -e 's|@localstatedir[@]|$(localstatedir)|g' \ + -e 's|@BASH[@]|$(BASH)|g' + +$(OURFILES): Makefile + @rm -f $@ $@.tmp + @cp -a $@.in $@.tmp + $(edit) $@.in >$@.tmp + @mv $@.tmp $@ + +all-am: $(OURFILES) + # vim:set ts=2 sw=2 noet: diff --git a/contrib/bacman.in b/contrib/bacman.in index 6dd78394..2a93f8be 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 3f26f381..716333a0 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 diff --git a/contrib/pacscripts.in b/contrib/pacscripts.in index 101fb15f..123c79df 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 6051724e..29c6af6c 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 @@ -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 4656f4dd..caf0171e 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 f69fe631..16919134 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)"$(:: - 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 de1f51f8..2656fc70 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 0e8426af..ecc5c748 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 31e8fb5d..b9e3038f 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -35,6 +35,7 @@ edit = sed \ -e 's|@sysconfdir[@]|$(sysconfdir)|g' \ -e 's|@localstatedir[@]|$(localstatedir)|g' \ -e 's|@prefix[@]|$(prefix)|g' \ + -e 's|@BASH[@]|$(BASH)|g' \ -e 's|@PACKAGE_VERSION[@]|$(REAL_PACKAGE_VERSION)|g' \ -e 's|@PACKAGE_BUGREPORT[@]|$(PACKAGE_BUGREPORT)|g' \ -e 's|@PACKAGE_NAME[@]|$(PACKAGE_NAME)|g' \ diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 8f06a86d..afedc314 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 78b2345b..eb6691c8 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 1550fa10..d45678d9 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 0cd4c083..3851b771 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 945966e3..9bc70696 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 -- cgit v1.2.3-24-g4f1b