replace --reference on chmod/chown commands

Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Wolfgang Bumiller 2014-08-10 19:39:12 +10:00 committed by Allan McRae
parent f0c351b3fa
commit eab8cf6241
3 changed files with 14 additions and 2 deletions

View File

@ -319,6 +319,8 @@ GCC_VISIBILITY_CC
# Host-dependant definitions # Host-dependant definitions
INODECMD="stat -c '%i %n'" INODECMD="stat -c '%i %n'"
OWNERCMD="stat -c '%u:%g'"
MODECMD="stat -c '%a'"
SIZECMD="stat -c %s" SIZECMD="stat -c %s"
SEDINPLACE="sed --follow-symlinks -i" SEDINPLACE="sed --follow-symlinks -i"
DUFLAGS="-sk --apparent-size" DUFLAGS="-sk --apparent-size"
@ -328,6 +330,8 @@ STRIP_STATIC="--strip-debug"
case "${host_os}" in case "${host_os}" in
*bsd*) *bsd*)
INODECMD="stat -f '%i %N'" INODECMD="stat -f '%i %N'"
OWNERCMD="stat -f '%u:%g'"
MODECMD="stat -f '%Lp'"
SIZECMD="stat -f %z" SIZECMD="stat -f %z"
SEDINPLACE="sed -i \"\"" SEDINPLACE="sed -i \"\""
DUFLAGS="-sk" DUFLAGS="-sk"
@ -335,6 +339,8 @@ case "${host_os}" in
darwin*) darwin*)
host_os_darwin=yes host_os_darwin=yes
INODECMD="/usr/bin/stat -f '%i %N'" INODECMD="/usr/bin/stat -f '%i %N'"
OWNERCMD="/usr/bin/stat -f '%u:%g'"
MODECMD="/usr/bin/stat -f '%Lp'"
SIZECMD="/usr/bin/stat -f %z" SIZECMD="/usr/bin/stat -f %z"
SEDINPLACE="/usr/bin/sed -i ''" SEDINPLACE="/usr/bin/sed -i ''"
DUFLAGS="-sk" DUFLAGS="-sk"
@ -347,6 +353,8 @@ esac
AM_CONDITIONAL([DARWIN], test "x$host_os_darwin" = "xyes") AM_CONDITIONAL([DARWIN], test "x$host_os_darwin" = "xyes")
AC_PATH_PROGS([DUPATH], [du], [du], [/usr/bin$PATH_SEPARATOR/bin] ) AC_PATH_PROGS([DUPATH], [du], [du], [/usr/bin$PATH_SEPARATOR/bin] )
AC_SUBST(INODECMD) AC_SUBST(INODECMD)
AC_SUBST(OWNERCMD)
AC_SUBST(MODECMD)
AC_SUBST(SIZECMD) AC_SUBST(SIZECMD)
AC_SUBST(SEDINPLACE) AC_SUBST(SEDINPLACE)
AC_SUBST(DUFLAGS) AC_SUBST(DUFLAGS)
@ -528,6 +536,8 @@ ${PACKAGE_NAME}:
Architecture : ${CARCH} Architecture : ${CARCH}
Host Type : ${CHOST} Host Type : ${CHOST}
File inode command : ${INODECMD} File inode command : ${INODECMD}
File owner command : ${OWNERCMD}
File mode command : ${MODECMD}
Filesize command : ${SIZECMD} Filesize command : ${SIZECMD}
In-place sed command : ${SEDINPLACE} In-place sed command : ${SEDINPLACE}

View File

@ -69,6 +69,8 @@ edit = sed \
-e 's|@TEMPLATE_DIR[@]|$(TEMPLATE_DIR)|g' \ -e 's|@TEMPLATE_DIR[@]|$(TEMPLATE_DIR)|g' \
-e 's|@DEBUGSUFFIX[@]|$(DEBUGSUFFIX)|g' \ -e 's|@DEBUGSUFFIX[@]|$(DEBUGSUFFIX)|g' \
-e "s|@INODECMD[@]|$(INODECMD)|g" \ -e "s|@INODECMD[@]|$(INODECMD)|g" \
-e "s|@OWNERCMD[@]|$(OWNERCMD)|g" \
-e "s|@MODECMD[@]|$(MODECMD)|g" \
-e 's|@SIZECMD[@]|$(SIZECMD)|g' \ -e 's|@SIZECMD[@]|$(SIZECMD)|g' \
-e 's|@SEDINPLACE[@]|$(SEDINPLACE)|g' \ -e 's|@SEDINPLACE[@]|$(SEDINPLACE)|g' \
-e 's|@DUFLAGS[@]|$(DUFLAGS)|g' \ -e 's|@DUFLAGS[@]|$(DUFLAGS)|g' \

View File

@ -168,8 +168,8 @@ msg "$(gettext "Rotating database into place...")"
fail=0 fail=0
mv "$localdb" "$localdb.old" || fail=1 mv "$localdb" "$localdb.old" || fail=1
mv "$localdb.new" "$localdb" || fail=1 mv "$localdb.new" "$localdb" || fail=1
chmod --reference="$localdb.old" "$localdb" || fail=1 chmod $(@MODECMD@ "$localdb.old") "$localdb" || fail=1
chown --reference="$localdb.old" "$localdb" || fail=1 chown $(@OWNERCMD@ "$localdb.old") "$localdb" || fail=1
if (( fail )); then if (( fail )); then
# failure with our directory shuffle # failure with our directory shuffle
die_r "$(gettext "New database substitution failed. Check for %s, %s, and %s directories.")" "$localdb" "$localdb.old" "$localdb.new" die_r "$(gettext "New database substitution failed. Check for %s, %s, and %s directories.")" "$localdb" "$localdb.old" "$localdb.new"