# TODO:
# - fix "FIXME"s, review "XXX"s
# - add the {O,N}DBM_File modules
-# - review the perldiag.pod issue
+# - review the perldiag.pod issue - what issue?
# - consider disabling ithreads by default
# - what about "prove" (binary+manual)? (conflicts with standalone Test-Harness)
# - patch MakeMaker to get rid of empty *.bs files (MM_Unix::dynamic_bs())
-# - %{__cc}: cc -c -o uhv.o -DPERL_CORE -DPERL_MICRO -DSTANDARD_C -DPERL_USE_SAFE_PUTENV -O2 -march=i686 hv.c
+# - consider separating C/XS development files (*.h, libperl.so)
+# and perl development modules (like MakeMaker, Devel...)
+# - 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")
#
# TODO for perl-dependent packages:
# - change all "R/BR: perl" to one of perl-{base,modules,devel}
%define perl_vendorlib %{_datadir}/perl5/vendor_perl
%define perl_vendorarch %{_libdir}/perl5/vendor_perl/%{_abi}/%{_target_platform}%{perlthread}
-%define _rel 2
+%define rel 2.2
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}_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
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.424
+BuildRequires: rpmbuild(macros) >= 1.426
Requires: %{name}-base = %{epoch}:%{version}-%{release}
Requires: %{name}-modules = %{epoch}:%{version}-%{release}
Requires: %{name}-doc-reference = %{epoch}:%{version}-%{release}
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
Requires: perl-dirs(%{_target_cpu})
Provides: perl(largefiles)
-Provides: perl-File-Compare = 1.1003
-Provides: perl-File-Spec = 3.12
-Provides: perl-File-Temp = 0.16
-Provides: perl-IO = 1.22
+Provides: perl-File-Compare = 1.1005
+Provides: perl-File-Spec = 3.2501
+Provides: perl-File-Temp = 0.18
+Provides: perl-IO = 1.23_01
+Provides: perl-PerlIO-via-QuotedPrint = 0.06
Provides: perl-Safe = 2.12
Provides: perl-Socket = 1.78
Provides: perl-Tie-File = 0.97
-# broken, unsupported modules
-Obsoletes: perl-SOAP
-Obsoletes: perl-Sort-PolySort
Conflicts: perl < 1:5.8.0
%description base
Requires: %{name}-base = %{epoch}:%{version}-%{release}
Requires: %{name}-modules = %{epoch}:%{version}-%{release}
Requires: %{name}-tools-pod = %{epoch}:%{version}-%{release}
-Provides: perl-CPAN = 1.76_02
+Provides: perl-CPAN = 1.9205
Provides: perl-Devel-DProf = 20050603.00
-Provides: perl-Devel-PPPort = 3.06_01
+Provides: perl-Devel-PPPort = 3.13
Provides: perl-Devel-Peek = 1.03
-Provides: perl-ExtUtils-Embed = 1.2506_01
-Provides: perl-ExtUtils-MakeMaker = 6.30
+Provides: perl-ExtUtils-Embed = 1.27
+Provides: perl-ExtUtils-MakeMaker = 6.42
Obsoletes: perl-lib-devel
%description devel
Summary(pl.UTF-8): Moduły z podstawowej dystrybucji Perla
Group: Libraries
Requires: %{name}-base = %{epoch}:%{version}-%{release}
-Provides: perl-Attribute-Handlers = 0.78_02
-Provides: perl-CGI = 3.15
+Provides: perl-Attribute-Handlers = 0.79
+Provides: perl-CGI = 3.29
Provides: perl-Class-ISA = 0.33
-Provides: perl-Digest = 1.14
-Provides: perl-Digest-MD5 = 2.36
+Provides: perl-Digest = 1.15
+Provides: perl-Digest-MD5 = 2.36_01
Provides: perl-Filter-Simple = 0.82
-Provides: perl-FindBin = 1.47
+Provides: perl-FindBin = 1.49
#Provides: perl-Hash-Utils = 0.05 Data::Util is missing
Provides: perl-I18N-LangTags = 0.35
-Provides: perl-IPC-SysV = 1.04
+Provides: perl-IPC-SysV = 1.05
Provides: perl-Locale-Codes = 2.07
-Provides: perl-Locale-Maketext = 1.09
-Provides: perl-MIME-Base64 = 3.07
-Provides: perl-Math-BigInt = 1.77
-Provides: perl-Math-BigRat = 0.15
-Provides: perl-Math-Trig = 1.03
-Provides: perl-Memoize = 1.01
-Provides: perl-NEXT = 0.60
-Provides: perl-PerlIO-via-QuotedPrint = 0.06
+Provides: perl-Locale-Maketext = 1.12
+Provides: perl-MIME-Base64 = 3.07_01
+Provides: perl-Math-BigInt = 1.88
+Provides: perl-Math-BigRat = 0.21
+Provides: perl-Math-Trig = 1.04
+Provides: perl-Memoize = 1.01_02
+Provides: perl-NEXT = 0.60_01
Provides: perl-Pod-LaTeX = 0.58
-Provides: perl-Pod-Parser = 1.32
-Provides: perl-Scalar-List-Utils = 1.18
-Provides: perl-Storable = 2.15
-Provides: perl-Term-ANSIColor = 1.10
-Provides: perl-Term-Cap = 1.09
+Provides: perl-Pod-Parser = 1.35
+Provides: perl-Scalar-List-Utils = 1.19
+Provides: perl-Storable = 2.18
+Provides: perl-Term-ANSIColor = 1.12
+Provides: perl-Term-Cap = 1.12
Provides: perl-Test = 1.25
-Provides: perl-Test-Harness = 2.56
-Provides: perl-Test-Simple = 0.62
+Provides: perl-Test-Harness = 2.64
+Provides: perl-Test-Simple = 0.72
Provides: perl-Text-Balanced = 1.95
-Provides: perl-Text-ParseWords = 3.24
-Provides: perl-Text-Soundex = 1.01
+Provides: perl-Text-ParseWords = 3.26
+Provides: perl-Text-Soundex = 3.03
# XXX: I'm not sure what to do with this one...
#Provides: perl-Text-Tabs+Wrap = 2005.0824(01)
-Provides: perl-Time-HiRes = 1.86
-Provides: perl-UNIVERSAL = 1.01
+Provides: perl-Time-HiRes = 1.9711
+Provides: perl-UNIVERSAL = 1.04
Provides: perl-Unicode-Collate = 0.52
-Provides: perl-Unicode-Normalize = 0.32
-Provides: perl-libnet = 1.19
+Provides: perl-Unicode-Normalize = 1.02
+Provides: perl-libnet = 1.22
Obsoletes: perl-Encode-compat
Obsoletes: perl-lib
Group: Development/Tools
Requires: %{name}-modules = %{epoch}:%{version}-%{release}
Requires: %{name}-tools-pod = %{epoch}:%{version}-%{release}
-Provides: perldoc = 3.13@%{version}
+Provides: perldoc = 3.14_02@%{version}
%description perldoc
perldoc looks up a piece of documentation in .pod format that is
%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
%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
## microperl
%if %{with microperl}
%{__rm} uconfig.h
-#chmod u+w uconfig.sh
-#echo "usemallocwrap='define'" >> uconfig.sh
%{__make} -f Makefile.micro \
archlib=%{perl_archlib} \
archlibexp=%{perl_archlib} \
scriptdir=%{_bindir} \
scriptdirexp=%{_bindir} \
usemallocwrap='define' \
+ CC="%{__cc}" \
OPTIMIZE="%{rpmcflags}"
%endif
## Fix lib
%{__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}
+#%{__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}/CORE/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
%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}/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}/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
-%ifarch %{x8664} sparc64
-%{perl_archlib}/asm-*
-%endif
%{perl_archlib}/Compress
%dir %{perl_archlib}/auto/Compress