# 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}
#
+# NOTE
+# - modules in 5.10.0: http://search.cpan.org/~rgarcia/perl-5.10.0/
-%define _abi 5.10.0
-
+%define abi 5.10.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/%{_abi}/%{_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/%{_abi}/%{_target_platform}%{perlthread}
+%define perl_vendorarch %{_libdir}/perl5/vendor_perl/%{abi}/%{_target_platform}%{perlthread}
+
+# extract module version from source
+%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 rel 2.1
+%define rel 4
Summary: Practical Extraction and Report Language (Perl)
Summary(cs.UTF-8): Programovací jazyk Perl
Summary(da.UTF-8): Programmeringssproget Perl
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}_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
+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
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-Safe = 2.12
-Provides: perl-Socket = 1.78
-Provides: perl-Tie-File = 0.97
-# broken, unsupported modules
-Obsoletes: perl-SOAP
-Obsoletes: perl-Sort-PolySort
+Provides: %perl_modversion File::Compare
+Provides: %perl_modversion File::Spec
+Provides: %perl_modversion File::Temp
+Provides: %perl_modversion IO
+Provides: %perl_modversion PerlIO::via::QuotedPrint
+Provides: %perl_modversion Safe
+Provides: %perl_modversion Socket
+Provides: %perl_modversion Tie::File
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-Devel-DProf = 20050603.00
-Provides: perl-Devel-PPPort = 3.06_01
-Provides: perl-Devel-Peek = 1.03
-Provides: perl-ExtUtils-Embed = 1.2506_01
-Provides: perl-ExtUtils-MakeMaker = 6.30
+Provides: %perl_modversion CPAN
+Provides: %perl_modversion Devel::DProf
+Provides: %perl_modversion Devel::PPPort
+Provides: %perl_modversion Devel::Peek
+Provides: %perl_modversion ExtUtils::Embed
+Provides: %perl_modversion ExtUtils::MakeMaker
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-Class-ISA = 0.33
-Provides: perl-Digest = 1.14
-Provides: perl-Digest-MD5 = 2.36
-Provides: perl-Filter-Simple = 0.82
-Provides: perl-FindBin = 1.47
-#Provides: perl-Hash-Utils = 0.05 Data::Util is missing
-Provides: perl-I18N-LangTags = 0.35
-Provides: perl-IPC-SysV = 1.04
-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-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-Test = 1.25
-Provides: perl-Test-Harness = 2.56
-Provides: perl-Test-Simple = 0.62
-Provides: perl-Text-Balanced = 1.95
-Provides: perl-Text-ParseWords = 3.24
-Provides: perl-Text-Soundex = 1.01
-# 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-Unicode-Collate = 0.52
-Provides: perl-Unicode-Normalize = 0.32
-Provides: perl-libnet = 1.19
+Provides: %perl_modversion Attribute::Handlers
+Provides: %perl_modversion CGI
+Provides: %perl_modversion Class::ISA
+Provides: %perl_modversion Digest
+Provides: %perl_modversion Digest::MD5
+Provides: %perl_modversion Filter::Simple
+Provides: %perl_modversion FindBin
+Provides: %perl_modversion I18N::LangTags
+Provides: %perl_modversion IPC::SysV
+Provides: %perl_modversion Locale::Maketext
+Provides: %perl_modversion MIME::Base64
+Provides: %perl_modversion Math::BigInt
+Provides: %perl_modversion Math::BigRat
+Provides: %perl_modversion Math::Trig
+Provides: %perl_modversion Memoize
+Provides: %perl_modversion NEXT
+Provides: %perl_modversion Pod::LaTeX
+Provides: %perl_modversion Pod::Parser
+Provides: %perl_modversion Storable
+Provides: %perl_modversion Term::ANSIColor
+Provides: %perl_modversion Term::Cap
+Provides: %perl_modversion Test
+Provides: %perl_modversion Test::Harness
+Provides: %perl_modversion Test::Simple
+Provides: %perl_modversion Text::Balanced
+Provides: %perl_modversion Text::ParseWords
+Provides: %perl_modversion Text::Soundex
+Provides: %perl_modversion Time::HiRes
+Provides: %perl_modversion UNIVERSAL
+Provides: %perl_modversion Unicode::Collate
+Provides: %perl_modversion Unicode::Normalize
+Provides: %perl_modversion libnet
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
%patch6 -p1
%patch7 -p1
%patch8 -p1
-%patch9 -p1
%build
+
unset LD_SYMBOLIC_FUNCTIONS || :
sh Configure \
-des \
-Dldflags="%{rpmldflags}" \
-Dlddlflags="-shared %{rpmldflags}" \
-Doptimize="%{rpmcflags}" \
- %{?debug:-DDEBUGGING} \
+ -%{?debug:D}%{!?debug:U}DEBUGGING \
-Duseshrplib \
-Dd_dosuid \
-Dman1dir=%{_mandir}/man1 -Dman1ext=1 \
EOF
%{__make} \
- LIBPERL_SONAME=libperl.so.%{_abi} \
+ LIBPERL_SONAME=libperl.so.%{abi} \
LDDLFLAGS="%{rpmcflags} -shared"
cat > runperl <<'EOF'
#!/bin/sh
-LD_PRELOAD="%{_builddir}/%{name}-%{version}/libperl.so.%{_abi}" \
+LD_PRELOAD="%{_builddir}/%{name}-%{version}/libperl.so.%{abi}" \
PERL5LIB="%{buildroot}%{perl_privlib}:%{buildroot}%{perl_archlib}" \
-exec %{buildroot}%{_bindir}/perl $*
+exec %{buildroot}%{_bindir}/perl ${1:+"$@"}
EOF
chmod a+x runperl
## 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
#%{?with_tests:%{__make} minitest}
%install
-rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_mandir}/{ja,ko,zh_CN,zh_TW}/man1
-
-%{__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 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} $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
-%{__perl} -pi -e "s,^man1ext='1',man1ext='1p'," $RPM_BUILD_ROOT%{perl_archlib}/Config_heavy.pl
-%{__perl} -pi -e "s,^man3ext='3perl',man3ext='3pm'," $RPM_BUILD_ROOT%{perl_archlib}/Config_heavy.pl
-
-## Generate the *.ph files
-owd="`pwd`"
-cd /usr/include
-H2PH=$RPM_BUILD_ROOT%{_bindir}/h2ph
-PHDIR=$RPM_BUILD_ROOT%{perl_archlib}
-WANTED='
- syscall.h
- syslog.h
- termios.h
- wait.h
- asm/termios.h
- sys/ioctl.h
- sys/socket.h
- sys/syscall.h
- sys/time.h
- linux/posix_types.h
- linux/stddef.h
-'
-# why it returns non-zero???
-%{__perl} $H2PH -a -d $PHDIR $WANTED || :
-cd "$owd"
-
-## 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{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 $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} $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} $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} $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} $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} $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}
-owd="`pwd`"
-
-## 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
-
-sed -i -e 's#^\(ld.*=.*\)-Wl,--as-needed\(.*\)#\1 \2#g' $RPM_BUILD_ROOT%{perl_archlib}/Config*.pl
-
-rm -rf $RPM_BUILD_ROOT%{_mandir}/README.perl-non-english-man-pages
+if [ ! -f makeinstall.stamp -o ! -d $RPM_BUILD_ROOT ]; then
+ rm -rf makeinstall.stamp installed.stamp $RPM_BUILD_ROOT
+
+ %{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
+ touch makeinstall.stamp
+fi
+
+if [ ! -f installed.stamp ]; then
+ %{?with_microperl:install microperl $RPM_BUILD_ROOT%{_bindir}}
+ install -d $RPM_BUILD_ROOT%{_mandir}/{ja,ko,zh_CN,zh_TW}/man1
+
+ ## use symlinks instead of hardlinks
+ %{__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} $RPM_BUILD_ROOT%{perl_archlib}/CORE/libperl.so
+ 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
+ %{__perl} -pi -e "s,^man1ext='1',man1ext='1p'," $RPM_BUILD_ROOT%{perl_archlib}/Config_heavy.pl
+ %{__perl} -pi -e "s,^man3ext='3perl',man3ext='3pm'," $RPM_BUILD_ROOT%{perl_archlib}/Config_heavy.pl
+
+ ## Generate the *.ph files
+ owd=$(pwd)
+ cd /usr/include
+ H2PH=$RPM_BUILD_ROOT%{_bindir}/h2ph
+ PHDIR=$RPM_BUILD_ROOT%{perl_archlib}
+ WANTED='
+ syscall.h
+ syslog.h
+ termios.h
+ wait.h
+ asm/termios.h
+ sys/ioctl.h
+ sys/socket.h
+ sys/syscall.h
+ sys/time.h
+ linux/posix_types.h
+ linux/stddef.h
+ '
+ # why it returns non-zero???
+ %{__perl} $H2PH -a -d $PHDIR $WANTED || :
+ cd "$owd"
+
+ ## 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{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 $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} $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} $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} $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} $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} $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}
+ owd=$(pwd)
+
+ ## 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
+
+ # `perl -MExtUtils::Embed -e ldopts` includes -Wl,--as-needed
+ # which is then forced upon anyone embedding perl.
+ sed -i -e 's#^\(ld.*=.*\)-Wl,--as-needed\(.*\)#\1 \2#g' $RPM_BUILD_ROOT%{perl_archlib}/Config*.pl
+
+ rm -rf $RPM_BUILD_ROOT%{_mandir}/README.perl-non-english-man-pages
+
+ touch installed.stamp
+fi
+
+# update and check perl-modules file
+echo '# Module versions from Perl %{version} distribution.' > perl-modules
+for m in $(awk '!/^#/ && !/^$/{print $1}' %{SOURCE3}); do
+ case $m in
+ Devel::DProf)
+# + perl -ilib -MDevel::DProf -e print 'Devel-DProf = ',$Devel::DProf::VERSION
+# DProf: run perl with -d to use DProf.
+# Compilation failed in require.
+# BEGIN failed--compilation aborted.
+ v=$(%{__perl} -e 'do "Devel/DProf.pm"; print $Devel::DProf::VERSION')
+ ;;
+ libnet)
+ v=$(awk '/^libnet /{print $2; exit}' lib/Net/Changes)
+ ;;
+ *)
+ v=$(%{__perl} -M$m -e "print \$$m::VERSION" )
+ ;;
+ esac
+ echo "$m = $v" >> perl-modules
+done
+
+egrep -v '^([ ]*$|[;#])' %{SOURCE3} > .mods1
+egrep -v '^([ ]*$|[;#])' perl-modules > .mods2
+if ! cmp -s .mods1 .mods2; then
+ : %{SOURCE3} outdated with $(pwd)/perl-modules
+ exit 1
+fi
%clean
rm -rf $RPM_BUILD_ROOT
%files libs
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libperl.so.%{_abi}
+%attr(755,root,root) %{_libdir}/libperl.so.%{abi}
%files base
%defattr(644,root,root,755)
%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) %{perl_archlib}/CORE/libperl.so.%{abi}
%dir %{perl_archlib}/auto
%dir %{_libdir}/perl5/vendor_perl
-%dir %{_libdir}/perl5/vendor_perl/%{_abi}
+%dir %{_libdir}/perl5/vendor_perl/%{abi}
%{perl_vendorarch}
%{perl_vendorlib}
## *.ph files (could be made a separate package, but an autohelper's support is needed)
%{perl_archlib}/*.ph
%{perl_archlib}/asm
+%ifnarch ppc ppc64
+# powerpc asm/ioctl.h doesn't use asm-generic
%{perl_archlib}/asm-generic
+%endif
%ifarch sparc64
%{perl_archlib}/asm-sparc
%{perl_archlib}/asm-sparc64