pkg-generic: error out with 'local' site method and no _SITE
PATCH v2 1/1 pkg-generic: error out with 'local' site method and no _SITE
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
---
v2: explain in commit message why we check for _OVERRIDE_SRCDIR
--- package/pkg-generic.mk | 3 +++ 1 file changed, 3 insertions(+)
package/pkg-generic.mk +3 -0
@@ -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) +endif endif ifndef $(2)_LICENSE
Signature · 1 line
2.17.0
PATCH v2 1/1 pkg-generic: error out with 'local' site method and no _SITE
Hello,
Quoted 36 lines · Arnout Vandecappelle (Essensium/Mind)
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_SRCDIRrather than checking for_SITE, just after_OVERRIDE_SRCDIRhas been set to_SITE. Indeed, a package that sets_OVERRIDE_SRCDIRbut not_SITEcurrently works correctly. There is no reason to make it fail.See also
https://stackoverflow.com/questions/50364655/including-patches-to-build-root---
v2: explain in commit message why we check for_OVERRIDE_SRCDIR--- package/pkg-generic.mk | 3 +++ 1 file changed, 3 insertions(+)package/pkg-generic.mk +0
-0
package/pkg-generic.mk ifeq ($$($(2)_SITE_METHOD),local) · line 524
Quoted 5 lines
package/pkg-generic.mk +2
-0@@ -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
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
PATCH v2 1/1 pkg-generic: error out with 'local' site method and no _SITE
Quoted 49 lines · Thomas Petazzoni
Hello,
Quoted 36 lines · Arnout Vandecappelle (Essensium/Mind)
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_SRCDIRrather than checking for_SITE, just after_OVERRIDE_SRCDIRhas been set to_SITE. Indeed, a package that sets_OVERRIDE_SRCDIRbut not_SITEcurrently works correctly. There is no reason to make it fail.See also
https://stackoverflow.com/questions/50364655/including-patches-to-build-root---
v2: explain in commit message why we check for_OVERRIDE_SRCDIR--- package/pkg-generic.mk | 3 +++ 1 file changed, 3 insertions(+)package/pkg-generic.mk +0
-0package/pkg-generic.mk ifeq ($$($(2)_SITE_METHOD),local) · line 524
Quoted 5 lines
package/pkg-generic.mk +2
-0@@ -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:
Quoted 6 lines
""
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.
Oh, I misread your original comment, I thought you referred to the condition.
And then Peter confirmed my delusion :-)
Quoted 4 lines
I believe the message should be:
$$(error $(1) has local site method, but
$(2)_SITEis not defined)
Indeed, v3 is on its way.
Regards,
Arnout
Quoted 5 lines
Best regards,
Thomas
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF