# NOTE
# - modules in 5.20.0: http://search.cpan.org/~rjbs/perl-5.20.0/
-%define abi 5.24.0
+%define abi 5.32.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.24.0
-%define rel 5
+%define ver 5.32.1
+%define rel 2
Summary: Practical Extraction and Report Language (Perl)
Summary(cs.UTF-8): Programovací jazyk Perl
Summary(da.UTF-8): Programmeringssproget Perl
License: GPL v1+ or Artistic
Group: Development/Languages/Perl
Source0: http://www.cpan.org/src/5.0/%{name}-%{ver}.tar.xz
-# Source0-md5: 59456ae4bd4b06cb6e57cb19a3b2d349
+# Source0-md5: 7f104064b906ad8c7329ca5e409a32d7
Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
# Source1-md5: de47d7893f49ad7f41ba69c78511c0db
Source2: %{name}.prov
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
+# PERL5LIB=$(pwd) 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
Requires: %{name}-libs = %{epoch}:%{ver}-%{release}
Requires: %{perl_vendorarch}
Requires: %{perl_vendorlib}
+Requires: perl(Scalar::Util)
Provides: perl(largefiles)
Provides: %perl_mod2version IO-Compress
Provides: %perl_mod2version PathTools
Provides: %perl_modversion File::Compare
Provides: %perl_modversion File::Temp
+Provides: %perl_modversion Getopt::Long
Provides: %perl_modversion IO
Provides: %perl_modversion IO::Zlib
Provides: %perl_modversion IPC::Cmd
+Provides: %perl_modversion Perl::OSType
Provides: %perl_modversion PerlIO::via::QuotedPrint
Provides: %perl_modversion Socket
Provides: %perl_modversion Tie::File
Obsoletes: perl-IO-Zlib < %perl_modverrel IO::Zlib 99
Obsoletes: perl-IPC-Cmd < %perl_modverrel IPC::Cmd 99
Obsoletes: perl-PathTools < %perl_mod2verrel PathTools 99
+Obsoletes: perl-Perl-OSType < %perl_modverrel Perl::OSType 99
Obsoletes: perl-PerlIO-via-QuotedPrint < %perl_modverrel PerlIO::via::QuotedPrint 99
Obsoletes: perl-Socket < %perl_modverrel Socket 99
Obsoletes: perl-Tie-File < %perl_modverrel Tie::File 99
Summary(pl.UTF-8): Moduły z podstawowej dystrybucji Perla
Group: Libraries
Requires: %{name}-base = %{epoch}:%{ver}-%{release}
-Suggests: perl-Encode >= 1:2.44
+Requires: perl-Encode >= 2:2.49-%{ver}.%{rel}
Suggests: perl-Version-Requirements
Provides: %perl_modversion Archive::Tar
Provides: %perl_modversion Attribute::Handlers
Provides: %perl_modversion Compress::Raw::Bzip2
Provides: %perl_modversion Compress::Raw::Zlib
+Provides: %perl_modversion Compress::Zlib
Provides: %perl_modversion Digest
Provides: %perl_modversion Digest::MD5
Provides: %perl_modversion Digest::SHA
Provides: %perl_modversion I18N::LangTags
Provides: %perl_modversion IPC::SysV
Provides: %perl_modversion JSON::PP
-Provides: %perl_modversion Locale::Codes
Provides: %perl_modversion Locale::Maketext
Provides: %perl_modversion Locale::Maketext::Simple
Provides: %perl_modversion MIME::Base64
Provides: %perl_modversion NEXT
Provides: %perl_modversion Params::Check
Provides: %perl_modversion Parse::CPAN::Meta
-Provides: %perl_modversion Perl::OSType
Provides: %perl_modversion Pod::Escapes
-Provides: %perl_modversion Pod::Parser
Provides: %perl_modversion Pod::Simple
Provides: %perl_modversion Safe
Provides: %perl_modversion Storable
Obsoletes: perl-Attribute-Handlers < %perl_modverrel Attribute::Handlers 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-Compress-Zlib < %perl_modverrel Compress::Zlib 99
Obsoletes: perl-Digest < %perl_modverrel Digest 99
Obsoletes: perl-Digest-MD5 < %perl_modverrel Digest::MD5 99
Obsoletes: perl-Digest-SHA < %perl_modverrel Digest::SHA 99
Obsoletes: perl-I18N-LangTags < %perl_modverrel I18N::LangTags 99
Obsoletes: perl-IPC-SysV < %perl_modverrel IPC::SysV 99
Obsoletes: perl-JSON-PP < %perl_modverrel JSON::PP 99
-Obsoletes: perl-Locale-Codes < %perl_modverrel Locale::Codes 99
Obsoletes: perl-Locale-Maketext < %perl_modverrel Locale::Maketext 99
Obsoletes: perl-Locale-Maketext-Simple < %perl_modverrel Locale::Maketext::Simple 99
Obsoletes: perl-MIME-Base64 < %perl_modverrel MIME::Base64 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-Params::Check < %perl_modverrel Params::Check 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-Escapes < %perl_modverrel Pod::Escapes 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-Storable < %perl_modverrel Storable 99
%description tools-devel
Various tools from the core Perl distribution:
-c2ph, pstruct - Dump C structures as generated from C<cc -g -S> stabs
h2ph - convert .h C header files to .ph Perl header files
h2xs - convert .h C header files to Perl extensions
perlivp - Perl Installation Verification Procedure
%description tools-devel -l pl.UTF-8
Różne narzędzia z podstawowej dystrybucji Perla:
-c2ph, pstruct - zrzucanie struktur C w postaci generowanej z tablic
- symboli z cc -g -S
h2ph - konwerter plików nagłówkowych .h z C na perlowe pliki
nagłówkowe .ph
h2xs - konwerter plików nagłówkowych .h z C na rozszerzenia
%patch6 -p1
%patch7 -p1
%patch8 -p1
-%patch9 -p1
%patch10 -p1
-%patch11 -p1
cat > runperl <<'EOF'
#!/bin/sh
+# Prevent any system paths from being used.
+# Note: you cant use runperl -MXYZ because BEGIN is executed after -M
LD_PRELOAD="%{_builddir}/%{name}-%{ver}/libperl.so.%{abi}" \
PERL5LIB="%{buildroot}%{perl_privlib}:%{buildroot}%{perl_archlib}" \
-exec %{buildroot}%{_bindir}/perl ${1:+"$@"}
+exec %{buildroot}%{_bindir}/perl -e 'BEGIN { @INC = ("%{buildroot}%{perl_privlib}", "%{buildroot}%{perl_archlib}"); }; if (@ARGV > 0) { my $script=shift(@ARGV); $0=$script; do($script) or die "Error attempting to execute script: $@\n"; } ' \
+ ${1:+"$@"}
EOF
chmod a+x runperl
## use symlinks instead of hardlinks
%{__ln_s} -f perl%{ver} $RPM_BUILD_ROOT%{_bindir}/perl
-%{__ln_s} -f c2ph $RPM_BUILD_ROOT%{_bindir}/pstruct
## install directory needed by packages dependant on TAP::Harness
install -d $RPM_BUILD_ROOT%{perl_privlib}/TAP/Harness
cd "$owd"
## remove man pages for other operating systems
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/perl{aix,amiga,bs2000,ce,cygwin,dos}* \
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/perl{aix,amiga,bs2000,cygwin,dos}* \
$RPM_BUILD_ROOT%{_mandir}/man1/perl{freebsd,hpux,macos,os2,os390}* \
$RPM_BUILD_ROOT%{_mandir}/man1/perl{qnx,solaris,vms,vos,win32}*
%{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/File::Spec::{Epoc,Mac,OS2,VMS,Win32}.3perl*
## We already have these *.pod files as man pages
-%{__rm} $RPM_BUILD_ROOT%{perl_privlib}/{Encode,Locale{,/Codes,/Maketext},Module,Net,Test,version}/*.pod
+%{__rm} $RPM_BUILD_ROOT%{perl_privlib}/{Encode,Locale{,/Maketext},Module,Net,Test,version}/*.pod
%{__rm} $RPM_BUILD_ROOT%{perl_privlib}/*.pod
%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/*.pod
+## We don't build NDBM_File that Memoize::NDBM_File requires
+%{__rm} $RPM_BUILD_ROOT%{perl_privlib}/Memoize/NDBM_File.pm
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/Memoize::NDBM_File.3perl*
+
install -d doc-base/{DynaLoader,Errno,File/Glob,IO,PathTools} \
doc-devel/{Devel/Peek,ExtUtils/{CBuilder,ParseXS}} \
doc-modules/{Attribute/Handlers,Carp,Data/Dumper,Hash/Util/FieldHash,I18N/LangTags,Locale/Maketext} \
%{__rm} $RPM_BUILD_ROOT%{_mandir}/README.perl-non-english-man-pages
# update and check perl-modules files
-echo '# Module versions from Perl %{ver} distribution.' > perl-modules
+echo '# Module versions from Perl %{ver} distribution.' > perl-modules.tmp
for m in $(awk '!/^#/ && !/^$/{print $1}' %{SOURCE3}); do
case $m in
libnet)
;;
# special cased since do eval on VERSION
ExtUtils::CBuilder|Compress::Raw::Bzip2|Compress::Raw::Zlib)
- v=$(%{__perl} -M$m -e "print version->parse(\$$m::VERSION)->numify")
+ v=$(%{__perl} -e "use $m; print version->parse(\$$m::VERSION)->numify")
+ ;;
+ # this module has VERSION encoded as int in a way that it loses trailing 0
+ Getopt::Long)
+ v=$(%{__perl} -e "use $m; print \$$m::VERSION_STRING")
;;
*)
- v=$(%{__perl} -M$m -e "print \$$m::VERSION")
+ v=$(%{__perl} -e "use $m; print \$$m::VERSION")
;;
esac
- echo "$m = $v"
-done | LC_ALL=C sort >> perl-modules
+ echo "$m = $v" >> perl-modules.tmp
+done
+LC_ALL=C sort perl-modules.tmp > perl-modules && rm perl-modules.tmp
-echo '# Non-straight named module versions from Perl %{ver} distribution.' > perl-modules2
+echo '# Non-straight named module versions from Perl %{ver} distribution.' > perl-modules2.tmp
for m in $(awk '!/^#/ && !/^$/{print $1"!"$2}' %{SOURCE4}); do
mn="${m##*!}"
mp="${m%%!*}"
case $m in
*)
- v=$(%{__perl} -M$mn -e "print \$$mn::VERSION")
+ v=$(%{__perl} -e "use $mn; print \$$mn::VERSION")
;;
esac
- echo "$mp $mn = $v"
-done | LC_ALL=C sort >> perl-modules2
+ echo "$mp $mn = $v" >> perl-modules2.tmp
+done
+LC_ALL=C sort perl-modules2.tmp > perl-modules2 && rm perl-modules2.tmp
if ! cmp -s %{SOURCE3} perl-modules; then
: %{SOURCE3} outdated with $(pwd)/perl-modules
%dir %{perl_privlib}/Class
%{perl_privlib}/Class/Struct.pm
%{_mandir}/man3/Class::Struct.3perl*
+%{perl_privlib}/Compress
+%{_mandir}/man3/Compress::Zlib.3perl*
%{perl_privlib}/Exporter.pm
%{perl_privlib}/Exporter
%{_mandir}/man3/Exporter*.3perl*
%{_mandir}/man3/Tie::File.3perl*
%{_mandir}/man3/Tie::Handle.3perl*
%{_mandir}/man3/Tie::Hash.3perl*
+%{_mandir}/man3/Tie::Hash::NamedCapture.3perl*
%{_mandir}/man3/Tie::Memoize.3perl*
%{_mandir}/man3/Tie::RefHash.3perl*
%{_mandir}/man3/Tie::Scalar.3perl*
%{_mandir}/man3/XSLoader.3perl*
## arch-dependent modules
+%{perl_archlib}/Compress
+%dir %{perl_archlib}/auto/Compress
+%dir %{perl_archlib}/auto/Compress/Raw
+%dir %{perl_archlib}/auto/Compress/Raw/Bzip2
+%attr(755,root,root) %{perl_archlib}/auto/Compress/Raw/Bzip2/Bzip2.so
+%dir %{perl_archlib}/auto/Compress/Raw/Zlib
+%attr(755,root,root) %{perl_archlib}/auto/Compress/Raw/Zlib/Zlib.so
+%{_mandir}/man3/Compress::Raw::Bzip2.3perl*
+%{_mandir}/man3/Compress::Raw::Zlib.3perl*
+
%{perl_archlib}/Config.pm
%{perl_archlib}/Config_git.pl
%{perl_archlib}/Config_heavy.pl
%attr(755,root,root) %{perl_archlib}/auto/Socket/Socket.so
%{_mandir}/man3/Socket.3perl*
-%dir %{perl_archlib}/Tie
-%dir %{perl_archlib}/Tie/Hash
-%{perl_archlib}/Tie/Hash/NamedCapture.pm
-%dir %{perl_archlib}/auto/Tie
-%dir %{perl_archlib}/auto/Tie/Hash
-%dir %{perl_archlib}/auto/Tie/Hash/NamedCapture
-%attr(755,root,root) %{perl_archlib}/auto/Tie/Hash/NamedCapture/NamedCapture.so
-%{_mandir}/man3/Tie::Hash::NamedCapture.3perl*
-
-%{perl_archlib}/arybase.pm
-%dir %{perl_archlib}/auto/arybase
-%attr(755,root,root) %{perl_archlib}/auto/arybase/arybase.so
-%{_mandir}/man3/arybase.3perl*
-
%files devel
%defattr(644,root,root,755)
%doc doc-devel/*
%{_mandir}/man3/ExtUtils::Packlist.3perl*
%{_mandir}/man3/ExtUtils::ParseXS*.3perl*
%{_mandir}/man3/ExtUtils::Typemaps*.3perl*
-%{_mandir}/man3/ExtUtils::XSSymSet.3perl*
%{_mandir}/man3/ExtUtils::testlib.3perl*
%{perl_privlib}/vmsish.pm
%{_mandir}/man3/vmsish.3perl*
%{_mandir}/man3/B.3perl*
%{_mandir}/man3/B::*.3perl*
-%{perl_privlib}/Compress
-%{perl_archlib}/Compress
-%dir %{perl_archlib}/auto/Compress
-%dir %{perl_archlib}/auto/Compress/Raw
-%dir %{perl_archlib}/auto/Compress/Raw/Bzip2
-%attr(755,root,root) %{perl_archlib}/auto/Compress/Raw/Bzip2/Bzip2.so
-%dir %{perl_archlib}/auto/Compress/Raw/Zlib
-%attr(755,root,root) %{perl_archlib}/auto/Compress/Raw/Zlib/Zlib.so
-%{_mandir}/man3/Compress::Raw::Bzip2.3perl*
-%{_mandir}/man3/Compress::Raw::Zlib.3perl*
-%{_mandir}/man3/Compress::Zlib.3perl*
-
%{perl_archlib}/Data
%dir %{perl_archlib}/auto/Data
%dir %{perl_archlib}/auto/Data/Dumper
%{_mandir}/man3/Fatal.3perl*
%{perl_privlib}/FindBin.pm
%{_mandir}/man3/FindBin.3perl*
+%{_mandir}/man3/Internals.3perl*
%{perl_privlib}/JSON
%{_mandir}/man3/JSON::PP*.3perl*
%{perl_privlib}/Locale
-%{_mandir}/man3/Locale::Codes*.3perl*
-%{_mandir}/man3/Locale::Country.3perl*
-%{_mandir}/man3/Locale::Currency.3perl*
-%{_mandir}/man3/Locale::Language.3perl*
-%{_mandir}/man3/Locale::Maketext*.3perl*
-%{_mandir}/man3/Locale::Script.3perl*
+%{_mandir}/man3/Locale::Maketext.3*
+%{_mandir}/man3/Locale::Maketext::Cookbook.3*
+%{_mandir}/man3/Locale::Maketext::Guts.3*
+%{_mandir}/man3/Locale::Maketext::GutsLoader.3*
+%{_mandir}/man3/Locale::Maketext::Simple.3*
+%{_mandir}/man3/Locale::Maketext::TPJ13.3*
%{perl_privlib}/Memoize
%{perl_privlib}/Memoize.pm
%{_mandir}/man3/Memoize*.3perl*
%{perl_privlib}/Pod
%{_mandir}/man3/Pod::Checker.3perl*
%{_mandir}/man3/Pod::Escapes.3perl*
-%{_mandir}/man3/Pod::Find.3perl*
%{_mandir}/man3/Pod::Html.3perl*
-%{_mandir}/man3/Pod::InputObjects.3perl*
%{_mandir}/man3/Pod::Man.3perl*
%{_mandir}/man3/Pod::ParseLink.3perl*
-%{_mandir}/man3/Pod::ParseUtils.3perl*
-%{_mandir}/man3/Pod::Parser.3perl*
%{_mandir}/man3/Pod::Perldoc*.3perl*
-%{_mandir}/man3/Pod::PlainText.3perl*
-%{_mandir}/man3/Pod::Select.3perl*
%{_mandir}/man3/Pod::Simple*.3perl*
%{_mandir}/man3/Pod::Text*.3perl*
%{_mandir}/man3/Pod::Usage.3perl*
%{_mandir}/man3/Term::Cap.3perl*
%{_mandir}/man3/Term::Complete.3perl*
%{_mandir}/man3/Term::ReadLine.3perl*
+
%{perl_privlib}/Test.pm
%{perl_privlib}/Test
%{_mandir}/man3/Test.3perl*
%{_mandir}/man3/Test::Tester*.3perl*
%{_mandir}/man3/Test::Tutorial.3perl*
%{_mandir}/man3/Test::use::ok.3perl*
+
+%{perl_privlib}/Test2.pm
+%{perl_privlib}/Test2
+%{_mandir}/man3/Test2.3perl*
+%{_mandir}/man3/Test2::API*.3perl*
+%{_mandir}/man3/Test2::Event*.3perl*
+%{_mandir}/man3/Test2::Formatter*.3perl*
+%{_mandir}/man3/Test2::Hub*.3perl*
+%{_mandir}/man3/Test2::IPC*.3perl*
+%{_mandir}/man3/Test2::Tools::Tiny.3perl*
+%{_mandir}/man3/Test2::Transition.3perl*
+%{_mandir}/man3/Test2::Util*.3perl*
+
%{perl_privlib}/Text
%{_mandir}/man3/Text::Abbrev.3perl*
%{_mandir}/man3/Text::Balanced.3perl*
%{_mandir}/man1/ptardiff.1*
%attr(755,root,root) %{_bindir}/shasum
%{_mandir}/man1/shasum.1*
+%attr(755,root,root) %{_bindir}/streamzip
+%{_mandir}/man1/streamzip.1*
%attr(755,root,root) %{_bindir}/zipdetails
%{_mandir}/man1/zipdetails.1*
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/perlbug
%{_mandir}/man1/perlbug.1*
-%attr(755,root,root) %{_bindir}/c2ph
-%attr(755,root,root) %{_bindir}/pstruct
-%{_mandir}/man1/c2ph.1*
-%{_mandir}/man1/pstruct.1*
%attr(755,root,root) %{_bindir}/h2ph
%{_mandir}/man1/h2ph.1*
%attr(755,root,root) %{_bindir}/h2xs
%{perl_vendorlib}/Encode
# FIXME: *.h to devel(?), check out the use for *.e2x files
%{perl_privlib}/Encode
-%{perl_archlib}/Encode*
+%{perl_archlib}/Encode
+%{perl_archlib}/Encode.pm
%{perl_archlib}/encoding.pm
%dir %{perl_archlib}/auto/Encode
-%dir %{perl_archlib}/auto/Encode/*/
-%attr(755,root,root) %{perl_archlib}/auto/Encode/*/*.so
+%attr(755,root,root) %{perl_archlib}/auto/Encode/Encode.so
+%dir %{perl_archlib}/auto/Encode/Byte
+%attr(755,root,root) %{perl_archlib}/auto/Encode/Byte/Byte.so
+%dir %{perl_archlib}/auto/Encode/CN
+%attr(755,root,root) %{perl_archlib}/auto/Encode/CN/CN.so
+%dir %{perl_archlib}/auto/Encode/EBCDIC
+%attr(755,root,root) %{perl_archlib}/auto/Encode/EBCDIC/EBCDIC.so
+%dir %{perl_archlib}/auto/Encode/JP
+%attr(755,root,root) %{perl_archlib}/auto/Encode/JP/JP.so
+%dir %{perl_archlib}/auto/Encode/KR
+%attr(755,root,root) %{perl_archlib}/auto/Encode/KR/KR.so
+%dir %{perl_archlib}/auto/Encode/Symbol
+%attr(755,root,root) %{perl_archlib}/auto/Encode/Symbol/Symbol.so
+%dir %{perl_archlib}/auto/Encode/TW
+%attr(755,root,root) %{perl_archlib}/auto/Encode/TW/TW.so
+%dir %{perl_archlib}/auto/Encode/Unicode
+%attr(755,root,root) %{perl_archlib}/auto/Encode/Unicode/Unicode.so
%{_mandir}/man1/enc2xs.1*
%{_mandir}/man1/piconv.1*
%{_mandir}/man3/Encode*.3perl*