diff mbox

legal-info: extract even no-redistribute packages

Message ID 1394663367-11778-1-git-send-email-yann.morin.1998@free.fr
State Changes Requested
Headers show

Commit Message

Yann E. MORIN March 12, 2014, 10:29 p.m. UTC
From: "Yann E. MORIN" <yann.morin.1998@free.fr>

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 1

Fix 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.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Fabio Porcedda <fabio.porcedda@gmail.com>

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(-)

Comments

Thomas De Schampheleire March 13, 2014, 11:52 a.m. UTC | #1
On Wed, Mar 12, 2014 at 11:29 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
>
> 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 1
>
> Fix 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.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Cc: Fabio Porcedda <fabio.porcedda@gmail.com>
>
> 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(-)
>
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index 339c3eb..d201a77 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -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.
> --

[Adding Luca in the loop...]
Luca Ceresoli March 13, 2014, 11:24 p.m. UTC | #2
Hi Yann,

Yann E. MORIN wrote:
> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
>
> 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 1
>
> Fix 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.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Cc: Fabio Porcedda <fabio.porcedda@gmail.com>
>
> 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(-)
>
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index 339c3eb..d201a77 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -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

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]
Tested-by: Luca Ceresoli <luca@lucaceresoli.net>
Acked-by: Luca Ceresoli <luca@lucaceresoli.net>
Yann E. MORIN March 14, 2014, 9:40 p.m. UTC | #3
Luca, All,

On 2014-03-14 00:24 +0100, Luca Ceresoli spake thusly:
> Yann E. MORIN wrote:
> >From: "Yann E. MORIN" <yann.morin.1998@free.fr>
> >Currently, if a package is marked _REDISTRIBUTE = NO, then legal-info
> >will not try to extract it first.
[--SNIP--]
> >diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> >index 339c3eb..d201a77 100644
> >--- a/package/pkg-generic.mk
> >+++ b/package/pkg-generic.mk
> >@@ -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
> 
> 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.

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.

> 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]
> Tested-by: Luca Ceresoli <luca@lucaceresoli.net>
> Acked-by: Luca Ceresoli <luca@lucaceresoli.net>

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.
diff mbox

Patch

diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index 339c3eb..d201a77 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -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.