makepkg: calculate exact total file size
The current calculation of the total file size for a package using "du" suffers from issues in portability and correctness. Especially on btrfs, this can result in clearly wrong package information such as: Download Size : 14684.29 KiB Installed Size : 7628.00 KiB Use an approach based on "stat" to calculate total file size. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
1b46137426
commit
b264fb9e9d
3 changed files with 1 additions and 4 deletions
|
@ -245,7 +245,6 @@ esac
|
|||
|
||||
AM_CONDITIONAL([CYGWIN], test "x$host_os_cygwin" = "xyes")
|
||||
AM_CONDITIONAL([DARWIN], test "x$host_os_darwin" = "xyes")
|
||||
AC_PATH_PROGS([DUPATH], [du], [du], [/usr/bin$PATH_SEPARATOR/bin] )
|
||||
AC_SUBST(SIZECMD)
|
||||
AC_SUBST(SEDINPLACE)
|
||||
AC_SUBST(STRIP_BINARIES)
|
||||
|
|
|
@ -53,7 +53,6 @@ edit = sed \
|
|||
-e 's|@BUILDSCRIPT[@]|$(BUILDSCRIPT)|g' \
|
||||
-e 's|@SIZECMD[@]|$(SIZECMD)|g' \
|
||||
-e 's|@SEDINPLACE[@]|$(SEDINPLACE)|g' \
|
||||
-e 's|@DUPATH[@]|$(DUPATH)|g' \
|
||||
-e 's|@SCRIPTNAME[@]|$@|g' \
|
||||
-e 's|@configure_input[@]|Generated from $@.sh.in; do not edit by hand.|g'
|
||||
|
||||
|
|
|
@ -1109,8 +1109,7 @@ write_pkginfo() {
|
|||
else
|
||||
local packager="Unknown Packager"
|
||||
fi
|
||||
local size="$(@DUPATH@ -sk)"
|
||||
size="$(( ${size%%[^0-9]*} * 1024 ))"
|
||||
local size="$(find . -print0 | xargs -0 @SIZECMD@ | awk '{ sum += $1 } END { print sum }')"
|
||||
|
||||
msg2 "$(gettext "Generating %s file...")" ".PKGINFO"
|
||||
echo "# Generated by makepkg $myver"
|
||||
|
|
Loading…
Add table
Reference in a new issue