- Reformatted the specfile.

- Added the Source0 URL.
- Dropped the MANIFEST.all file for the perl package.
- Dropped the MANIFEST.suidperl file for the suidperl subpackage.
This commit is contained in:
Warren Togami 2005-08-11 15:04:58 +00:00
parent 10b38cf466
commit 14d24343d9

175
perl.spec
View File

@ -5,7 +5,7 @@
%define multilib_64_archs x86_64 s390x ppc64 sparc64 %define multilib_64_archs x86_64 s390x ppc64 sparc64
%define perlver 5.8.6 %define perlver 5.8.6
%define perlrel 15 %define perlrel 16
%define perlepoch 3 %define perlepoch 3
Provides: perl(:WITH_PERLIO) Provides: perl(:WITH_PERLIO)
@ -32,19 +32,18 @@ Provides: perl(:WITH_LARGEFILES)
Provides: perl(:WITHOUT_LARGEFILES) Provides: perl(:WITHOUT_LARGEFILES)
%endif %endif
Summary: The Perl programming language.
Name: perl Name: perl
Version: %{perlver} Version: %{perlver}
Release: %{perlrel} Release: %{perlrel}
Epoch: %{perlepoch} Epoch: %{perlepoch}
License: Artistic or GPL Summary: The Perl programming language
Group: Development/Languages Group: Development/Languages
License: Artistic or GPL
Url: http://www.perl.org/ Url: http://www.perl.org/
Source0: perl-5.8.6.tar.gz Source0: http://www.cpan.org/authors/id/N/NW/NWCLARK/perl-5.8.6.tar.gz
Source1: clean-manifest.pl
Source9: MANIFEST.suidperl
Source10: system-owned-directories
Source11: filter-depends.sh Source11: filter-depends.sh
Source12: perl-5.8.0-libnet.cfg Source12: perl-5.8.0-libnet.cfg
@ -60,19 +59,8 @@ Patch13: perl-5.8.3-perlbug-tag.patch
Patch14: perl-5.8.5-dashI.patch Patch14: perl-5.8.5-dashI.patch
Patch15: perl-5.8.5-incorder.patch Patch15: perl-5.8.5-incorder.patch
%define __perl_requires %{SOURCE11} # Configure doesn't listen well when we say no ndbm. When it links in,
# it then conflicts with berkeley db. oops.
Conflicts: perl-NDBM_File <= 1:1.75-34.99.6
Obsoletes: perl-Digest-MD5
Obsoletes: perl-MIME-Base64
Obsoletes: perl-libnet
Obsoletes: perl-Storable
Obsoletes: perl-CGI
Obsoletes: perl-CPAN
Obsoletes: perl-DB_File
# Configure doesn't listen well when we say no ndbm. When it links in, it then conflicts with berkeley db. oops.
Patch16: perl-5.8.0-nondbm.patch Patch16: perl-5.8.0-nondbm.patch
# make sure we get the proper ldflags on libperl.so # make sure we get the proper ldflags on libperl.so
@ -120,7 +108,9 @@ Patch32003: perl-5.8.6-libresolv.patch
# Patch202: perl-5.8.0-Safe2.09.patch # Patch202: perl-5.8.0-Safe2.09.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: gawk, grep, tcsh, gdbm-devel, db4-devel, dos2unix, man, groff BuildRequires: gawk, grep, tcsh, dos2unix, man, groff
BuildRequires: gdbm-devel, db4-devel
# By definition of 'do' (see 'man perlfunc') this package provides all # By definition of 'do' (see 'man perlfunc') this package provides all
# versions of perl previous to it. # versions of perl previous to it.
@ -181,6 +171,19 @@ Provides: perl(Carp::Heavy)
# Provides: perl(LWP::UserAgent) # Provides: perl(LWP::UserAgent)
# Provides: perl(URI::URL) # Provides: perl(URI::URL)
Conflicts: perl-NDBM_File <= 1:1.75-34.99.6
Obsoletes: perl-Digest-MD5
Obsoletes: perl-MIME-Base64
Obsoletes: perl-libnet
Obsoletes: perl-Storable
Obsoletes: perl-CGI
Obsoletes: perl-CPAN
Obsoletes: perl-DB_File
%define __perl_requires %{SOURCE11}
%description %description
Perl is a high-level programming language with roots in C, sed, awk 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 shell scripting. Perl is good at handling processes and files,
@ -195,6 +198,7 @@ scripts.
Install this package if you want to program in Perl or enable your Install this package if you want to program in Perl or enable your
system to handle Perl scripts. system to handle Perl scripts.
%if %{suidperl} %if %{suidperl}
%package suidperl %package suidperl
Summary: suidperl, for use with setuid perl scripts Summary: suidperl, for use with setuid perl scripts
@ -206,8 +210,9 @@ suidperl is a setuid binary copy of perl that allows for (hopefully)
more secure running of setuid perl scripts. more secure running of setuid perl scripts.
%endif %endif
%prep %prep
%setup -q -n perl-5.8.6 %setup -q
%patch5 -p1 %patch5 -p1
# %%patch8 -p1 # %%patch8 -p1
%patch11 -p1 %patch11 -p1
@ -228,40 +233,30 @@ more secure running of setuid perl scripts.
%patch29 -p1 %patch29 -p1
%patch100 -p1 %patch100 -p1
%ifarch %{multilib_64_archs} %ifarch %{multilib_64_archs}
%patch101 -p1 %patch101 -p1
%endif %endif
%patch32002 -p1 %patch32002 -p1
%patch32003 -p1 %patch32003 -p1
find . -name \*.orig -exec rm -fv {} \; find . -name \*.orig -exec rm -fv {} \;
%build %build
echo "RPM Build arch: %{_arch}" echo "RPM Build arch: %{_arch}"
rm -rf $RPM_BUILD_ROOT
# yes; don't use %_libdir so that noarch packages from other OSs # yes; don't use %_libdir so that noarch packages from other OSs
# arches work correctly :\ the Configure lines below hardcode lib for # arches work correctly :\ the Configure lines below hardcode lib for
# similar reasons. # similar reasons.
%ifarch %{multilib_64_archs}
mkdir -p $RPM_BUILD_ROOT/usr/lib/perl5/%{perlver}
mkdir -p $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/%{perlver}
mkdir -p $RPM_BUILD_ROOT/usr/lib/perl5/vendor_perl/%{perlver}
%endif
sh Configure -des -Doptimize="$RPM_OPT_FLAGS" \ sh Configure -des -Doptimize="$RPM_OPT_FLAGS" \
-Dversion=5.8.6 \ -Dversion=%{perlver} \
-Dmyhostname=localhost \ -Dmyhostname=localhost \
-Dperladmin=root@localhost \ -Dperladmin=root@localhost \
-Dcc='%{__cc}' \ -Dcc='%{__cc}' \
-Dcf_by='Red Hat, Inc.' \ -Dcf_by='Red Hat, Inc.' \
-Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \ -Dinstallprefix=%{_prefix} \
-Dprefix=%{_prefix} \ -Dprefix=%{_prefix} \
%ifarch %{multilib_64_archs} %ifarch %{multilib_64_archs}
-Dlibpth="/usr/local/lib64 /lib64 /usr/lib64" \ -Dlibpth="/usr/local/lib64 /lib64 /usr/lib64" \
@ -304,20 +299,37 @@ sh Configure -des -Doptimize="$RPM_OPT_FLAGS" \
-Ubincompat5005 \ -Ubincompat5005 \
-Uversiononly \ -Uversiononly \
-Dpager='/usr/bin/less -isr' \ -Dpager='/usr/bin/less -isr' \
-Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_endprotoent_r_proto -Ud_endservent_r_proto \ -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto \
-Ud_sethostent_r_proto -Ud_setprotoent_r_proto -Ud_setservent_r_proto \ -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto \
-Ud_endservent_r_proto -Ud_setservent_r_proto \
-Dinc_version_list='%{perlmodcompat}' -Dinc_version_list='%{perlmodcompat}'
make make
# perl 5.8.6 - some tests fail (see bug #127023 comments #{31,32,34})
make test || /bin/true make test || /bin/true
%install %install
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT
make install -f Makefile make install DESTDIR=$RPM_BUILD_ROOT
%ifarch %{multilib_64_archs}
mkdir -p -m 755 $RPM_BUILD_ROOT/usr/lib/perl5/%{perlver}
mkdir -p -m 755 $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/%{perlver}
mkdir -p -m 755 $RPM_BUILD_ROOT/usr/lib/perl5/vendor_perl/%{perlver}
%endif
%ifarch %{multilib_64_archs}
mkdir -p -m 755 ${RPM_BUILD_ROOT}/usr/lib64/perl5/vendor_perl/%{perlver}/%{_arch}-%{_os}
%endif
#
# Compatibility directories
#
pushd $RPM_BUILD_ROOT/%{_libdir}/perl5 pushd $RPM_BUILD_ROOT/%{_libdir}/perl5
for i in %{perlmodcompat}; do for i in %{perlmodcompat}; do
mkdir -pm 755 $i/%{_arch}-%{_os}%{thread_arch}/CORE mkdir -pm 755 $i/%{_arch}-%{_os}%{thread_arch}/CORE
@ -328,14 +340,11 @@ for i in %{perlmodcompat}; do
done done
popd popd
%ifarch %{multilib_64_archs}
mkdir -p ${RPM_BUILD_ROOT}/usr/lib64/perl5/vendor_perl/%{perlver}/%{_arch}-%{_os}
%endif
mkdir -p ${RPM_BUILD_ROOT}%{_bindir} install -p -m 755 utils/pl2pm ${RPM_BUILD_ROOT}%{_bindir}/pl2pm
install -m 755 utils/pl2pm ${RPM_BUILD_ROOT}%{_bindir}/pl2pm
# build MANIFEST.all
#
%define new_perl_lib $RPM_BUILD_ROOT%{_libdir}/perl5/%{perlver}:$RPM_BUILD_ROOT/usr/lib/perl5/%{perlver} %define new_perl_lib $RPM_BUILD_ROOT%{_libdir}/perl5/%{perlver}:$RPM_BUILD_ROOT/usr/lib/perl5/%{perlver}
%define comp_perl_lib $RPM_BUILD_ROOT/usr/lib/perl5/%{perlver}:$RPM_BUILD_ROOT/usr/lib/perl5/%{perlver} %define comp_perl_lib $RPM_BUILD_ROOT/usr/lib/perl5/%{perlver}:$RPM_BUILD_ROOT/usr/lib/perl5/%{perlver}
@ -351,7 +360,6 @@ do
-d $RPM_BUILD_ROOT%{_libdir}/perl5/%{perlver}/%{_arch}-%{_os}%{thread_arch} $i || /bin/true -d $RPM_BUILD_ROOT%{_libdir}/perl5/%{perlver}/%{_arch}-%{_os}%{thread_arch} $i || /bin/true
done done
%{new_perl} -p -i -e "s|$RPM_BUILD_ROOT||g;" %{new_arch_lib}/Config.pm
for dir in $(%{new_perl} -le 'print join("\n", @INC)' | grep '^/usr/lib') for dir in $(%{new_perl} -le 'print join("\n", @INC)' | grep '^/usr/lib')
do do
@ -369,60 +377,61 @@ for i in %{perlver} %{perlmodcompat} ; do
done done
%ifarch %{multilib_64_archs} #
mkdir -pm 755 $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/%{perlver} # libnet configuration file
mkdir -pm 755 $RPM_BUILD_ROOT/usr/lib/perl5/vendor_perl/%{perlver} #
%endif mkdir -p -m 755 $RPM_BUILD_ROOT/%{_libdir}/perl5/%{perlver}/Net
install -p -m 644 %{SOURCE12} $RPM_BUILD_ROOT/%{_libdir}/perl5/%{perlver}/Net/libnet.cfg
mkdir -p $RPM_BUILD_ROOT/%{_libdir}/perl5/%{perlver}/Net
install -m 0644 %{SOURCE12} $RPM_BUILD_ROOT/%{_libdir}/perl5/%{perlver}/Net/libnet.cfg
#
# Core modules removal:
# *NDBM* - removed
# *HiRes* - perl-Time-HiRes
# *Filter* - perl-Filter and perl-Filter-Simple
#
find $RPM_BUILD_ROOT -name '*HiRes*' | xargs rm -rfv find $RPM_BUILD_ROOT -name '*HiRes*' | xargs rm -rfv
find $RPM_BUILD_ROOT -name '*Filter*' | xargs rm -rfv find $RPM_BUILD_ROOT -name '*Filter*' | xargs rm -rfv
find $RPM_BUILD_ROOT -name '*NDBM*' | xargs rm -rfv find $RPM_BUILD_ROOT -name '*NDBM*' | xargs rm -rfv
find $RPM_BUILD_ROOT -type f -name '*.bs' -a -empty -exec rm -f {} ';' find $RPM_BUILD_ROOT -type f -name '*.bs' -a -empty -exec rm -f {} ';'
find $RPM_BUILD_ROOT -type f -or -type l > MANIFEST.all
find $RPM_BUILD_ROOT -type d -printf "%%%%dir %p\n" >> MANIFEST.all
%{new_perl} -i -p -e "s|$RPM_BUILD_ROOT||g;" MANIFEST.all
# add .gz to all the entries in the man directories. necessary since
# brp-compress takes place after the manifest is built but the %files
# section must match what it ends up renaming files into
%{new_perl} -i -p -e 's((^/usr/share/man/.*))($1.gz)g' MANIFEST.all
for i in %{SOURCE10}
do
%{new_perl} %{SOURCE1} %{_arch} $i MANIFEST.all MANIFEST.all.tmp %{_libdir} %{thread_arch}
mv MANIFEST.all.tmp MANIFEST.all
done
%if %{suidperl}
%{new_perl} %{SOURCE1} %{_arch} %{SOURCE9} MANIFEST.all MANIFEST.all.tmp %{_libdir} %{thread_arch}
mv MANIFEST.all.tmp MANIFEST.all
%endif
# fix the rest of the stuff
find $RPM_BUILD_ROOT%{_libdir}/perl* \
-name .packlist -o -name perllocal.pod -o -name config.h | \
%{new_perl_flags} xargs $RPM_BUILD_ROOT/%{_bindir}/perl -I lib/ -i -p -e "s|$RPM_BUILD_ROOT||g;" MANIFEST.all
chmod -R u+w $RPM_BUILD_ROOT/* chmod -R u+w $RPM_BUILD_ROOT/*
%clean %clean
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
%files -f MANIFEST.all
%defattr(-,root,root,-)
%if %{suidperl} %files
%files -f %{SOURCE9} suidperl
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_mandir}/man1/*.1*
%{_mandir}/man3/*.3*
%{_bindir}/*
%{_libdir}/perl5/
%ifarch %{multilib_64_archs}
/usr/lib/perl5/
%endif
%if %{suidperl}
%exclude %{_bindir}/suidperl
%exclude %{_bindir}/sperl%{perlver}
%endif %endif
%if %{suidperl}
%files suidperl
%defattr(-,root,root,-)
%{_bindir}/suidperl
%{_bindir}/sperl%{perlver}
%endif
%changelog %changelog
* Tue Aug 9 2005 Jose Pedro Oliveira <jpo at di.uminho.pt> - 3:5.8.6-16
- Reformatted the specfile.
- Added the Source0 URL.
- Dropped the MANIFEST.all file for the perl package.
- Dropped the MANIFEST.suidperl file for the suidperl subpackage.
* Wed May 18 2005 Warren Togami <wtogami@redhat.com> - 3:5.8.6-15 * Wed May 18 2005 Warren Togami <wtogami@redhat.com> - 3:5.8.6-15
- remove unused /tmp/MANIFEST.all (#151801) - remove unused /tmp/MANIFEST.all (#151801)