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

Allan McRae allan at archlinux.org
Wed Sep 29 09:50:15 EDT 2010


On 29/09/10 23:31, Jonathan Conder wrote:
> 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...

I did not want to run them at the same time to keep the error message 
informative about what was found.

Allan


More information about the pacman-dev mailing list