Skip to content

Handle Fedora RPM spec license string.

License

BSD-2-Clause, Unknown licenses found

Licenses found

BSD-2-Clause
LICENSE
Unknown
License.pm
Notifications You must be signed in to change notification settings

michal-josef-spacek/Fedora-RPM-Spec-License

Repository files navigation

NAME
    Fedora::RPM::Spec::License - Class for handle Fedora license string.

SYNOPSIS
     use Fedora::RPM::Spec::License;

     my $obj = Fedora::RPM::Spec::License->new(%params);
     my @exceptions = $obj->exceptions;
     my $fedora_license_format = $obj->format;
     my @licenses = $obj->licenses;
     $obj->parse($fedora_license_string);
     $obj->reset;

DESCRIPTION
    Fedora license string is used in Fedora RPM spec files in License field.
    There are two versions of this string. One is old version and new one
    with SPDX identifiers.

METHODS
  "new"
     my $obj = Fedora::RPM::Spec::License->new(%params);

    Constructor.

    Returns instance of object.

  "exceptions"
     my @exceptions = $obj->exceptions;

    Get exceptions used in the Fedora license string sorted alphabetically.

    Returns array of strings.

  "format"
     my $fedora_license_format = $obj->format;

    Get Fedora license string format. Possible values:

     1 - Old RPM Fedora format.
     2 - New RPM Fedora format with SPDX license ids.

    Returns number.

  "licenses"
     my @licenses = $obj->licenses;

    Get licenses used in the Fedora license string sorted alphabetically.

    Returns array of strings.

  "parse"
     $obj->parse($fedora_license_string);

    Parse Fedora license string and set object internal structures. If
    string is valid for format 1 and 2 as well, format 2 is preferred.
    Example is 'MIT' license string.

    Returns undef.

  "reset"
     $obj->reset;

    Reset object.

    Returns undef.

ERRORS
     new():
             From Class::Utils::set_params():
                     Unknown parameter '%s'.

     format():
             No Fedora license string processed.

     licenses():
             No Fedora license string processed.

     parse():
             License '%s' isn't SPDX license.
             License '%s' isn't SPDX license exception.

EXAMPLE
     use strict;
     use warnings;

     use Fedora::RPM::Spec::License;

     if (@ARGV < 1) {
             print STDERR "Usage: $0 fedora_license_string\n";
             exit 1;
     }
     my $fedora_license_string = $ARGV[0];

     # Object.
     my $obj = Fedora::RPM::Spec::License->new;

     # Parse license.
     $obj->parse($fedora_license_string);

     # Print out.
     print "Fedora license string: $fedora_license_string\n";
     print 'Format: '.$obj->format."\n";
     print "Contain licenses:\n";
     print join "\n", map { '- '. $_ } $obj->licenses;
     print "\n";
     if ($obj->exceptions) {
             print "Contain exceptions:\n";
             print join "\n", map { '- '. $_ } $obj->exceptions;
             print "\n";
     }

     # Output with 'MIT' input:
     # Fedora license string: MIT
     # Format: 2
     # Contain licenses:
     # - MIT

     # Output with 'MIT AND FSFAP' input:
     # Fedora license string: MIT AND FSFAP
     # Format: 2
     # Contain licenses:
     # - FSFAP
     # - MIT

     # Output with '(GPL+ or Artistic) and Artistic 2.0 and (MIT or GPLv2)' input:
     # Fedora license string: (GPL+ or Artistic) and Artistic 2.0 and (MIT or GPLv2)
     # Format: 1
     # Contain licenses:
     # - Artistic
     # - Artistic 2.0
     # - GPL+
     # - GPLv2
     # - MIT

     # Output with 'LGPL-3.0-only WITH LGPL-3.0-linking-exception' input:
     # Fedora license string: LGPL-3.0-only WITH LGPL-3.0-linking-exception
     # Format: 2
     # Contain licenses:
     # - LGPL-3.0-only
     # Contain exceptions:
     # - LGPL-3.0-linking-exception

DEPENDENCIES
    Class::Utils, English, Error::Pure, License::SPDX, List::Util,
    Parse::RecDescent, Readonly.

SEE ALSO
    rpm-spec-license
        Tool for working with RPM spec file licenses.

REPOSITORY
    <https://github.com/michal-josef-spacek/Fedora-RPM-Spec-License>

AUTHOR
    Michal Josef Špaček <mailto:skim@cpan.org>

    <http://skim.cz>

LICENSE AND COPYRIGHT
    © 2023 Michal Josef Špaček

    BSD 2-Clause License

VERSION
    0.04

About

Handle Fedora RPM spec license string.

Topics

Resources

License

BSD-2-Clause, Unknown licenses found

Licenses found

BSD-2-Clause
LICENSE
Unknown
License.pm

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages