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

Allan McRae allan at archlinux.org
Mon Mar 15 02:45:08 CET 2010

On 15/03/10 11:12, Xavier Chantry wrote:
> On Mon, Mar 15, 2010 at 2:06 AM, Allan McRae<allan at archlinux.org>  wrote:
>> On 15/03/10 10:54, Xavier Chantry wrote:
>>> On Mon, Mar 15, 2010 at 1:37 AM, Allan McRae<allan at archlinux.org>    wrote:
>>>> On 15/03/10 09:36, Dan McGee wrote:
>>>>> commit a4e3fd18474186ac81acca91adecbb905aee3357
>>>>> Author: Allan McRae<allan at archlinux.org>
>>>>> Date:   Tue Jan 26 23:29:31 2010 +1000
>>>>>      makepkg: only strip files that are writable
>>>>>      TODO:
>>>>> http://mailman.archlinux.org/pipermail/pacman-dev/2010-January/010390.html
>>>>>      Signed-off-by: Allan McRae<allan at archlinux.org>
>>>>>      Signed-off-by: Dan McGee<dan at archlinux.org>
>>>> Hmmm.... that one was not quite finished yet which is why it was not on
>>>> my
>>>> working branch. (I put it on a wip = "work in progress" branch).
>>>> Nevermind!  Apart from a strange commit message, it is still an
>>>> improvement
>>>> on the pre-patch state.  :P
>>> Looks like I never got to answer your mail.
>>> I wrote a stupid 10 lines bash program that tested every permission,
>>> and it seemed that both r and w were needed for strip.
>>> But IIRC, I did one test inside makepkg (so using fakeroot) and got
>>> different results.
>>> Actually I was probably so confused by the permissions I got in
>>> package built by makepkg that I completely gave up.
>>> Now I remember why I did not answer, I have only new confusions to
>>> bring...
>> I had similar testing that was strange...  I really do not understand how
>> you can strip a file without r+w permissions.  But my testing seemed to
>> indicate that you can strip a -r+w file.  And you seem to be able to strip
>> any file if you are root.  And yes, from memory, fakeroot appears to be
>> somewhere in between.
> What are we doing differently ?
> [xavier at xps-m1530 ~]$ cp /bin/ls .
> [xavier at xps-m1530 ~]$ chmod -u+w ls
> [xavier at xps-m1530 ~]$ ls -l ls
> --w------- 1 xavier users 102104 Mar 15 02:10 ls
> [xavier at xps-m1530 ~]$ strip ls
> strip:ls: Permission denied

Nothing actually...  'file' still works on it but returns "writable, 
regular file, no read permission" which does not match anything in the 
strip case statement in makepkg.  So for makepkg, this is not an issue. 
Now if you went -u+r, then file would return the usual value and makepkg 
would try to strip it.

>> I think the current patch at least avoids any errors and the associated
>> output during stripping files which is an improvement.  But I wonder if it
>> should be more clever and change the permissions of files before striping to
>> ensure all files get stripped and then revert afterwards.
> That sounds a bit crazy but I don't know :) No strong opinion either way.

Crazy ideas are fun until I attempt to write a patch!


More information about the pacman-dev mailing list