[pacman-dev] [PATCH] makepkg: improve srcdir check and add pkgdir

Jonathan Conder jonno.conder+arch at gmail.com
Wed Sep 29 09:31:57 EDT 2010


  On 30/09/10 01:35, Allan McRae wrote:
> On 29/09/10 22:06, Marc - A. Dahlhaus wrote:
>> Am Mittwoch, den 29.09.2010, 21:59 +1000 schrieb Allan McRae:
>>> The checking of the package for $srcdir references was overly
>>> sensitive and gave a lot of what appear to be false positives with
>>> binary files (in particular with debugging symbols kept).
>>>
>>> Restrict the search for $srcdir to non-binary files as this should
>>> still catch the majority of configuration issues the check was
>>> initially designed to catch. Also, add a similar check for $pkgdir.
>>>
>>> Signed-off-by: Allan McRae<allan at archlinux.org>
>>> ---
>>>   scripts/makepkg.sh.in |    9 +++++++--
>>>   1 files changed, 7 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
>>> index ed1380d..01d73f8 100644
>>> --- a/scripts/makepkg.sh.in
>>> +++ b/scripts/makepkg.sh.in
>>> @@ -972,10 +972,15 @@ check_package() {
>>>           fi
>>>       done
>>>
>>> -    # check for references to the build directory
>>> -    if find "${pkgdir}" -type f -exec grep -q "${srcdir}" {} +; then
>>> +    # check for references to the build and package directory
>>> +    local filelist=$(find "${pkgdir}" -type f)
>>> +    if grep -q -I "${srcdir}" $filelist; then
>>>           warning "$(gettext "Package contains reference to %s")" 
>>> "\$srcdir"
>>>       fi
>>> +    if grep -q -I "${pkgdir}" $filelist; then
>>> +        warning "$(gettext "Package contains reference to %s")" 
>>> "\$pkgdir"
>>> +    fi
>>> +
>>>   }
>>>
>>>   create_package() {
>>
>> This change could exeed the maximum number of allowed params for large
>> packages. It would be better to continue to use the exec param for find
>> IMO.
>
> That is a good point.  I did not want to run the find twice but I 
> guess that will be mostly cached anyway so it will make little 
> difference.  I will make this change on my working branch.
>
> Allan
>
Why not just run it once? I would do something like this:

find "${pkgdir}" -type f -exec grep -q -I -F "${srcdir}
${pkgdir}" {} +;

This also means special characters (like .) won't get misinterpreted, 
however unlikely that may be. Not sure if there is a better way to stick 
that newline in there...


More information about the pacman-dev mailing list