# unpackaged:
-# /usr/bin/config_data
-# /usr/bin/corelist
-# /usr/bin/cpan2dist
-# /usr/bin/cpanp
-# /usr/bin/cpanp-run-perl
-# /usr/bin/prove
-# /usr/bin/ptar
-# /usr/bin/ptardiff
-# /usr/bin/shasum
# /usr/lib/perl5/5.10.0/i686-pld-linux-thread-multi/.packlist
# /usr/lib/perl5/5.10.0/i686-pld-linux-thread-multi/auto/sdbm/extralibs.ld
-# /usr/share/man/man1/config_data.1.gz
-# /usr/share/man/man1/corelist.1.gz
-# /usr/share/man/man1/cpan2dist.1.gz
-# /usr/share/man/man1/cpanp.1.gz
-# /usr/share/man/man1/perlcommunity.1.gz
-# /usr/share/man/man1/prove.1.gz
-# /usr/share/man/man1/ptar.1.gz
-# /usr/share/man/man1/ptardiff.1.gz
-# /usr/share/man/man1/shasum.1.gz
-# /usr/share/man/man3/IPC::Cmd.3perl.gz
-# /usr/share/man/man3/XS::APItest.3perl.gz
-# /usr/share/man/man3/XS::Typemap.3perl.gz
-# /usr/share/man/man3/vmsish.3perl.gz
-# /usr/share/perl5/5.10.0/Unicode/Collate/allkeys.txt
-# /usr/share/perl5/5.10.0/pod/a2p.pod
-# /usr/share/perl5/5.10.0/vmsish.pm
#
# Conditional build:
%bcond_without tests # do not perform "make test"
%define perl_vendorlib %{_datadir}/perl5/vendor_perl
%define perl_vendorarch %{_libdir}/perl5/vendor_perl/%{_abi}/%{_target_platform}%{perlthread}
-%define _rel 0.1
+%define rel 2.1
Summary: Practical Extraction and Report Language (Perl)
Summary(cs.UTF-8): Programovací jazyk Perl
Summary(da.UTF-8): Programmeringssproget Perl
Summary(zh_CN.UTF-8): Perl 编程语言。
Name: perl
Version: 5.10.0
-Release: %{_rel}%{!?with_threads:_nothr}
+Release: %{rel}%{!?with_threads:_nothr}
Epoch: 1
License: GPL v1+ or Artistic
Group: Development/Languages/Perl
Source2: %{name}.prov
Patch0: %{name}_581-noroot_install.patch
Patch1: %{name}_581-INC.patch
-Patch3: %{name}_580-errno_h-parsing.patch
-Patch4: %{name}_580-use-LD_PRELOAD-for-libperl.so.patch
-Patch5: %{name}_581-soname.patch
-Patch6: %{name}-test-noproc.patch
-Patch7: %{name}_585-microperl_uconfig.patch
-Patch13: %{name}-write-permissions.patch
-Patch15: %{name}-timer-test.patch
+Patch2: %{name}_580-errno_h-parsing.patch
+Patch3: %{name}_580-use-LD_PRELOAD-for-libperl.so.patch
+Patch4: %{name}_581-soname.patch
+Patch5: %{name}-test-noproc.patch
+Patch6: %{name}_585-microperl_uconfig.patch
+Patch7: %{name}-write-permissions.patch
+Patch8: %{name}-timer-test.patch
+Patch9: %{name}-h2ph-includes.patch
URL: http://dev.perl.org/perl5/
%ifarch ppc
# gcc 3.3.x miscompiles pp_hot.c
BuildRequires: gcc >= 5:4.1
%endif
%{?with_gdbm:BuildRequires: gdbm-devel}
+# asm-generic, merged x86 asm dirs
+BuildRequires: linux-libc-headers >= 7:2.6.24
# required for proper Provides generation (older are not supported by spec)
BuildRequires: rpm-build >= 4.3-0.20040107.4
-BuildRequires: rpmbuild(macros) >= 1.310
+BuildRequires: rpmbuild(macros) >= 1.426
Requires: %{name}-base = %{epoch}:%{version}-%{release}
Requires: %{name}-modules = %{epoch}:%{version}-%{release}
Requires: %{name}-doc-reference = %{epoch}:%{version}-%{release}
%description tools
Various tools from the core Perl distribution:
a2p - Awk to Perl translator
-cpan - easily interact with CPAN from the command line
find2perl - translate find command lines to Perl code
piconv - iconv(1), reinvented in Perl
psed, s2p - a stream editor
+and others.
%description tools -l pl.UTF-8
Różne narzędzia z podstawowej dystrybucji Perla:
a2p - translator skryptów Awka do Perla
-cpan - easily interact with CPAN from the command line
find2perl - tłumaczenie linii poleceń programu find na kod w Perlu
piconv - iconv(1) napisany w Perlu
psed, s2p - edytor strumieniowy
+i inne.
%package tools-devel
Summary: Developer's tools from the core Perl distribution
%package -n microperl
Summary: A really minimal Perl, even more minimal than miniperl
Summary(pl.UTF-8): Naprawdę minimalny Perl, nawet bardziej minimalny niż miniperl
-# XXX: is there a more appropiate group?
-Group: Applications
+Group: Development/Languages/Perl
%description -n microperl
microperl is supposed to be able a really minimal Perl, even more
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
-%patch13 -p1
-%patch15 -p1
+%patch8 -p1
+%patch9 -p1
%build
unset LD_SYMBOLIC_FUNCTIONS || :
-%{?with_threads:D}%{!?with_threads:U}usethreads \
-Duselargefiles
-## why were these three undefined?
-# -Ud_setresgid \
-# -Ud_setresuid \
## what's the problem with this one?
# %ifarch sparc sparc64
# -Ud_longdbl
## {Scalar,List}::Util should be in perl_archlib (it's a bit tricky and should
## probably be done in %%prep, but then Configure would complain (->MANIFEST))
mv ext/List/Util/lib/List/Util.pm ext/List/Util
-rm -f ext/List/Util/Makefile.PL
+%{__rm} ext/List/Util/Makefile.PL
cat <<'EOF' > ext/List/Util/Makefile.PL
use ExtUtils::MakeMaker;
WriteMakefile(NAME=>"List::Util", VERSION_FROM=>"Util.pm", DEFINE=>"-DPERL_EXT");
## microperl
%if %{with microperl}
-rm -f uconfig.h
+%{__rm} uconfig.h
#chmod u+w uconfig.sh
#echo "usemallocwrap='define'" >> uconfig.sh
%{__make} -f Makefile.micro \
%{__ln_s} -f psed $RPM_BUILD_ROOT%{_bindir}/s2p
## Fix lib
-rm -f $RPM_BUILD_ROOT%{perl_archlib}/CORE/libperl.so
-%{__ln_s} `%{__perl} -e '$_="'%{perl_archlib}/CORE/libperl.so.%{_abi}'";s|^'%{_libdir}'/*||;print'` \
- $RPM_BUILD_ROOT%{_libdir}/libperl.so.%{_abi}
+%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/CORE/libperl.so
+#%{__ln_s} `%{__perl} -e '$_="'%{perl_archlib}/CORE/libperl.so.%{_abi}'";s|^'%{_libdir}'/*||;print'` \
+# $RPM_BUILD_ROOT%{_libdir}/libperl.so.%{_abi}
+mv $RPM_BUILD_ROOT%{perl_archlib}/CORE/libperl.so.%{_abi} $RPM_BUILD_ROOT%{_libdir}
+%{__ln_s} ../../../../libperl.so.%{_abi} $RPM_BUILD_ROOT%{perl_archlib}/libperl.so.%{_abi}
%{__ln_s} libperl.so.%{_abi} $RPM_BUILD_ROOT%{_libdir}/libperl.so
+# installed as non-executable - let rpm generate deps
+chmod 755 $RPM_BUILD_ROOT%{_libdir}/libperl.so.%{_abi}
## Fix Config.pm: remove buildroot path and change man pages extensions
%{__perl} -pi -e 's,%{buildroot}/*,/,g' $RPM_BUILD_ROOT%{perl_archlib}/Config.pm
cd "$owd"
## remove man pages for other operating systems
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/perl{aix,amiga,apollo,beos,bs2000,ce,cygwin,dgux,dos}* \
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/perl{aix,amiga,apollo,beos,bs2000,ce,cygwin,dgux,dos}* \
$RPM_BUILD_ROOT%{_mandir}/man1/perl{freebsd,hpux,machten,macos,mpeix,os2,os390}* \
$RPM_BUILD_ROOT%{_mandir}/man1/perl{qnx,solaris,vmesa,vms,vos,win32}*
## symlink perldelta.1.gz -> perlFOOdelta.1.gz
[ -e $RPM_BUILD_ROOT%{_mandir}/man1/perl%(echo %{version} | tr -d .)delta.1 ] || exit 1
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/perldelta.1
+rm $RPM_BUILD_ROOT%{_mandir}/man1/perldelta.1
echo ".so perl%(echo %{version} | tr -d .)delta.1" >$RPM_BUILD_ROOT%{_mandir}/man1/perldelta.1
## These File::Spec submodules are for non-Unix systems
-rm -f $RPM_BUILD_ROOT%{perl_privlib}/File/Spec/[EMOVW]*.pm
-rm -f $RPM_BUILD_ROOT%{_mandir}/man3/File::Spec::{Epoc,Mac,OS2,VMS,Win32}.3pm*
+%{__rm} $RPM_BUILD_ROOT%{perl_privlib}/File/Spec/[EMOVW]*.pm
+rm $RPM_BUILD_ROOT%{_mandir}/man3/File::Spec::{Epoc,Mac,OS2,VMS,Win32}.3perl*
## We already have these *.pod files as man pages
-rm -f $RPM_BUILD_ROOT%{perl_privlib}/{Encode,Test,Net,Locale{,/Maketext},MakeMaker}/*.pod
-rm -f $RPM_BUILD_ROOT%{perl_privlib}/*.pod
-rm -f $RPM_BUILD_ROOT%{perl_archlib}/*.pod
+%{__rm} $RPM_BUILD_ROOT%{perl_privlib}/{Encode,Test,Net,Locale{,/Maketext}}/*.pod
+rm $RPM_BUILD_ROOT%{perl_privlib}/pod/a2p.pod
+%{__rm} $RPM_BUILD_ROOT%{perl_privlib}/*.pod
+%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/*.pod
## this object file looks unused; why is it there?
-rm -f $RPM_BUILD_ROOT%{perl_archlib}/CORE/sperl.o
+%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/CORE/sperl.o
install -d doc-base/{Getopt/Long,Switch} \
doc-devel/ExtUtils \
doc-modules/{Attribute/Handlers,Filter/Simple,I18N/LangTags,Locale/{Codes,Maketext},Memoize,NEXT,Net/Ping,Term/ANSIColor,Test/Simple,Text/{Balanced,TabsWrap},Unicode/Collate,unicore}
# needed only for tests
-rm -f $RPM_BUILD_ROOT%{perl_privlib}/Unicode/Collate/keys.txt
+%{__rm} $RPM_BUILD_ROOT%{perl_privlib}/Unicode/Collate/keys.txt
mv -f $RPM_BUILD_ROOT%{perl_privlib}/unicore/ReadMe.txt \
doc-modules/unicore
# source for *.pl
-rm -f $RPM_BUILD_ROOT%{perl_privlib}/unicore/{*.txt,mktables}
+%{__rm} $RPM_BUILD_ROOT%{perl_privlib}/unicore/{*.txt,mktables}
+# 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*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/XS::APItest*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/XS::Typemap*
## dir tree for other perl modules
install -d $RPM_BUILD_ROOT{%{perl_vendorlib},%{perl_vendorarch},%{perl_vendorarch}/auto}
%files libs
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libperl.so.*
-%dir %{_libdir}/perl5
-%dir %{_libdir}/perl5/%{version}
-%dir %{perl_archlib}
-%dir %{perl_archlib}/CORE
-%attr(755,root,root) %{perl_archlib}/CORE/libperl.so.%{_abi}
+%attr(755,root,root) %{_libdir}/libperl.so.%{_abi}
%files base
%defattr(644,root,root,755)
%doc doc-base/*
%attr(755,root,root) %{_bindir}/perl
%attr(755,root,root) %{_bindir}/perl%{version}
-%{_mandir}/man1/perl.*
-%lang(fi) %{_mandir}/fi/man1/perl*
-%lang(pl) %{_mandir}/pl/man1/perl*
+%{_mandir}/man1/perl.1*
+%lang(fi) %{_mandir}/fi/man1/perl.1*
+%lang(pl) %{_mandir}/pl/man1/perl.1*
%dir %{_datadir}/perl5
%dir %{perl_privlib}
+%dir %{_libdir}/perl5
+%dir %{_libdir}/perl5/%{version}
+%dir %{perl_archlib}
+%dir %{perl_archlib}/CORE
+%attr(755,root,root) %{perl_archlib}/CORE/libperl.so.%{_abi}
%dir %{perl_archlib}/auto
%dir %{_libdir}/perl5/vendor_perl
%{_mandir}/man3/Getopt*
%{perl_privlib}/IPC
%{_mandir}/man3/IPC::Open*
+%{_mandir}/man3/IPC::Cmd*
%{perl_privlib}/SelectSaver.pm
%{_mandir}/man3/SelectSaver.*
%{perl_privlib}/Symbol.pm
# FIXME: Changes file to _docdir (and rm MANIFEST.SKIP?)
%{perl_privlib}/ExtUtils
%{_mandir}/man3/ExtUtils*
+%{perl_privlib}/vmsish.pm
+%{_mandir}/man3/vmsish.*
%{perl_privlib}/CPAN*
%{_mandir}/man3/CPAN*
%{perl_privlib}/DB.*
%{_mandir}/man1/perlcall.*
%{_mandir}/man1/perlcheat.*
%{_mandir}/man1/perlclib.*
+%{_mandir}/man1/perlcommunity.*
%{_mandir}/man1/perlcompile.*
%{_mandir}/man1/perld[!o]*
%{_mandir}/man1/perli[!v]*
+%lang(fi) %{_mandir}/fi/man1/perlbook.1*
+%lang(pl) %{_mandir}/pl/man1/perldata.1*
+%lang(pl) %{_mandir}/pl/man1/perl[fors]*.1*
%lang(zh_CN) %{_mandir}/zh_CN/man1/perlcn.*
%lang(ja) %{_mandir}/ja/man1/perljp.*
%lang(ko) %{_mandir}/ko/man1/perlko.*
## *.ph files (could be made a separate package, but an autohelper's support is needed)
%{perl_archlib}/*.ph
%{perl_archlib}/asm
-%{perl_archlib}/bits
-%{perl_archlib}/gnu
-%{perl_archlib}/linux
-%{perl_archlib}/sys
-%ifarch %{x8664}
-%{perl_archlib}/asm-i386
-%{perl_archlib}/asm-x86_64
-%endif
+%{perl_archlib}/asm-generic
%ifarch sparc64
%{perl_archlib}/asm-sparc
%{perl_archlib}/asm-sparc64
%endif
+%{perl_archlib}/bits
+%{perl_archlib}/gnu
+%{perl_archlib}/linux
+%{perl_archlib}/sys
%{perl_archlib}/Compress
%dir %{perl_archlib}/auto/Compress
%dir %{perl_archlib}/auto/Compress/Raw
%dir %{perl_archlib}/auto/Compress/Raw/Zlib
%attr(755,root,root) %{perl_archlib}/auto/Compress/Raw/Zlib/*.so
-%{perl_archlib}/auto/Compress/Zlib/*.ix
%{perl_archlib}/auto/Compress/Raw/Zlib/*.ix
+%dir %{perl_archlib}/auto/Compress/Zlib
+%{perl_archlib}/auto/Compress/Zlib/*.ix
%{_mandir}/man3/Compress*
%{perl_archlib}/Data
%{perl_archlib}/Hash
%dir %{perl_archlib}/auto/Hash
%dir %{perl_archlib}/auto/Hash/*/
+%dir %{perl_archlib}/auto/Hash/*/FieldHash
%attr(755,root,root) %{perl_archlib}/auto/Hash/*/*.so
%attr(755,root,root) %{perl_archlib}/auto/Hash/*/*/*.so
%{_mandir}/man3/Hash::*
%dir %{perl_privlib}/Unicode
%{perl_privlib}/Unicode/*.pm
+%{perl_privlib}/Unicode/Collate
%{perl_archlib}/Unicode
%dir %{perl_archlib}/auto/Unicode
%dir %{perl_archlib}/auto/Unicode/*
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/a2p
%{_mandir}/man1/a2p.*
-%attr(755,root,root) %{_bindir}/cpan
-%{_mandir}/man1/cpan.*
+%attr(755,root,root) %{_bindir}/corelist
+%{_mandir}/man1/corelist.*
%attr(755,root,root) %{_bindir}/find2perl
%{_mandir}/man1/find2perl.*
%attr(755,root,root) %{_bindir}/instmodsh
%attr(755,root,root) %{_bindir}/piconv
%{_mandir}/man1/piconv.*
%attr(755,root,root) %{_bindir}/psed
-%attr(755,root,root) %{_bindir}/s2p
%{_mandir}/man1/psed.*
+%attr(755,root,root) %{_bindir}/ptar
+%{_mandir}/man1/ptar.*
+%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.*
%files tools-devel
%defattr(644,root,root,755)
%{_mandir}/man1/perlivp.*
%attr(755,root,root) %{_bindir}/pl2pm
%{_mandir}/man1/pl2pm.*
+%attr(755,root,root) %{_bindir}/prove
+%{_mandir}/man1/prove.*
%attr(755,root,root) %{_bindir}/splain
%{_mandir}/man1/splain.*
%attr(755,root,root) %{_bindir}/xsubpp