summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2009-04-26 12:58:04 +0200
committerDan McGee <dan@archlinux.org>2009-04-26 16:22:23 +0200
commitc27904661ef96cb2e7c729ce82b527146529c768 (patch)
tree41c3d407ecab07f9dffd477ab133dd18fcf66456
parent10584ec8eab873ffb4b03dd8e4a4703dabed8955 (diff)
downloadpacman-c27904661ef96cb2e7c729ce82b527146529c768.tar.gz
pacman-c27904661ef96cb2e7c729ce82b527146529c768.tar.xz
makepkg: make in-place sed portable
Do a sed replacement in-place is not very portable. On Mac OSX and BSDs, the syntax is "sed -i ''" where as with GNU sed the command is "sed -i''" or just "sed -i". This patch detects which command should be used during configure. Credit to Kevin Barry who researched this issue and provided a patch to work around this using temporary backup files. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--configure.ac5
-rw-r--r--scripts/Makefile.am1
-rw-r--r--scripts/makepkg.sh.in4
3 files changed, 8 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 5dcbe795..a83d5e4d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -180,9 +180,11 @@ GCC_GNU89_INLINE_CC
# Host-dependant definitions
SIZECMD="stat -c %s"
+SEDINPLACE="sed -i"
case "${host_os}" in
*bsd*)
SIZECMD="stat -f %z"
+ SEDINPLACE="sed -i ''"
;;
cygwin*)
host_os_cygwin=yes
@@ -191,12 +193,14 @@ case "${host_os}" in
darwin*)
host_os_darwin=yes
SIZECMD="/usr/bin/stat -f %z"
+ SEDINPLACE="sed -i ''"
;;
esac
AM_CONDITIONAL([CYGWIN], test "x$host_os_cygwin" = "xyes")
AM_CONDITIONAL([DARWIN], test "x$host_os_darwin" = "xyes")
AC_SUBST(SIZECMD)
+AC_SUBST(SEDINPLACE)
# Check for architecture, used in default makepkg.conf
# (Note single space left after CARCHFLAGS)
@@ -356,6 +360,7 @@ ${PACKAGE_NAME}:
Architecture flags : ${CARCHFLAGS}
Host Type : ${CHOST}
Filesize command : ${SIZECMD}
+ In-place sed command : ${SEDINPLACE}
libalpm version : ${LIB_VERSION}
libalpm version info : ${LIB_VERSION_INFO}
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 5a2b780c..5d656534 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -41,6 +41,7 @@ edit = sed \
-e 's|@DBEXT[@]|$(DBEXT)|g' \
-e 's|@BUILDSCRIPT[@]|$(BUILDSCRIPT)|g' \
-e 's|@SIZECMD[@]|$(SIZECMD)|g' \
+ -e 's|@SEDINPLACE[@]|$(SEDINPLACE)|g' \
-e 's|@configure_input[@]|Generated from $@.in; do not edit by hand.|g'
## All the scripts depend on Makefile so that they are rebuilt when the
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 97acfb49..b8e09f50 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1172,8 +1172,8 @@ devel_update() {
if [ -n "$newpkgver" ]; then
if [ "$newpkgver" != "$pkgver" ]; then
if [ -f "./$BUILDSCRIPT" ]; then
- sed -i "s/^pkgver=[^ ]*/pkgver=$newpkgver/" "./$BUILDSCRIPT"
- sed -i "s/^pkgrel=[^ ]*/pkgrel=1/" "./$BUILDSCRIPT"
+ @SEDINPLACE@ "s/^pkgver=[^ ]*/pkgver=$newpkgver/" "./$BUILDSCRIPT"
+ @SEDINPLACE@ "s/^pkgrel=[^ ]*/pkgrel=1/" "./$BUILDSCRIPT"
source "$BUILDSCRIPT"
fi
fi