[pacman-dev] [PATCH] makepkg: only strip files that are writable

Allan McRae allan at archlinux.org
Tue Jan 26 09:56:28 EST 2010


On 27/01/10 00:49, Cedric Staniewski wrote:
> On 26.01.2010 14:30, Allan McRae wrote:
>> Signed-off-by: Allan McRae<allan at archlinux.org>
>> ---
>>   scripts/makepkg.sh.in |    2 +-
>>   1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
>> index 5120feb..0ca5e36 100644
>> --- a/scripts/makepkg.sh.in
>> +++ b/scripts/makepkg.sh.in
>> @@ -869,7 +869,7 @@ tidy_install() {
>>   	if [[ $(check_option strip) = y&&  -n ${STRIP_DIRS[*]} ]]; then
>>   		msg2 "$(gettext "Stripping unneeded symbols from binaries and libraries...")"
>>   		local binary
>> -		find ${STRIP_DIRS[@]} -type f 2>/dev/null | while read binary ; do
>> +		find ${STRIP_DIRS[@]} -type f -writable 2>/dev/null | while read binary ; do
>>   			case "$(file -biz "$binary")" in
>>   				*compressed-encoding*)      # Skip compressed binaries
>>   					;;
>
> Seems reasonable (strip fails for non-writable files, right?). However,
> according to my quick search, the writable flag is not available on BSD
> [1,2]. So we have to use -perm or is there a better option?
>
> Cedric
>
> [1] http://www.gsp.com/cgi-bin/man.cgi?section=1&topic=find
> [2]
> http://developer.apple.com/mac/library/DOCUMENTATION/Darwin/Reference/ManPages/man1/find.1.html
>

Ah, stupid incompatible implementations of core utilities...  So, 
changing that find to:

find ${STRIP_DIRS[@]} -type f -perm -u+x

should work everywhere.

Allan


More information about the pacman-dev mailing list