NAME
Software::LicenseMoreUtils - More utilities and a summary for Software::License
VERSION
version 1.009
SYNOPSIS
use Software::LicenseMoreUtils;
my $lic = Software::LicenseMoreUtils->new_from_short_name({
short_name => 'Apache-2.0', # or GPL-2+, Artistic-2 ...
holder => 'X. Ample' # unlike Software::License, holder is optional
});
# On Debian, return a license summary, returns license text elsewhere
# with ot without copyright notice, depending if holder is set.
my $text = $lic->summary_or_text;
# returns license full text
my $text = $lic->text;
DESCRIPTION
This module provides more utilities for Software::License:
Method "new_from_short_name" returns a Software::LicenseMoreUtils::LicenseWithSummary object that provides all functionalities of
Software::License::*
objects and a summary on some Linux distribution (see below)."new_from_short_name" accepts more short names than Software::LicenseUtils
"new_from_short_name" accepts "or any later version" variant of GPL licenses. When a short name like
GPL-3+
is used, the license summary contains "or (at your option) any later version" statement.Software::License::LGPL-2 license is also provided. Even though license
LGPL-2.1
is preferred overLGPL-2
, some software in Debian useLGPL-2
.
License summary
In some distribution like Debian, all packages should come with the full text of the licenses of the package software.
To avoid many duplication of long license text, the text of the most common licenses are provided in /usr/share/common-licenses
directory. Then the license text of a package need only to provide a summary of the license that refer to the location of the common license.
All summaries are provided for Debian (so, for Ubuntu). Other distributions are welcome to send pull request for their license summaries.
Methods
new_from_short_name
my $license_object = Software::LicenseMoreUtils->new_from_short_name({
short_name => 'GPL-1', # mandatory
holder => 'X. Ample' # optional
}) ;
Unlike Software::License, the Holder
parameter is optional. When set, "summary_or_text" in Software::LicenseMoreUtils::LicenseWithSummary returns a copyright notice with the text of the summary of the license.
Returns a new Software::LicenseMoreUtils::LicenseWithSummary object which is a Software::License wrapped with a summary. This is a drop-in replacement for the Software::License object as all methods are delegated to the underlying Software::License object.
Known short license names are GPL-*
, LGPL-*
, and their "or later version" variant GPL-*+
, LGPL-*+
Artistic
and Artistic-*
. Unlike vanilla Software::License, this module accepts license name with "-" (e.g. GPL-2
) along with "_" (e.g. "GPL_2
").
SPDX v3 identifiers can also be used as short names. I.e. short names like GPL-2.0-only
or LGPL-2.1-or-later
are supported.
If the short name is not known, this method tries to create a license object with Software::License
and the specified short name (e.g. Software::License::MIT
with short_name => 'MIT'
or Software::License::Apache_2_0
with short_name => 'Apache-2.0'
).
AUTHOR
Dominique Dumont
COPYRIGHT AND LICENSE
This software is copyright (c) 2018, 2022 by Dominique Dumont.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.