legal-info: extract even no-redistribute packages
PATCH 1/1 legal-info: extract even no-redistribute packages
From: "Yann E. MORIN" <[email protected]>
Currently, if a package is marked _REDISTRIBUTE = NO, then legal-info will not try to extract it first.
If that package also declares some _LICENSE_FILES, legal-info fails if it is the only action we're trying to run:
$ cat defconfig
BR2_INIT_NONE=y
BR2_PACKAGE_LIBFSLCODEC=y
$ make BR2_DEFCONFIG=$(pwd)/defconfig defconfig
$ make libfslcodec-legal-info
/bin/sh: /home/ymorin/dev/buildroot/O/legal-info/licenses.txt: No such file or directory
make[1]: *** [libfslcodec-legal-info] Error 1Fix this by always having legal-info extract the archives if one or more _LICENSE_FILES are specified.
We do this for all types of packages: overriden, local or 'normal' remote packages. Even though we do not save the sources for the overriden or local packages, we need to save their licensing info, so we need to extract them.
Chamges v1 -> v2:
- this is not fixing the autobuilders failure it was written to fix so remove the references to such build failures (Thomas P)
- also extract overriden and local packages (Fabio)
--- package/pkg-generic.mk | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
package/pkg-generic.mk +3 -5
@@ -555,15 +555,13 @@ $(2)_MANIFEST_LICENSE_FILES = $$($(2)_LICENSE_FILES) endif $(2)_MANIFEST_LICENSE_FILES ?= not saved -ifeq ($$($(2)_REDISTRIBUTE),YES) -ifneq ($$($(2)_SITE_METHOD),local) -ifneq ($$($(2)_SITE_METHOD),override) +# If the package declares _LICENSE_FILES, we need to extract it, +# for overriden, local or normal remote packages alike. +ifneq ($$($(2)_LICENSE_FILES),) # Packages that have a tarball need it downloaded and extracted beforehand $(1)-legal-info: $(1)-extract $(REDIST_SOURCES_DIR_$(call UPPERCASE,$(4))) $(2)_MANIFEST_TARBALL = $$($(2)_SOURCE) endif -endif -endif $(2)_MANIFEST_TARBALL ?= not saved # legal-info: produce legally relevant info.
Signature · 1 line
1.8.3.2
PATCH 1/1 legal-info: extract even no-redistribute packages
Quoted 51 lines · Yann E. MORIN
From: "Yann E. MORIN" <[email protected]>
Currently, if a package is marked
_REDISTRIBUTE= NO, then legal-info will not try to extract it first.If that package also declares some
_LICENSE_FILES, legal-info fails if it is the only action we're trying to run:$ cat defconfig BR2_INIT_NONE=y BR2_PACKAGE_LIBFSLCODEC=y $ make BR2_DEFCONFIG=$(pwd)/defconfig defconfig $ make libfslcodec-legal-info /bin/sh: /home/ymorin/dev/buildroot/O/legal-info/licenses.txt: No such file or directory make[1]: *** [libfslcodec-legal-info] Error 1Fix this by always having legal-info extract the archives if one or more
_LICENSE_FILESare specified.We do this for all types of packages: overriden, local or 'normal' remote packages. Even though we do not save the sources for the overriden or local packages, we need to save their licensing info, so we need to extract them.
Signed-off-by "Yann E. MORIN" <[email protected]>Cc Thomas De Schampheleire <[email protected]>Cc Thomas Petazzoni <[email protected]>Cc Fabio Porcedda <[email protected]>Chamges v1 -> v2:
- this is not fixing the autobuilders failure it was written to fix so remove the references to such build failures (Thomas P)
- also extract overriden and local packages (Fabio)--- package/pkg-generic.mk | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)package/pkg-generic.mk +3
-3@@ -555,15 +555,13 @@ $(2)_MANIFEST_LICENSE_FILES = $$($(2)_LICENSE_FILES) endif $(2)_MANIFEST_LICENSE_FILES ?= not saved -ifeq ($$($(2)_REDISTRIBUTE),YES) -ifneq ($$($(2)_SITE_METHOD),local) -ifneq ($$($(2)_SITE_METHOD),override) +# If the package declares _LICENSE_FILES, we need to extract it, +# for overriden, local or normal remote packages alike. +ifneq ($$($(2)_LICENSE_FILES),)
package/pkg-generic.mk $(2)_MANIFEST_LICENSE_FILES = $$($(2)_LICENSE_FILES)
Quoted 10 lines
package/pkg-generic.mk +0
-3# Packages that have a tarball need it downloaded and extracted beforehand $(1)-legal-info: $(1)-extract $(REDIST_SOURCES_DIR_$(call UPPERCASE,$(4))) $(2)_MANIFEST_TARBALL = $$($(2)_SOURCE) endif -endif -endif $(2)_MANIFEST_TARBALL ?= not saved # legal-info: produce legally relevant info. --
[Adding Luca in the loop...]
PATCH 1/1 legal-info: extract even no-redistribute packages
In reply to Yann E. MORINHi Yann,
Quoted 47 lines · Yann E. MORIN
From: "Yann E. MORIN" <[email protected]>
Currently, if a package is marked
_REDISTRIBUTE= NO, then legal-info will not try to extract it first.If that package also declares some
_LICENSE_FILES, legal-info fails if it is the only action we're trying to run:$ cat defconfig BR2_INIT_NONE=y BR2_PACKAGE_LIBFSLCODEC=y $ make BR2_DEFCONFIG=$(pwd)/defconfig defconfig $ make libfslcodec-legal-info /bin/sh: /home/ymorin/dev/buildroot/O/legal-info/licenses.txt: No such file or directory make[1]: *** [libfslcodec-legal-info] Error 1Fix this by always having legal-info extract the archives if one or more
_LICENSE_FILESare specified.We do this for all types of packages: overriden, local or 'normal' remote packages. Even though we do not save the sources for the overriden or local packages, we need to save their licensing info, so we need to extract them.
Signed-off-by "Yann E. MORIN" <[email protected]>Cc Thomas De Schampheleire <[email protected]>Cc Thomas Petazzoni <[email protected]>Cc Fabio Porcedda <[email protected]>Chamges v1 -> v2:
- this is not fixing the autobuilders failure it was written to fix so remove the references to such build failures (Thomas P)
- also extract overriden and local packages (Fabio)--- package/pkg-generic.mk | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)package/pkg-generic.mk +0
-2@@ -555,15 +555,13 @@ $(2)_MANIFEST_LICENSE_FILES = $$($(2)_LICENSE_FILES) endif $(2)_MANIFEST_LICENSE_FILES ?= not saved -ifeq ($$($(2)_REDISTRIBUTE),YES) -ifneq ($$($(2)_SITE_METHOD),local)
package/pkg-generic.mk $(2)_MANIFEST_LICENSE_FILES = $$($(2)_LICENSE_FILES) · line 566
Quoted 10 lines
package/pkg-generic.mk +3
-3-ifneq ($$($(2)_SITE_METHOD),override) +# If the package declares _LICENSE_FILES, we need to extract it, +# for overriden, local or normal remote packages alike. +ifneq ($$($(2)_LICENSE_FILES),) # Packages that have a tarball need it downloaded and extracted beforehand $(1)-legal-info: $(1)-extract $(REDIST_SOURCES_DIR_$(call UPPERCASE,$(4))) $(2)_MANIFEST_TARBALL = $$($(2)_SOURCE) endif -endif -endif
You're right Yann.
Not only we need to extract the sources in order to copy the license files.
We also do _not_ need the extract step in order to save the tarball:
that was useless (although not harmful -- only wasting a little time).
As far as the overridden and local packages are concerned, I've always found them very useful during development but not for integration, when legal-info becomes useful. So I have no strong opinion.
However, if somebody really uses them for integration and they do work, then it's correct to extract them for legal-info. If nobody does, then the question is irrelevant. So I'm fine with your proposed patch, and I like the fact that it removes 5 lines and adds only 1 (comments excluded)!
[tested before and after the patch, enabling and disabling the _REDISTRIBUTE and _LICENSE_FILES attributes for a sample package]
Signature · 1 line
Luca
PATCH 1/1 legal-info: extract even no-redistribute packages
Luca, All,
On 2014-03-14 00:24 +0100, Luca Ceresoli spake thusly:
Quoted 4 lines
Quoted 3 lines · Yann E. MORIN
From: "Yann E. MORIN" <[email protected]>
Currently, if a package is marked_REDISTRIBUTE= NO, then legal-info will not try to extract it first.
[--SNIP--]
Quoted 27 lines
Quoted 10 lines
package/pkg-generic.mk +0
-2@@ -555,15 +555,13 @@ $(2)_MANIFEST_LICENSE_FILES = $$($(2)_LICENSE_FILES) endif $(2)_MANIFEST_LICENSE_FILES ?= not saved -ifeq ($$($(2)_REDISTRIBUTE),YES) -ifneq ($$($(2)_SITE_METHOD),local)package/pkg-generic.mk $(2)_MANIFEST_LICENSE_FILES = $$($(2)_LICENSE_FILES) · line 566
Quoted 10 lines
package/pkg-generic.mk +3
-3-ifneq ($$($(2)_SITE_METHOD),override) +# If the package declares _LICENSE_FILES, we need to extract it, +# for overriden, local or normal remote packages alike. +ifneq ($$($(2)_LICENSE_FILES),) # Packages that have a tarball need it downloaded and extracted beforehand $(1)-legal-info: $(1)-extract $(REDIST_SOURCES_DIR_$(call UPPERCASE,$(4))) $(2)_MANIFEST_TARBALL = $$($(2)_SOURCE) endif -endif -endifYou're right Yann.
Not only we need to extract the sources in order to copy the license files.
We also do _not_ need the extract step in order to save the tarball:
that was useless (although not harmful -- only wasting a little time).
Quoted 3 lines
As far as the overridden and local packages are concerned, I've always found them very useful during development but not for integration, when legal-info becomes useful. So I have no strong opinion.
We anyway do *not* save the sources for these packages, as can be seen a few lines below:
ifeq ($$($(2)_SITE_METHOD),local)
# Packages without a tarball: don't save and warn
@$(call legal-warning-pkg-savednothing,$$($(2)_RAWNAME),local)
else ifneq ($$($(2)_OVERRIDE_SRCDIR),)
@$(call legal-warning-pkg-savednothing,$$($(2)_RAWNAME),override)So my patch is (partially) wrong: we must not set $(2)_MANIFEST_TARBALL for local or overriden packages, we *must* set it to "not saved" since that's what we're doing.
I'll resend a patch in a moment.
Quoted 10 lines
However, if somebody really uses them for integration and they do work, then it's correct to extract them for legal-info. If nobody does, then the question is irrelevant. So I'm fine with your proposed patch, and I like the fact that it removes 5 lines and adds only 1 (comments excluded)!
[tested before and after the patch, enabling and disabling the
_REDISTRIBUTEand_LICENSE_FILESattributes for a sample package]Tested-by Luca Ceresoli <[email protected]>Acked-by Luca Ceresoli <[email protected]>
Thanks! But as I explained above, I've found an issue with the patch, so I'm not adding your tags to the next iteration, as it will be different.
You'll however have a chance to add your tags to the next iteration, of course! Muhaha! ;-)
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'