RobinNorwood/Perl510Spec

Here's the current draft of our perl 5.10.0 spec file.

= TODO =


 * Finish splitting out modules
 * Any modules that should stay in perl.rpm need to have their %package section removed from this spec file.
 * Need to check the existing fedora spec file for patches, provides/requires filters, or other special magic.
 * Need to add file list to %files section
 * Is epoch needed to trump existing version in Fedora?
 * Do we need to kill the CVS branch/packagedb entry for merged packages?


 * Audit patches that are still being used
 * Have they been submitted upstream?
 * Do they still apply cleanly?
 * Are they still needed?


 * Improve comments. Some of the things the specfile does may not be obvious. Comments can help.


 * Request comments/feedback from upstream perl community.

= Editing =

If you want to edit the spec file, go ahead and make your change if it is obviously correct. Otherwise, discuss it on the mailing list. Please include a comment with all changes.

Things commented with FIXME/5.10.0 are things that have been identified as potential problems, and must be fixed or verified to be not a problem. Of course, remove the FIXME comment once they are fixed.

= The File =

Here it is. The brackets should prevent nasty wiki formatting, so you can cut+paste the whole thing if needed.

%define multilib_64_archs x86_64 s390x ppc64 sparc64 %define perl_archname %{_arch}-%{_os}-thread-multi %define new_perl_lib $RPM_BUILD_ROOT%{_libdir}/perl5/%{version}:$RPM_BUILD_ROOT%{_prefix}/lib/perl5/%{version} %define comp_perl_lib $RPM_BUILD_ROOT%{_prefix}/lib/perl5/%{version}:$RPM_BUILD_ROOT%{_prefix}/lib/perl5/%{version} %define new_arch_lib $RPM_BUILD_ROOT%{_libdir}/perl5/%{version}/%{perl_archname} %define comp_arch_lib $RPM_BUILD_ROOT%{_prefix}/lib/perl5/%{version}/%{perl_archname} %define new_perl_flags LD_PRELOAD=/%{new_arch_lib}/CORE/libperl.so LD_LIBRARY_PATH=%{new_arch_lib}/CORE PERL5LIB=%{new_perl_lib}:%{comp_perl_lib} %define new_perl %{new_perl_flags} $RPM_BUILD_ROOT/%{_bindir}/perl

%define db4_major %(grep "DB_VERSION_MAJOR" /usr/include/db.h | cut -f3) %define db4_minor %(grep "DB_VERSION_MINOR" /usr/include/db.h | cut -f3) %define db4_patch %(grep "DB_VERSION_PATCH" /usr/include/db.h | cut -f3)

%define perl_version   5.10.0 %define perl_epoch     4

%{?!perl_debugging:   %define perl_debugging 0} %if %{perl_debugging} %define debug_package %{nil} %endif

Name:          perl Version:       %{perl_version} Release:       1%{?dist} Epoch:         %{perl_epoch} Summary:       The Perl programming language Group:         Development/Languages License:       (GPL+ or Artistic) and (GPLv2+ or Artistic) Url:           http://www.perl.org/ Source0:       http://search.cpan.org/CPAN/authors/id/R/RG/RGARCIA/perl-%{perl_version}.tar.gz Source11:       filter-requires.sh Source12:       perl-5.8.0-libnet.cfg Patch1:        perl-5.8.0-root.patch

Patch2:        perl-5.10.0-perlbug-tag.patch

Patch3:        perl-5.10.0-links.patch

Patch4:        perl-5.8.8-rpath-make.patch

Patch5:        perl-5.8.0-libdir64.patch

Patch6:       perl-5.8.6-libresolv.patch

Patch7:       perl-5.10.0-USE_MM_LD_RUN_PATH.patch

Patch8:       perl-5.10.0-disable_test_hosts.patch

BuildRoot:     %{_tmppath}/%{name}-%{perl_version}-%{release}-root-%(%{__id_u} -n) BuildRequires: tcsh, dos2unix, man, groff BuildRequires: gdbm-devel, db4-devel BuildRequires: gawk

Provides: perl(VMS::Filespec) Provides: perl(VMS::Stdio)

Provides: perl(:MODULE_COMPAT_5.10.0)

Provides: perl(:WITH_ITHREADS) Provides: perl(:WITH_THREADS) Provides: perl(:WITH_LARGEFILES) Provides: perl(:WITH_PERLIO) Provides: perl(abbrev.pl) Provides: perl(assert.pl) Provides: perl(bigfloat.pl) Provides: perl(bigint.pl) Provides: perl(bigrat.pl) Provides: perl(bytes_heavy.pl) Provides: perl(cacheout.pl) Provides: perl(complete.pl) Provides: perl(ctime.pl) Provides: perl(dotsh.pl) Provides: perl(dumpvar.pl) Provides: perl(exceptions.pl) Provides: perl(fastcwd.pl) Provides: perl(find.pl) Provides: perl(finddepth.pl) Provides: perl(flush.pl) Provides: perl(ftp.pl) Provides: perl(getcwd.pl) Provides: perl(getopt.pl) Provides: perl(getopts.pl) Provides: perl(hostname.pl) Provides: perl(importenv.pl) Provides: perl(look.pl) Provides: perl(newgetopt.pl) Provides: perl(open2.pl) Provides: perl(open3.pl) Provides: perl(perl5db.pl) Provides: perl(pwd.pl) Provides: perl(shellwords.pl) Provides: perl(stat.pl) Provides: perl(syslog.pl) Provides: perl(tainted.pl) Provides: perl(termcap.pl) Provides: perl(timelocal.pl) Provides: perl(utf8_heavy.pl) Provides: perl(validate.pl) Provides: perl(Carp::Heavy)

Requires: perl-libs = %{perl_epoch}:%{perl_version}-%{release} Requires: db4 = %{db4_major}.%{db4_minor}.%{db4_patch}

Requires(post): perl-libs

%{expand:%%define prev__perl_requires %{__perl_requires}} %define __perl_requires %{SOURCE11} %{prev__perl_requires}

%{expand:%%define prev__find_requires %{__find_requires}} %define __find_requires %{SOURCE11} %{prev__find_requires}

%description Perl is a high-level programming language with roots in C, sed, awk and shell scripting. Perl is good at handling processes and files, and is especially good at handling text. Perl's hallmarks are practicality and efficiency. While it is used to do a lot of different things, Perl's most common applications are system administration utilities and web programming. A large proportion of the CGI scripts on the web are written in Perl. You need the perl package installed on your system so that your system can handle Perl scripts.

Install this package if you want to program in Perl or enable your system to handle Perl scripts.

%package libs Summary:       The libraries for the perl runtime Group:         Development/Languages License:       GPL+ or Artistic Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description libs The libraries for the perl runtime

%package devel Summary:       Header files for use in perl development Group:         Development/Languages License:       GPL+ or Artistic Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description devel This package contains header files and development modules. Most perl packages will need to install perl-devel to build.

%package suidperl Summary:       Suidperl, for use with setuid perl scripts Group:         Development/Languages License:       GPL+ or Artistic Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description suidperl Suidperl is a setuid binary copy of perl that allows for (hopefully) more secure running of setuid perl scripts.

%package Archive-Extract Summary:       Generic archive extracting mechanism Group:         Development/Libraries License:       GPL or Artistic Epoch:         0 Version:       0.24 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Archive-Extract Archive::Extract is a generic archive extraction mechanism.

%package Archive-Tar Summary:       A module for Perl manipulation of .tar files Group:         Development/Libraries License:       GPL+ or Artistic Epoch:         0 Version:       1.37_01 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release} Requires:      perl(Compress::Zlib), perl(IO::Zlib)

%description Archive-Tar Archive::Tar provides an object oriented mechanism for handling tar files. It provides class methods for quick and easy files handling while also allowing for the creation of tar file objects for custom manipulation. If you have the IO::Zlib module installed, Archive::Tar will also support compressed or gzipped tar files.

%package Compress-Zlib Summary:       A module providing Perl interfaces to the zlib compression library Group:         Development/Libraries License:       GPL+ or Artistic Epoch:         0 Version:       2.008 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Compress-Zlib The Compress::Zlib module provides a Perl interface to the zlib compression library. Most of the functionality provided by zlib is available in Compress::Zlib.

The module can be split into two general areas of functionality, namely in-memory compression/decompression and read/write access to gzip files.

%package CPAN Summary:       Query, download and build perl modules from CPAN sites Group:         Development/Languages License:       GPL+ or Artistic Epoch:         0 Version:       1.9205 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release} Provides:      cpan = %{version}

%description CPAN Query, download and build perl modules from CPAN sites.

%package CPANPLUS Summary:       API & CLI access to the CPAN mirrors Group:         Development/Libraries License:       GPL or Artistic Epoch:         0 Version:       0.83_09 Requires:      perl(IPC::Run) >= 0.79 Requires:      perl(Module::Pluggable) >= 2.4 Requires:      perl(Module::CoreList) Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description CPANPLUS The CPANPLUS library is an API to the CPAN mirrors and a collection of interactive shells, commandline programs, etc, that use this API.

%package Digest-SHA Summary:       Perl extension for SHA-1/224/256/384/512 Group:         Development/Libraries License:       GPL+ or Artistic Epoch:         0 Version:       5.45 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Digest-SHA Digest::SHA is a complete implementation of the NIST Secure Hash Standard. It gives Perl programmers a convenient way to calculate SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 message digests. The module can handle all types of input, including partial-byte data.

%package ExtUtils-CBuilder Summary:       Compile and link C code for Perl modules Group:         Development/Libraries License:       GPL+ or Artistic Epoch:         0 Version:       0.21 Requires:      perl-devel Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description ExtUtils-CBuilder This module can build the C portions of Perl modules by invoking the appropriate compilers and linkers in a cross-platform manner. It was motivated by the Module::Build project, but may be useful for other purposes as well.

%package ExtUtils-Embed Summary:       Utilities for embedding Perl in C/C++ applications Group:         Development/Languages License:       GPL+ or Artistic Epoch:         0 Version:       1.27 Requires:      perl-devel Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description ExtUtils-Embed Utilities for embedding Perl in C/C++ applications.

%package ExtUtils-MakeMaker Summary:       Create a module Makefile Group:         Development/Languages License:       GPL+ or Artistic Epoch:         0 Version:       6.36_01 Requires:      perl-devel Requires:      perl = %{perl_epoch}:%{perl_version}-%{release} Requires:      perl(Test::Harness)

%description ExtUtils-MakeMaker Create a module Makefile.

%package ExtUtils-ParseXS Summary:       Module and a script for converting Perl XS code into C code Group:         Development/Libraries License:       GPL+ or Artistic Epoch:         0 Version:       2.18_02 Requires:      perl-devel Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description ExtUtils-ParseXS ExtUtils::ParseXS will compile XS code into C code by embedding the constructs necessary to let C functions manipulate Perl values and creates the glue necessary to let Perl access those functions.

%package File-Fetch Summary:       Generic file fetching mechanism Group:         Development/Libraries License:       GPL+ or Artistic Epoch:         0 Version:       0.13_04 Requires:      perl(IPC::Cmd) >= 0.36 Requires:      perl(Module::Load::Conditional) >= 0.04 Requires:      perl(Params::Check) >= 0.07 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description File-Fetch File::Fetch is a generic file fetching mechanism.

%package Hash-Util-FieldHash Summary:       Support for field hashes Group:         Development/Libraries License:       GPL+ or Artistic Epoch:         0 Version:       1.03 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Hash-Util-FieldHash Hash::Util::FieldHash provides support for field hashes: hashes that maintain an association of a reference with a value, in a thread-safe garbage-collected way. Such hashes are useful to implement inside-out objects.

%package IO-Compress-Zlib Summary:       Perl interface to allow reading and writing of gzip and zip data Group:         Development/Libraries License:       GPL+ or Artistic Epoch:         0 Version:       1.23_01 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description IO-Compress-Zlib This module provides an "IO::"-style Perl interface to "Compress::Zlib"

%package IPC-Cmd Summary:       Finding and running system commands made easy Group:         Development/Libraries License:       GPL+ or Artistic Epoch:         0 Version:       0.40_1 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description IPC-Cmd IPC::Cmd allows you to run commands, interactively if desired, in a platform independent way, but have them still work.

%package Log-Message Summary:       Generic message storage mechanism Group:         Development/Libraries License:       GPL or Artistic Epoch:         0 Version:       0.01 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Log-Message Log::Message is a generic message storage mechanism. It allows you to store messages on a stack -- either shared or private -- and assign meta-data to it. Some meta-data will automatically be added for you, like a timestamp and a stack trace, but some can be filled in by the user, like a tag by which to identify it or group it, and a level at which to handle the message (for example, log it, or die with it).

%package Log-Message-Simple Summary:       Simplified frontend to Log::Message Group:         Development/Libraries License:       GPL or Artistic Epoch:         0 Version:       0.04 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Log-Message-Simple This module provides standardized logging facilities using the Log::Message module.

%package Module-Build Summary:       Perl module for building and installing Perl modules Group:         Development/Libraries License:       GPL or Artistic Epoch:         0 Version:       0.2808_01 Requires:      perl(Archive::Tar) >= 1.08 Requires:      perl(ExtUtils::CBuilder) >= 0.15 Requires:      perl(ExtUtils::ParseXS) >= 1.02 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Module-Build Module::Build is a system for building, testing, and installing Perl modules. It is meant to be an alternative to ExtUtils::MakeMaker. Developers may alter the behavior of the module through subclassing in a much more straightforward way than with MakeMaker. It also does not require a make on your system - most of the Module::Build code is pure-perl and written in a very cross-platform way. In fact, you don't even need a shell, so even platforms like MacOS (traditional) can use it fairly easily. Its only prerequisites are modules that are included with perl 5.6.0, and it works fine on perl 5.005 if you can install a few additional modules.

%package Module-CoreList Summary:       Perl core modules indexed by perl versions Group:         Development/Languages License:       GPL or Artistic Epoch:         0 Version:       2.12 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release} Requires:      perl(version)

%description Module-CoreList Module::CoreList contains the hash of hashes %Module::CoreList::version, this is keyed on perl version as indicated in $. The second level hash is module => version pairs.

%package Module-Load Summary:       Runtime require of both modules and files Group:         Development/Libraries License:       GPL+ or Artistic Epoch:         0 Version:       0.12 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Module-Load Module::Load eliminates the need to know whether you are trying to require either a file or a module.

%package Module-Load-Conditional Summary:       Looking up module information / loading at runtime Group:         Development/Libraries License:       GPL or Artistic Epoch:         0 Version:       0.22 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Module-Load-Conditional Module::Load::Conditional provides simple ways to query and possibly load any of the modules you have installed on your system during runtime.

%package Module-Loaded Summary:       Mark modules as loaded or unloaded Group:         Development/Libraries License:       GPL or Artistic Epoch:         0 Version:       0.01 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Module-Loaded When testing applications, often you find yourself needing to provide functionality in your test environment that would usually be provided by external modules. Rather than munging the %INC by hand to mark these external modules as loaded, so they are not attempted to be loaded by perl, this module offers you a very simple way to mark modules as loaded and/or unloaded.

%package Module-Pluggable Summary:       Automatically give your module the ability to have plugins Group:         Development/Libraries License:       GPL or Artistic Epoch:         0 Version:       3.60 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Module-Pluggable Provides a simple but, hopefully, extensible way of having 'plugins' for your module.

%package Object-Accessor Summary:       Perl module that allows per object accessors Group:         Development/Libraries License:       GPL or Artistic Epoch:         0 Version:       0.32 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Object-Accessor Object::Accessor provides an interface to create per object accessors (as opposed to per Class accessors, as, for example, Class::Accessor provides).

%package Package-Constants Summary:       List all constants declared in a package Group:         Development/Libraries License:       GPL or Artistic Epoch:         0 Version:       0.01 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Package-Constants Package::Constants lists all the constants defined in a certain package. This can be useful for, among others, setting up an autogenerated @EXPORT/@EXPORT_OK for a Constants.pm file.

%package Params-Check Summary:       Generic input parsing/checking mechanism Group:         Development/Libraries License:       GPL or Artistic Epoch:         0 Version:       0.26 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Params-Check Params::Check is a generic input parsing/checking mechanism.

%package Term-UI Summary:       Term::ReadLine UI made easy Group:         Development/Libraries License:       GPL+ or Artistic Epoch:         0 Version:       0.18 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release} Requires:      perl(Log::Message::Simple)

%description Term-UI Term::UI is a transparent way of eliminating the overhead of having to format a question and then validate the reply, informing the user if the answer was not proper and re-issuing the question.

%package Test-Harness Summary:       Run Perl standard test scripts with statistics Group:         Development/Languages License:       GPL+ or Artistic Epoch:         0 Version:       2.64 Requires:      perl-devel Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Test-Harness Run Perl standard test scripts with statistics.

%package Test-Simple Summary:       Basic utilities for writing tests Group:         Development/Languages License:       GPL+ or Artistic Epoch:         0 Version:       0.72 Requires:      perl-devel Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Test-Simple Basic utilities for writing tests.

%package Time-Piece Summary:       Time objects from localtime and gmtime Group:         Development/Libraries License:       GPL+ or Artistic Epoch:         0 Version:       1.12 Requires:      perl = %{perl_epoch}:%{perl_version}-%{release}

%description Time-Piece The Time::Piece module replaces the standard localtime and gmtime functions with implementations that return objects. It does so in a backwards compatible manner, so that using localtime or gmtime as documented in perlfunc still behave as expected.

%package core Summary:       Base perl metapackage Group:         Development/Languages License:       GPL+ or Artistic Epoch:         0 Version:       %{perl_version} Requires:      perl = %{perl_epoch}:%{perl_version}-%{release} Requires:      perl-libs = %{perl_epoch}:%{perl_version}-%{release} Requires:      perl-devel = %{perl_epoch}:%{perl_version}-%{release} Requires:      perl-Archive-Extract, perl-Archive-Tar, perl-Compress-Zlib, perl-CPAN, Requires:      perl-CPANPLUS, perl-Digest-SHA, perl-ExtUtils-CBuilder, Requires:      perl-ExtUtils-Embed, perl-ExtUtils-MakeMaker, perl-ExtUtils-ParseXS, Requires:      perl-File-Fetch, perl-Hash-Util-FieldHash, perl-IO-Compress-Zlib, Requires:      perl-IPC-Cmd, perl-Log-Message, perl-Log-Message-Simple, Requires:      perl-Module-Build, perl-Module-CoreList, perl-Module-Load, Requires:      perl-Module-Load-Conditional, perl-Module-Loaded, Requires:      perl-Module-Pluggable, perl-Object-Accessor, perl-Package-Constancts, Requires:      perl-Params-Check, perl-Term-UI, perl-Test-Harness, perl-Test-Simple, Requires:      perl-Time-Piece

%description core A metapackage which requires all of the perl bits and modules in the upstream tarball from perl.org.

%prep %setup -q %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %ifarch %{multilib_64_archs} %patch5 -p1 %endif %patch6 -p1 %patch7 -p1 %patch8 -p1

recode { iconv -f "$2" -t utf-8 < "$1" > "${1}_" mv -f "${1}_" "$1" } recode README.cn euc-cn recode README.jp euc-jp recode README.ko euc-kr recode README.tw big5 recode pod/perlebcdic.pod iso-8859-1 recode pod/perlhack.pod iso-8859-1 recode pod/perlhist.pod iso-8859-1 recode pod/perlothrtut.pod iso-8859-1 recode pod/perlthrtut.pod iso-8859-1 recode lib/Unicode/Collate.pm iso-8859-1 for i in Changes*; do recode $i iso-8859-1 done recode AUTHORS iso-8859-1

find. -name \*.orig -exec rm -fv {} \;

cat << EOF > perl-prov %{__perl_provides} $* |\ sed -e '/^perl(Carp)$/d' |\ sed -e '/^perl(DynaLoader)$/d' |\ sed -e '/^perl(Locale::Maketext)$/d' |\ sed -e '/^perl(Math::BigInt)$/d' |\ sed -e '/^perl(Net::Config)$/d' |\ sed -e '/^perl(Tie::Hash)$/d' |\ sed -e '/^perl(bigint)$/d' |\ sed -e '/^perl(bigrat)$/d' |\ sed -e '/^perl(bytes)$/d' |\ sed -e '/^perl(utf8)$/d' |\ sed -e '/^perl(DB)$/d' EOF %define __perl_provides %{_builddir}/%{name}-%{perl_version}/perl-prov chmod +x %{__perl_provides}
 * 1) !/bin/sh

%build echo "RPM Build arch: %{_arch}"

/bin/sh Configure -des -Doptimize="$RPM_OPT_FLAGS" \ -Dversion=%{perl_version} \ -Dmyhostname=localhost \ -Dperladmin=root@localhost \ -Dcc='%{__cc}' \ -Dcf_by='Red Hat, Inc.' \ -Dinstallprefix=%{_prefix} \ -Dprefix=%{_prefix} \ %ifarch %{multilib_64_archs} -Dlibpth="/usr/local/lib64 /lib64 %{_prefix}/lib64" \ -Dprivlib="%{_prefix}/lib/perl5/%{perl_version}" \ -Dsitelib="%{_prefix}/lib/perl5/site_perl/%{perl_version}" \ -Dvendorlib="%{_prefix}/lib/perl5/vendor_perl/%{perl_version}" \ -Darchlib="%{_libdir}/perl5/%{perl_version}/%{perl_archname}" \ -Dsitearch="%{_libdir}/perl5/site_perl/%{perl_version}/%{perl_archname}" \ -Dvendorarch="%{_libdir}/perl5/vendor_perl/%{perl_version}/%{perl_archname}" \ %endif -Darchname=%{_arch}-%{_os} \ %ifarch sparc sparcv9 -Ud_longdbl \ %endif -Dvendorprefix=%{_prefix} \ -Dsiteprefix=%{_prefix} \ -Duseshrplib \ -Dusethreads \ -Duseithreads \ -Duselargefiles \ -Dd_dosuid \ -Dd_semctl_semun \ -Di_db \ -Ui_ndbm \ -Di_gdbm \ -Di_shadow \ -Di_syslog \ -Dman3ext=3pm \ -Duseperlio \ -Dinstallusrbinperl=n \ -Ubincompat5005 \ -Uversiononly \ -Dpager='/usr/bin/less -isr' \ -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto \ -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto \ -Ud_endservent_r_proto -Ud_setservent_r_proto \ -Dscriptdir='%{_bindir}'

make %{?_smp_mflags}

%install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT

%ifarch %{multilib_64_archs} mkdir -p -m 755 $RPM_BUILD_ROOT%{_prefix}/lib/perl5/%{perl_version} mkdir -p -m 755 $RPM_BUILD_ROOT%{_prefix}/lib/perl5/site_perl/%{perl_version} mkdir -p -m 755 $RPM_BUILD_ROOT%{_prefix}/lib/perl5/vendor_perl/%{perl_version} %endif

%ifarch %{multilib_64_archs} mkdir -p -m 755 ${RPM_BUILD_ROOT}%{_prefix}/lib64/perl5/vendor_perl/%{perl_version}/%{_arch}-%{_os} %endif

install -p -m 755 utils/pl2pm ${RPM_BUILD_ROOT}%{_bindir}/pl2pm

for i in asm/termios.h syscall.h syslimits.h syslog.h sys/ioctl.h sys/socket.h sys/time.h wait.h do %{new_perl} $RPM_BUILD_ROOT/%{_bindir}/h2ph -a \ -d $RPM_BUILD_ROOT%{_libdir}/perl5/%{perl_version}/%{perl_archname} $i || /bin/true done

for dir in $(%{new_perl} -le 'print join("\n", @INC)' | grep '^%{_prefix}/lib') do mkdir -p $RPM_BUILD_ROOT/$dir done

for dir in $(%{new_perl} -le 'print join("\n", @INC)' | grep '^%{_libdir}') do mkdir -p $RPM_BUILD_ROOT/$dir done

mkdir -p -m 755 $RPM_BUILD_ROOT/%{_libdir}/perl5/%{perl_version}/Net install -p -m 644 %{SOURCE12} $RPM_BUILD_ROOT/%{_libdir}/perl5/%{perl_version}/Net/libnet.cfg

find $RPM_BUILD_ROOT -name '*NDBM*' | xargs rm -rfv

find $RPM_BUILD_ROOT -type f -name '*.bs' -a -empty -exec rm -f {} ';'


 * 1) popd
 * 1) popd
 * 1) popd

sed -i 's|./miniperl|%{_bindir}/perl|' $RPM_BUILD_ROOT/usr/lib/perl5/%{perl_version}/ExtUtils/xsubpp chmod +x $RPM_BUILD_ROOT/usr/lib/perl5/%{perl_version}/ExtUtils/xsubpp

rm -f $RPM_BUILD_ROOT%{_libdir}/perl5/%{perl_version}/%{perl_archname}/.packlist

pushd $RPM_BUILD_ROOT%{_mandir}/man1/ for i in perl588delta.1 perldelta.1 ; do iconv -f MS-ANSI -t UTF-8 $i --output new-$i rm -rf $i mv new-$i $i done popd

chmod -R u+w $RPM_BUILD_ROOT/* %if %{perl_debugging} exit 0 %endif

%{__gzip} Changes*

%clean rm -rf $RPM_BUILD_ROOT

%check make test

%post libs -p /sbin/ldconfig

%postun libs -p /sbin/ldconfig

%files %defattr(-,root,root,-) %doc Artistic AUTHORS Changes* Copying README %{_mandir}/man1/*.1* %{_mandir}/man3/*.3* %{_bindir}/* %{_libdir}/perl5/ %ifarch %{multilib_64_archs} %{_prefix}/lib/perl5/ %endif

%exclude %{_libdir}/perl5/%{perl_version}/%{perl_archname}/CORE/libperl.so

%exclude %{_bindir}/enc2xs %exclude %{_mandir}/man1/enc2xs* %exclude %{_bindir}/h2xs %exclude %{_mandir}/man1/h2xs* %exclude %{_bindir}/libnetcfg %exclude %{_mandir}/man1/libnetcfg* %exclude %{_bindir}/perlivp %exclude %{_mandir}/man1/perlivp* %exclude %{_libdir}/perl5/%{perl_version}/%{perl_archname}/CORE/*.h

%exclude %{_bindir}/suidperl %exclude %{_bindir}/sperl%{perl_version}

%exclude %{_bindir}/cpan %exclude %{_prefix}/lib/perl5/%{perl_version}/CPAN/ %exclude %{_prefix}/lib/perl5/%{perl_version}/CPAN.pm %exclude %{_mandir}/man1/cpan.1* %exclude %{_mandir}/man3/CPAN*

%exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Embed.pm %exclude %{_mandir}/man3/ExtUtils::Embed*

%exclude %{_bindir}/instmodsh %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Command/ %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Install.pm %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Installed.pm %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Liblist/ %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Liblist.pm %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/MakeMaker/ %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/MakeMaker.pm %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/MANIFEST.SKIP %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/MM*.pm %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/MY.pm %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Manifest.pm %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Mkbootstrap.pm %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Mksymlists.pm %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Packlist.pm %exclude %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/testlib.pm %exclude %{_mandir}/man1/instmodsh.1* %exclude %{_mandir}/man3/ExtUtils::Command::MM* %exclude %{_mandir}/man3/ExtUtils::Install.3* %exclude %{_mandir}/man3/ExtUtils::Installed.3* %exclude %{_mandir}/man3/ExtUtils::Liblist.3* %exclude %{_mandir}/man3/ExtUtils::MM* %exclude %{_mandir}/man3/ExtUtils::MY.3* %exclude %{_mandir}/man3/ExtUtils::MakeMaker* %exclude %{_mandir}/man3/ExtUtils::Manifest.3* %exclude %{_mandir}/man3/ExtUtils::Mkbootstrap.3* %exclude %{_mandir}/man3/ExtUtils::Mksymlists.3* %exclude %{_mandir}/man3/ExtUtils::Packlist.3* %exclude %{_mandir}/man3/ExtUtils::testlib.3*

%exclude %{_bindir}/prove %exclude %{_prefix}/lib/perl5/%{perl_version}/Test/Harness* %exclude %{_mandir}/man1/prove.1* %exclude %{_mandir}/man3/Test::Harness*

%exclude %{_prefix}/lib/perl5/%{perl_version}/Test/More* %exclude %{_prefix}/lib/perl5/%{perl_version}/Test/Builder* %exclude %{_prefix}/lib/perl5/%{perl_version}/Test/Simple* %exclude %{_prefix}/lib/perl5/%{perl_version}/Test/Tutorial* %exclude %{_mandir}/man3/Test::More* %exclude %{_mandir}/man3/Test::Builder* %exclude %{_mandir}/man3/Test::Simple* %exclude %{_mandir}/man3/Test::Tutorial*

%files libs %defattr(-,root,root) %{_libdir}/perl5/%{perl_version}/%{perl_archname}/CORE/libperl.so

%files devel %defattr(-,root,root,-) %{_bindir}/enc2xs %{_mandir}/man1/enc2xs* %{_bindir}/h2xs %{_mandir}/man1/h2xs* %{_bindir}/libnetcfg %{_mandir}/man1/libnetcfg* %{_bindir}/perlivp %{_mandir}/man1/perlivp* %{_libdir}/perl5/%{perl_version}/%{perl_archname}/CORE/*.h

%files suidperl %defattr(-,root,root,-) %{_bindir}/suidperl %{_bindir}/sperl%{perl_version}

%files CPAN %defattr(-,root,root,-) %{_bindir}/cpan %{_prefix}/lib/perl5/%{perl_version}/CPAN/ %{_prefix}/lib/perl5/%{perl_version}/CPAN.pm %{_mandir}/man1/cpan.1* %{_mandir}/man3/CPAN*

%files ExtUtils-Embed %defattr(-,root,root,-) %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Embed.pm %{_mandir}/man3/ExtUtils::Embed*

%files ExtUtils-MakeMaker %defattr(-,root,root,-) %{_bindir}/instmodsh %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Command/ %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Install.pm %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Installed.pm %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Liblist/ %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Liblist.pm %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/MakeMaker/ %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/MakeMaker.pm %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/MANIFEST.SKIP %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/MM*.pm %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/MY.pm %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Manifest.pm %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Mkbootstrap.pm %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Mksymlists.pm %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/Packlist.pm %{_prefix}/lib/perl5/%{perl_version}/ExtUtils/testlib.pm %{_mandir}/man1/instmodsh.1* %{_mandir}/man3/ExtUtils::Command::MM* %{_mandir}/man3/ExtUtils::Install.3* %{_mandir}/man3/ExtUtils::Installed.3* %{_mandir}/man3/ExtUtils::Liblist.3* %{_mandir}/man3/ExtUtils::MM* %{_mandir}/man3/ExtUtils::MY.3* %{_mandir}/man3/ExtUtils::MakeMaker* %{_mandir}/man3/ExtUtils::Manifest.3* %{_mandir}/man3/ExtUtils::Mkbootstrap.3* %{_mandir}/man3/ExtUtils::Mksymlists.3* %{_mandir}/man3/ExtUtils::Packlist.3* %{_mandir}/man3/ExtUtils::testlib.3*

%files Test-Harness %defattr(-,root,root,-) %{_bindir}/prove %{_prefix}/lib/perl5/%{perl_version}/Test/Harness* %{_mandir}/man1/prove.1* %{_mandir}/man3/Test::Harness*

%files Test-Simple %defattr(-,root,root,-) %{_prefix}/lib/perl5/%{perl_version}/Test/More* %{_prefix}/lib/perl5/%{perl_version}/Test/Builder* %{_prefix}/lib/perl5/%{perl_version}/Test/Simple* %{_prefix}/lib/perl5/%{perl_version}/Test/Tutorial* %{_mandir}/man3/Test::More* %{_mandir}/man3/Test::Builder* %{_mandir}/man3/Test::Simple* %{_mandir}/man3/Test::Tutorial*

%files core

%changelog - 5.10.0 final - clear out all the unnecessary patches (down to 8 patches!)
 * Fri Dec 21 2007 Tom "spot" Callaway  - 4:5.10.0-1

- first attempt at building 5.10.0
 * Thu Nov 29 2007 Robin Norwood  - 4:5.10.0_RC2-0.1