[pacman-dev] [PATCH v2] makepkg: print filenames and line numbers of references to $srcdir & $pkgdir in built package

Andrew Gregory andrew.gregory.8 at gmail.com
Sat Oct 15 02:07:05 UTC 2016


We're not very strict about this, but please try to keep the first
line of the commit message fairly short, ideally around 50 characters.

On 10/14/16 at 08:21pm, ivy.foster at gmail.com wrote:
> From: Ivy Foster <ivy.foster at gmail.com>
> 
> grep -n output is used to match format of compiler warnings.
> Since rewriting build_references() anyway, tweaked quoting.
> Implements FS#31558.
> 
> Signed-off-by: Ivy Foster <ivy.foster at gmail.com>
> ---
>  scripts/libmakepkg/lint_package/build_references.sh.in | 16 +++++++++-------
>  1 file changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/scripts/libmakepkg/lint_package/build_references.sh.in b/scripts/libmakepkg/lint_package/build_references.sh.in
> index 67c14e6..62f705c 100644
> --- a/scripts/libmakepkg/lint_package/build_references.sh.in
> +++ b/scripts/libmakepkg/lint_package/build_references.sh.in
> @@ -25,14 +25,16 @@ LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
>  
>  source "$LIBRARY/util/message.sh"
>  
> -
>  lint_package_functions+=('warn_build_references')
>  
>  warn_build_references() {
> -	if find "${pkgdir}" -type f -print0 | xargs -0 grep -q -I "${srcdir}" ; then
> -		warning "$(gettext "Package contains reference to %s")" "\$srcdir"
> -	fi
> -	if find "${pkgdir}" -type f -print0 | xargs -0 grep -q -I "${pkgdirbase}" ; then
> -		warning "$(gettext "Package contains reference to %s")" "\$pkgdir"
> -	fi
> +	local refs
> +
> +	for var in srcdir pkgdir; do
> +		mapfile -t refs < <(find "$pkgdir" -type f -exec grep -n "${!var}" {} +)

For packages with just a single file this won't print the name of the
matching file.  GNU grep has -H for this, but it's not POSIX.  What
about including /dev/null as an argument to grep so that it always has
more than one file?

Also, unrelated to this patch, but we should be using grep -F since
paths can contain regular expression metacharacters.

> +		if  [[ ${#refs} -gt 0 ]]; then
> +			warning "$(gettext 'Package contains reference to %s')" "\$$var"
> +			printf '%s\n' "${refs[@]}" >&2
> +		fi
> +	done
>  }
> -- 
> 2.10.0


More information about the pacman-dev mailing list