[pacman-dev] [PATCH] makepkg: Place packages symlinks in build dir when DESTDIR is used

Eric Bélanger snowmaniscool at gmail.com
Wed Nov 4 02:37:55 EST 2009


On Wed, Nov 4, 2009 at 1:45 AM, Allan McRae <allan at archlinux.org> wrote:
> Eric Bélanger wrote:
>>
>>
>> Here's the latest patch. I hope everything is correct.
>>
>> BTW, do you want me to continue sending patches as attachment too?  I
>> see that 'git send-email' doesn't so I guess you can grab the inline
>> patch or get it directly from git.  Is that correct?
>>
>
> The way I handle this is to just send them directly with git send-email
> using the "In reply to" value to keep the thread... um... threaded.  Any
> comments about the patch and what you have changed to fix things can go
> under the "---" after the sign-off.  Of course, you can inline them as you
> have and push them to a git repo somewhere and we can just pull from there.

OK. I'll do that. I was inlining them manually to keep everything in
the same thread.

>
> Also, can you insert newlines into you commit message to keep them at about
> 80 characters per line.
>
>>
>> Signed-off-by: Eric Bélanger <snowmaniscool at gmail.com>
>> ---
>>  scripts/makepkg.sh.in |   26 +++++++++++++++++++++-----
>>  1 files changed, 21 insertions(+), 5 deletions(-)
>>
>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
>> index 92b0454..aaf576b 100644
>> --- a/scripts/makepkg.sh.in
>> +++ b/scripts/makepkg.sh.in
>> @@ -138,11 +138,17 @@ clean_up() {
>>                if [ -n "$pkgbase" ]; then
>>                        # Can't do this unless the BUILDSCRIPT has been
>> sourced.
>>                        rm -f
>> "${pkgbase}-${pkgver}-${pkgrel}-${CARCH}-build.log"*
>> +                       [[ "$PKGDEST" != "${startdir}" ]] \
>> +                           && rm -f
>> "${pkgbase}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}"
>>                        if [ "$PKGFUNC" -eq 1 ]; then
>>                                rm -f
>> "${pkgbase}-${pkgver}-${pkgrel}-${CARCH}-package.log"*
>> +                               [[ "$PKGDEST" != "${startdir}" ]] \
>> +                                   && rm -f
>> "${pkgbase}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}"
>>                        elif [ "$SPLITPKG" -eq 1 ]; then
>>                                for pkg in ${pkgname[@]}; do
>>                                        rm -f
>> "${pkg}-${pkgver}-${pkgrel}-${CARCH}-package.log"*
>> +                                       [[ "$PKGDEST" != "${startdir}" ]]
>> \
>> +                                           && rm -f
>> "${pkg}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}"
>>                                done
>>                        fi
>>                fi
>
> I am not happy with this way of cleaning up the symlinks to packages.  If
> the package is not a split package, then the package name will be
> $pkgname-...   and not $pkgbase (although, they are likely the same thing).

 I was following (maybe too closely) the log files removal as template
here. I'll change it to pkgname.

>  I am also not sure what the second clean-up (in the "$PKGFUNC -eq 1" test)
> is doing that has not already by the one above it.

Yeah, it probably can be removed.

> However, thinking about this more, we do not remove old packages when using
> --clean so why remove symlinks to old packages.  Only when package symlinks
> are pointing to packages that no longer exist in PKGDEST have we made a mess
> that needs cleaned up.  So how about something like:
>
> for pkg in ${pkgname[@]}; do
>  for file in ${pkg}-*-*-${CARCH}${PKGEXT}; do
>   if [[ -h $file & ! -e $file ]]; then
>     rm -f $file
>   fi
>  done
> fi
>

Sure. I'll use this instead.  I don't use the --clean option so I am
indifferent. I'll send a new patch tomorrow.

Eric

>
> Everything else in the patch is fine.
>
> Allan
>
>
>


More information about the pacman-dev mailing list