# NOTE
# - modules in 5.20.0: http://search.cpan.org/~rjbs/perl-5.20.0/
-%define abi 5.20.0
+%define abi 5.24.0
%define perlthread %{?with_threads:-thread-multi}
%define perl_privlib %{_datadir}/perl5/%{ver}
%define perl_mod2verrel() %([ -f %{SOURCE4} ] && awk -vp=%1 -vr=%2 '$1 == p { print $4"-"r }' %{SOURCE4} || echo ERROR)
%define perl_mod2version() %([ -f %{SOURCE4} ] && awk -vp=%1 '$1 == p { m=$2; printf("perl-%s = %s\\n", p, $4)}END{if (!m) printf("# Error looking up [%s]\\n", p) }' %{SOURCE4} || echo ERROR)
-%define ver 5.20.1
-%define rel 2
+%define ver 5.24.0
+%define rel 4
Summary: Practical Extraction and Report Language (Perl)
Summary(cs.UTF-8): Programovací jazyk Perl
Summary(da.UTF-8): Programmeringssproget Perl
Epoch: 1
License: GPL v1+ or Artistic
Group: Development/Languages/Perl
-Source0: http://www.cpan.org/src/5.0/%{name}-%{ver}.tar.gz
-# Source0-md5: 7a195abb7d6769f751e90c7d30dcf2e0
+Source0: http://www.cpan.org/src/5.0/%{name}-%{ver}.tar.xz
+# Source0-md5: 59456ae4bd4b06cb6e57cb19a3b2d349
Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
# Source1-md5: de47d7893f49ad7f41ba69c78511c0db
Source2: %{name}.prov
Patch2: %{name}_580-errno_h-parsing.patch
Patch3: %{name}_581-soname.patch
Patch4: %{name}-test-noproc.patch
+# Test regen.t checks result of this patch.
+# To run test manually run, from BUILD/perl-*:
+# LD_LIBRARY_PATH=$(pwd) ./preload ./libperl.so ./perl t/porting/regen.t
+# Make sure sha output from test matches sha from uconfig.h
Patch5: %{name}_585-microperl_uconfig.patch
Patch6: %{name}-write-permissions.patch
Patch7: %{name}-t-syslog.patch
Patch8: %{name}-Destroy-GDBM-NDBM-ODBM-SDBM-_File-objects.patch
Patch9: %{name}-switch.patch
Patch10: %{name}-invalid-void-use.patch
+Patch11: %{name}-test-dst.patch
URL: http://dev.perl.org/perl5/
%ifarch ppc
# gcc 3.3.x miscompiles pp_hot.c
Provides: %perl_modversion ExtUtils::MakeMaker
Provides: %perl_modversion ExtUtils::Manifest
Provides: %perl_modversion ExtUtils::ParseXS
-Provides: %perl_modversion Module::Build
Obsoletes: perl-CPAN < %perl_modverrel CPAN 99
Obsoletes: perl-CPAN-Meta < %perl_modverrel CPAN::Meta 99
Obsoletes: perl-CPAN-Meta-YAML < %perl_modverrel CPAN::Meta::YAML 99
Obsoletes: perl-ExtUtils-MakeMaker < %perl_modverrel ExtUtils::MakeMaker 99
Obsoletes: perl-ExtUtils-Manifest < %perl_modverrel ExtUtils::Manifest 99
Obsoletes: perl-ExtUtils-ParseXS < %perl_modverrel ExtUtils::ParseXS 99
-Obsoletes: perl-Module-Build < %perl_modverrel Module::Build 99
Obsoletes: perl-lib-devel
%description devel
Requires: %{name}-base = %{epoch}:%{ver}-%{release}
Suggests: perl-Encode >= 1:2.44
Suggests: perl-Version-Requirements
-Provides: %perl_mod2version Scalar-List-Utils
Provides: %perl_modversion Archive::Tar
Provides: %perl_modversion Attribute::Handlers
-Provides: %perl_modversion CGI
Provides: %perl_modversion Compress::Raw::Bzip2
Provides: %perl_modversion Compress::Raw::Zlib
Provides: %perl_modversion Digest
Provides: %perl_modversion Module::Load::Conditional
Provides: %perl_modversion Module::Metadata
Provides: %perl_modversion NEXT
-Provides: %perl_modversion Package::Constants
Provides: %perl_modversion Params::Check
Provides: %perl_modversion Parse::CPAN::Meta
Provides: %perl_modversion Perl::OSType
Provides: %perl_modversion Term::ANSIColor
Provides: %perl_modversion Term::Cap
Provides: %perl_modversion Test
+Provides: %perl_modversion Test::Builder::Tester
Provides: %perl_modversion Test::Harness
Provides: %perl_modversion Test::Simple
+Provides: %perl_modversion Test::Tester
+Provides: %perl_modversion Test::use::ok
Provides: %perl_modversion Text::Balanced
Provides: %perl_modversion Text::ParseWords
Provides: %perl_modversion Time::HiRes
Provides: %perl_modversion version
Obsoletes: perl-Archive-Tar < %perl_modverrel Archive::Tar 99
Obsoletes: perl-Attribute-Handlers < %perl_modverrel Attribute::Handlers 99
-Obsoletes: perl-CGI < %perl_modverrel CGI 99
Obsoletes: perl-Compress-Raw-Bzip2 < %perl_modverrel Compress::Raw::Bzip2 99
Obsoletes: perl-Compress-Raw-Zlib < %perl_modverrel Compress::Raw::Zlib 99
Obsoletes: perl-Digest < %perl_modverrel Digest 99
Obsoletes: perl-Module-Load-Conditional < %perl_modverrel Module::Load::Conditional 99
Obsoletes: perl-Module-Metadata < %perl_modverrel Module::Metadata 99
Obsoletes: perl-NEXT < %perl_modverrel NEXT 99
-Obsoletes: perl-Package-Constants < %perl_modverrel Package::Constants 99
Obsoletes: perl-Params::Check < %perl_modverrel Params::Check 99
Obsoletes: perl-Parse-CPAN-Meta < %perl_modverrel Parse::CPAN::Meta 99
Obsoletes: perl-Perl-OSType < %perl_modverrel Perl::OSType 99
Obsoletes: perl-Pod-Parser < %perl_modverrel Pod::Parser 99
Obsoletes: perl-Pod-Simple < %perl_modverrel Pod::Simple 99
Obsoletes: perl-Safe < %perl_modverrel Safe 99
-Obsoletes: perl-Scalar-List-Utils < %perl_mod2verrel Scalar-List-Utils 99
Obsoletes: perl-Storable < %perl_modverrel Storable 99
Obsoletes: perl-Sys-Syslog < %perl_modverrel Sys::Syslog 99
Obsoletes: perl-Term-ANSIColor < %perl_modverrel Term::ANSIColor 99
Obsoletes: perl-Term-Cap < %perl_modverrel Term::Cap 99
Obsoletes: perl-Test < %perl_modverrel Test 99
+Obsoletes: perl-Test-Builder-Tester < %perl_modverrel Test::Builder::Tester 99
Obsoletes: perl-Test-Harness < %perl_modverrel Test::Harness 99
Obsoletes: perl-Test-Simple < %perl_modverrel Test::Simple 99
+Obsoletes: perl-Test-Tester < %perl_modverrel Test::Tester 99
+Obsoletes: perl-Test-use-ok < %perl_modverrel Test::use::ok 99
Obsoletes: perl-Text-Balanced < %perl_modverrel Text::Balanced 99
Obsoletes: perl-Text-ParseWords < %perl_modverrel Text::ParseWords 99
Obsoletes: perl-Time-HiRes < %perl_modverrel Time::HiRes 99
%description tools
Various tools from the core Perl distribution:
-a2p - Awk to Perl translator
-find2perl - translate find command lines to Perl code
-psed, s2p - a stream editor
+encguess - guess encodning
and others.
%description tools -l pl.UTF-8
Różne narzędzia z podstawowej dystrybucji Perla:
-a2p - translator skryptów Awka do Perla
-find2perl - tłumaczenie linii poleceń programu find na kod w Perlu
-psed, s2p - edytor strumieniowy
+encguess - odgaduje kodowanie znaków
i inne.
%package tools-devel
GDBM_File jest modułem, który umożliwia programom w Perlu korzystanie
z biblioteki GNU gdbm.
-# Setting Version in GDBM_File resets the %version macro. This hack works around it.
+%package Scalar-List-Utils
+Summary: List::Util and Scalar::Util - selection of general-utility scalar subroutines
+Summary(pl.UTF-8): List::Util i Scalar::Util - wybór procedur skalarnych ogólnego zastosowania
+# extra subst to change 1.4202 -> 1.42_02 (so that 1.45 can follow as next version)
+Version: %(echo %{perl_mod2ver Scalar-List-Utils} | sed -re 's,\.([0-9]{2})([0-9]+)$,.\1_\2,')
+Release: %{ver}.%{rel}
+Epoch: 0
+Group: Development/Languages/Perl
+URL: http://search.cpan.org/dist/Scalar-List-Utils/
+
+%description Scalar-List-Utils
+This package contains a selection of subroutines that people have
+expressed would be nice to have in the perl core, but the usage would
+not really be high enough to warrant the use of a keyword, and the
+size so small such that being individual extensions would be wasteful.
+
+%description Scalar-List-Utils -l pl.UTF-8
+Ten pakiet zawiera wybrane procedury, które według niektórych ludzi
+powinny znaleźć się w głównym pakiecie Perla, ale użyteczność nie jest
+zbyt duża, a rozmiar za mały na tworzenie oddzielnych rozszerzeń.
+
+# Setting Version in last %package resets the %version macro. This hack works around it.
%define version %{ver}
%prep
%patch8 -p1
%patch9 -p1
%patch10 -p1
+%patch11 -p1
cat > runperl <<'EOF'
#!/bin/sh
# Disabling test for now but should also check if
# perl porting/checkcfgvar.pl --regen --default=undef
# makes better sense.
-rm t/porting/checkcfgvar.t
-sed -i -e '/^t\/porting\/checkcfgvar\.t.*/d' MANIFEST
+%{__rm} t/porting/checkcfgvar.t
+%{__sed} -i -e '/^t\/porting\/checkcfgvar\.t.*/d' MANIFEST
%build
unset LD_SYMBOLIC_FUNCTIONS || :
## use symlinks instead of hardlinks
%{__ln_s} -f perl%{ver} $RPM_BUILD_ROOT%{_bindir}/perl
%{__ln_s} -f c2ph $RPM_BUILD_ROOT%{_bindir}/pstruct
-%{__ln_s} -f psed $RPM_BUILD_ROOT%{_bindir}/s2p
## install directory needed by packages dependant on TAP::Harness
install -d $RPM_BUILD_ROOT%{perl_privlib}/TAP/Harness
## Fix lib
%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/CORE/libperl.so
-mv $RPM_BUILD_ROOT%{perl_archlib}/CORE/libperl.so.%{abi} $RPM_BUILD_ROOT%{_libdir}
+%{__mv} $RPM_BUILD_ROOT%{perl_archlib}/CORE/libperl.so.%{abi} $RPM_BUILD_ROOT%{_libdir}
%{__ln_s} ../../../../libperl.so.%{abi} $RPM_BUILD_ROOT%{perl_archlib}/CORE/libperl.so.%{abi}
%{__ln_s} libperl.so.%{abi} $RPM_BUILD_ROOT%{_libdir}/libperl.so
# installed as non-executable - let rpm generate deps
## We already have these *.pod files as man pages
%{__rm} $RPM_BUILD_ROOT%{perl_privlib}/{Encode,Test,Net,Locale{,/Maketext},version}/*.pod
-%{__rm} $RPM_BUILD_ROOT%{perl_privlib}/pod/a2p.pod
%{__rm} $RPM_BUILD_ROOT%{perl_privlib}/*.pod
%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/*.pod
# cpan tools, we use rpm instead of cpan for managing packages (some search tool would be nice to have but...)
%{__rm} $RPM_BUILD_ROOT%{_bindir}/cpan*
%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/cpan*
-# others
-%{__rm} $RPM_BUILD_ROOT%{_bindir}/config_data
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/config_data*
owd=$(pwd)
## non-english man pages
%{__bzip2} -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
-mv -f $RPM_BUILD_ROOT%{_mandir}/man1/perlcn.* $RPM_BUILD_ROOT%{_mandir}/zh_CN/man1
-mv -f $RPM_BUILD_ROOT%{_mandir}/man1/perljp.* $RPM_BUILD_ROOT%{_mandir}/ja/man1
-mv -f $RPM_BUILD_ROOT%{_mandir}/man1/perlko.* $RPM_BUILD_ROOT%{_mandir}/ko/man1
-mv -f $RPM_BUILD_ROOT%{_mandir}/man1/perltw.* $RPM_BUILD_ROOT%{_mandir}/zh_TW/man1
+%{__mv} $RPM_BUILD_ROOT%{_mandir}/man1/perlcn.* $RPM_BUILD_ROOT%{_mandir}/zh_CN/man1
+%{__mv} $RPM_BUILD_ROOT%{_mandir}/man1/perljp.* $RPM_BUILD_ROOT%{_mandir}/ja/man1
+%{__mv} $RPM_BUILD_ROOT%{_mandir}/man1/perlko.* $RPM_BUILD_ROOT%{_mandir}/ko/man1
+%{__mv} $RPM_BUILD_ROOT%{_mandir}/man1/perltw.* $RPM_BUILD_ROOT%{_mandir}/zh_TW/man1
# `perl -MExtUtils::Embed -e ldopts` includes -Wl,--as-needed
# which is then forced upon anyone embedding perl.
-sed -i -e 's#^\(ld.*=.*\)-Wl,--as-needed\(.*\)#\1 \2#g' $RPM_BUILD_ROOT%{perl_archlib}/Config*.pl
+%{__sed} -i -e 's#^\(ld.*=.*\)-Wl,--as-needed\(.*\)#\1 \2#g' $RPM_BUILD_ROOT%{perl_archlib}/Config*.pl
%{__rm} $RPM_BUILD_ROOT%{_mandir}/README.perl-non-english-man-pages
%attr(755,root,root) %{perl_archlib}/auto/Socket/*.so
%{_mandir}/man3/Socket.*
+%dir %{perl_archlib}/Sub
+%{perl_archlib}/Sub/Util.pm
+%{_mandir}/man3/Sub::Util*
+
%dir %{perl_archlib}/Tie
%dir %{perl_archlib}/Tie/Hash
%{perl_archlib}/Tie/Hash/NamedCapture.pm
%{_mandir}/man3/GDBM_File.*
%endif
+%files Scalar-List-Utils
+%defattr(644,root,root,755)
+%{perl_archlib}/List
+%{perl_archlib}/Scalar
+%dir %{perl_archlib}/auto/List
+%dir %{perl_archlib}/auto/List/*/
+%attr(755,root,root) %{perl_archlib}/auto/List/*/*.so
+%{_mandir}/man3/Scalar::*
+%{_mandir}/man3/List::*
+
%files devel
%defattr(644,root,root,755)
%doc doc-devel/*
%{perl_privlib}/DB.*
%{_mandir}/man3/DB.*
-%{perl_privlib}/inc
-%{_mandir}/man3/inc::latest*
-%{perl_privlib}/Module/Build*
-%{_mandir}/man3/Module::Build*
-
%{perl_archlib}/O.*
%{_mandir}/man3/O.*
%{_mandir}/man3/less.*
%{perl_privlib}/locale.pm
%{_mandir}/man3/locale.*
+%{perl_privlib}/meta_notation.pm
+%{perl_privlib}/ok.pm
+%{_mandir}/man3/ok.*
%{perl_privlib}/open.pm
%{_mandir}/man3/open.*
%{perl_privlib}/sigtrap.pm
%{perl_privlib}/version.pm
%dir %{perl_privlib}/version
%{perl_privlib}/version/regex.pm
-%{perl_privlib}/version/vpp.pm
%{_mandir}/man3/version*
%{perl_archlib}/attributes.pm
%attr(755,root,root) %{perl_archlib}/auto/IPC/*/*.so
%{_mandir}/man3/IPC::[MS]*
-%{perl_archlib}/List
-%dir %{perl_archlib}/auto/List
-%dir %{perl_archlib}/auto/List/*/
-%attr(755,root,root) %{perl_archlib}/auto/List/*/*.so
-%{_mandir}/man3/List::*
-
%{perl_privlib}/Math
%{perl_archlib}/Math
%dir %{perl_archlib}/auto/Math
%{_mandir}/man3/Attribute*
%{perl_privlib}/Benchmark*
%{_mandir}/man3/Benchmark*
-%{perl_privlib}/CGI*
-%{_mandir}/man3/CGI*
%{perl_privlib}/Config
%{_mandir}/man3/Config::*
%{perl_privlib}/DirHandle*
%{perl_privlib}/Net/*.pm
%{perl_privlib}/Net/FTP
%{_mandir}/man3/Net::*
-%{perl_privlib}/Package
-%{_mandir}/man3/Package::*
%{perl_privlib}/Params
%{_mandir}/man3/Params::*
%{perl_privlib}/Parse
%{_mandir}/man3/Pod::*
%{perl_privlib}/Safe*
%{_mandir}/man3/Safe*
-%{perl_archlib}/Scalar
-%{_mandir}/man3/Scalar::*
%{perl_privlib}/Search
%{_mandir}/man3/Search::*
%{perl_privlib}/SelfLoader.*
%files tools
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/a2p
-%{_mandir}/man1/a2p.*
%attr(755,root,root) %{_bindir}/corelist
%{_mandir}/man1/corelist.*
-%attr(755,root,root) %{_bindir}/find2perl
-%{_mandir}/man1/find2perl.*
+%attr(755,root,root) %{_bindir}/encguess
+%{_mandir}/man1/encguess.*
%attr(755,root,root) %{_bindir}/instmodsh
%{_mandir}/man1/instmodsh.*
%attr(755,root,root) %{_bindir}/json_pp
%{_mandir}/man1/json_pp.*
%attr(755,root,root) %{_bindir}/libnetcfg
%{_mandir}/man1/libnetcfg.*
-%attr(755,root,root) %{_bindir}/psed
-%{_mandir}/man1/psed.*
%attr(755,root,root) %{_bindir}/ptar
%{_mandir}/man1/ptar.*
%attr(755,root,root) %{_bindir}/ptargrep
%{_mandir}/man1/ptargrep.*
%attr(755,root,root) %{_bindir}/ptardiff
%{_mandir}/man1/ptardiff.*
-%attr(755,root,root) %{_bindir}/s2p
-%{_mandir}/man1/s2p.*
%attr(755,root,root) %{_bindir}/shasum
%{_mandir}/man1/shasum.*
%attr(755,root,root) %{_bindir}/zipdetails