From ae9e33ed88849bfdf4a9530f674701cc32d72563 Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Sun, 20 Jul 2008 15:57:03 +1000 Subject: Make strip paths configurable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch introduces a new STRIP_DIRS makepkg.conf option to change makepkg's search path when stripping binaries. Original work by: Thomas Bächler Signed-off-by: Allan McRae Signed-off-by: Dan McGee --- doc/makepkg.conf.5.txt | 7 +++++++ etc/makepkg.conf.in | 2 ++ scripts/makepkg.sh.in | 9 ++++++--- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt index b5a49ba8..8b39c467 100644 --- a/doc/makepkg.conf.5.txt +++ b/doc/makepkg.conf.5.txt @@ -134,6 +134,13 @@ 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. + **PKGDEST=**"/path/to/folder":: If this value is not set, packages will by default be placed in the current directory (location of the linkman:PKGBUILD[5]). Many people diff --git a/etc/makepkg.conf.in b/etc/makepkg.conf.in index bb2018f1..0241a8ec 100644 --- a/etc/makepkg.conf.in +++ b/etc/makepkg.conf.in @@ -73,6 +73,8 @@ OPTIONS=(strip docs libtool emptydirs zipman) INTEGRITY_CHECK=(md5) #-- Info and doc directories to remove (if option set correctly above) DOC_DIRS=(usr/{,share/}{info,doc,gtk-doc} opt/*/{info,doc,gtk-doc}) +#-- Directories to be searched for the strip option (if option set correctly above) +STRIP_DIRS=(bin lib sbin usr/{bin,lib,sbin,local/{bin,lib,sbin}} opt/*/{bin,lib,sbin}) ######################################################################### # PACKAGE OUTPUT diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 27771025..ae199837 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -731,9 +731,12 @@ tidy_install() { if [ "$(check_option strip)" = "y" ]; then msg2 "$(gettext "Stripping debugging symbols from binaries and libraries...")" - local binary bindirs - bindirs="bin lib sbin usr/bin usr/lib usr/sbin usr/local/bin usr/local/lib usr/local/sbin opt/*/bin opt/*/lib opt/*/sbin" - find ${bindirs} -type f 2>/dev/null | while read binary ; do + local binary + if [ -z "${STRIP_DIRS[@]}" ]; then + # fall back to default value + STRIP_DIRS=(bin lib sbin usr/{bin,lib,sbin,local/{bin,lib,sbin}} opt/*/{bin,lib,sbin}) + fi + find ${STRIP_DIRS[@]} -type f 2>/dev/null | while read binary ; do case "$(file -biz "$binary")" in *application/x-sharedlib*) # Libraries (.so) /usr/bin/strip --strip-debug "$binary";; -- cgit v1.2.3