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>
This commit is contained in:
parent
10584ec8ea
commit
c27904661e
|
@ -180,9 +180,11 @@ GCC_GNU89_INLINE_CC
|
||||||
|
|
||||||
# Host-dependant definitions
|
# Host-dependant definitions
|
||||||
SIZECMD="stat -c %s"
|
SIZECMD="stat -c %s"
|
||||||
|
SEDINPLACE="sed -i"
|
||||||
case "${host_os}" in
|
case "${host_os}" in
|
||||||
*bsd*)
|
*bsd*)
|
||||||
SIZECMD="stat -f %z"
|
SIZECMD="stat -f %z"
|
||||||
|
SEDINPLACE="sed -i ''"
|
||||||
;;
|
;;
|
||||||
cygwin*)
|
cygwin*)
|
||||||
host_os_cygwin=yes
|
host_os_cygwin=yes
|
||||||
|
@ -191,12 +193,14 @@ case "${host_os}" in
|
||||||
darwin*)
|
darwin*)
|
||||||
host_os_darwin=yes
|
host_os_darwin=yes
|
||||||
SIZECMD="/usr/bin/stat -f %z"
|
SIZECMD="/usr/bin/stat -f %z"
|
||||||
|
SEDINPLACE="sed -i ''"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
AM_CONDITIONAL([CYGWIN], test "x$host_os_cygwin" = "xyes")
|
AM_CONDITIONAL([CYGWIN], test "x$host_os_cygwin" = "xyes")
|
||||||
AM_CONDITIONAL([DARWIN], test "x$host_os_darwin" = "xyes")
|
AM_CONDITIONAL([DARWIN], test "x$host_os_darwin" = "xyes")
|
||||||
AC_SUBST(SIZECMD)
|
AC_SUBST(SIZECMD)
|
||||||
|
AC_SUBST(SEDINPLACE)
|
||||||
|
|
||||||
# Check for architecture, used in default makepkg.conf
|
# Check for architecture, used in default makepkg.conf
|
||||||
# (Note single space left after CARCHFLAGS)
|
# (Note single space left after CARCHFLAGS)
|
||||||
|
@ -356,6 +360,7 @@ ${PACKAGE_NAME}:
|
||||||
Architecture flags : ${CARCHFLAGS}
|
Architecture flags : ${CARCHFLAGS}
|
||||||
Host Type : ${CHOST}
|
Host Type : ${CHOST}
|
||||||
Filesize command : ${SIZECMD}
|
Filesize command : ${SIZECMD}
|
||||||
|
In-place sed command : ${SEDINPLACE}
|
||||||
|
|
||||||
libalpm version : ${LIB_VERSION}
|
libalpm version : ${LIB_VERSION}
|
||||||
libalpm version info : ${LIB_VERSION_INFO}
|
libalpm version info : ${LIB_VERSION_INFO}
|
||||||
|
|
|
@ -41,6 +41,7 @@ edit = sed \
|
||||||
-e 's|@DBEXT[@]|$(DBEXT)|g' \
|
-e 's|@DBEXT[@]|$(DBEXT)|g' \
|
||||||
-e 's|@BUILDSCRIPT[@]|$(BUILDSCRIPT)|g' \
|
-e 's|@BUILDSCRIPT[@]|$(BUILDSCRIPT)|g' \
|
||||||
-e 's|@SIZECMD[@]|$(SIZECMD)|g' \
|
-e 's|@SIZECMD[@]|$(SIZECMD)|g' \
|
||||||
|
-e 's|@SEDINPLACE[@]|$(SEDINPLACE)|g' \
|
||||||
-e 's|@configure_input[@]|Generated from $@.in; do not edit by hand.|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
|
## All the scripts depend on Makefile so that they are rebuilt when the
|
||||||
|
|
|
@ -1172,8 +1172,8 @@ devel_update() {
|
||||||
if [ -n "$newpkgver" ]; then
|
if [ -n "$newpkgver" ]; then
|
||||||
if [ "$newpkgver" != "$pkgver" ]; then
|
if [ "$newpkgver" != "$pkgver" ]; then
|
||||||
if [ -f "./$BUILDSCRIPT" ]; then
|
if [ -f "./$BUILDSCRIPT" ]; then
|
||||||
sed -i "s/^pkgver=[^ ]*/pkgver=$newpkgver/" "./$BUILDSCRIPT"
|
@SEDINPLACE@ "s/^pkgver=[^ ]*/pkgver=$newpkgver/" "./$BUILDSCRIPT"
|
||||||
sed -i "s/^pkgrel=[^ ]*/pkgrel=1/" "./$BUILDSCRIPT"
|
@SEDINPLACE@ "s/^pkgrel=[^ ]*/pkgrel=1/" "./$BUILDSCRIPT"
|
||||||
source "$BUILDSCRIPT"
|
source "$BUILDSCRIPT"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue