Package tests manually
"rpmbuild --rebuild perl-JSON-XS...src.rpm --nocheck" blows because of a fragile perl_default_subpackage_tests macro. Also the tests were missing the required dependencies.
This commit is contained in:
		
							parent
							
								
									3c4ed7a603
								
							
						
					
					
						commit
						313f2bb1a0
					
				| @ -2,7 +2,7 @@ Name:           perl-JSON-XS | |||||||
| Summary:        JSON serializing/de-serializing, done correctly and fast | Summary:        JSON serializing/de-serializing, done correctly and fast | ||||||
| Epoch:          1 | Epoch:          1 | ||||||
| Version:        4.03 | Version:        4.03 | ||||||
| Release:        2%{?dist} | Release:        3%{?dist} | ||||||
| License:        GPL+ or Artistic | License:        GPL+ or Artistic | ||||||
| URL:            https://metacpan.org/release/JSON-XS | URL:            https://metacpan.org/release/JSON-XS | ||||||
| Source0:        https://cpan.metacpan.org/modules/by-module/JSON/JSON-XS-%{version}.tar.gz | Source0:        https://cpan.metacpan.org/modules/by-module/JSON/JSON-XS-%{version}.tar.gz | ||||||
| @ -14,6 +14,7 @@ BuildRequires:  perl-devel | |||||||
| BuildRequires:  perl-generators | BuildRequires:  perl-generators | ||||||
| BuildRequires:  perl-interpreter | BuildRequires:  perl-interpreter | ||||||
| BuildRequires:  perl(Canary::Stability) | BuildRequires:  perl(Canary::Stability) | ||||||
|  | BuildRequires:  perl(Config) | ||||||
| BuildRequires:  perl(ExtUtils::MakeMaker) >= 6.76 | BuildRequires:  perl(ExtUtils::MakeMaker) >= 6.76 | ||||||
| BuildRequires:  sed | BuildRequires:  sed | ||||||
| # Module Runtime | # Module Runtime | ||||||
| @ -38,29 +39,54 @@ BuildRequires:  perl(warnings) | |||||||
| Requires:       perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) | Requires:       perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) | ||||||
| 
 | 
 | ||||||
| %{?perl_default_filter} | %{?perl_default_filter} | ||||||
| %{?perl_default_subpackage_tests} |  | ||||||
| 
 | 
 | ||||||
| %description | %description | ||||||
| This module converts Perl data structures to JSON and vice versa. Its | This module converts Perl data structures to JSON and vice versa. Its | ||||||
| primary goal is to be correct and its secondary goal is to be fast. To | primary goal is to be correct and its secondary goal is to be fast. To | ||||||
| reach the latter goal it was written in C. | reach the latter goal it was written in C. | ||||||
| 
 | 
 | ||||||
|  | %package tests | ||||||
|  | Summary:        Tests for %{name} | ||||||
|  | BuildArch:      noarch | ||||||
|  | Requires:       %{name} = %{?epoch:%{epoch}:}%{version}-%{release} | ||||||
|  | Requires:       perl-Test-Harness | ||||||
|  | 
 | ||||||
|  | %description tests | ||||||
|  | Tests from %{name}. Execute them | ||||||
|  | with "%{_libexecdir}/%{name}/test". | ||||||
|  | 
 | ||||||
| %prep | %prep | ||||||
| %setup -q -n JSON-XS-%{version} | %setup -q -n JSON-XS-%{version} | ||||||
| 
 | 
 | ||||||
| sed -i 's/\r//' t/* | sed -i 's/\r//' t/* | ||||||
| perl -pi -e 's|^#!/opt/bin/perl|#!%{__perl}|' eg/* | perl -MConfig -pi -e 's|^#!/opt/bin/perl|$Config{startperl}|' eg/* | ||||||
| chmod -c -x eg/* | chmod -c -x eg/* | ||||||
| 
 | 
 | ||||||
|  | # Help generators to recognize Perl scripts | ||||||
|  | for F in t/*.t; do | ||||||
|  |     perl -i -MConfig -ple 'print $Config{startperl} if $. == 1 && !s{\A#!\s*perl}{$Config{startperl}}' "$F" | ||||||
|  |     chmod +x "$F" | ||||||
|  | done | ||||||
|  | 
 | ||||||
| %build | %build | ||||||
| %{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}" NO_PACKLIST=1 NO_PERLLOCAL=1 | %{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}" NO_PACKLIST=1 NO_PERLLOCAL=1 | ||||||
| %{make_build} | %{make_build} | ||||||
| 
 | 
 | ||||||
| %install | %install | ||||||
| %{make_install} | %{make_install} | ||||||
|  | # Install tests | ||||||
|  | mkdir -p %{buildroot}%{_libexecdir}/%{name} | ||||||
|  | cp -a t %{buildroot}%{_libexecdir}/%{name} | ||||||
|  | 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 | ||||||
|  | # Correct permissions | ||||||
| %{_fixperms} -c %{buildroot} | %{_fixperms} -c %{buildroot} | ||||||
| 
 | 
 | ||||||
| %check | %check | ||||||
|  | export HARNESS_OPTIONS=j$(perl -e 'if ($ARGV[0] =~ /.*-j([0-9][0-9]*).*/) {print $1} else {print 1}' -- '%{?_smp_mflags}') | ||||||
| make test | make test | ||||||
| 
 | 
 | ||||||
| %files | %files | ||||||
| @ -71,7 +97,13 @@ make test | |||||||
| %{perl_vendorarch}/JSON/ | %{perl_vendorarch}/JSON/ | ||||||
| %{_mandir}/man[13]/* | %{_mandir}/man[13]/* | ||||||
| 
 | 
 | ||||||
|  | %files tests | ||||||
|  | %{_libexecdir}/%{name} | ||||||
|  | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Mon Feb 22 2021 Petr Pisar <ppisar@redhat.com> - 1:4.03-3 | ||||||
|  | - Package tests manually | ||||||
|  | 
 | ||||||
| * Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.03-2 | * Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.03-2 | ||||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild | - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user