%bcond_without tests # do not perform "make test"
%bcond_without threads # build without support for threads
%bcond_without gdbm # build without the GDBM_File module
-%bcond_without microperl # build microperl (needs fixing)
+%bcond_with microperl # build microperl (needs fixing)
#
# TODO:
# - fix "FIXME"s, review "XXX"s
# - patch MakeMaker to get rid of empty *.bs files (MM_Unix::dynamic_bs())
# - consider separating C/XS development files (*.h, libperl.so)
# and perl development modules (like MakeMaker, Devel...)
+# - subpackage for perl-ExtUtils-MakeMaker, (instmodsh conflicts with perl-ExtUtils-MakeMaker)
# - resolve ugly perl-base/perl-dirs dependency loop
# (in fact perl-dirs dep in perl-base could be dropped and perl-dirs
# deps in external modules autogenerated - perhaps with proper ">= version")
# NOTE
# - modules in 5.10.0: http://search.cpan.org/~rgarcia/perl-5.10.0/
-%define abi 5.10.0
+%define abi 5.12.0
%define perlthread %{?with_threads:-thread-multi}
%define perl_privlib %{_datadir}/perl5/%{ver}
%define perl_modver() %([ -f %{SOURCE3} ] && awk -vp=%1 '$1 == p{print $3}' %{SOURCE3} || echo ERROR)
%define perl_modversion() %([ -f %{SOURCE3} ] && awk -vp=%1 '$1 == p{m=$1; gsub(/::/, "-", m); printf("perl-%s = %s\\n", m, $3)}END{if (!m) printf("# Error looking up [%s]\\n", p)}' %{SOURCE3} || echo ERROR)
-%define ver 5.10.0
-%define rel 17
+%define ver 5.12.0
+%define rel 1
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/%{name}-%{ver}.tar.gz
-# Source0-md5: d2c39b002ebfd2c3c5dba589365c5a71
+Source0: http://www.cpan.org/modules/by-authors/id/J/JE/JESSE/%{name}-%{ver}.tar.bz2
+# Source0-md5: 3e15696f4160775a90f6b2fb3ccc98c2
Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
# Source1-md5: de47d7893f49ad7f41ba69c78511c0db
Source2: %{name}.prov
Source3: %{name}-modules
-Patch0: %{name}_581-noroot_install.patch
-Patch1: %{name}_581-INC.patch
Patch2: %{name}_580-errno_h-parsing.patch
Patch3: %{name}_581-soname.patch
Patch4: %{name}-test-noproc.patch
Patch5: %{name}_585-microperl_uconfig.patch
Patch6: %{name}-write-permissions.patch
Patch7: %{name}-timer-test.patch
-Patch8: %{name}-h2ph-includes.patch
Patch9: %{name}-t-syslog.patch
-Patch10: %{name}-PerlIO.patch
URL: http://dev.perl.org/perl5/
%ifarch ppc
# gcc 3.3.x miscompiles pp_hot.c
%{?with_gdbm:BuildRequires: gdbm-devel}
# asm-generic, merged x86 asm dirs
BuildRequires: linux-libc-headers >= 7:2.6.24
+%{?with_tests:BuildRequires: procps}
# required for proper Provides generation (older are not supported by spec)
BuildRequires: rpm-build >= 4.3-0.20040107.4
BuildRequires: rpmbuild(macros) >= 1.426
Requires: %{name}-base = %{epoch}:%{ver}-%{release}
-Requires: %{name}-doc-reference = %{epoch}:%{ver}-%{release}
Requires: %{name}-modules = %{epoch}:%{ver}-%{release}
-Requires: perldoc
+Suggests: %{name}-doc-reference = %{epoch}:%{ver}-%{release}
+Suggests: perldoc
+Obsoletes: sperl
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define __perl %{_builddir}/perl-%{ver}/runperl
Provides: %perl_modversion Math::Trig
Provides: %perl_modversion Memoize
Provides: %perl_modversion NEXT
+Provides: %perl_modversion Parse::CPAN::Meta
Provides: %perl_modversion Pod::LaTeX
Provides: %perl_modversion Pod::Parser
Provides: %perl_modversion Storable
Summary(pl.UTF-8): perldoc - przeszukiwanie dokumentacji Perla w formacie pod
Group: Development/Tools
Requires: %{name}-modules = %{epoch}:%{ver}-%{release}
-Requires: %{name}-tools-pod = %{epoch}:%{ver}-%{release}
+Requires: %{name}-tools-pod
Provides: perldoc = 3.14_02@%{ver}
%description perldoc
"pod2man | nroff -man | $PAGER". Program ten używany jest głównie do
dokumentacji modułów z bibliotek Perla.
-%package -n sperl
-Summary: Perl setuid root binaries for use with setuid Perl scripts
-Summary(de.UTF-8): sperl zur Verwendung mit setuid Perl-Skripts
-Summary(es.UTF-8): sperl, para uso con los scrips de Perl setuid
-Summary(fr.UTF-8): sperl, à utiliser avec les scripts Perl setuid
-Summary(it.UTF-8): sperl, da usare con gli script di Perl setuid
-Summary(ja.UTF-8): Setuid Perl scripts と一緒に使用するための suidperl
-Summary(ko.UTF-8): Setuid 펄 스크립트와 함께 사용되는 suidperl
-Summary(pl.UTF-8): Binaria setuid root Perla dla setuid-owych skryptów Perla
-Summary(pt.UTF-8): O suidperl, para usar com os programas de Perl 'setuid'
-Summary(ru.UTF-8): SUID версия языка Perl
-Summary(sv.UTF-8): sperl, att användas med setuid perlskript
-Summary(uk.UTF-8): SUID-версія мови Perl
-Summary(zh_CN.UTF-8): sperl,用来与 setuid Perl 脚本一起使用
-Group: Development/Languages/Perl
-Requires: %{name}-base = %{epoch}:%{ver}-%{release}
-Obsoletes: perl-suidperl
-
-%description -n sperl
-sperl is a setuid root binary copy of Perl that allows for (hopefully)
-more secure running of setuid Perl scripts.
-
-%description -n sperl -l de.UTF-8
-sperl ist eine binäre setuid Kopie von Perl, mit der (hoffentlich)
-setuid-Skripts sicherer ausgeführt werden können.
-
-%description -n sperl -l es.UTF-8
-sperl es una copia binaria de setuid para Perl que le permite una
-ejecución más segura de los scripts de Perl setuid.
-
-%description -n sperl -l fr.UTF-8
-sperl est une copie binaire setuid de Perl qui permet une exécution
-plus sûre de scripts Perl setuid.
-
-%description -n sperl -l it.UTF-8
-sperl è una copia binaria setuid di Perl che consente un'esecuzione
-più sicura di script di Perl setuid.
-
-%description -n sperl -l ja.UTF-8
-sperl は setuid Perl scripts.をもっと安全に動作できる(期待のある)為の
-Perl のsetuid バイナリ コピーです。
-
-%description -n sperl -l pl.UTF-8
-sperl jest to kopia setuid root programu binarnego Perl umożliwiająca
-bezpieczniejsze (miejmy nadzieję) uruchamianie setuidowych skryptów
-Perla.
-
-%description -n sperl -l pt.UTF-8
-O suidperl é uma cópia do Perl com 'setuid' que permite uma execução
-mais segura dos 'scripts' de Perl 'setuid'.
-
-%description -n sperl -l ru.UTF-8
-Suid perl испльзуется для того, чтобы дать возможность создавать
-скрипты с утановленным битом SUID. Хотя в него встроено достаточно
-много проверок, призваных обеспечить безопасность его использования
-suid perl все равно представляет собой значительную потенциальную
-опасность.
-
-%description -n sperl -l sv.UTF-8
-suidperl är en setuid binärkopia av pers som tillåter
-(förhoppningsvis) säkrare körning av setuid perlskript.
-
-%description -n sperl -l zh_CN.UTF-8
-suidperl 是 Perl 的 setuid 二进制副本。它允许(希望如此) 更安全地运行
-setuid perl 脚本。
-
%package tools
Summary: Various tools from the core Perl distribution
Summary(pl.UTF-8): Różne narzędzia z podstawowej dystrybucji Perla
symboli z cc -g -S
dprofpp - wyświetlanie perlowych danych profilujących
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
+ nagłówkowe .ph
+h2xs - konwerter plików nagłówkowych .h z C na rozszerzenia
Perla
-perlcc - generator binarek z programów w Perlu
-perlivp - procedura weryfikacji instalacji Perla
+perlcc - generator binarek z programów w Perlu
+perlivp - procedura weryfikacji instalacji Perla
pl2pm - zgrubne narzędzie do tłumaczenia plików pl Perla 4 na
moduły .pm Perla 5
splain - wymuszenie obszernych ostrzeżeń diagnostycznych
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.
+%define version %{ver}
+
%prep
%setup -q
-%patch0 -p1
-%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
-%patch8 -p1
%patch9 -p1
-%patch10 -p1
-%build
+cat > runperl <<'EOF'
+#!/bin/sh
+LD_PRELOAD="%{_builddir}/%{name}-%{ver}/libperl.so.%{abi}" \
+PERL5LIB="%{buildroot}%{perl_privlib}:%{buildroot}%{perl_archlib}" \
+exec %{buildroot}%{_bindir}/perl ${1:+"$@"}
+EOF
+chmod a+x runperl
+%build
unset LD_SYMBOLIC_FUNCTIONS || :
sh Configure \
-des \
-Doptimize="%{rpmcflags}" \
-%{?debug:D}%{!?debug:U}DEBUGGING \
-Duseshrplib \
- -Dd_dosuid \
-Dman1dir=%{_mandir}/man1 -Dman1ext=1 \
-Dman3dir=%{_mandir}/man3 -Dman3ext=3perl \
-Dvendorman1dir=%{_mandir}/man1 -Dvendorman1ext=1p \
-%{?with_threads:D}%{!?with_threads:U}usethreads \
-Duselargefiles
-## what's the problem with this one?
-# %ifarch sparc sparc64
-# -Ud_longdbl
-# %endif
-
-## {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} 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");
-EOF
-
%{__make} \
LIBPERL_SONAME=libperl.so.%{abi} \
LDDLFLAGS="%{rpmcflags} -shared"
-cat > runperl <<'EOF'
-#!/bin/sh
-LD_PRELOAD="%{_builddir}/%{name}-%{ver}/libperl.so.%{abi}" \
-PERL5LIB="%{buildroot}%{perl_privlib}:%{buildroot}%{perl_archlib}" \
-exec %{buildroot}%{_bindir}/perl ${1:+"$@"}
-EOF
-chmod a+x runperl
-
## microperl
%if %{with microperl}
%{__rm} uconfig.h
## use symlinks instead of hardlinks
%{__ln_s} -f perl%{ver} $RPM_BUILD_ROOT%{_bindir}/perl
- %{__ln_s} -f perl%{ver} $RPM_BUILD_ROOT%{_bindir}/suidperl
%{__ln_s} -f c2ph $RPM_BUILD_ROOT%{_bindir}/pstruct
%{__ln_s} -f psed $RPM_BUILD_ROOT%{_bindir}/s2p
## remove man pages for other operating systems
%{__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{freebsd,hpux,macos,mpeix,os2,os390}* \
$RPM_BUILD_ROOT%{_mandir}/man1/perl{qnx,solaris,vmesa,vms,vos,win32}*
## symlink perldelta.1.gz -> perlFOOdelta.1.gz
echo ".so perl%(echo %{ver} | tr -d .)delta.1" >$RPM_BUILD_ROOT%{_mandir}/man1/perldelta.1
## These File::Spec submodules are for non-Unix systems
- %{__rm} $RPM_BUILD_ROOT%{perl_privlib}/File/Spec/[EMOVW]*.pm
+ %{__rm} $RPM_BUILD_ROOT%{perl_archlib}/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} $RPM_BUILD_ROOT%{perl_privlib}/*.pod
%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/*.pod
- ## this object file looks unused; why is it there?
- %{__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}
+ doc-modules/{Attribute/Handlers,Filter/Simple,I18N/LangTags,Locale/{Codes,Maketext},Memoize,NEXT} \
+ doc-modules/{Net/Ping,Term/ANSIColor,Test/Simple,Text/{Balanced,TabsWrap},Unicode/Collate,unicore}
# needed only for tests
%{__rm} $RPM_BUILD_ROOT%{perl_privlib}/Unicode/Collate/keys.txt
v=$(%{__perl} -e 'do "Devel/DProf.pm"; print $Devel::DProf::VERSION')
;;
libnet)
- v=$(awk '/^libnet /{print $2; exit}' lib/Net/Changes)
+ v=$(awk '/^libnet /{print $2; exit}' cpan/libnet/Changes)
;;
*)
- v=$(%{__perl} -M$m -e "print \$$m::VERSION" )
+ v=$(%{__perl} -M$m -e "print $m->VERSION" )
;;
esac
echo "$m = $v" >> perl-modules
%files
%defattr(644,root,root,755)
%doc README AUTHORS
+%attr(755,root,root) %{_bindir}/perlthanks
%files libs
%defattr(644,root,root,755)
%dir %{perl_archlib}/auto
## pragmas
+%{perl_privlib}/autodie*
+%{_mandir}/man3/autodie*
%{perl_privlib}/base.pm
%{_mandir}/man3/base.*
%{perl_privlib}/constant.pm
%{_mandir}/man3/fields.*
%{perl_privlib}/integer.pm
%{_mandir}/man3/integer.*
-%{perl_privlib}/overload.pm
-%{_mandir}/man3/overload.*
+%{perl_privlib}/overload*
+%{_mandir}/man3/overload*
+%{perl_privlib}/parent.pm
+%{_mandir}/man3/parent.*
%{perl_privlib}/sort.pm
%{_mandir}/man3/sort.*
%{perl_privlib}/strict.pm
%{perl_privlib}/IPC
%{_mandir}/man3/IPC::Open*
%{_mandir}/man3/IPC::Cmd*
+%{perl_privlib}/Safe*
+%{_mandir}/man3/Safe*
%{perl_privlib}/SelectSaver.pm
%{_mandir}/man3/SelectSaver.*
%{perl_privlib}/Symbol.pm
%{_mandir}/man3/Symbol.*
%{perl_privlib}/Tie
%{_mandir}/man3/Tie::*
+%{perl_privlib}/XSLoader*
+%{_mandir}/man3/XSLoader*
## arch-dependent modules
%{perl_archlib}/Config*
%{_mandir}/man3/DynaLoader*
%{perl_archlib}/Errno*
%{_mandir}/man3/Errno*
-%{perl_archlib}/Safe*
-%{_mandir}/man3/Safe*
-%{perl_archlib}/XSLoader*
-%{_mandir}/man3/XSLoader*
%{perl_archlib}/Cwd.*
%dir %{perl_archlib}/auto/Cwd
%{perl_archlib}/CORE/*.h
%{_mandir}/man3/CORE*
+%{perl_privlib}/App/Cpan.pm
+%{_mandir}/man3/App::Cpan*
# FIXME: Changes file to _docdir (and rm MANIFEST.SKIP?)
%{perl_privlib}/ExtUtils
%{_mandir}/man3/ExtUtils*
%{_mandir}/man3/CPAN*
%{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.*
+%{perl_privlib}/B
%{perl_archlib}/B
%{perl_archlib}/B.pm
%dir %{perl_archlib}/auto/B
#%{perl_archlib}/auto/XS/*/*.bs
#%{_mandir}/man3/XS::*
-
%files doc-pod
%defattr(644,root,root,755)
%{perl_privlib}/pod/perl.pod
%{perl_privlib}/pod/perld[!i]*.pod
%{perl_privlib}/pod/perlf[!au]*.pod
-
%files doc-reference
%defattr(644,root,root,755)
%{_mandir}/man1/perl[5aefghlmnoprstuvwx]*
%lang(ko) %{_mandir}/ko/man1/perlko.*
%lang(zh_TW) %{_mandir}/zh_TW/man1/perltw.*
-
%files modules
%defattr(644,root,root,755)
%doc doc-modules/*
%{perl_privlib}/unicore
## pragmas
-%{perl_privlib}/attributes.pm
-%{_mandir}/man3/attributes.*
%{perl_privlib}/autouse.pm
%{_mandir}/man3/autouse.*
%{perl_privlib}/big*.pm
%{_mandir}/man3/bytes.*
%{perl_privlib}/charnames.pm
%{_mandir}/man3/charnames.*
+%{perl_privlib}/deprecate*.pm
+%{_mandir}/man3/deprecate*
%{perl_privlib}/encoding
%{_mandir}/man3/encoding::*
%{perl_privlib}/filetest.pm
%{_mandir}/man3/less.*
%{perl_privlib}/locale.pm
%{_mandir}/man3/locale.*
-%{perl_privlib}/mro.pm
-%{_mandir}/man3/mro.*
%{perl_privlib}/open.pm
%{_mandir}/man3/open.*
%{perl_privlib}/sigtrap.pm
%{perl_privlib}/utf8.pm
%{_mandir}/man3/utf8.*
%{perl_privlib}/version.pm
-%{_mandir}/man3/version.*
+%{_mandir}/man3/version*
-%{perl_archlib}/attrs.pm
-%dir %{perl_archlib}/auto/attrs
-%attr(755,root,root) %{perl_archlib}/auto/attrs/*.so
-%{_mandir}/man3/attrs.*
+%{perl_archlib}/attributes.pm
+%dir %{perl_archlib}/auto/attributes
+%attr(755,root,root) %{perl_archlib}/auto/attributes/*.so
+%{_mandir}/man3/attributes.*
+%{perl_archlib}/mro.pm
+%dir %attr(755,root,root) %{perl_archlib}/auto/mro
+%attr(755,root,root) %{perl_archlib}/auto/mro/*.so
+%{_mandir}/man3/mro.*
%{perl_archlib}/re.pm
%dir %{perl_archlib}/auto/re
%attr(755,root,root) %{perl_archlib}/auto/re/*.so
# on archs which <asm/ioctl.h> uses <asm-generic/ioctl.h>
%{perl_archlib}/asm-generic
%endif
-%ifarch sparc64
-%{perl_archlib}/asm-sparc
-%{perl_archlib}/asm-sparc64
-%endif
%{perl_archlib}/bits
%{perl_archlib}/gnu
%{perl_archlib}/linux
%{perl_archlib}/sys
+%{perl_privlib}/Compress
%{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/Raw/Zlib/*.ix
+%dir %{perl_archlib}/auto/Compress/Raw/*/
%dir %{perl_archlib}/auto/Compress/Zlib
+%attr(755,root,root) %{perl_archlib}/auto/Compress/Raw/*/*.so
+%{perl_archlib}/auto/Compress/Raw/*/*.ix
%{perl_archlib}/auto/Compress/Zlib/*.ix
%{_mandir}/man3/Compress*
%{perl_privlib}/AnyDBM*
%{_mandir}/man3/AnyDBM*
+%dir %{perl_privlib}/App
+%{perl_privlib}/App/Prove*
+%{_mandir}/man3/App::Prove*
%{perl_privlib}/Archive*
%{_mandir}/man3/Archive*
%{perl_privlib}/Attribute
%{_mandir}/man3/NEXT*
# FIXME: README and Changes files
%dir %{perl_privlib}/Net
-%{perl_privlib}/Net/*.eg
%{perl_privlib}/Net/*.pm
%{perl_privlib}/Net/FTP
%{_mandir}/man3/Net::*
%{_mandir}/man3/Package::*
%{perl_privlib}/Params
%{_mandir}/man3/Params::*
+%{perl_privlib}/Parse
+%{_mandir}/man3/Parse::CPAN::Meta*
%{perl_privlib}/Pod
%{_mandir}/man3/Pod::*
%{perl_archlib}/Scalar
%{_mandir}/man3/SelfLoader.*
%{perl_privlib}/Shell.*
%{_mandir}/man3/Shell.*
+%{perl_privlib}/TAP
+%{_mandir}/man3/TAP::*
# FIXME: README and Changes files
%{perl_privlib}/Switch.*
%{_mandir}/man3/Switch.*
%{perl_privlib}/User
%{_mandir}/man3/User::*
-
%files perldoc
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/perldoc
%{perl_privlib}/pod/perlfunc.pod
%{_mandir}/man1/perldoc.*
-
-%files -n sperl
-%defattr(644,root,root,755)
-%attr(4755,root,root) %{_bindir}/sperl%{ver}
-%attr(755,root,root) %{_bindir}/suidperl
-
%files tools
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/a2p
%if %{with microperl}
%files -n microperl
%defattr(644,root,root,755)
-%doc README.micro Todo.micro
+%doc README.micro
%attr(755,root,root) %{_bindir}/microperl
%endif