generate list of license information for packages

Many packages define already metadata about their license (PKG_LICENSE),
but this is only included in the ipk files.

This change allows to create the information also on the build-host,
to get an overview on the used licenses.
In the full list, also all packages without this info are shown

Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>

SVN-Revision: 43070
This commit is contained in:
John Crispin 2014-10-26 16:57:33 +00:00
parent f9a06347df
commit eb738f5275
3 changed files with 31 additions and 1 deletions

View file

@ -45,7 +45,9 @@ Title: $(TITLE)
Maintainer: $(MAINTAINER) Maintainer: $(MAINTAINER)
$(if $(USERID),Require-User: $(USERID) $(if $(USERID),Require-User: $(USERID)
)Source: $(PKG_SOURCE) )Source: $(PKG_SOURCE)
Type: $(if $(Package/$(1)/targets),$(Package/$(1)/targets),$(if $(PKG_TARGETS),$(PKG_TARGETS),ipkg)) $(if $(PKG_LICENSE),License: $(PKG_LICENSE)
)$(if $(PKG_LICENSE_FILES),LicenseFiles: $(PKG_LICENSE_FILES)
)Type: $(if $(Package/$(1)/targets),$(Package/$(1)/targets),$(if $(PKG_TARGETS),$(PKG_TARGETS),ipkg))
$(if $(KCONFIG),Kernel-Config: $(KCONFIG) $(if $(KCONFIG),Kernel-Config: $(KCONFIG)
)$(if $(BUILDONLY),Build-Only: $(BUILDONLY) )$(if $(BUILDONLY),Build-Only: $(BUILDONLY)
)$(if $(HIDDEN),Hidden: $(HIDDEN) )$(if $(HIDDEN),Hidden: $(HIDDEN)

View file

@ -871,6 +871,28 @@ sub gen_package_feeds() {
} }
} }
sub gen_package_license($) {
my $level = shift;
parse_package_metadata($ARGV[0]) or exit 1;
foreach my $name (sort {uc($a) cmp uc($b)} keys %package) {
my $pkg = $package{$name};
if ($pkg->{name}) {
if ($pkg->{license}) {
print "$pkg->{name}: ";
print "$pkg->{license}\n";
if ($pkg->{licensefiles} && $level == 0) {
print "\tFiles: $pkg->{licensefiles}\n";
}
} else {
if ($level == 1) {
print "$pkg->{name}: Missing license! ";
print "Please fix $pkg->{makefile}\n";
}
}
}
}
}
sub parse_command() { sub parse_command() {
my $cmd = shift @ARGV; my $cmd = shift @ARGV;
for ($cmd) { for ($cmd) {
@ -880,6 +902,8 @@ sub parse_command() {
/^kconfig/ and return gen_kconfig_overrides(); /^kconfig/ and return gen_kconfig_overrides();
/^package_source$/ and return gen_package_source(); /^package_source$/ and return gen_package_source();
/^package_feeds$/ and return gen_package_feeds(); /^package_feeds$/ and return gen_package_feeds();
/^package_license$/ and return gen_package_license(0);
/^package_licensefull$/ and return gen_package_license(1);
} }
print <<EOF print <<EOF
Available Commands: Available Commands:
@ -889,6 +913,8 @@ Available Commands:
$0 kconfig [file] [config] Kernel config overrides $0 kconfig [file] [config] Kernel config overrides
$0 package_source [file] Package source file information $0 package_source [file] Package source file information
$0 package_feeds [file] Package feed information in makefile format $0 package_feeds [file] Package feed information in makefile format
$0 package_license [file] Package license information
$0 package_licensefull [file] Package license information (full list)
EOF EOF
} }

View file

@ -97,6 +97,8 @@ sub parse_package_metadata($) {
/^Submenu: \s*(.+)\s*$/ and $pkg->{submenu} = $1; /^Submenu: \s*(.+)\s*$/ and $pkg->{submenu} = $1;
/^Submenu-Depends: \s*(.+)\s*$/ and $pkg->{submenudep} = $1; /^Submenu-Depends: \s*(.+)\s*$/ and $pkg->{submenudep} = $1;
/^Source: \s*(.+)\s*$/ and $pkg->{source} = $1; /^Source: \s*(.+)\s*$/ and $pkg->{source} = $1;
/^License: \s*(.+)\s*$/ and $pkg->{license} = $1;
/^LicenseFiles: \s*(.+)\s*$/ and $pkg->{licensefiles} = $1;
/^Default: \s*(.+)\s*$/ and $pkg->{default} = $1; /^Default: \s*(.+)\s*$/ and $pkg->{default} = $1;
/^Provides: \s*(.+)\s*$/ and do { /^Provides: \s*(.+)\s*$/ and do {
my @vpkg = split /\s+/, $1; my @vpkg = split /\s+/, $1;