|
|
|
@ -1,32 +1,73 @@
|
|
|
|
|
Name: perl-Pegex
|
|
|
|
|
Version: 0.75
|
|
|
|
|
Release: 10%{?dist}
|
|
|
|
|
Release: 12%{?dist}
|
|
|
|
|
Summary: Pegex Parser Generator
|
|
|
|
|
License: GPL+ or Artistic
|
|
|
|
|
# inc/lib/TestML: GPL-1.0-or-later OR Artistic-1.0-Perl (bundled from
|
|
|
|
|
# TestML-0.46)
|
|
|
|
|
# lib/Pegex.pod: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
# lib/Pegex/Base.pm: generated by Mo
|
|
|
|
|
# lib/Pegex/Bootstrap.pod: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
# lib/Pegex/Compiler.pod: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
# lib/Pegex/Grammar.pod: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
# lib/Pegex/Grammar/Atoms.pod: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
# lib/Pegex/Input.pod: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
# lib/Pegex/Module.pod: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
# lib/Pegex/Parser.pod: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
# lib/Pegex/Receiver.pod: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
# lib/Pegex/Regex.pod: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
# lib/Pegex/Pegex/Grammar.pod: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
# lib/Pegex/Tree.pod: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
# lib/Pegex/Tree/Wrap.pod: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
# LICENSE: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
# README: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
License: GPL-1.0-or-later OR Artistic-1.0-Perl
|
|
|
|
|
URL: https://metacpan.org/release/Pegex
|
|
|
|
|
Source0: https://cpan.metacpan.org/authors/id/I/IN/INGY/Pegex-%{version}.tar.gz
|
|
|
|
|
BuildArch: noarch
|
|
|
|
|
BuildRequires: make
|
|
|
|
|
BuildRequires: perl-interpreter
|
|
|
|
|
BuildRequires: coreutils
|
|
|
|
|
BuildRequires: make
|
|
|
|
|
BuildRequires: perl-generators
|
|
|
|
|
BuildRequires: perl-interpreter
|
|
|
|
|
BuildRequires: perl(:VERSION) >= 5.8.1
|
|
|
|
|
BuildRequires: perl(Config)
|
|
|
|
|
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76
|
|
|
|
|
BuildRequires: perl(File::Find)
|
|
|
|
|
BuildRequires: perl(File::ShareDir::Install) >= 0.06
|
|
|
|
|
BuildRequires: perl(strict)
|
|
|
|
|
BuildRequires: perl(warnings)
|
|
|
|
|
# Run-time:
|
|
|
|
|
BuildRequires: perl(base)
|
|
|
|
|
BuildRequires: perl(Carp)
|
|
|
|
|
BuildRequires: perl(ExtUtils::MakeMaker)
|
|
|
|
|
BuildRequires: perl(File::ShareDir::Install)
|
|
|
|
|
BuildRequires: perl(constant)
|
|
|
|
|
BuildRequires: perl(Data::Dumper)
|
|
|
|
|
BuildRequires: perl(Exporter)
|
|
|
|
|
BuildRequires: perl(JSON::PP)
|
|
|
|
|
BuildRequires: perl(overload)
|
|
|
|
|
BuildRequires: perl(re)
|
|
|
|
|
BuildRequires: perl(Scalar::Util)
|
|
|
|
|
BuildRequires: perl(Test::Pod)
|
|
|
|
|
BuildRequires: perl(Tie::IxHash)
|
|
|
|
|
BuildRequires: perl(XXX) >= 0.33
|
|
|
|
|
BuildRequires: perl(YAML::PP) >= 0.018
|
|
|
|
|
BuildRequires: perl(Term::ANSIColor)
|
|
|
|
|
# XXX not used at tests
|
|
|
|
|
# perl(YAML::PP) not used at tests
|
|
|
|
|
# Tests:
|
|
|
|
|
BuildRequires: perl(lib)
|
|
|
|
|
BuildRequires: perl(List::Util)
|
|
|
|
|
BuildRequires: perl(Safe)
|
|
|
|
|
|
|
|
|
|
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
|
|
|
|
|
Requires: perl(Carp)
|
|
|
|
|
Requires: perl(File::ShareDir::Install)
|
|
|
|
|
BuildRequires: perl(Test::More)
|
|
|
|
|
# Text::Diff not helpful
|
|
|
|
|
BuildRequires: perl(utf8)
|
|
|
|
|
# Optional tests:
|
|
|
|
|
BuildRequires: perl(YAML::PP) >= 0.019
|
|
|
|
|
Requires: perl(Data::Dumper)
|
|
|
|
|
Requires: perl(JSON::PP)
|
|
|
|
|
Requires: perl(Scalar::Util)
|
|
|
|
|
Requires: perl(XXX) >= 0.33
|
|
|
|
|
Requires: perl(YAML::PP) >= 0.018
|
|
|
|
|
Requires: perl(Term::ANSIColor)
|
|
|
|
|
Requires: perl(XXX) >= 0.35
|
|
|
|
|
Requires: perl(YAML::PP) >= 0.019
|
|
|
|
|
|
|
|
|
|
# Remove underspecified dependencies
|
|
|
|
|
%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(YAML::PP\\)$
|
|
|
|
|
# Remove private modules
|
|
|
|
|
%global __provides_exclude %{?__provides_exclude:%{__provides_exclude}|}^perl\\((TestAST|TestML)
|
|
|
|
|
%global __requires_exclude %{__requires_exclude}|^perl\\((TestAST|TestML)
|
|
|
|
|
|
|
|
|
|
%description
|
|
|
|
|
Pegex is an Acmeist parser framework. It is a PEG parser grammar syntax,
|
|
|
|
@ -34,32 +75,70 @@ combined with PCRE compatible regular expressions as the match tokens.
|
|
|
|
|
Pegex draws heavily from Perl 6 rules, but works equivalently in many
|
|
|
|
|
modern programming languages.
|
|
|
|
|
|
|
|
|
|
%package tests
|
|
|
|
|
Summary: Tests for %{name}
|
|
|
|
|
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
|
|
|
|
|
Requires: perl-Test-Harness
|
|
|
|
|
Requires: perl(List::Util)
|
|
|
|
|
Requires: perl(YAML::PP) >= 0.019
|
|
|
|
|
|
|
|
|
|
%description tests
|
|
|
|
|
Tests from %{name}. Execute them
|
|
|
|
|
with "%{_libexecdir}/%{name}/test".
|
|
|
|
|
|
|
|
|
|
%prep
|
|
|
|
|
%setup -q -n Pegex-%{version}
|
|
|
|
|
## Remove bundled modules
|
|
|
|
|
#rm -r ./inc
|
|
|
|
|
#sed -i '79,$ d' Makefile.PL
|
|
|
|
|
sed -i -e '/^inc\//d' MANIFEST
|
|
|
|
|
# Remove author tests
|
|
|
|
|
rm t/author-pod-syntax.t
|
|
|
|
|
perl -i -ne 'print $_ unless m{^t/author-pod-syntax\.t}' MANIFEST
|
|
|
|
|
# Remove shebangs
|
|
|
|
|
for F in t/pegex-tml/*; do
|
|
|
|
|
perl -i -ne 'print $_ unless m{^#!}' "$F"
|
|
|
|
|
chmod -x "$F"
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
%build
|
|
|
|
|
%{__perl} Makefile.PL INSTALLDIRS=vendor
|
|
|
|
|
make %{?_smp_mflags}
|
|
|
|
|
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1
|
|
|
|
|
%{make_build}
|
|
|
|
|
|
|
|
|
|
%install
|
|
|
|
|
make pure_install DESTDIR=$RPM_BUILD_ROOT
|
|
|
|
|
find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} \;
|
|
|
|
|
%{_fixperms} $RPM_BUILD_ROOT/*
|
|
|
|
|
%{make_install}
|
|
|
|
|
%{_fixperms} %{buildroot}/*
|
|
|
|
|
# Install tests
|
|
|
|
|
mkdir -p %{buildroot}%{_libexecdir}/%{name}
|
|
|
|
|
cp -a inc t %{buildroot}%{_libexecdir}/%{name}
|
|
|
|
|
# t/000-compile-modules.t inspects nonexitant ./lib
|
|
|
|
|
rm %{buildroot}%{_libexecdir}/%{name}/t/000-compile-modules.t
|
|
|
|
|
cat > %{buildroot}%{_libexecdir}/%{name}/test << 'EOF'
|
|
|
|
|
#!/bin/sh
|
|
|
|
|
cd %{_libexecdir}/%{name} && exec prove -I . -j "$(getconf _NPROCESSORS_ONLN)"
|
|
|
|
|
EOF
|
|
|
|
|
chmod +x %{buildroot}%{_libexecdir}/%{name}/test
|
|
|
|
|
|
|
|
|
|
%check
|
|
|
|
|
export HARNESS_OPTIONS=j$(perl -e 'if ($ARGV[0] =~ /.*-j([0-9][0-9]*).*/) {print $1} else {print 1}' -- '%{?_smp_mflags}')
|
|
|
|
|
make test
|
|
|
|
|
|
|
|
|
|
%files
|
|
|
|
|
%license LICENSE
|
|
|
|
|
%doc Changes CONTRIBUTING example META.json README
|
|
|
|
|
%doc Changes CONTRIBUTING example README
|
|
|
|
|
%{perl_vendorlib}/*
|
|
|
|
|
%{_mandir}/man3/*
|
|
|
|
|
|
|
|
|
|
%files tests
|
|
|
|
|
%{_libexecdir}/%{name}
|
|
|
|
|
|
|
|
|
|
%changelog
|
|
|
|
|
* Wed Sep 27 2023 Arkady L. Shane <tigro@msvsphere-os.ru> - 0.75-12
|
|
|
|
|
- Rebuilt for MSVSphere 9.2
|
|
|
|
|
|
|
|
|
|
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.75-12
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Tue Nov 29 2022 Petr Pisar <ppisar@redhat.com> - 0.75-11
|
|
|
|
|
- Specify all dependencies
|
|
|
|
|
- Package the tests
|
|
|
|
|
|
|
|
|
|
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.75-10
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
|
|
|
|
|