# Perform optional tests %bcond_without perl_XS_Parse_Keyword_enables_optional_test Name: perl-XS-Parse-Keyword Version: 0.06 Release: 1%{?dist} Summary: XS functions to assist in parsing keyword syntax License: GPL+ or Artistic URL: https://metacpan.org/release/XS-Parse-Keyword Source0: https://cpan.metacpan.org/authors/id/P/PE/PEVANS/XS-Parse-Keyword-%{version}.tar.gz Source1: macros.perl-XS-Parse-Keyword BuildRequires: coreutils BuildRequires: perl-devel BuildRequires: perl-generators BuildRequires: perl-interpreter BuildRequires: perl(base) BuildRequires: perl(ExtUtils::CBuilder) BuildRequires: perl(lib) BuildRequires: perl(Module::Build) BuildRequires: perl(strict) BuildRequires: perl(warnings) # Run-time: BuildRequires: perl(:VERSION) >= 5.14 BuildRequires: perl(XSLoader) # Tests: BuildRequires: perl(Test::More) >= 0.88 %if %{with perl_XS_Parse_Keyword_enables_optional_test} # Optional tests: BuildRequires: perl(Test::Pod) >= 1.00 %endif Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version)) # This module maintains multiple ABIs whose compatibility is checked at # run-time by S_boot_xs_parse_keyword() compiled into the users of this module. # The ABI range is defined with XS::Parse::Keyword/ABIVERSION_MIN and # XS::Parse::Keyword/ABIVERSION_MAX in lib/XS/Parse/Keyword.xs. Provides: perl(:XS_Parse_Keyword_ABI_1) # Remove under-specified dependencies %global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Test::More\\)$ # Filter private modules %global __requires_exclude %{__requires_exclude}|^perl\\(testcase\\) %global __provides_exclude %{?__provides_exclude:%{__provides_exclude}|}^perl\\(testcase\\) %description This module provides some XS functions to assist in writing syntax modules that provide new perl-visible syntax, primarily for authors of keyword plugins using the PL_keyword_plugin hook mechanism. %package Builder Summary: Build-time support for XS::Parse::Keyword Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Requires: perl-interpreter Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version)) # Subpackaged in 0.06 Conflicts: %{name}%{?_isa} < 0.06 %description Builder This module provides a build-time helper to assist authors writing XS modules that use XS::Parse::Keyword. It prepares a Module::Build-using distribution to be able to make use of XS::Parse::Keyword. %package tests Summary: Tests for %{name} Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Requires: perl-Test-Harness Requires: perl(Test::More) >= 0.88 Requires: perl(XSLoader) %description tests Tests from %{name}. Execute them with "%{_libexecdir}/%{name}/test". %prep %setup -q -n XS-Parse-Keyword-%{version} %if !%{with perl_XS_Parse_Keyword_enables_optional_test} rm t/99pod.t perl -i -ne 'print $_ unless m{\A\Qt/99pod.t\E\b}' MANIFEST %endif chmod +x t/*.t %build perl Build.PL --installdirs=vendor --optimize="$RPM_OPT_FLAGS" ./Build # Build object files for tests now. They are installed into tests subpackage. ./Build testlib %install ./Build install --destdir=%{buildroot} --create_packlist=0 find %{buildroot} -type f -name '*.bs' -size 0 -delete %{_fixperms} %{buildroot}/* install -D -m 0644 -t %{buildroot}%{_rpmmacrodir} %{SOURCE1} # Install tests mkdir -p %{buildroot}%{_libexecdir}/%{name} cp -a t %{buildroot}%{_libexecdir}/%{name} find %{buildroot}%{_libexecdir}/%{name} -type f \ \( -name '*.bs' -o -name '*.c' -o -name '*.o' \) -delete %if %{with perl_XS_Parse_Keyword_enables_optional_test} rm %{buildroot}%{_libexecdir}/%{name}/t/99pod.t %endif 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}') ./Build test %files %license LICENSE %doc Changes README %{perl_vendorarch}/auto/* %dir %{perl_vendorarch}/XS %dir %{perl_vendorarch}/XS/Parse %{perl_vendorarch}/XS/Parse/Keyword.pm %{_mandir}/man3/XS::Parse::Keyword.* %files Builder %{perl_vendorarch}/XS/Parse/Keyword %{_mandir}/man3/XS::Parse::Keyword::* %{_rpmmacrodir}/macros.%{name} %files tests %{_libexecdir}/%{name} %changelog * Wed Jun 02 2021 Petr Pisar - 0.06-1 - 0.06 bump - Subpackage XS::Parse::Keyword::Builder * Tue Jun 01 2021 Petr Pisar - 0.05-1 - 0.05 bump * Tue May 25 2021 Jitka Plesnikova - 0.04-2 - Perl 5.34 re-rebuild updated packages * Tue May 25 2021 Petr Pisar - 0.04-1 - 0.04 bump * Fri May 21 2021 Jitka Plesnikova - 0.03-3 - Perl 5.34 rebuild * Tue May 04 2021 Petr Pisar - 0.03-2 - Require XSLoader for the tests * Fri Apr 30 2021 Petr Pisar 0.03-1 - Specfile autogenerated by cpanspec 1.78.