X-Git-Url: https://git.pld-linux.org/?a=blobdiff_plain;f=perl.spec;h=63e947788bef17677ef16e928977759c0f81736f;hb=0de9f46f21baa19922e928e6cbee47a58efb0427;hp=f0e68f01e8b64b5cf7f1118cfcdf7a259b2ec327;hpb=3e1cee1ace17fc0e9730a2812158a60d95b3300e;p=packages%2Fperl.git diff --git a/perl.spec b/perl.spec index f0e68f0..63e9477 100644 --- a/perl.spec +++ b/perl.spec @@ -1,37 +1,32 @@ # # Conditional build: -# _without_tests - do not perform "make test" -# _without_threads - build without support for threads -# _without_largefiles - build without large file support -# _without_gdbm - build without the GDBM_File module +%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 # don't build microperl # # TODO: -# - Think about unicore. If uf8*.pm, encode.pm, charnames.pm (and -# probably others) are in the perl-base package, unicore should also -# be there. But it's 5MB... # - fix "FIXME"s, review "XXX"s -# - fix perl.prov's handling in rpm -- it should use the __perl macro # - add the {O,N}DBM_File modules # - review the perldiag.pod issue # - consider disabling ithreads by default # - consider introducing perl-dirs +# - what about "prove" (binary+manual)? (conflicts with standalone Test-Harness) # # TODO for perl-dependent packages: # - change all "R/BR: perl" to one of perl-{base,modules,devel} -# - use the requires_eq(perl-base) for all packages strictly depending -# on the perl version used for building (files in perl_vendorarch -# directories; dependency on libperl.so.* often doesn't exist) -# (should this be done on Ra-branch, too?) # -%define perlthread %{?!_without_threads:-thread-multi} +%define _abi 5.8.0 + +%define perlthread %{?with_threads:-thread-multi} %define perl_privlib %{_datadir}/perl5/%{version} %define perl_archlib %{_libdir}/perl5/%{version}/%{_target_platform}%{perlthread} %define perl_sitelib %{_usr}/local/share/perl5 -%define perl_sitearch %{_usr}/local/lib/perl5/%{version}/%{_target_platform}%{perlthread} +%define perl_sitearch %{_usr}/local/lib/perl5/%{_abi}/%{_target_platform}%{perlthread} %define perl_vendorlib %{_datadir}/perl5/vendor_perl -%define perl_vendorarch %{_libdir}/perl5/vendor_perl/%{version}/%{_target_platform}%{perlthread} +%define perl_vendorarch %{_libdir}/perl5/vendor_perl/%{_abi}/%{_target_platform}%{perlthread} Summary: Practical Extraction and Report Language (Perl) Summary(cs): Programovací jazyk Perl @@ -44,7 +39,7 @@ Summary(is): Forritunarm Summary(it): Perl: linguaggio di programmazione Summary(ja): Perl ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì Summary(ko): ÆÞ ÇÁ·Î±×·¡¹Ö ¾ð¾î -Summary(no): Programmeringsspråket Perl +Summary(nb): Programmeringsspråket Perl Summary(pl): Interpreter jêzyka Perl (Practical Extraction and Report Language) Summary(pt): A linguagem de programação Perl Summary(pt_BR): Linguagem prática de extração e relatório @@ -55,46 +50,40 @@ Summary(sv): Programmeringsspr Summary(tr): Kabuk yorumlama dili Summary(zh_CN): Perl ±à³ÌÓïÑÔ¡£ Name: perl -Version: 5.8.0 -Release: 0.52%{?_without_threads:_nothr}%{?_without_largefiles:_nolfs} +Version: 5.8.4 +Release: 9%{!?with_threads:_nothr} Epoch: 1 License: GPL v1+ or Artistic Group: Development/Languages/Perl -Source0: http://www.cpan.org/src/%{name}-%{version}.tar.gz -# Source0-md5: d9bdb180620306023fd35901a2878b62 +Source0: http://www.cpan.org/src/%{name}-%{version}.tar.bz2 +# Source0-md5: 3eb135afd0114f4e1acdd4ad6b8fd947 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: find-perl-provides.sh -Patch0: %{name}_580-noroot_install.patch -Patch1: %{name}_580-INC.patch -Patch2: %{name}_580-MakeMaker.patch +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}_580-soname.patch -Patch6: %{name}_580-perluniintro.patch -Patch7: %{name}_580-Safe.patch -Patch8: %{name}_580-microperl_uconfig.patch +Patch5: %{name}_581-soname.patch +Patch6: %{name}-test-noproc.patch +Patch7: %{name}_584-microperl_uconfig.patch URL: http://www.perl.com/ -# versions [4.2, 4.3-0.20030610.20.1] are not supported -BuildRequires: rpm-build >= 4.3-0.20030610.20.2 -%{?!_without_gdbm:BuildRequires: gdbm-devel} -Requires: %{name}-base = %{epoch}:%{version} -Requires: %{name}-modules = %{epoch}:%{version} -Requires: perl-doc-reference +# required for proper Provides generation (older are not supported by spec) +BuildRequires: rpm-build >= 4.3-0.20040107.4 +BuildRequires: rpm-perlprov +%{?with_gdbm:BuildRequires: gdbm-devel} +Requires: %{name}-base = %{epoch}:%{version}-%{release} +Requires: %{name}-modules = %{epoch}:%{version}-%{release} +Requires: %{name}-doc-reference = %{epoch}:%{version}-%{release} Requires: perldoc BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%define __perl LD_LIBRARY_PATH="%{_builddir}/%{name}-%{version}" PERL5LIB="%{buildroot}%{perl_privlib}:%{buildroot}%{perl_archlib}" %{buildroot}%{_bindir}/perl +%define __perl %{_builddir}/%{name}-%{version}/runperl +%define __perl_provides %{__perl} /usr/lib/rpm/perl.prov -%if 0%{?_use_internal_dependency_generator:1} -%define _use_internal_dependency_generator 0 -# we can do it as there is no _noautoprov* in this spec -%define __find_provides /usr/bin/rpmdeps --define="__perl_provides /bin/sh -c '%{__perl} %{SOURCE2}'" --define="__perl_requires /bin/sh -c 'cat >/dev/null'" --provides -%else -# for rpm <= 4.1 -%define __find_provides %{_builddir}/%{name}-%{version}/find-perl-provides.sh -%endif +# gcc 3.3.x miscompiles pp_hot.c +# (in PUSHSUB in entersub two SvREFCNT_inc()s are working as one) +# -fno-strict-aliasing is already used to build perl and doesn't help +%define specflags_ppc -O1 %description Perl is an interpreted language optimized for scanning arbitrary text @@ -273,17 +262,26 @@ Perl %package base Summary: Base perl components for a minimal installation Summary(pl): Podstawowe sk³adniki potrzebne do minimalnej instalacji perla -Group: Text/Applications +Group: Development/Languages/Perl Provides: perl-File-Compare = 1.1003 -Provides: perl-File-Spec = 0.83 -Provides: perl-File-Temp = 0.13 -Provides: perl-IO = 1.20 -Provides: perl-Safe = 2.09 -Provides: perl-Socket = 1.75 -Provides: perl-Tie-File = 0.93 -%{?!_without_largefiles:Provides: perl(largefiles)} -# broken, unsupported module +Provides: perl-File-Spec = 0.87 +Provides: perl-File-Temp = 0.14 +Provides: perl-IO = 1.21 +Provides: perl-Safe = 2.10 +Provides: perl-Socket = 1.77 +Provides: perl-Tie-File = 0.97 +Provides: perl(largefiles) +# broken, unsupported modules Obsoletes: perl-SOAP +Obsoletes: perl-Sort-PolySort +# for older modules, now included +#Obsoletes: perl-File-Compare <= 1.1003 +#Obsoletes: perl-File-Spec <= 0.87 +#Obsoletes: perl-File-Temp <= 0.14 +#Obsoletes: perl-IO <= 1.21 +#Obsoletes: perl-Safe <= 2.10 +#Obsoletes: perl-Socket <= 1.77 +#Obsoletes: perl-Tie-File <= 0.97 %description base Base components, files, core modules, etc. -- a minimal usable perl @@ -299,7 +297,7 @@ perla, nadaj Summary: GDBM_File - Perl5 access to the gdbm library Summary(pl): GDBM_File - dostêp do biblioteki gdbm w Perlu Group: Libraries -Requires: %{name}-base = %{epoch}:%{version} +Requires: %{name}-base = %{epoch}:%{version}-%{release} # FIXME: Set Version: 1.06 and Release: 1 instead of inheriting # values from the main package. Why this causes setting # version and release macros up to the end of this spec? @@ -319,13 +317,13 @@ Summary(pt_BR): Arquivos de desenvolvimento e cabe Group: Development/Libraries Requires: %{name}-base = %{epoch}:%{version} Requires: %{name}-modules = %{epoch}:%{version} -Requires: %{name}-tools-pod -Provides: perl-CPAN = 1.61 -Provides: perl-Devel-DProf = 20000000.00_01 -Provides: perl-Devel-PPPort = 2.0002 -Provides: perl-Devel-Peek = 1.00_03 -Provides: perl-ExtUtils-MakeMaker = 6.03 -Provides: perl-ExtUtils-Embed = 1.250601 +Requires: %{name}-tools-pod = %{epoch}:%{version} +Provides: perl-CPAN = 1.76_01 +Provides: perl-Devel-DProf = 20030813.00 +Provides: perl-Devel-PPPort = 2.011 +Provides: perl-Devel-Peek = 1.01 +Provides: perl-ExtUtils-Embed = 1.2506_01 +Provides: perl-ExtUtils-MakeMaker = 6.17 Obsoletes: perl-lib-devel %description devel @@ -367,42 +365,83 @@ Extraction and Report Language) i jego interpretera. Summary: Modules from the core perl distribution Summary(pl): Modu³y z podstawowej dystrybucji perla Group: Libraries -Requires: %{name}-base = %{epoch}:%{version} -Provides: perl-Attribute-Handlers = 0.77 -Provides: perl-CGI = 2.81 +Requires: %{name}-base = %{epoch}:%{version}-%{release} +Provides: perl-Attribute-Handlers = 0.78_01 +Provides: perl-CGI = 3.04 Provides: perl-Class-ISA = 0.32 -Provides: perl-Digest = 1.00 -Provides: perl-Digest-MD5 = 2.20 +Provides: perl-Digest = 1.06 +Provides: perl-Digest-MD5 = 2.33 Provides: perl-Filter-Simple = 0.78 -Provides: perl-FindBin = 1.43 -#Provides: perl-Hash-Utils = 0.04 Data::Util is missing -Provides: perl-IPC-SysV = 1.03_00 -Provides: perl-Locale-Maketext = 1.03 -Provides: perl-MIME-Base64 = 2.12 -Provides: perl-Math-BigInt = 1.60 -Provides: perl-Math-BigRat = 0.07 -Provides: perl-Math-Trig = 1.01 +Provides: perl-FindBin = 1.44 +#Provides: perl-Hash-Utils = 0.05 Data::Util is missing +Provides: perl-I18N-LangTags = 0.29 +Provides: perl-IPC-SysV = 1.04 +Provides: perl-Locale-Codes = 2.06 +Provides: perl-Locale-Maketext = 1.08 +Provides: perl-MIME-Base64 = 3.01 +Provides: perl-Math-BigInt = 1.70 +Provides: perl-Math-BigRat = 0.12 +Provides: perl-Math-Trig = 1.02 Provides: perl-Memoize = 1.01 -Provides: perl-NEXT = 0.50 -Provides: perl-PerlIO-via-QuotedPrint = 0.04 -Provides: perl-Pod-LaTeX = 0.54 -Provides: perl-Pod-Parser = 1.13 -Provides: perl-Scalar-List-Utils = 1.07_00 -Provides: perl-Storable = 2.04 -Provides: perl-Term-ANSIColor = 1.05 -Provides: perl-Term-Cap = 1.07 -Provides: perl-Test = 1.20 -Provides: perl-Test-Harness = 2.26 -Provides: perl-Test-Simple = 0.45 -Provides: perl-Text-Balanced = 1.89 +Provides: perl-NEXT = 0.60 +Provides: perl-PerlIO-via-QuotedPrint = 0.06 +Provides: perl-Pod-LaTeX = 0.55 +Provides: perl-Pod-Parser = 1.14 +Provides: perl-Scalar-List-Utils = 1.13 +Provides: perl-Storable = 2.12 +Provides: perl-Term-ANSIColor = 1.08 +Provides: perl-Term-Cap = 1.08 +Provides: perl-Test = 1.24 +Provides: perl-Test-Harness = 2.40 +Provides: perl-Test-Simple = 0.47 +Provides: perl-Text-Balanced = 1.95 Provides: perl-Text-ParseWords = 3.21 Provides: perl-Text-Soundex = 1.01 -Provides: perl-Text-Tabs+Wrap = 2001.0929 -Provides: perl-Time-HiRes = 1.20_00 -Provides: perl-UNIVERSAL = 1.00 -Provides: perl-Unicode-Collate = 0.12 -Provides: perl-Unicode-Normalize = 0.17 +# XXX: I'm not sure what to do with this one... +#Provides: perl-Text-Tabs+Wrap = 2001.09291 +Provides: perl-Time-HiRes = 1.59 +Provides: perl-UNIVERSAL = 1.01 +Provides: perl-Unicode-Collate = 0.33 +Provides: perl-Unicode-Normalize = 0.28 +Provides: perl-libnet = 1.1.1 +Obsoletes: perl-Encode-compat Obsoletes: perl-lib +# for older modules included into perl +#Obsoletes: perl-Attribute-Handlers <= 0.78_01 +#Obsoletes: perl-CGI <= 3.04 +#Obsoletes: perl-Class-ISA <= 0.32 +#Obsoletes: perl-Digest <= 1.06 +#Obsoletes: perl-Digest-MD5 <= 2.33 +#Obsoletes: perl-Filter-Simple <= 0.78 +#Obsoletes: perl-FindBin <= 1.44 +#Obsoletes: perl-I18N-LangTags <= 0.29 +#Obsoletes: perl-IPC-SysV <= 1.04 +#Obsoletes: perl-Locale-Codes <= 2.06 +#Obsoletes: perl-Locale-Maketext <= 1.08 +#Obsoletes: perl-MIME-Base64 <= 3.01 +#Obsoletes: perl-Math-BigInt <= 1.70 +#Obsoletes: perl-Math-BigRat <= 0.12 +#Obsoletes: perl-Math-Trig <= 1.02 +#Obsoletes: perl-Memoize <= 1.01 +#Obsoletes: perl-NEXT <= 0.60 +#Obsoletes: perl-PerlIO-via-QuotedPrint <= 0.06 +#Obsoletes: perl-Pod-LaTeX <= 0.55 +#Obsoletes: perl-Pod-Parser <= 1.14 +#Obsoletes: perl-Scalar-List-Utils <= 1.13 +#Obsoletes: perl-Storable <= 2.12 +#Obsoletes: perl-Term-ANSIColor <= 1.08 +#Obsoletes: perl-Term-Cap <= 1.08 +#Obsoletes: perl-Test <= 1.24 +#Obsoletes: perl-Test-Harness <= 2.40 +#Obsoletes: perl-Test-Simple <= 0.47 +#Obsoletes: perl-Text-Balanced <= 1.95 +#Obsoletes: perl-Text-ParseWords <= 3.21 +#Obsoletes: perl-Text-Soundex <= 1.01 +#Obsoletes: perl-Time-HiRes <= 1.59 +#Obsoletes: perl-UNIVERSAL <= 1.01 +#Obsoletes: perl-Unicode-Collate <= 0.33 +#Obsoletes: perl-Unicode-Normalize <= 0.28 +#Obsoletes: perl-libnet <= 1.1.1 %description modules Practical Extraction and Report Language - modules from the core @@ -415,9 +454,10 @@ dystrybucji. %package perldoc Summary: perldoc - Look up Perl documentation in pod format Summary(pl): perldoc - przeszukiwanie dokumentacji Perla w formacie pod -Provides: perldoc = 2.03@%{version} -Requires: %{name}-base Group: Development/Tools +Requires: %{name}-modules = %{epoch}:%{version}-%{release} +Requires: %{name}-tools-pod = %{epoch}:%{version}-%{release} +Provides: perldoc = 3.12@%{version} %description perldoc perldoc looks up a piece of documentation in .pod format that is @@ -446,7 +486,7 @@ Summary(sv): sperl, att anv Summary(uk): SUID-×ÅÒÓ¦Ñ ÍÏ×É Perl Summary(zh_CN): sperl£¬ÓÃÀ´Óë setuid perl ½Å±¾Ò»ÆðʹÓà Group: Development/Languages/Perl -Requires: %{name}-base = %{epoch}:%{version} +Requires: %{name}-base = %{epoch}:%{version}-%{release} Obsoletes: perl-suidperl %description -n sperl @@ -501,12 +541,13 @@ setuid perl Summary: Various tools from the core perl distribution Summary(pl): Ró¿ne narzêdzia z podstawowej dystrybucji perla Group: Applications -Requires: %{name}-devel = %{epoch}:%{version} +Requires: %{name}-devel = %{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 @@ -515,6 +556,7 @@ Various tools from the core perl distribution: 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 @@ -523,8 +565,8 @@ R Summary: Developer's tools from the core perl distribution Summary(pl): Narzêdzia z podstawowej dystrybucji perla, przeznaczone dla programistów Group: Development/Tools -Requires: %{name}-base = %{epoch}:%{version} -Requires: %{name}-devel = %{epoch}:%{version} +Requires: %{name}-base = %{epoch}:%{version}-%{release} +Requires: %{name}-devel = %{epoch}:%{version}-%{release} %description tools-devel Various tools from the core perl distribution: @@ -560,7 +602,7 @@ R Summary: Tools for manipulating files in the POD format Summary(pl): Narzêdzia do przetwarzania plików w formacie POD Group: Applications -Requires: %{name}-modules = %{epoch}:%{version} +Requires: %{name}-modules = %{epoch}:%{version}-%{release} %description tools-pod Tools for manipulating files in the POD (Plain Old Documentation) @@ -615,45 +657,42 @@ microperlu - popraw je. %prep %setup -q %patch0 -p1 -%patch1 -p0 -%patch2 -p0 +%patch1 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 -%patch6 -p0 +%patch6 -p1 %patch7 -p1 -%patch8 -p1 - -install -m 0755 %{SOURCE2} $PWD/find-perl.prov -install -m 0755 %{SOURCE3} $PWD/find-perl-provides.sh %build sh Configure \ -des \ - -Dcc=%{__cc} \ + -Dcc="%{__cc}" \ -Darchname=%{_target_platform} \ -Dcccdlflags='-fPIC' \ -Dccdlflags='-rdynamic' \ + -Dldlibpthname=none \ -Doptimize="%{rpmcflags}" \ + %{?debug:-DDEBUGGING} \ -Duseshrplib \ -Dd_dosuid \ -Dman1dir=%{_mandir}/man1 -Dman1ext=1 \ -Dman3dir=%{_mandir}/man3 -Dman3ext=3perl \ -Dvendorman1=%{_mandir}/man1 -Dvendorman1ext=1p \ -Dvendorman3=%{_mandir}/man3 -Dvendorman3ext=3pm \ - -Dsiteman1=%{_usr}/local/share/man/man1 -Dsiteman1ext=1p \ - -Dsiteman3=%{_usr}/local/share/man/man3p -Dsiteman3ext=3pm \ + -Dsiteman1=%{_usr}/local/man/man1 -Dsiteman1ext=1p \ + -Dsiteman3=%{_usr}/local/man/man3 -Dsiteman3ext=3pm \ -Dprefix=%{_prefix} -Dvendorprefix=%{_prefix} -Dsiteprefix=%{_usr}/local \ + -Dlibpth="%{_libdir} /%{_lib}" \ -Dprivlib=%{perl_privlib} -Darchlib=%{perl_archlib} \ -Dsitelib=%{perl_sitelib} -Dsitearch=%{perl_sitearch} \ -Dvendorlib=%{perl_vendorlib} -Dvendorarch=%{perl_vendorarch} \ - -Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \ -Ui_db \ - %{?_without_gdbm: -Ui_dbm -Ui_gdbm -Ui_ndbm} \ - %{?!_without_gdbm: -Ui_dbm -Di_gdbm -Ui_ndbm} \ - -Dlibswanted="dl m c crypt %{?!_without_dbm:gdbm}" \ - -%{?_without_threads:U}%{?!_without_threads:D}usethreads \ - -%{?_without_largefiles:U}%{?!_without_largefiles:D}uselargefiles + %{!?with_gdbm: -Ui_dbm -Ui_gdbm -Ui_ndbm} \ + %{?with_gdbm: -Ui_dbm -Di_gdbm -Ui_ndbm} \ + -Dlibswanted="dl m c crypt %{?with_gdbm:gdbm}" \ + -%{?with_threads:D}%{!?with_threads:U}usethreads \ + -Duselargefiles ## why were these three undefined? # -Ud_setresgid \ @@ -669,13 +708,17 @@ mv ext/List/Util/lib/List/Util.pm ext/List/Util rm -f ext/List/Util/Makefile.PL cat < ext/List/Util/Makefile.PL use ExtUtils::MakeMaker; -WriteMakefile(NAME=>"List::Util", VERSION_FROM=>"Util.pm"); +WriteMakefile(NAME=>"List::Util", VERSION_FROM=>"Util.pm", DEFINE=>"-DPERL_EXT"); EOF -%{__make} +%{__make} \ + LIBPERL_SONAME=libperl.so.%{_abi} ## microperl +%if %{with microperl} rm -f uconfig.h +#chmod u+w uconfig.sh +#echo "usemallocwrap='define'" >> uconfig.sh %{__make} -f Makefile.micro \ archlib=%{perl_archlib} \ archlibexp=%{perl_archlib} \ @@ -686,41 +729,48 @@ rm -f uconfig.h bin=%{_bindir} \ scriptdir=%{_bindir} \ scriptdirexp=%{_bindir} \ + usemallocwrap='define' \ OPTIMIZE="%{rpmcflags}" +%endif -%{?!_without_tests:%{__make} test} -#%{?!_without_tests:%{__make} minitest} +%{?with_tests:%{__make} test} +#%{?with_tests:%{__make} minitest} + +cat > runperl <