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 repository. Actual version is 3.20. 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 AUTHOR Michal Josef Špaček LICENSE AND COPYRIGHT © 2023 Michal Josef Špaček BSD 2-Clause License VERSION 0.05