#
# 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
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
Summary(tr): Kabuk yorumlama dili
Summary(zh_CN): Perl ±à³ÌÓïÑÔ¡£
Name: perl
-Version: 5.8.0
-Release: 1%{?_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-Safe.patch
-Patch7: %{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
%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
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?
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
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
%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
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
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
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
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:
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)
%prep
%setup -q
%patch0 -p1
-%patch1 -p0
-%patch2 -p0
+%patch1 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -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 \
rm -f ext/List/Util/Makefile.PL
cat <<EOF > 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} \
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 <<EOF
+#!/bin/sh
+LD_LIBRARY_PATH="%{_builddir}/%{name}-%{version}" \
+ PERL5LIB="%{buildroot}%{perl_privlib}:%{buildroot}%{perl_archlib}" \
+ exec %{buildroot}%{_bindir}/perl \$*
+EOF
+chmod a+x runperl
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_mandir}/{ja,ko,zh_CN,zh_TW}/man1
-%{__make} install
-install microperl $RPM_BUILD_ROOT%{_bindir}
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
+%{?with_microperl:install microperl $RPM_BUILD_ROOT%{_bindir}}
## use symlinks instead of hardlinks
-%{__ln_s} -f perl%{version} $RPM_BUILD_ROOT%{_bindir}/perl
-%{__ln_s} -f sperl%{version} $RPM_BUILD_ROOT%{_bindir}/suidperl
-%{__ln_s} -f c2ph $RPM_BUILD_ROOT%{_bindir}/pstruct
-%{__ln_s} -f psed $RPM_BUILD_ROOT%{_bindir}/s2p
+%{__ln_s} -f perl%{version} $RPM_BUILD_ROOT%{_bindir}/perl
+%{__ln_s} -f perl%{version} $RPM_BUILD_ROOT%{_bindir}/suidperl
+%{__ln_s} -f c2ph $RPM_BUILD_ROOT%{_bindir}/pstruct
+%{__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.%{version}'";s|^'%{_libdir}'/*||;print'` \
- $RPM_BUILD_ROOT%{_libdir}/libperl.so.%{version}
-%{__ln_s} libperl.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libperl.so
+%{__ln_s} `%{__perl} -e '$_="'%{perl_archlib}/CORE/libperl.so.%{_abi}'";s|^'%{_libdir}'/*||;print'` \
+ $RPM_BUILD_ROOT%{_libdir}/libperl.so.%{_abi}
+%{__ln_s} libperl.so.%{_abi} $RPM_BUILD_ROOT%{_libdir}/libperl.so
## Fix Config.pm: remove buildroot path and change man pages extensions
%{__perl} -pi -e 's,%{buildroot}/*,/,g' $RPM_BUILD_ROOT%{perl_archlib}/Config.pm
%{__perl} -pi -e "s,^man1ext='1',man1ext='1p'," $RPM_BUILD_ROOT%{perl_archlib}/Config.pm
%{__perl} -pi -e "s,^man3ext='3perl',man3ext='3pm'," $RPM_BUILD_ROOT%{perl_archlib}/Config.pm
-## prepare scripts for finding provides
-%{__perl} -pi -e 's,\@perl_build_dir\@,%{_builddir}/%{name}-%{version},g' find-perl-provides.sh
-%{__perl} -pi -e 's,\@perl\@,%{__perl},g' find-perl-provides.sh
-
## Generate the *.ph files
-(
+owd="`pwd`"
cd /usr/include
H2PH=$RPM_BUILD_ROOT%{_bindir}/h2ph
PHDIR=$RPM_BUILD_ROOT%{perl_archlib}
linux/posix_types.h
linux/stddef.h
'
-%{__perl} $H2PH -a -d $PHDIR $WANTED
-)
+# why it returns non-zero???
+%{__perl} $H2PH -a -d $PHDIR $WANTED || :
+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}* \
## this object file looks unused; why is it there?
rm -f $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}
+
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Getopt/Long/{CHANGES,README} doc-base/Getopt/Long
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Switch/{Changes,README} doc-base/Switch
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/ExtUtils/{Changes,NOTES,PATCHING,README,TODO} \
+ doc-devel/ExtUtils
+
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Attribute/Handlers/{Changes,README} \
+ doc-modules/Attribute/Handlers
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Filter/Simple/{Changes,README} \
+ doc-modules/Filter/Simple
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/I18N/LangTags/{ChangeLog,README} \
+ doc-modules/I18N/LangTags
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Locale/Codes/{ChangeLog,README} \
+ doc-modules/Locale/Codes
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Locale/Maketext/{ChangeLog,README} \
+ doc-modules/Locale/Maketext
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Memoize/{README,TODO} \
+ doc-modules/Memoize
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/NEXT/{Changes,README} \
+ doc-modules/NEXT
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Net/{ChangeLog.libnet,README.libnet} \
+ doc-modules/Net
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Net/Ping/Changes \
+ doc-modules/Net/Ping
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Term/ANSIColor/{ChangeLog,README} \
+ doc-modules/Term/ANSIColor
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Test/Simple/{Changes,README} \
+ doc-modules/Test/Simple
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Text/Balanced/{Changes,README} \
+ doc-modules/Text/Balanced
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Text/TabsWrap/CHANGELOG \
+ doc-modules/Text/TabsWrap
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Unicode/README \
+ doc-modules/Unicode
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/Unicode/Collate/{Changes,README} \
+ doc-modules/Unicode/Collate
+# needed only for tests
+rm -f $RPM_BUILD_ROOT%{perl_privlib}/Unicode/Collate/keys.txt
+mv -f $RPM_BUILD_ROOT%{perl_privlib}/unicore/{README.perl,ReadMe.txt} \
+ doc-modules/unicore
+# source for *.pl
+rm -f $RPM_BUILD_ROOT%{perl_privlib}/unicore/{*.txt,mktables}
+
## dir tree for other perl modules
install -d $RPM_BUILD_ROOT{%{perl_vendorlib},%{perl_vendorarch},%{perl_vendorarch}/auto}
-(
+owd="`pwd`"
+
cd $RPM_BUILD_ROOT%{perl_vendorlib}
install -d AI/NeuralNet Algorithm Apache Archive Array Astro Attribute \
Audio Authen B Bundle Business CGI Cache Chart Class Config \
- Convert Crypt DBD Data Date Devel Device Digest Email Error ExtUtils \
- File Filesys Font Games Getopt GnuPG Graph Graphics HTML HTTP I18N \
- IO/Socket IPC Image Inline Language Lingua/{EN,Stem/Snowball} \
- List Locale LockFile Log MIME Mail Math/BigInt Modem Module Net/SMTP \
- NetServer Netscape News Number OLE Parse Pod PostScript Proc \
- RADIUS RPC RPM Regexp SOAP/Transport SQL Schedule Set Sort \
- Speech Spreadsheet Statistics String Sub Sys TeX Test \
- Text/Query Tie Time Tree Unicode WWW XML/{Filter,Handler,Parser} \
+ Convert Crypt DBD Data Date Devel Device Digest Email Error \
+ Exporter ExtUtils File Filesys Font Games Getopt GnuPG Graph \
+ Graphics HTML HTTP I18N IO/Socket IPC Image Inline Jabber Language \
+ Lingua/{EN,Stem/Snowball} List Locale LockFile Log MIME Mail \
+ Math/{BigInt,Fractal} Modem Module Net/SMTP NetServer Netscape \
+ News Number Object OLE Parse Pod PostScript Proc RADIUS RPC \
+ RPM RTF Regexp SOAP/Transport SQL Schedule Set Sort Speech \
+ Spreadsheet Statistics String Sub Sys Template TeX Test \
+ Text/Query Tie Time Tree UNIVERSAL Unicode WWW \
+ XML/{Filter,Handler,Parser,XPath} \
auto/{AI,Array,Config,Crypt,Data,Mail,Net,Schedule,Statistics,Text,WWW}
cd $RPM_BUILD_ROOT%{perl_vendorarch}
-install -d Algorithm Astro Audio Authen B BSD Bit Compress Crypt/OpenSSL \
- Data Devel Digest File IPC Inline Locale Math/BigInt Net \
- Speech/Recognizer String Sys Term Text Unicode XML \
- auto/{Astro,Audio,Authen,BSD,Bit,Compress,Crypt/OpenSSL,Data,Devel} \
- auto/{Digest,File,IPC,Inline,Locale,Math/BigInt,Net,Regexp} \
- auto/{Speech/Recognizer,String,Sys,Term,Text,Unicode,XML}
-)
+install -d Algorithm Astro Audio Authen B BSD Bit Compress Convert \
+ Crypt/OpenSSL Data Devel Digest File IPC Inline Locale Math/BigInt \
+ Net Speech/Recognizer String Sys Template Term Text Unicode XML \
+ auto/{Astro,Audio,Authen,BSD,Bit,Clone,Compress,Convert} \
+ auto/{Crypt/OpenSSL,Data,Devel,Digest,File,IPC,Inline,Locale} \
+ auto/{Math/BigInt,Net,Regexp,Speech/Recognizer,String,Sys,Term,Text} \
+ auto/{Unicode,XML}
+
+cd "$owd"
## non-english man pages
%{__bzip2} -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
mv -f $RPM_BUILD_ROOT%{_mandir}/man1/perlcn.* $RPM_BUILD_ROOT%{_mandir}/zh_CN/man1
mv -f $RPM_BUILD_ROOT%{_mandir}/man1/perljp.* $RPM_BUILD_ROOT%{_mandir}/ja/man1
mv -f $RPM_BUILD_ROOT%{_mandir}/man1/perlko.* $RPM_BUILD_ROOT%{_mandir}/ko/man1
-# mv -f $RPM_BUILD_ROOT%{_mandir}/man1/perltw.* $RPM_BUILD_ROOT%{_mandir}/zh_TW/man1
-
-echo ".so perlcn.1" > $RPM_BUILD_ROOT%{_mandir}/zh_CN/man1/perl.1
-echo ".so perljp.1" > $RPM_BUILD_ROOT%{_mandir}/ja/man1/perl.1
-echo ".so perlko.1" > $RPM_BUILD_ROOT%{_mandir}/ko/man1/perl.1
-# echo ".so perltw.1" > $RPM_BUILD_ROOT%{_mandir}/zh_TW/man1/perl.1
+mv -f $RPM_BUILD_ROOT%{_mandir}/man1/perltw.* $RPM_BUILD_ROOT%{_mandir}/zh_TW/man1
## examples and demos
install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-modules-%{version}
mv $RPM_BUILD_ROOT%{perl_privlib}/Attribute/Handlers/demo \
$RPM_BUILD_ROOT%{_examplesdir}/%{name}-modules-%{version}/Attribute-Handlers
rm -f $RPM_BUILD_ROOT%{_mandir}/man3/Attribute::Handlers::demo*
-rm -f $RPM_BUILD_ROOT%{perl_privlib}/Class/ISA/test.pl
-rmdir $RPM_BUILD_ROOT%{perl_privlib}/Class/ISA
+#rm -f $RPM_BUILD_ROOT%{perl_privlib}/Class/ISA/test.pl
+#rmdir $RPM_BUILD_ROOT%{perl_privlib}/Class/ISA
mv $RPM_BUILD_ROOT%{perl_privlib}/Net/demos \
$RPM_BUILD_ROOT%{_examplesdir}/%{name}-modules-%{version}/Net
+# XXX: bug bug bug...
+mv $RPM_BUILD_ROOT%{perl_privlib}/auto/POSIX/SigAction \
+ $RPM_BUILD_ROOT%{perl_archlib}/auto/POSIX
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
%doc README AUTHORS
-%lang(zh_CN) %doc README.cn
-%lang(ja) %doc README.jp
-%lang(ko) %doc README.ko
-%lang(zh_TW) %doc README.tw
%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.*
%dir %{perl_archlib}/auto
%dir %{perl_archlib}/CORE
-%attr(755,root,root) %{perl_archlib}/CORE/libperl.so.%{version}
+%attr(755,root,root) %{perl_archlib}/CORE/libperl.so.%{_abi}
%attr(755,root,root) %{_libdir}/libperl.so.*
%dir %{_libdir}/perl5/vendor_perl
-%dir %{_libdir}/perl5/vendor_perl/%{version}
+%dir %{_libdir}/perl5/vendor_perl/%{_abi}
%{perl_vendorarch}
%{perl_vendorlib}
%{perl_archlib}/auto/POSIX/*.al
%{perl_archlib}/auto/POSIX/*.bs
%{perl_archlib}/auto/POSIX/*.ix
+%{perl_archlib}/auto/POSIX/SigAction
%{_mandir}/man3/POSIX.*
%{perl_archlib}/Socket.*
%{_mandir}/man3/Socket.*
-%if %{?!_without_gdbm:1}0
+%if %{with gdbm}
%files GDBM_File
%defattr(644,root,root,755)
%{perl_archlib}/GDBM_File.*
%files devel
%defattr(644,root,root,755)
+%doc doc-devel/*
%attr(755,root,root) %{_libdir}/libperl.so
%{perl_archlib}/CORE/*.h
+%{perl_archlib}/CORE/reentr.inc
# FIXME: Changes file to _docdir (and rm MANIFEST.SKIP?)
%{perl_privlib}/ExtUtils
%{_mandir}/man1/perl[5aefghlmnoprstuvwx]*
%{_mandir}/man1/perlbo*
%{_mandir}/man1/perlcall.*
+%{_mandir}/man1/perlcheat.*
%{_mandir}/man1/perlclib.*
%{_mandir}/man1/perlcompile.*
%{_mandir}/man1/perld[!o]*
%{_mandir}/man1/perli[!v]*
-%lang(zh_CN) %{_mandir}/man1/perlcn.*
-%lang(ja) %{_mandir}/man1/perljp.*
-%lang(ko) %{_mandir}/man1/perlko.*
-#%lang(zh_TW) %{_mandir}/man1/perltw.*
+
+%lang(zh_CN) %{_mandir}/zh_CN/man1/perlcn.*
+%lang(ja) %{_mandir}/ja/man1/perljp.*
+%lang(ko) %{_mandir}/ko/man1/perlko.*
+%lang(zh_TW) %{_mandir}/zh_TW/man1/perltw.*
+
%files modules
%defattr(644,root,root,755)
+%doc doc-modules/*
%{_examplesdir}/%{name}-modules-%{version}
%{perl_privlib}/unicore
%{perl_archlib}/ops.pm
%{_mandir}/man3/ops.*
-%if %{?!_without_threads:1}0
+%if %{with threads}
%{perl_archlib}/threads*
%dir %{perl_archlib}/auto/threads
%dir %{perl_archlib}/auto/threads/shared
%{_mandir}/man3/Data*
%{perl_privlib}/Digest.pm
+%{perl_privlib}/Digest
%{perl_archlib}/Digest
%dir %{perl_archlib}/auto/Digest
%dir %{perl_archlib}/auto/Digest/MD5
%{perl_archlib}/auto/Digest/MD5/*.bs
%{_mandir}/man3/Digest*
+# FIXME: Changes file
+%{perl_privlib}/DBM_Filter*
+%{_mandir}/man3/DBM_Filter*
+
# FIXME: *.h to devel(?), check out the use for *.e2x files
%{perl_privlib}/Encode
%{perl_archlib}/Encode*
%{perl_archlib}/auto/Time/HiRes/*.bs
%{_mandir}/man3/Time::HiRes*
-%{perl_privlib}/Unicode
+%dir %{perl_privlib}/Unicode
+%{perl_privlib}/Unicode/*.pm
%{perl_archlib}/Unicode
%dir %{perl_archlib}/auto/Unicode
-%dir %{perl_archlib}/auto/Unicode/*/
+%dir %{perl_archlib}/auto/Unicode/*
%attr(755,root,root) %{perl_archlib}/auto/Unicode/*/*.so
%{perl_archlib}/auto/Unicode/*/*.bs
-%{perl_archlib}/auto/Unicode/*/*.ix
%{_mandir}/man3/Unicode::*
%{perl_privlib}/AnyDBM*
%{_mandir}/man3/Math::*
%{perl_privlib}/Memoize*
%{_mandir}/man3/Memoize*
-%{perl_privlib}/NEXT*
+%{perl_privlib}/NEXT.pm
%{_mandir}/man3/NEXT*
# FIXME: README and Changes files
-%{perl_privlib}/Net
+%dir %{perl_privlib}/Net
+%{perl_privlib}/Net/*.eg
+%{perl_privlib}/Net/*.pm
+%{perl_privlib}/Net/FTP
%{_mandir}/man3/Net::*
%{perl_privlib}/PerlIO
%{_mandir}/man3/PerlIO::via::*
%{_mandir}/man3/Test*
%{perl_privlib}/Text
%{_mandir}/man3/Text::*
-%if %{?!_without_threads:1}0
+%if %{with threads}
%{perl_privlib}/Thread*
%{_mandir}/man3/Thread*
%endif
%files -n sperl
%defattr(644,root,root,755)
%attr(4755,root,root) %{_bindir}/sperl%{version}
-%attr(4755,root,root) %{_bindir}/suidperl
+%attr(755,root,root) %{_bindir}/suidperl
%files tools
%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}/find2perl
%{_mandir}/man1/find2perl.*
+%attr(755,root,root) %{_bindir}/instmodsh
%attr(755,root,root) %{_bindir}/libnetcfg
%{_mandir}/man1/libnetcfg.*
%attr(755,root,root) %{_bindir}/piconv
%attr(755,root,root) %{_bindir}/pod*
%{_mandir}/man1/pod*
+%if %{with microperl}
%files -n microperl
%defattr(644,root,root,755)
%doc README.micro Todo.micro
%attr(755,root,root) %{_bindir}/microperl
+%endif