[Buildroot] [PATCH v2] pkg-generic: error out with 'local' site method and no _SITE
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Wed May 23 08:22:31 UTC 2018
Hello,
On Wed, 23 May 2018 08:31:38 +0200, Arnout Vandecappelle
(Essensium/Mind) wrote:
> The 'local' site method is easily confused with the 'file' site method,
> making people create packages like this:
>
> FOO_SITE_METHOD = local
> FOO_SOURCE = foo.tar.gz
>
> $(eval $(generic-package))
>
> Due to the intricacies of the generic package infra, this does not
> cause an error; instead, the foo.tar.gz tarball that happens to be
> present in the download directory will be used. This behaviour differs
> greatly from what is specified in the manual.
>
> Instead, error out immediately if a package specifies the 'local' site
> method but does not specify a _SITE.
>
> We check for _OVERRIDE_SRCDIR rather than checking for _SITE, just
> after _OVERRIDE_SRCDIR has been set to _SITE. Indeed, a package that
> sets _OVERRIDE_SRCDIR but not _SITE currently works correctly. There is
> no reason to make it fail.
>
> See also
> https://stackoverflow.com/questions/50364655/including-patches-to-build-root
>
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>
> ---
> v2: explain in commit message why we check for _OVERRIDE_SRCDIR
> ---
> package/pkg-generic.mk | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index 8a3b5f90a9..988f2d34e3 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -520,6 +520,9 @@ ifeq ($$($(2)_SITE_METHOD),local)
> ifeq ($$($(2)_OVERRIDE_SRCDIR),)
> $(2)_OVERRIDE_SRCDIR = $$($(2)_SITE)
> endif
> +ifeq ($$($(2)_OVERRIDE_SRCDIR),)
> +$$(error $(1) has local site method, but `$(2)_SITE_METHOD` is not defined)
I still don't understand the error message, and it doesn't match your
commit log. The commit log says:
""
Instead, error out immediately if a package specifies the 'local' site
method but does not specify a _SITE.
""
but your error message says "$(2)_SITE_METHOD" is not defined.
I believe the message should be:
$$(error $(1) has local site method, but `$(2)_SITE` is not defined)
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
More information about the buildroot
mailing list