[pacman-dev] [PATCH] makepkg: try standard paths for coreutils du

Allan McRae allan at archlinux.org
Tue Jun 29 23:35:53 EDT 2010


Attempt to find "du" from coreutils in the standard paths and if
not revert to the version in the users PATH.  Using the full path
prevents issues such as FS#19932, where a different and incompatible
version of du is put earlier in the users path.

Signed-off-by: Allan McRae <allan at archlinux.org>
---
 configure.ac          |    1 +
 scripts/Makefile.am   |    1 +
 scripts/makepkg.sh.in |    2 +-
 3 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/configure.ac b/configure.ac
index 4faf20d..7d4e60f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -210,6 +210,7 @@ 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)
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 330acb9..0fde334 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -42,6 +42,7 @@ edit = sed \
 	-e 's|@BUILDSCRIPT[@]|$(BUILDSCRIPT)|g' \
 	-e 's|@SIZECMD[@]|$(SIZECMD)|g' \
 	-e 's|@SEDINPLACE[@]|$(SEDINPLACE)|g' \
+	-e 's|@DUPATH[@]|$(DUPATH)|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/makepkg.sh.in b/scripts/makepkg.sh.in
index 6ad83f0..f3c7217 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -902,7 +902,7 @@ write_pkginfo() {
 	else
 		local packager="Unknown Packager"
 	fi
-	local size="$(du -sk)"
+	local size="$(@DUPATH@ -sk)"
 	size="$(( ${size%%[^0-9]*} * 1024 ))"
 
 	msg2 "$(gettext "Generating .PKGINFO file...")"
-- 
1.7.1



More information about the pacman-dev mailing list