[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