[pacman-dev] [PATCH] makepkg: list files containing $srcdir (FS#31558)

Allan McRae allan at archlinux.org
Mon May 20 07:07:27 EDT 2013


On 20/05/13 20:58, Dave Reisner wrote:
> On May 20, 2013 3:08 AM, "Phillip Smith" <lists at fukawi2.nl> wrote:
>>
>> From: Phillip Smith <fukawi2 at gmail.com>
>>
>> when checking for files in a built package that contain references to
>> $srcdir or $pkgdir_base, show the files that match to assist in
>> debugging.
>>
>> Signed-off-by: Phillip Smith <fukawi2 at gmail.com>
>> ---
>>  scripts/makepkg.sh.in | 16 ++++++++++++----
>>  1 file changed, 12 insertions(+), 4 deletions(-)
>>
>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
>> index 75ddfe5..1b3cc5a 100644
>> --- a/scripts/makepkg.sh.in
>> +++ b/scripts/makepkg.sh.in
>> @@ -1606,11 +1606,19 @@ tidy_install() {
>>         done
>>
>>         # check for references to the build and package directory
>> -       if find "${pkgdir}" -type f -print0 | xargs -0  grep -q -I
> "${srcdir}" ; then
>> -               warning "$(gettext "Package contains reference to %s")"
> "\$srcdir"
>> +       mapfile -t srcdir_refs <<< $(cd "${pkgdir}" && find -type f -exec
> grep -I -l "$srcdir" {} \;)
> 
> Not what I had in mind (or gave you). This will "work", but the process
> substitution is preferable over the here string.
> 
>> +       if [[ -n ${srcdir_refs[*]} ]] ; then
>> +               warning "$(gettext "The following files within the
> package reference %s")" "\$srcdir"
>> +               for fname in ${srcdir_refs[*]} ; do
>> +                       printf "  %s\n" "$fname"
>> +               done

Also not you do not need the whole for loop here.  Just

 printf "  %s\n" "${srcdir_refs[@]}"



>>         fi
>> -       if find "${pkgdir}" -type f -print0 | xargs -0  grep -q -I
> "${pkgdirbase}" ; then
>> -               warning "$(gettext "Package contains reference to %s")"
> "\$pkgdir"
>> +       mapfile -t pkgdir_refs <<< $(cd "${pkgdir}" && find -type f -exec
> grep -I -l "${pkgdirbase}" {} \;)
>> +       if [[ -n ${pkgdir_refs[*]} ]] ; then
>> +               warning "$(gettext "The following files within the
> package reference %s")" "\$pkgdir"
>> +               for fname in ${pkgdir_refs[*]} ; do
>> +                       printf "  %s\n" "$fname"
>> +               done
>>         fi
>>
>>         if check_option "zipman" "y" && [[ -n ${MAN_DIRS[*]} ]]; then
>> --
>> 1.8.2.3
>>
>>
> 
> 
> 



More information about the pacman-dev mailing list