[Buildroot] [PATCH 08/51] core/legal-info: allow ignoring packages from the legal-info

Yann E. MORIN yann.morin.1998 at free.fr
Mon Nov 23 14:47:38 UTC 2015


It might be necessary to not even mention a package in the output of
legal-info:

  - virtual package have virtually nothing to save in the legal-info
    output;

  - for Buildroot itself, host-gcc-initial and host-gcc-final are not
    real packages, they are just two different steps of the same
    package, gcc;

  - for proprietary packages, it might not even be legal to even mention
    them, being under NDA or some other such restrictive conditions.

Add the new 'IGNORE' keyword to the _REDISTRIBUTE package variable, so
that the legal-info infra will simply completely ignore that package.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
Cc: Luca Ceresoli <luca at lucaceresoli.net>
---
 docs/manual/adding-packages-generic.txt | 7 +++++--
 package/pkg-generic.mk                  | 8 +++++++-
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/docs/manual/adding-packages-generic.txt b/docs/manual/adding-packages-generic.txt
index 1c25c4e..aec398b 100644
--- a/docs/manual/adding-packages-generic.txt
+++ b/docs/manual/adding-packages-generic.txt
@@ -390,7 +390,8 @@ information is (assuming the package name is +libfoo+) :
   See xref:legal-info[] for more information.
   This variable is optional. If it is not defined, a warning will be produced
   to let you know, and +not saved+ will appear in the +license files+ field
-  of the manifest file for this package.
+  of the manifest file for this package (unless +LIBFOO_REDISTRIBUTE+ is
+  set to +IGNORE+, see below...)
 
 * +LIBFOO_ACTUAL_SOURCE_TARBALL+ only applies to packages whose
   +LIBFOO_SITE+ / +LIBTOO_SOURCE+ pair points to an archive that does
@@ -414,7 +415,9 @@ information is (assuming the package name is +libfoo+) :
 * +LIBFOO_REDISTRIBUTE+ can be set to +YES+ (default) or +NO+ to indicate if
   the package source code is allowed to be redistributed. Set it to +NO+ for
   non-opensource packages: Buildroot will not save the source code for this
-  package when collecting the +legal-info+.
+  package when collecting the +legal-info+. Alternatively, you may set it to
+  +IGNORE+ so that Buildroot does not even mention that package in the
+  +legal-info+ output.
 
 * +LIBFOO_FLAT_STACKSIZE+ defines the stack size of an application built into
   the FLAT binary format. The application stack size on the NOMMU architecture
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index 5414bc6..98db3ba 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -747,10 +747,12 @@ $(2)_MANIFEST_LICENSE_FILES ?= not saved
 
 # If the package declares _LICENSE_FILES, we need to extract it,
 # for overriden, local or normal remote packages alike, whether
-# we want to redistribute it or not.
+# we want to redistribute it or not, but not if we want to ignore it.
+ifneq ($$($(2)_REDISTRIBUTE),IGNORE)
 ifneq ($$($(2)_LICENSE_FILES),)
 $(1)-legal-info: $(1)-patch
 endif
+endif
 
 # We only save the sources of packages we want to redistribute, that are
 # non-local, and non-overriden. So only store, in the manifest, the tarball
@@ -774,6 +776,8 @@ $(2)_ACTUAL_SOURCE_SITE    ?= $$(call qstrip,$$($(2)_SITE))
 
 # legal-info: produce legally relevant info.
 $(1)-legal-info:
+ifneq ($$($(2)_REDISTRIBUTE),IGNORE)
+
 # Packages without a source are assumed to be part of Buildroot, skip them.
 	$$(foreach hook,$$($(2)_PRE_LEGAL_INFO_HOOKS),$$(call $$(hook))$$(sep))
 ifneq ($$(call qstrip,$$($(2)_SOURCE)),)
@@ -816,6 +820,8 @@ endif # other packages
 endif # ifneq ($$(call qstrip,$$($(2)_SOURCE)),)
 	$$(foreach hook,$$($(2)_POST_LEGAL_INFO_HOOKS),$$(call $$(hook))$$(sep))
 
+endif # REDISTRIBUTE == IGNORE
+
 # add package to the general list of targets if requested by the buildroot
 # configuration
 ifeq ($$($$($(2)_KCONFIG_VAR)),y)
-- 
1.9.1



More information about the buildroot mailing list