summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2012-02-24 21:40:20 +1000
committerDan McGee <dan@archlinux.org>2012-03-05 11:44:34 -0600
commitcb64fbeac41308ee8c46384a126195a1fd75a361 (patch)
tree8c15263ba96093d255625a7296d61198fd2b7c0c
parentea7fc8962a819a04237876995140363a818202d4 (diff)
downloadpacman-cb64fbeac41308ee8c46384a126195a1fd75a361.tar.xz
Do not dereference symlinks when calculating size
Passing the "-L" flag to stat means we get the size of the file being pointed to for symlinks instead of the size of the symlink. Keep "-L" usage in repo-add as we want the actual size of the package/delta/signature there. Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--configure.ac6
-rw-r--r--scripts/repo-add.sh.in6
2 files changed, 6 insertions, 6 deletions
diff --git a/configure.ac b/configure.ac
index a1d7bfee..03f907d0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -219,14 +219,14 @@ GCC_VISIBILITY_CC
GCC_GNU89_INLINE_CC
# Host-dependant definitions
-SIZECMD="stat -L -c %s"
+SIZECMD="stat -c %s"
SEDINPLACE="sed -i"
STRIP_BINARIES="--strip-all"
STRIP_SHARED="--strip-unneeded"
STRIP_STATIC="--strip-debug"
case "${host_os}" in
*bsd*)
- SIZECMD="stat -L -f %z"
+ SIZECMD="stat -f %z"
SEDINPLACE="sed -i \"\""
;;
cygwin*)
@@ -235,7 +235,7 @@ case "${host_os}" in
;;
darwin*)
host_os_darwin=yes
- SIZECMD="/usr/bin/stat -L -f %z"
+ SIZECMD="/usr/bin/stat -f %z"
SEDINPLACE="/usr/bin/sed -i ''"
STRIP_BINARIES=""
STRIP_SHARED="-S"
diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in
index 26aa7257..2bb9c83f 100644
--- a/scripts/repo-add.sh.in
+++ b/scripts/repo-add.sh.in
@@ -144,7 +144,7 @@ db_write_delta() {
# get md5sum and compressed size of package
md5sum="$(openssl dgst -md5 "$deltafile")"
md5sum="${md5sum##* }"
- csize=$(@SIZECMD@ "$deltafile")
+ csize=$(@SIZECMD@ -L "$deltafile")
oldfile=$(xdelta3 printhdr $deltafile | grep "XDELTA filename (source)" | sed 's/.*: *//')
newfile=$(xdelta3 printhdr $deltafile | grep "XDELTA filename (output)" | sed 's/.*: *//')
@@ -294,7 +294,7 @@ db_write_entry() {
# compute base64'd PGP signature
if [[ -f "$pkgfile.sig" ]]; then
- pgpsigsize=$(@SIZECMD@ "$pkgfile.sig")
+ pgpsigsize=$(@SIZECMD@ -L "$pkgfile.sig")
if (( pgpsigsize > 16384 )); then
error "$(gettext "Invalid package signature file '%s'.")" "$pkgfile.sig"
return 1
@@ -303,7 +303,7 @@ db_write_entry() {
pgpsig=$(openssl base64 -in "$pkgfile.sig" | tr -d '\n')
fi
- csize=$(@SIZECMD@ "$pkgfile")
+ csize=$(@SIZECMD@ -L "$pkgfile")
# compute checksums
msg2 "$(gettext "Computing checksums...")"