NAME
License::SPDX - Object for SPDX licenses handling.
SYNOPSIS
use License::SPDX;
my $obj = License::SPDX->new;
my $checked = $obj->check_exception($check_string, $opts_hr);
my $checked = $obj->check_license($check_string, $opts_hr);
my $exception_hr = $obj->exception($exception_id);
my @exceptions = $obj->exceptions;
my $license_hr = $obj->license($license_id);
my @licenses = $obj->licenses;
my $spdx_release_date = $obj->spdx_release_date;
my $spdx_version = $obj->spdx_version;
DESCRIPTION
Object for SPDX licenses handling is using license data from https://github.com/spdx/license-list-data repository. Actual version is 3.21.
METHODS
new
my $obj = License::SPDX->new;
Constructor.
Returns instance of object.
check_exception
my $checked = $obj->check_exception($check_string, $opts_hr);
Check if license exception exists. Argument $opts_hr
is reference to hash with parameter 'check_type' for definition of check_exception()
type.
Possible 'check_type' values:
'id' - Check license exception id.
'name' - Check license exception name.
Default value of 'check_type' is 'id'. If 'check_type' is bad, fail with error.
Returns 1 (license exist) or 0 (license doesn't exist).
check_license
my $checked = $obj->check_license($check_string, $opts_hr);
Check if license exists. Argument $opts_hr
is reference to hash with parameter 'check_type' for definition of check_license()
type.
Possible 'check_type' values:
'id' - Check license id.
'name' - Check license name.
Default value of 'check_type' is 'id'. If 'check_type' is bad, fail with error.
Returns 1 (license exist) or 0 (license doesn't exist).
exception
my $exception_hr = $obj->exception($exception_id);
Get license exception structure.
Returns reference to hash.
exceptions
my @exceptions = $obj->exceptions;
Get all license exception structures.
Returns array of references to hash.
license
my $license_hr = $obj->license($license_id);
Get license structure.
Returns reference to hash.
licenses
my @licenses = $obj->licenses;
Get all license structures.
Returns array of references to hash.
spdx_release_date
my $spdx_release_date = $obj->spdx_release_date;
Get release date of data structure with SPDX license.
Returns string.
spdx_version
my $spdx_version = $obj->spdx_version;
Get version of data structure with SPDX license.
Returns string.
ERRORS
new():
From Class::Utils::set_params():
Unknown parameter '%s'.
check_exception():
Check type '%s' doesn't supported.
check_license():
Check type '%s' doesn't supported.
EXAMPLE1
use strict;
use warnings;
use License::SPDX;
if (@ARGV < 1) {
print STDERR "Usage: $0 license_id\n";
exit 1;
}
my $license_id = $ARGV[0];
# Object.
my $obj = License::SPDX->new;
print 'License with id \''.$license_id.'\' is ';
if ($obj->check_license($license_id)) {
print "supported.\n";
} else {
print "not supported.\n";
}
# Output for 'MIT':
# License with id 'MIT' is supported.
# Output for 'BAD':
# License with id 'BAD' is not supported.
EXAMPLE2
use strict;
use warnings;
use License::SPDX;
if (@ARGV < 1) {
print STDERR "Usage: $0 license_exception_id\n";
exit 1;
}
my $license_exception_id = $ARGV[0];
# Object.
my $obj = License::SPDX->new;
print 'License exception with id \''.$license_exception_id.'\' is ';
if ($obj->check_exception($license_exception_id)) {
print "supported.\n";
} else {
print "not supported.\n";
}
# Output for 'LGPL-3.0-linking-exception':
# License exception with id 'LGPL-3.0-linking-exception' is supported.
# Output for 'BAD':
# License exception with id 'BAD' is not supported.
DEPENDENCIES
Class::Utils, Cpanel::JSON::XS, Error::Pure. File::Share, List::Util, Perl6::Slurp.
SEE ALSO
- rpm-spec-license
-
Tool for working with RPM spec file licenses.
REPOSITORY
https://github.com/michal-josef-spacek/License-SPDX
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© 2023 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.06