Compare commits

..

No commits in common. "master" and "RELEASE_1.0.3" have entirely different histories.

12 changed files with 65 additions and 220 deletions

View file

@ -1,10 +0,0 @@
# Set update schedule for GitHub Actions
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every week
interval: "weekly"

View file

@ -1,5 +1,9 @@
# This is a basic workflow to help you get started with Actions
name: CI name: CI
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on: on:
push: push:
branches: [ master ] branches: [ master ]
@ -7,15 +11,21 @@ on:
branches: [ master ] branches: [ master ]
workflow_dispatch: workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs: jobs:
build: build:
uses: PerlToolsTeam/github_workflows/.github/workflows/cpan-test.yml@main runs-on: ${{ matrix.os }}
strategy:
coverage: matrix:
uses: PerlToolsTeam/github_workflows/.github/workflows/cpan-coverage.yml@main os: [ 'ubuntu-latest', 'macos-latest' ]
perl: [ 'latest' ]
perlcritic: name: Perl ${{ matrix.perl }} on ${{ matrix.os }}
uses: PerlToolsTeam/github_workflows/.github/workflows/cpan-perlcritic.yml@main steps:
- uses: actions/checkout@v2
complexity: - name: Set up perl
uses: PerlToolsTeam/github_workflows/.github/workflows/cpan-complexity.yml@main uses: shogo82148/actions-setup-perl@v1
with:
perl-version: ${{ matrix.perl }}
- run: perl -V
- run: cpanm --installdeps .
- run: prove -lv t

25
.travis.yml Normal file
View file

@ -0,0 +1,25 @@
language: perl
matrix:
include:
- perl: "5.30"
- perl: "5.28"
- perl: "5.26"
- perl: "5.24"
- perl: "5.22"
- perl: "5.20"
dist: trusty
- perl: "5.18"
dist: trusty
- perl: "5.16"
dist: trusty
- perl: "5.14"
dist: trusty
- perl: "5.12"
dist: trusty
- perl: "5.10"
dist: trusty
before_install:
cpanm -n Devel::Cover::Report::Coveralls
script:
perl Build.PL && ./Build build && cover -test -report coveralls

View file

@ -23,11 +23,11 @@ my $build = Module::Build->new(
resources => { resources => {
repository => { repository => {
type => 'git', type => 'git',
url => 'git://github.com/davorg-cpan/parse-rpm-spec.git', url => 'git://github.com/davorg/parse-rpm-spec.git',
web => 'https://github.com/davorg-cpan/parse-rpm-spec', web => 'https://github.com/davorg/parse-rpm-spec',
}, },
bugtracker => { bugtracker => {
web => 'https://github.com/davorg-cpan/parse-rpm-spec/issues', web => 'https://github.com/davorg/parse-rpm-spec/issues',
}, },
}, },
}, },

15
Changes
View file

@ -1,18 +1,3 @@
2023-01-13 Dave Cross <dave@perlhacks.com>
* Version 1.1.2
* Fix name of excludearch method (thanks Michal Josef Špaček)
2023-01-12 Dave Cross <dave@perlhacks.com>
* Version 1.1.1
* Fix problem parsing perl-License-Syntax.spec (thanks Michal Josef Špaček)
2022-12-09 Dave Cross <dave@perlhacks.com>
* Version 1.1.0
* Support ExcludeArch, ExclusiveArch, ExcluseOS, ExclusiveOS
2021-01-23 Dave Cross <dave@perlhacks.com> 2021-01-23 Dave Cross <dave@perlhacks.com>
* Version 1.0.3 * Version 1.0.3

View file

@ -7,7 +7,7 @@ use warnings;
use Carp; use Carp;
use Moose; use Moose;
our $VERSION = 'v1.1.2'; our $VERSION = 'v1.0.3';
has file => ( is => 'ro', isa => 'Str', required => 1 ); has file => ( is => 'ro', isa => 'Str', required => 1 );
has name => ( is => 'rw', isa => 'Str' ); has name => ( is => 'rw', isa => 'Str' );
@ -23,8 +23,6 @@ has buildroot => ( is => 'rw', isa => 'Str' );
has buildarch => ( is => 'rw', isa => 'Str' ); has buildarch => ( is => 'rw', isa => 'Str' );
has buildrequires => ( is => 'rw', isa => 'ArrayRef[Str]', default => sub { [] } ); has buildrequires => ( is => 'rw', isa => 'ArrayRef[Str]', default => sub { [] } );
has requires => ( is => 'rw', isa => 'ArrayRef[Str]', default => sub { [] } ); has requires => ( is => 'rw', isa => 'ArrayRef[Str]', default => sub { [] } );
has [ qw( excludearch exclusivearch excludeos exclusiveos ) ]
=> ( is => 'rw', isa => 'Str' );
has parse_spec => ( has parse_spec => (
is => 'ro', is => 'ro',
@ -35,25 +33,21 @@ has parse_spec => (
sub _build_parse_spec { sub _build_parse_spec {
return { return {
scalars => { scalars => {
name => qr[^Name:\s+(\S+)], name => qr[^Name:\s*(\S+)],
version => qr[^Version:\s+(\S+)], version => qr[^Version:\s*(\S+)],
epoch => qr[^Epoch:\s+(\S+)], epoch => qr[^Epoch:\s*(\S+)],
release => qr[^Release:\s+(\S+)], release => qr[^Release:\s*(\S+)],
summary => qr[^Summary:\s+(.+)], summary => qr[^Summary:\s*(.+)],
license => qr[^License:\s+(.+)], license => qr[^License:\s*(.+)],
group => qr[^Group:\s+(\S+)], group => qr[^Group:\s*(\S+)],
url => qr[^(?:URL|Url):\s+(\S+)], url => qr[^URL:\s*(\S+)],
buildroot => qr[^BuildRoot:\s+(\S+)], buildroot => qr[^BuildRoot:\s*(\S+)],
buildarch => qr[^BuildArch:\s+(\S+)], buildarch => qr[^BuildArch:\s*(\S+)],
excludearch => qr[^ExcludeArch:\s+(\S+)],
exclusivearch => qr[^ExclusiveArch:\s+(\S+)],
excludeos => qr[^ExcludeOS:\s+(\S+)],
exclusiveos => qr[^ExclusiveOS:\s+(\S+)],
}, },
arrays => { arrays => {
source => qr[^Source\d*:\s+(\S+)], source => qr[^Source\d*:\s*(\S+)],
buildrequires => qr[^BuildRequires:\s+(.+)], buildrequires => qr[^BuildRequires:\s*(.+)],
requires => qr[^Requires:\s+(.+)], requires => qr[^Requires:\s*(.+)],
}, },
}; };
} }
@ -89,7 +83,7 @@ sub parse_file {
croak "Spec file $file is empty\n"; croak "Spec file $file is empty\n";
} }
open my $fh, '<', $file or croak "Cannot open $file: $!\n"; open my $fh, $file or croak "Cannot open $file: $!\n";
my $scalars = $self->parse_spec->{scalars}; my $scalars = $self->parse_spec->{scalars};
my $arrays = $self->parse_spec->{arrays}; my $arrays = $self->parse_spec->{arrays};

View file

@ -12,8 +12,6 @@ BuildArch: noarch
BuildRequires: perl >= 1:5.6.0 BuildRequires: perl >= 1:5.6.0
BuildRequires: perl(Module::Build) BuildRequires: perl(Module::Build)
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
ExclusiveArch: megaCPU
ExcludeArch: crapCPU
%description %description
If you have two arrays and you want to know if they are the same or If you have two arrays and you want to know if they are the same or

View file

@ -1,13 +0,0 @@
use strict;
use warnings;
use Test::More;
use Test::Exception;
use Parse::RPM::Spec;
my $spec = Parse::RPM::Spec->new( { file => 't/perl-License-Syntax.spec' } );
is($spec->license, 'GPL-1.0-or-later OR Artistic-1.0-Perl', 'Correct license');
done_testing;

View file

@ -1,31 +1,24 @@
use strict;
use warnings;
use Test::More; use Test::More;
use Test::Exception; use Test::Exception;
BEGIN { use_ok('Parse::RPM::Spec') }; BEGIN { use_ok('Parse::RPM::Spec') };
ok(my $spec = Parse::RPM::Spec->new( { file => 't/file.spec' } ), ok($spec = Parse::RPM::Spec->new( { file => 't/file.spec' } ),
'Got an object'); 'Got an object');
isa_ok($spec, 'Parse::RPM::Spec'); isa_ok($spec, 'Parse::RPM::Spec');
is($spec->name, 'perl-Array-Compare', 'Correct name'); is($spec->name, 'perl-Array-Compare', 'Correct name');
is($spec->summary, 'Perl extension for comparing arrays', 'Correct summary'); is($spec->summary, 'Perl extension for comparing arrays', 'Correct summary');
is($spec->url, 'http://search.cpan.org/dist/Array-Compare/', 'Correct URL');
is($spec->epoch, 1, 'Correct epoch'); is($spec->epoch, 1, 'Correct epoch');
is($spec->version, '1.16', 'Correct version'); is($spec->version, '1.16', 'Correct version');
$spec->version('1.17'); $spec->version('1.17');
is($spec->version, '1.17', 'Changed version correctly'); is($spec->version, '1.17', 'Changed version correctly');
is($spec->buildarch, 'noarch', 'Correct build architecture'); is($spec->buildarch, 'noarch', 'Correct build arrchitecture');
is(@{$spec->buildrequires}, 2, 'Correct number of build requirements'); is(@{$spec->buildrequires}, 2, 'Correct number of build requirements');
is($spec->buildrequires->[0], 'perl >= 1:5.6.0', is($spec->buildrequires->[0], 'perl >= 1:5.6.0',
'First build requirement is correct'); 'First build requirement is correct');
is($spec->exclusivearch, 'megaCPU', 'Correct exclusive architecture');
is($spec->excludearch, 'crapCPU', 'Correct excluded architecture');
dies_ok { Parse::RPM::Spec->new } dies_ok { Parse::RPM::Spec->new }
'No spec file given'; 'No spec file given';
dies_ok { Parse::RPM::Spec->new( file => 'not-there') } dies_ok { Parse::RPM::Spec->new( file => 'not-there') }

View file

@ -1,131 +0,0 @@
Name: perl-License-Syntax
Version: 0.13
Release: 23%{?dist}
Summary: Coding and decoding of license strings using SPDX and SUSE syntax
License: GPL-1.0-or-later OR Artistic-1.0-Perl
URL: https://metacpan.org/release/License-Syntax
Source0: https://cpan.metacpan.org/authors/id/J/JN/JNW/License-Syntax-%{version}.tar.gz
BuildArch: noarch
# Build
BuildRequires: coreutils
BuildRequires: make
BuildRequires: perl-generators
BuildRequires: perl-interpreter
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76
BuildRequires: perl(strict)
BuildRequires: perl(warnings)
# Runtime
BuildRequires: perl(Carp)
BuildRequires: perl(Data::Dumper)
BuildRequires: perl(DBD::SQLite)
BuildRequires: perl(DBI)
BuildRequires: perl(POSIX)
BuildRequires: perl(Text::CSV)
# Tests only
BuildRequires: perl(Test::More)
# Optional tests only
BuildRequires: perl(Pod::Coverage) >= 0.18
BuildRequires: perl(Test::Pod) >= 1.22
BuildRequires: perl(Test::Pod::Coverage) >= 1.08
Requires: perl(:MODULE_COMPAT_%(eval "$(perl -V:version)"; echo $version))
Requires: perl(DBD::SQLite)
%description
License::Syntax is an object oriented module. When constructing new
License::Syntax objects, you can provide a mapping table for license
names. The table is used for recognizing alternate alias names for the
licenses (left hand side) and also defines the canonical short names of
the licenses (right hand side). The mapping table is consulted twice,
before and after decoding the syntax, thus non-terminal mappings may
actually be followed.
%prep
%setup -q -n License-Syntax-%{version}
chmod -c a-x license_syntax.pl
%build
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1
%{make_build}
%install
%{make_install}
rm -f %{buildroot}/%{perl_vendorlib}/License/license_syntax.pl
%{_fixperms} %{buildroot}/*
%check
make test
%files
%doc Changes README license_syntax.pl synopsis.csv
%{perl_vendorlib}/*
%{_mandir}/man3/*
%changelog
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue May 31 2022 Jitka Plesnikova <jplesnik@redhat.com> - 0.13-22
- Perl 5.36 rebuild
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 0.13-19
- Perl 5.34 rebuild
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jun 23 2020 Jitka Plesnikova <jplesnik@redhat.com> - 0.13-16
- Perl 5.32 rebuild
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri May 31 2019 Jitka Plesnikova <jplesnik@redhat.com> - 0.13-13
- Perl 5.30 rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Jun 28 2018 Jitka Plesnikova <jplesnik@redhat.com> - 0.13-10
- Perl 5.28 rebuild
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Mon Jun 05 2017 Jitka Plesnikova <jplesnik@redhat.com> - 0.13-7
- Perl 5.26 rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Sun May 15 2016 Jitka Plesnikova <jplesnik@redhat.com> - 0.13-5
- Perl 5.24 rebuild
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.13-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Fri Jun 05 2015 Jitka Plesnikova <jplesnik@redhat.com> - 0.13-2
- Perl 5.22 rebuild
* Thu Apr 02 2015 Petr Šabata <contyk@redhat.com> 0.13-1
- Initial packaging

View file

@ -1,6 +1,3 @@
use strict;
use warnings;
use Test::More; use Test::More;
eval "use Test::Pod 1.00"; eval "use Test::Pod 1.00";
plan skip_all => "Test::Pod 1.00 required for testing POD" if $@; plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;

View file

@ -1,6 +1,3 @@
use strict;
use warnings;
use Test::More; use Test::More;
eval "use Test::Pod::Coverage 1.00"; eval "use Test::Pod::Coverage 1.00";
plan skip_all => "Test::Pod::Coverage 1.00 required for testing POD coverage" if $@; plan skip_all => "Test::Pod::Coverage 1.00 required for testing POD coverage" if $@;