On 31/10/13 23:38, Dave Reisner wrote:
> On Thu, Oct 31, 2013 at 11:25:36PM +1000, Allan McRae wrote:
>> It is fairly common that packages contain static libraries with no
>> shared counterpart.  These should not be removed with !staticlibs.
>>
>> Signed-off-by: Allan McRae <[email protected]>
>> ---
>>  doc/PKGBUILD.5.txt     | 2 +-
>>  doc/makepkg.conf.5.txt | 2 +-
>>  scripts/makepkg.sh.in  | 8 +++++++-
>>  3 files changed, 9 insertions(+), 3 deletions(-)
>>
>> diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt
>> index 4ac7dc1..6c5ef84 100644
>> --- a/doc/PKGBUILD.5.txt
>> +++ b/doc/PKGBUILD.5.txt
>> @@ -250,7 +250,7 @@ A normal sync or upgrade will not use its value.
>>  
>>      *staticlibs*;;
>>              Leave static library (.a) files in packages. Specify 
>> `!staticlibs` to
>> -            remove them.
>> +            remove them (if they have a shared counterpart).
>>  
>>      *emptydirs*;;
>>              Leave empty directories in packages.
>> diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
>> index be5b809..ef64d17 100644
>> --- a/doc/makepkg.conf.5.txt
>> +++ b/doc/makepkg.conf.5.txt
>> @@ -162,7 +162,7 @@ Options
>>  
>>      *staticlibs*;;
>>              Leave static library (.a) files in packages. Specify 
>> `!staticlibs` to
>> -            remove them.
>> +            remove them (if they have a shared counterpart).
>>  
>>      *emptydirs*;;
>>              Leave empty directories in packages.
>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
>> index b2cc8e2..67bd7f1 100644
>> --- a/scripts/makepkg.sh.in
>> +++ b/scripts/makepkg.sh.in
>> @@ -1584,7 +1584,13 @@ tidy_install() {
>>  
>>      if check_option "staticlibs" "n"; then
>>              msg2 "$(gettext "Removing static library files...")"
>> -            find . ! -type d -name "*.a" -exec rm -f -- '{}' +
>> +            local sl=($(find . ! -type d -name "*.a"))
> 
> Prone to rampant word splitting and glob expansion.
> 
>> +            local l
>> +            for l in "${sl[@]}"; do
> 
> -for ...
> +while read -rd '' l; do
> 
>> +                    if [[ -f "${l%.a}.so" ]]; then
>> +                            rm -f "$l"
> 
> Maybe we shouldn't use -f here, since we would probably care about
> deletion failures?

Agreed.  I have pushed the updated version to my working branch.

>> +                    fi
>> +            done
> 
> -done
> +done < <(find . ! -type d -name "*.a" -print0)
> 
>>      fi
>>  
>>      if check_option "emptydirs" "n"; then
>> -- 
>> 1.8.4.2
>>
>>
> 
> 
> 


Reply via email to