[pacman-dev] [PATCH] Make strip paths configurable

Aaron Griffin aaronmgriffin at gmail.com
Mon Jul 28 16:45:36 EDT 2008


On Mon, Jul 28, 2008 at 3:22 PM, Xavier <shiningxc at gmail.com> wrote:
> On Sun, Jul 20, 2008 at 8:01 AM, Allan McRae <allan at archlinux.org> wrote:
>> 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 <thomas at archlinux.org>
>> Signed-off-by: Allan McRae <allan at archlinux.org>
>> ---
>>  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 b5a49ba..8b39c46 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 bb2018f..0241a8e 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 2777102..ae19983 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";;
>
> That line seems to break for me here :
>> +               if [ -z "${STRIP_DIRS[@]}" ]; then
>
> ==> Tidying install...
>  -> Compressing man pages...
>  -> Stripping debugging symbols from binaries and libraries...
> /usr/bin/makepkg: line 735: [: too many arguments
>
> Can anyone reproduce this? (just run makepkg from git on any packages).

Weird. "Too many arguments" should only happen if that was unquoted...

aaron at gerolde:~$ [ -z foo bar baz ]
-bash: [: too many arguments
aaron at gerolde:~$ [ -z "foo bar baz" ]
aaron at gerolde:~$


More information about the pacman-dev mailing list