[pacman-dev] [PATCH 2/2] Use sysconfdir, localstatedir, BASH instead of hard-coded values (v.2)
Nezmer
git at nezmer.info
Mon Oct 11 19:23:16 EDT 2010
Signed-off-by: Nezmer <git at nezmer.info>
---
configure.ac | 1 +
contrib/Makefile.am | 30 ++++++++++++++++++++++++++++--
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, 78 insertions(+), 49 deletions(-)
diff --git a/configure.ac b/configure.ac
index 37b26f2..115aeb1 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 c6243b1..f10abbf 100644
--- a/contrib/Makefile.am
+++ b/contrib/Makefile.am
@@ -1,4 +1,4 @@
-EXTRA_DIST = \
+OURFILES = \
PKGBUILD.vim \
bacman \
bash_completion \
@@ -9,7 +9,33 @@ 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
+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 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:- at 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 <aaronmgriffin at gmail.com>
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:- at localstatedir@/lib/pacman}/local"
+pac_cache="${CacheDir:- at 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 <carlocci at gmail.com>
@@ -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:- at 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_long#@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_long#@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_long#@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..748eb5f 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -96,6 +96,7 @@ ASCIIDOC_OPTS = \
-a pacman_version="$(REAL_PACKAGE_VERSION)" \
-a pacman_date="`date +%Y-%m-%d`" \
-a pkgdatadir=$(pkgdatadir) \
+ -a localstatedir=$(localstatedir) \
-a sysconfdir=$(sysconfdir)
A2X_OPTS = \
diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
index a2fdb3f..ff0f2b6 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..2656fc7 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..ecc5c74 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..b9e3038 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 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
--
1.7.3.1
More information about the pacman-dev
mailing list