diff options
author | Allan McRae <allan@archlinux.org> | 2009-04-26 20:58:04 +1000 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2009-04-26 09:22:23 -0500 |
commit | c27904661ef96cb2e7c729ce82b527146529c768 (patch) | |
tree | 41c3d407ecab07f9dffd477ab133dd18fcf66456 | |
parent | 10584ec8eab873ffb4b03dd8e4a4703dabed8955 (diff) | |
download | 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.ac | 5 | ||||
-rw-r--r-- | scripts/Makefile.am | 1 | ||||
-rw-r--r-- | scripts/makepkg.sh.in | 4 |
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 |