summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2008-08-19 23:29:56 -0500
committerDan McGee <dan@archlinux.org>2008-08-19 23:29:56 -0500
commit282eeadc68fec1da8651d0c65ad0dfebd11a9c7f (patch)
tree1d3cf24273b8514c8ffa67e6d7d8b90fc876eb99
parent9609c0f1351a73e06edcfda1494a41d66c51dcb5 (diff)
Factor shell script size command into configure script
Commit 149839c5391e9a93 introduced a small behavior regression as a drawback for a better portability. repo-add now includes the approximate size (to the nearest KB) rather than an exact size due to the switching of the du command to a more portable form. Instead of sacrificing the exact size, use configure to help us determine a valid command to acquire our filesize and place it in the sync database. Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--configure.ac7
-rw-r--r--scripts/Makefile.am1
-rw-r--r--scripts/repo-add.sh.in4
3 files changed, 10 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 9f4209b2..20aa1807 100644
--- a/configure.ac
+++ b/configure.ac
@@ -182,18 +182,24 @@ GCC_VISIBILITY_CC
GCC_GNU89_INLINE_CC
# Host-dependant definitions
+SIZECMD="stat -c %s"
case "${host_os}" in
+ *bsd*)
+ SIZECMD="stat -f %z"
+ ;;
cygwin*)
host_os_cygwin=yes
CFLAGS="$CFLAGS -DCYGWIN"
;;
darwin*)
host_os_darwin=yes
+ SIZECMD="stat -f %z"
;;
esac
AM_CONDITIONAL([CYGWIN], test "x$host_os_cygwin" = "xyes")
AM_CONDITIONAL([DARWIN], test "x$host_os_darwin" = "xyes")
+AC_SUBST(SIZECMD)
# Check for architecture, used in default makepkg.conf
# (Note single space left after CARCHFLAGS)
@@ -365,6 +371,7 @@ ${PACKAGE_NAME}:
Architecture : ${CARCH}
Architecture flags : ${CARCHFLAGS}
Host Type : ${CHOST}
+ Filesize command : ${SIZECMD}
libalpm version : ${LIB_VERSION}
libalpm version info : ${LIB_VERSION_INFO}
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 7dccff9d..fd8fab7f 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -37,6 +37,7 @@ edit = sed \
-e 's|@PACKAGE_BUGREPORT[@]|$(PACKAGE_BUGREPORT)|g' \
-e 's|@PACKAGE_NAME[@]|$(PACKAGE_NAME)|g' \
-e 's|@DBEXT[@]|$(DBEXT)|g' \
+ -e 's|@SIZECMD[@]|$(SIZECMD)|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/repo-add.sh.in b/scripts/repo-add.sh.in
index 538976d7..f3a3a4f4 100644
--- a/scripts/repo-add.sh.in
+++ b/scripts/repo-add.sh.in
@@ -122,7 +122,7 @@ db_write_delta()
# get md5sum and size of delta
md5sum="$(md5sum "$deltafile" | cut -d ' ' -f 1)"
- csize=$(du -kL "$deltafile" | awk '{print $1 * 1024}')
+ csize=$(@SIZECMD@ "$deltafile")
# ensure variables were found
if [ -z "$pkgname" -o -z "$fromver" -o -z "$tover" -o -z "$arch" ]; then
@@ -170,7 +170,7 @@ db_write_entry()
IFS=$OLDIFS
# get compressed size of package
- csize=$(du -kL "$pkgfile" | awk '{print $1 * 1024}')
+ csize=$(@SIZECMD@ "$pkgfile")
startdir=$(pwd)
pushd "$gstmpdir" 2>&1 >/dev/null