[pacman-dev] [PATCH] makepkg: remove STRIP_DIRS

Allan McRae allan at archlinux.org
Wed Sep 29 07:28:53 EDT 2010


For binary packages, the majority of the time used in the debugs symbol
stripping process is the actual stripping of the binaries/libraries and
not the testing of which files to strip.  This allows more complete
stripping of packages that install to "non-standard" paths that would
not be generally included in makepkg.conf.

Any performance hit that may be apparent for (_large_) "arch=('any')"
packages can readily be avoided by disabling stripping in the PKGBUILD
options array.

Signed-off-by: Allan McRae <allan at archlinux.org>
---
 doc/makepkg.conf.5.txt |    7 -------
 etc/makepkg.conf.in    |    4 +---
 scripts/makepkg.sh.in  |    4 ++--
 3 files changed, 3 insertions(+), 12 deletions(-)

diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
index 753b179..4700d9c 100644
--- a/doc/makepkg.conf.5.txt
+++ b/doc/makepkg.conf.5.txt
@@ -160,13 +160,6 @@ Options
 	that are located in opt/, you may need to add the directory to this
 	array. *NOTE:* Do not add the leading slash to the directory name.
 
-**STRIP_DIRS=(**bin lib sbin usr/{bin,lib} ...**)**::
-	If `strip` is specified in the OPTIONS array, this variable will
-	instruct makepkg where to look to for files to strip. If you build
-	packages that are located in opt/, you may need to add the directory
-	to this array. *NOTE:* Do not add the leading slash to the directory
-	name.
-
 **PURGE_TARGETS=(**usr/{,share}/info/dir .podlist *.pod...**)**::
 	If `purge` is specified in the OPTIONS array, this variable will
 	instruct makepkg which files to remove from the package. This is
diff --git a/etc/makepkg.conf.in b/etc/makepkg.conf.in
index f0d1c44..c795432 100644
--- a/etc/makepkg.conf.in
+++ b/etc/makepkg.conf.in
@@ -61,7 +61,7 @@ BUILDENV=(fakeroot !distcc color !ccache)
 # Default: OPTIONS=(strip docs libtool emptydirs zipman purge)
 #  A negated option will do the opposite of the comments below.
 #
-#-- strip:     Strip symbols from binaries/libraries in STRIP_DIRS
+#-- strip:     Strip symbols from binaries/libraries
 #-- docs:      Save doc directories specified by DOC_DIRS
 #-- libtool:   Leave libtool (.la) files in packages
 #-- emptydirs: Leave empty directories in packages
@@ -82,8 +82,6 @@ STRIP_STATIC="@STRIP_STATIC@"
 MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
 #-- Doc directories to remove (if !docs is specified)
 DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
-#-- Directories to be searched for the strip option (if strip is specified)
-STRIP_DIRS=(bin lib sbin usr/{bin,lib,sbin,local/{bin,lib,sbin}} opt/*/{bin,lib,sbin})
 #-- Files to be removed from all packages (if purge is specified)
 PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
 
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index de24338..ed1380d 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -874,13 +874,13 @@ tidy_install() {
 		done
 	fi
 
-	if [[ $(check_option strip) = y && -n ${STRIP_DIRS[*]} ]]; then
+	if [[ $(check_option strip) = y ]]; then
 		msg2 "$(gettext "Stripping unneeded symbols from binaries and libraries...")"
 		# make sure library stripping variables are defined to prevent excess stripping
 		[[ -z ${STRIP_SHARED+x} ]] && STRIP_SHARED="-S"
 		[[ -z ${STRIP_STATIC+x} ]] && STRIP_STATIC="-S"
 		local binary
-		find ${STRIP_DIRS[@]} -type f -perm -u+w 2>/dev/null | while read binary ; do
+		find . -type f -perm -u+w 2>/dev/null | while read binary ; do
 			case "$(file -bi "$binary")" in
 				*application/x-sharedlib*)  # Libraries (.so)
 					/usr/bin/strip $STRIP_SHARED "$binary";;
-- 
1.7.3



More information about the pacman-dev mailing list