diff options
author | Wolfgang Bumiller <wry.git@bumiller.com> | 2014-08-10 11:39:12 +0200 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2014-09-23 13:43:16 +0200 |
commit | eab8cf6241119b2c1c44d5ec68ea53c7e4224a3b (patch) | |
tree | 5e474b20c3efbbd849e0659e13926432888bdb8e | |
parent | f0c351b3fa9ca56ae180b2b10fc2f0f41cde0ac7 (diff) | |
download | pacman-eab8cf6241119b2c1c44d5ec68ea53c7e4224a3b.tar.gz pacman-eab8cf6241119b2c1c44d5ec68ea53c7e4224a3b.tar.xz |
replace --reference on chmod/chown commands
Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r-- | configure.ac | 10 | ||||
-rw-r--r-- | scripts/Makefile.am | 2 | ||||
-rw-r--r-- | scripts/pacman-optimize.sh.in | 4 |
3 files changed, 14 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac index 45f40f01..0a7b2546 100644 --- a/configure.ac +++ b/configure.ac @@ -319,6 +319,8 @@ GCC_VISIBILITY_CC # Host-dependant definitions INODECMD="stat -c '%i %n'" +OWNERCMD="stat -c '%u:%g'" +MODECMD="stat -c '%a'" SIZECMD="stat -c %s" SEDINPLACE="sed --follow-symlinks -i" DUFLAGS="-sk --apparent-size" @@ -328,6 +330,8 @@ STRIP_STATIC="--strip-debug" case "${host_os}" in *bsd*) INODECMD="stat -f '%i %N'" + OWNERCMD="stat -f '%u:%g'" + MODECMD="stat -f '%Lp'" SIZECMD="stat -f %z" SEDINPLACE="sed -i \"\"" DUFLAGS="-sk" @@ -335,6 +339,8 @@ case "${host_os}" in darwin*) host_os_darwin=yes 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" SEDINPLACE="/usr/bin/sed -i ''" DUFLAGS="-sk" @@ -347,6 +353,8 @@ esac AM_CONDITIONAL([DARWIN], test "x$host_os_darwin" = "xyes") AC_PATH_PROGS([DUPATH], [du], [du], [/usr/bin$PATH_SEPARATOR/bin] ) AC_SUBST(INODECMD) +AC_SUBST(OWNERCMD) +AC_SUBST(MODECMD) AC_SUBST(SIZECMD) AC_SUBST(SEDINPLACE) AC_SUBST(DUFLAGS) @@ -528,6 +536,8 @@ ${PACKAGE_NAME}: Architecture : ${CARCH} Host Type : ${CHOST} File inode command : ${INODECMD} + File owner command : ${OWNERCMD} + File mode command : ${MODECMD} Filesize command : ${SIZECMD} In-place sed command : ${SEDINPLACE} diff --git a/scripts/Makefile.am b/scripts/Makefile.am index bc1dc10c..4ef3ce0e 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -69,6 +69,8 @@ edit = sed \ -e 's|@TEMPLATE_DIR[@]|$(TEMPLATE_DIR)|g' \ -e 's|@DEBUGSUFFIX[@]|$(DEBUGSUFFIX)|g' \ -e "s|@INODECMD[@]|$(INODECMD)|g" \ + -e "s|@OWNERCMD[@]|$(OWNERCMD)|g" \ + -e "s|@MODECMD[@]|$(MODECMD)|g" \ -e 's|@SIZECMD[@]|$(SIZECMD)|g' \ -e 's|@SEDINPLACE[@]|$(SEDINPLACE)|g' \ -e 's|@DUFLAGS[@]|$(DUFLAGS)|g' \ diff --git a/scripts/pacman-optimize.sh.in b/scripts/pacman-optimize.sh.in index 93742695..7c809193 100644 --- a/scripts/pacman-optimize.sh.in +++ b/scripts/pacman-optimize.sh.in @@ -168,8 +168,8 @@ msg "$(gettext "Rotating database into place...")" fail=0 mv "$localdb" "$localdb.old" || fail=1 mv "$localdb.new" "$localdb" || fail=1 -chmod --reference="$localdb.old" "$localdb" || fail=1 -chown --reference="$localdb.old" "$localdb" || fail=1 +chmod $(@MODECMD@ "$localdb.old") "$localdb" || fail=1 +chown $(@OWNERCMD@ "$localdb.old") "$localdb" || fail=1 if (( fail )); then # failure with our directory shuffle die_r "$(gettext "New database substitution failed. Check for %s, %s, and %s directories.")" "$localdb" "$localdb.old" "$localdb.new" |