[pacman-dev] [PATCH] makepkg: check for references to build root in package

Cedric Staniewski cedric at gmx.ca
Sun Oct 25 14:26:37 EDT 2009


Allan McRae wrote:
> Cedric Staniewski wrote:
>> Allan McRae wrote:
>>  
>>> Add a check that the package does not contain references to the
>>> folder it was built in.
>>>
>>> Fixes FS#14751
>>>
>>> Signed-off-by: Allan McRae <allan at archlinux.org>
>>> ---
>>>  scripts/makepkg.sh.in |    6 ++++++
>>>  1 files changed, 6 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
>>> index 820d81f..a5b8f87 100644
>>> --- a/scripts/makepkg.sh.in
>>> +++ b/scripts/makepkg.sh.in
>>> @@ -971,6 +971,12 @@ check_package() {
>>>              warning "$(gettext "Invalid backup entry : %s")" "$file"
>>>          fi
>>>      done
>>> +
>>> +    # check for references to the build directory
>>> +    grep -R "${srcdir}" "${pkgdir}" &>/dev/null
>>> +    if [ $? -eq 0 ]; then
>>> +        warning "$(gettext "Package contains reference to %s")"
>>> "\$srcdir"
>>> +    fi
>>>  }
>>>  
>>>  create_package() {
>>>     
>>
>>
>> I wonder why you do not use
>>
>> if grep -R "${srcdir}" "${pkgdir}" &>/dev/null; then
>>
>> Is there a special cause for that or is it only for cosmetic reasons?
>> Thanks.
>>   
> 
> No reason....   I was going to adjust my patch to this syntax.  
> However, I have discovered, the patch causes makepkg to halt if there
> are no files in ${pkgdir}.  This is entirely possible with something
> like "meta-packages" which just contain a list of deps.  So I am going
> to need to use some sort of "grep ... || ret=" syntax anyway.
> 
> Allan
> 


I tried to reproduce this, but was not able to do so.

Patch:
-----------------
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 8812407..4bcb6b2 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -947,9 +947,7 @@ check_package() {
        done
 
        # check for references to the build directory
-       local ret=0
-       grep -R "${srcdir}" "${pkgdir}" &>/dev/null || ret=1
-       if [ $ret -eq 0 ]; then
+       if grep -R "${srcdir}" "${pkgdir}" &>/dev/null; then
                warning "$(gettext "Package contains reference to %s")" "\$srcdir"
        fi
 }
-----------------

PKGBUILD:
-----------------
pkgname=dummy
pkgver=1
pkgrel=1
pkgdesc="A dummy package"
arch=('any')
url="http://dummy.xyz"
license=('GPL')

build() {
  echo nothing to see here
  #echo "$srcdir" > "$pkgdir/bla"
}
------------------


Anyway... never mind.


More information about the pacman-dev mailing list