[pacman-dev] [PATCH] Portability fixes for makepkg

Allan McRae allan at archlinux.org
Tue May 22 22:42:34 EDT 2012


On 23/05/12 12:37, Jeremy Huntwork wrote:
> On 5/22/12 10:20 PM, Allan McRae wrote:
>> This fails for cross directory symlinks.  The should not be common (man
>> pages have different sections for a reason) but I found a package that
>> has them in the Arch repos.  (As an aside, current makepkg fails hard
>> here too....)
>>
>> I suggest changing that line to:
>>
>> if [[ ${file%/*} = ${link%/*} ]]; then
>>     ln -s -- "${file##*/}.gz" "${link}.gz"
>> else
>>     ln -s -- "/${file}.gz" "${link}.gz"
>> fi
> 
> Yes, this works. I was wondering about that particular case but haven't
> actually seen any like that yet myself.
> 
>>>                   fi
>>> +            done
>>> +            if [[ -z ${files[$inode]} ]]; then
>>> +                files[$inode]=$file
>>> +                gzip -9 -f "$file"
>>> +            else
>>> +                rm -f "$file"
>>> +                ln "${files[$inode]}.gz" "${file}.gz"
>>> +                chmod 644 "${file}.gz"
>>>               fi
>>> -        done
>>> +        done<  <(find ${MAN_DIRS[@]} -type f \! -name "*.gz" \!
>>> -name "*.bz2" \
>>> +            -exec @INODECMD@ '{}' + 2>/dev/null)
>>>       fi
>>>
>>>       if check_option "strip" "y"; then
>>> @@ -1115,7 +1104,7 @@ tidy_install() {
>>>
>>>       if check_option "emptydirs" "n"; then
>>>           msg2 "$(gettext "Removing empty directories...")"
>>> -        find . -depth -type d -empty -delete
>>> +        find . -mindepth 1 -depth -type d -exec rmdir '{}' +
>>> 2>/dev/null
>>
>> What is the -mindepth for?  I guess so that we do not try to remove ".".
>>   That can never happen anyway...
> 
> Yes, it avoids having the '.' processed in the results - for some reason
> I did actually need this when I was first testing changes on the
> released version of pacman, but I can't recall now why that was, and I
> don't seem to have it in my notes. As you say, with the current version
> it's not going to actually harm anything if included so we can probably
> drop -mindepth 1. On the other hand, leaving it in doesn't hurt either. :)
> 
> I'll do whichever you prefer.

I say drop it then.

Once those two changes are made I will put this on my working branch for
Dan to pull to the repo.

Allan



More information about the pacman-dev mailing list