507 lines
15 KiB
RPMSpec
507 lines
15 KiB
RPMSpec
%define build_rawhide 0
|
|
|
|
%if %{build_rawhide}
|
|
%define threading 1
|
|
%define largefiles 1
|
|
%define ndbm 0
|
|
%define rhrelease %{nil}
|
|
%else
|
|
%define threading 0
|
|
%define largefiles 0
|
|
%define ndbm 1
|
|
%define rhrelease .72.3
|
|
%endif
|
|
|
|
%define perlver 5.6.1
|
|
%define perlrel 26%{rhrelease}
|
|
%define perlepoch 1
|
|
%define cpanver 1.59_54
|
|
%define dbfilever 1.75
|
|
%define cgiver 2.752
|
|
|
|
%if %{threading}
|
|
%define thread_arch -thread-multi
|
|
Provides: perl(:WITH_ITHREADS)
|
|
Provides: perl(:WITH_THREADS)
|
|
%else
|
|
%define thread_arch %{nil}
|
|
Provides: perl(:WITHOUT_ITHREADS)
|
|
Provides: perl(:WITHOUT_THREADS)
|
|
%endif
|
|
|
|
%if %{largefiles}
|
|
Provides: perl(:WITH_LARGEFILES)
|
|
%else
|
|
Provides: perl(:WITHOUT_LARGEFILES)
|
|
%endif
|
|
|
|
Summary: The Perl programming language.
|
|
Name: perl
|
|
Version: %{perlver}
|
|
Release: %{perlrel}
|
|
Epoch: %{perlepoch}
|
|
License: Artistic
|
|
Group: Development/Languages
|
|
|
|
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
|
|
Vendor : Red Hat, Inc.
|
|
Distribution : Red Hat Linux
|
|
|
|
Source0: ftp://ftp.perl.org/pub/perl/CPAN/src/perl-%{perlver}.tar.gz
|
|
Source1: clean-manifest.pl
|
|
Source5: MANIFEST.CPAN
|
|
Source6: MANIFEST.CGI
|
|
Source7: MANIFEST.DB_File
|
|
Source8: MANIFEST.NDBM_File
|
|
Source9: system-owned-directories
|
|
|
|
Patch1: perl-5.6.0-installman.patch
|
|
Patch2: perl5.005_03-db1.patch
|
|
Patch3: perl-5.6.0-nodb.patch
|
|
Patch4: perl-5.6.1-prereq.patch
|
|
Patch5: perl-5.6.0-root.patch
|
|
Patch6: perl-5.6.0-fhs.patch
|
|
Patch7: perl-5.6.0-buildroot.patch
|
|
Patch8: perl-5.6.1-errno.patch
|
|
Patch9: perl-5.6.1-syslog.patch
|
|
|
|
# put some requires in so the proper packages are delivered via
|
|
# RHN. it would be nice to have a "recommend" tag so that they aren't
|
|
# hard requirements, but if you want to function like the previous
|
|
# perl rpm, you gotta do this. price of doing business. note this
|
|
# still allows those subpackages to be upgraded.
|
|
%if !%{build_rawhide}
|
|
Requires: perl-CPAN, perl-CGI, perl-DB_File, perl-NDBM_File
|
|
%endif
|
|
|
|
%if !%ndbm
|
|
# obsolete NDBM_File in case people had an interim rawhide release
|
|
Obsoletes: perl-NDBM_File
|
|
%endif
|
|
|
|
# for some reason, sys/types.h and sys/socket.h need to be included
|
|
# BEFORE perl.h when the types are used. TODO: clean this.
|
|
Patch10: perl-5.6.1-socketinc.patch
|
|
|
|
# gcc 3.1 likes to complain if /usr/local/include is in the inc path.
|
|
# unfortunately, perl likes to put it there. so adjust the hint if
|
|
# gcc 3.1 is detected.
|
|
Patch11: perl-5.6.1-gcc31hint.patch
|
|
|
|
# ia64 doesn't include the kernel's define for ia64 page size.
|
|
# according to notting@redhat.com, the RH kernel is usually compiled
|
|
# with 16kb size, so...
|
|
Patch12: perl-5.6.1-ia64pagesize.patch
|
|
|
|
# one glob test involves globbing the user's home dir. problem is, in
|
|
# some build environments (ahem), the user building the RPM doesn't
|
|
# have a homedir. this adds a check to ensude the user's homedir is a
|
|
# directory (normal -d test)
|
|
Patch13: perl-5.6.1-homeglobtest.patch
|
|
|
|
Buildroot: %{_tmppath}/%{name}-root
|
|
BuildRequires: gawk, grep, tcsh
|
|
|
|
# By definition of 'do' (see 'man perlfunc') this package provides all
|
|
# versions of perl previous to it.
|
|
Provides: perl <= %{epoch}:%{version}
|
|
|
|
# These provides are needed by the perl pkg itself with auto-generated perl.req
|
|
Provides: perl(VMS::Filespec)
|
|
Provides: perl(VMS::Stdio)
|
|
Provides: perl(getopts.pl)
|
|
Provides: perl(v5.6.0)
|
|
Provides: perl(vmsish)
|
|
|
|
# XXX needed by perl-libnet
|
|
Provides: perl(Mac::Files)
|
|
|
|
# XXX needed by perl-CGI
|
|
Provides: perl(FCGI)
|
|
|
|
# XXX needed by am-utils
|
|
Provides: perl(ctime.pl)
|
|
|
|
# more .pl files probided by perl
|
|
Provides: perl(bigint.pl)
|
|
Provides: perl(ftp.pl)
|
|
|
|
# These modules appear to be missing or break assumptions made by the
|
|
# dependency analysis tools. Typical problems include refering to
|
|
# CGI::Apache as Apache and having no package line in CPAN::Nox.pm. I
|
|
# hope that the perl people fix these to work with our dependency
|
|
# engine or give us better dependency tools.
|
|
#
|
|
# Provides: perl(Apache)
|
|
# Provides: perl(ExtUtils::MM_Mac)
|
|
# Provides: perl(ExtUtils::XSSymSet)
|
|
# Provides: perl(LWP::UserAgent)
|
|
# Provides: perl(URI::URL)
|
|
|
|
%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 CPAN
|
|
Version: %{cpanver}
|
|
Release: %{perlrel}
|
|
Summary: CPAN module for Perl
|
|
Group: Development/Languages
|
|
Requires: perl >= %{perlepoch}:%{perlver}-%{perlrel}
|
|
|
|
%description CPAN
|
|
CPAN modules for Perl
|
|
|
|
%package CGI
|
|
Version: %{cgiver}
|
|
Release: %{perlrel}
|
|
Summary: CGI modules for Perl
|
|
Group: Development/Languages
|
|
Requires: perl >= %{perlepoch}:%{perlver}-%{perlrel}
|
|
|
|
%description CGI
|
|
CGI modules for Perl
|
|
|
|
%package DB_File
|
|
Version: %{dbfilever}
|
|
Release: %{perlrel}
|
|
Summary: DB_File module for Perl
|
|
Group: Development/Languages
|
|
Requires: perl >= %{perlepoch}:%{perlver}-%{perlrel}
|
|
|
|
%description DB_File
|
|
DB_File modules for Perl
|
|
|
|
%package NDBM_File
|
|
Version: %{dbfilever}
|
|
Release: %{perlrel}
|
|
Summary: NDBM_File module for Perl
|
|
Group: Development/Languages
|
|
Requires: perl >= %{perlepoch}:%{perlver}-%{perlrel}
|
|
|
|
%description NDBM_File
|
|
NDBM_File modules for Perl
|
|
|
|
%prep
|
|
%setup -q
|
|
%patch1 -p1 -b .instman
|
|
# Perl does not have a single entry point to define what db library to use
|
|
# so the patch below is mostly broken...
|
|
#%patch2 -p1
|
|
%patch3 -p1 -b .nodb
|
|
%patch4 -p1 -b .prereq
|
|
%patch5 -p1 -b .root
|
|
%patch6 -p1 -b .fhs
|
|
%patch7 -p1 -b .buildroot
|
|
%patch8 -p1 -b .errno
|
|
%patch9 -p1 -b .syslog
|
|
%patch10 -p1 -b .incs
|
|
%patch11 -p1 -b .gcc31
|
|
|
|
%ifarch ia64
|
|
%patch12 -p1 -b .ia64pagesize
|
|
%endif
|
|
|
|
%patch13 -p1 -b .globtest
|
|
|
|
find . -name \*.orig -exec rm -fv {} \;
|
|
|
|
%build
|
|
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
|
sh Configure -des -Doptimize="$RPM_OPT_FLAGS" \
|
|
-Dcc='%{__cc}' \
|
|
-Dcf_by='Red Hat, Inc.' \
|
|
-Dcccdlflags='-fPIC' \
|
|
-Dinstallprefix=$RPM_BUILD_ROOT%{_prefix} \
|
|
-Dprefix=%{_prefix} \
|
|
-Darchname=%{_arch}-%{_os} \
|
|
%ifarch sparc
|
|
-Ud_longdbl \
|
|
%endif
|
|
%if %threading
|
|
-Dusethreads \
|
|
-Duseithreads \
|
|
%else
|
|
-Uusethreads \
|
|
-Uuseithreads \
|
|
%endif
|
|
%if %largefiles
|
|
-Duselargefiles \
|
|
%else
|
|
-Uuselargefiles \
|
|
%endif
|
|
-Dd_dosuid \
|
|
-Dd_semctl_semun \
|
|
-Di_db \
|
|
%if %ndbm
|
|
-Di_ndbm \
|
|
%else
|
|
-Ui_ndbm \
|
|
%endif
|
|
-Di_gdbm \
|
|
-Di_shadow \
|
|
-Di_syslog \
|
|
-Dman3ext=3pm \
|
|
-Dlocincpth=""
|
|
# -Dinc_version_list='5.6.0/%{_arch}-%{_os} 5.6.0'
|
|
# -Dotherlibdirs=/usr/lib/perl5/5.6.0/%{_arch}-linux:/usr/lib/perl5/5.6.0:/usr/lib/perl5/site_perl/5.6.0/%{_arch}-linux:/usr/lib/perl5/site_perl/5.6.0
|
|
|
|
# temp fix for ugly makefile problems; perl's makedepend adds broken
|
|
# <builtin> amd <command line> targets to some makefiles, for some
|
|
# reason. this solvesit for now.
|
|
|
|
find . -type f -name makefile | xargs perl -p -i -e 's/<(builtin|command line|built-in)>//'
|
|
find . -type f -name Makefile | xargs perl -p -i -e 's/<(builtin|command line)>//'
|
|
|
|
make -f Makefile
|
|
|
|
%ifnarch ia64
|
|
make -f Makefile test
|
|
%endif
|
|
|
|
%install
|
|
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
|
mkdir -p $RPM_BUILD_ROOT
|
|
|
|
make install -f Makefile
|
|
mkdir -p ${RPM_BUILD_ROOT}%{_bindir}
|
|
install -m 755 utils/pl2pm ${RPM_BUILD_ROOT}%{_bindir}/pl2pm
|
|
|
|
# Generate *.ph files with a trick. Is this sick or what ?
|
|
make all -f - <<EOF
|
|
PKGS = glibc-devel gdbm-devel gpm-devel libgr-devel libjpeg-devel \
|
|
libpng-devel libtiff-devel ncurses-devel popt \
|
|
zlib-devel binutils libelf e2fsprogs-devel pam pwdb \
|
|
rpm-devel
|
|
STDH = \$(filter %{_includedir}/include/%%, \$(shell rpm -q --queryformat '[%%{FILENAMES}\n]' \$(PKGS)))
|
|
STDH +=\$(wildcard %{_includedir}/linux/*.h) \$(wildcard %{_includedir}/asm/*.h) \
|
|
\$(wildcard %{_includedir}/scsi/*.h)
|
|
GCCDIR = \$(shell gcc --print-file-name include)
|
|
GCCH = \$(filter \$(GCCDIR)/%%, \$(shell rpm -q --queryformat '[%%{FILEMODES} %%{FILENAMES}\n]' gcc | grep -v ^4 | awk '{print $NF}'))
|
|
|
|
PERLLIB = \$(RPM_BUILD_ROOT)%{_libdir}/perl5/%{perlver}
|
|
PERL = PERL5LIB=\$(PERLLIB) \$(RPM_BUILD_ROOT)%{_bindir}/perl
|
|
PHDIR = \$(PERLLIB)/\${RPM_ARCH}-linux*
|
|
H2PH = \$(PERL) \$(RPM_BUILD_ROOT)%{_bindir}/h2ph -d \$(PHDIR)/
|
|
|
|
all: std-headers gcc-headers fix-config
|
|
|
|
std-headers: \$(STDH)
|
|
cd %{_includedir} && \$(H2PH) \$(STDH:%{_includedir}/%%=%%)
|
|
|
|
gcc-headers: \$(GCCH)
|
|
cd \$(GCCDIR) && \$(H2PH) \$(GCCH:\$(GCCDIR)/%%=%%) || true
|
|
|
|
fix-config: \$(PHDIR)/Config.pm
|
|
\$(PERL) -i -p -e "s|\$(RPM_BUILD_ROOT)||g;" \$<
|
|
|
|
EOF
|
|
|
|
[ -x /usr/lib/rpm/brp-compress ] && /usr/lib/rpm/brp-compress
|
|
|
|
# build MANIFEST.all
|
|
|
|
find $RPM_BUILD_ROOT -type f -or -type l > MANIFEST.all
|
|
find $RPM_BUILD_ROOT -type d -printf "%%%%dir %p\n" >> MANIFEST.all
|
|
|
|
./perl -I lib/ -i -p -e "s|$RPM_BUILD_ROOT||g;" MANIFEST.all
|
|
cp MANIFEST.all /tmp
|
|
|
|
for i in %{SOURCE9} %{SOURCE5} %{SOURCE6} %{SOURCE7} %{SOURCE8}
|
|
do
|
|
./perl -I lib/ %{SOURCE1} %{_arch} $i MANIFEST.all MANIFEST.all.tmp %{thread_arch}
|
|
mv MANIFEST.all.tmp MANIFEST.all
|
|
done
|
|
|
|
|
|
# fix the rest of the stuff
|
|
find $RPM_BUILD_ROOT%{_libdir}/perl* -name .packlist -o -name perllocal.pod | \
|
|
xargs ./perl -I lib/ -i -p -e "s|$RPM_BUILD_ROOT||g;" MANIFEST.all
|
|
|
|
%clean
|
|
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
|
|
|
%files -f MANIFEST.all
|
|
%defattr(-,root,root)
|
|
|
|
%if %ndbm
|
|
%files -f %{SOURCE8} NDBM_File
|
|
%defattr(-,root,root)
|
|
%endif
|
|
|
|
%files -f %{SOURCE5} CPAN
|
|
%defattr(-,root,root)
|
|
|
|
%files -f %{SOURCE6} CGI
|
|
%defattr(-,root,root)
|
|
|
|
%files -f %{SOURCE7} DB_File
|
|
%defattr(-,root,root)
|
|
|
|
%changelog
|
|
* Thu Dec 20 2001 Chip Turner <cturner@redhat.com>
|
|
- remove ndbm completely
|
|
|
|
* Sun Dec 16 2001 Chip Turner <cturner@redhat.com>
|
|
- make rpmlint happy, split out NDBM_File, clean up other spots
|
|
- stopped doing grep -v etc in favor of custom script
|
|
|
|
* Wed Dec 12 2001 Chip Turner <cturner@redhat.com>
|
|
- cleaning up of ia64 issues, as well as compatibility with gcc 3.1
|
|
and glibc 2.2.4
|
|
|
|
* Mon Sep 24 2001 Chip Turner <cturner@redhat.com>
|
|
- changing building of extra modules out of the core perl rpm
|
|
|
|
* Mon Sep 17 2001 Chip Turner <cturner@redhat.com>
|
|
- upgrade to 5.6.1, added old INC dirs to maintain compat
|
|
|
|
* Fri Mar 23 2001 Preston Brown <pbrown@redhat.com>
|
|
- bzip2 source, save some space.
|
|
|
|
* Thu Dec 7 2000 Crutcher Dunnavant <crutcher@redhat.com>
|
|
- initial rebuild for 7.1
|
|
|
|
* Tue Sep 12 2000 Bill Nottingham <notting@redhat.com>
|
|
- fix dependencies on ia64/sparc64
|
|
|
|
* Mon Aug 7 2000 Nalin Dahyabhai <nalin@redhat.com>
|
|
- replace the deprecated MD5 with Digest::MD5 (has to be here for cleanfeed)
|
|
- obsolete: perl-Digest-MD5
|
|
- use syslog instead of mail to report possible attempts to break into suidperl
|
|
- force syslog on at build-time
|
|
|
|
* Mon Jul 31 2000 Nalin Dahyabhai <nalin@redhat.com>
|
|
- add Owen's fix for #14779/#14863
|
|
- specify cc=%{__cc}; continue to let cpp sort itself out
|
|
- switch shadow support on (#8646)
|
|
- release 7
|
|
|
|
* Tue Jul 18 2000 Nalin Dahyabhai <nalin@redhat.com>
|
|
- strip buildroot from perl pods (#14040)
|
|
- release 6
|
|
|
|
* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
|
|
- automatic rebuild (release 5)
|
|
|
|
* Wed Jun 21 2000 Preston Brown <pbrown@redhat.com>
|
|
- don't require tcsh to install, only to build
|
|
- release 4
|
|
|
|
* Mon Jun 19 2000 Nalin Dahyabhai <nalin@redhat.com>
|
|
- rebuild against new db3 package
|
|
- release 3
|
|
|
|
* Sat Jun 17 2000 Nalin Dahyabhai <nalin@redhat.com>
|
|
- disable 64-bit file support
|
|
- change name of package that Perl expects gcc to be in from "egcs" to "gcc"
|
|
- move man pages to /usr/share via hints/linux.sh and MM_Unix.pm
|
|
- fix problems prefixifying with empty prefixes
|
|
- disable long doubles on sparc (they're the same as doubles anyway)
|
|
- add an Epoch to make sure we can upgrade from perl-5.00503
|
|
- release 2
|
|
|
|
* Thu Mar 23 2000 Bernhard Rosenkraenzer <bero@redhat.com>
|
|
- 2.6.0
|
|
|
|
* Wed Feb 02 2000 Cristian Gafton <gafton@redhat.com>
|
|
- fix description
|
|
|
|
* Fri Jan 14 2000 Jeff Johnson <jbj@redhat.com>
|
|
- add provides for perl modules (from kestes@staff.mail.com).
|
|
|
|
* Mon Oct 04 1999 Cristian Gafton <gafton@redhat.com>
|
|
- fix the %install so that the MD5 module gets actually installed correctly
|
|
|
|
* Mon Aug 30 1999 Cristian Gafton <gafton@redhat.com>
|
|
- make sure the package builds even when we don't have perl installed on the
|
|
system
|
|
|
|
* Fri Aug 06 1999 Cristian Gafton <gafton@redhat.com>
|
|
- merged with perl-MD5
|
|
- get rid of the annoying $RPM_BUILD_ROOT paths in the installed tree
|
|
|
|
* Mon Jul 26 1999 Cristian Gafton <gafton@redhat.com>
|
|
- do not link anymore against the system db library (and make each module
|
|
link against it separately, so that we can have Berkeley db1 and db2 mixed
|
|
up)
|
|
|
|
* Wed Jun 16 1999 Cristian Gafton <gafton@redhat.com>
|
|
- use wildcards for files in /usr/bin and /usr/man
|
|
|
|
* Tue Apr 06 1999 Cristian Gafton <gafton@redhat.com>
|
|
- version 5.00503
|
|
- make the default man3 install dir be release independent
|
|
- try to link against db1 to preserve compatibility with older databases;
|
|
abandoned idea because perl is too broken to allow such an easy change
|
|
(hardcoded names *everywhere* !!!)
|
|
|
|
* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com>
|
|
- auto rebuild in the new build environment (release 3)
|
|
|
|
* Thu Jan 07 1999 Cristian Gafton <gafton@redhat.com>
|
|
- guilty of the inlined Makefile in the spec file
|
|
- adapted for the arm build
|
|
|
|
* Wed Sep 09 1998 Preston Brown <pbrown@redhat.com>
|
|
- added newer CGI.pm to the build
|
|
- changed the version naming scheme around to work with RPM
|
|
|
|
* Sun Jul 19 1998 Jeff Johnson <jbj@redhat.com>
|
|
- attempt to generate *.ph files reproducibly
|
|
|
|
* Mon Jun 15 1998 Jeff Johnson <jbj@redhat.com>
|
|
- update to 5.004_04-m4 (pre-5.005 maintenance release)
|
|
|
|
* Tue Jun 12 1998 Christopher McCrory <chrismcc@netus.com
|
|
- need stdarg.h from gcc shadow to fix "use Sys::Syslog" (problem #635)
|
|
|
|
* Fri May 08 1998 Cristian Gafton <gafton@redhat.com>
|
|
- added a patch to correct the .ph constructs unless defined (foo) to read
|
|
unless(defined(foo))
|
|
|
|
* Thu May 07 1998 Prospector System <bugs@redhat.com>
|
|
- translations modified for de, fr, tr
|
|
|
|
* Tue Mar 10 1998 Cristian Gafton <gafton@redhat.com>
|
|
- fixed strftime problem
|
|
|
|
* Sun Mar 08 1998 Cristian Gafton <gafton@redhat.com>
|
|
- added a patch to fix a security race
|
|
- do not use setres[ug]id - those are not implemented on 2.0.3x kernels
|
|
|
|
* Mon Mar 02 1998 Cristian Gafton <gafton@redhat.com>
|
|
- upgraded to 5.004_04 - 5.004_01 had some nasty memory leaks.
|
|
- fixed the spec file to be version-independent
|
|
|
|
* Fri Dec 05 1997 Erik Troan <ewt@redhat.com>
|
|
- Config.pm wasn't right do to the builtrooting
|
|
|
|
* Mon Oct 20 1997 Erik Troan <ewt@redhat.com>
|
|
- fixed arch-specfic part of spec file
|
|
|
|
* Sun Oct 19 1997 Erik Troan <ewt@redhat.com>
|
|
- updated to perl 5.004_01
|
|
- users a build root
|
|
|
|
* Thu Jun 12 1997 Erik Troan <ewt@redhat.com>
|
|
- built against glibc
|
|
|
|
* Tue Apr 22 1997 Erik Troan <ewt@redhat.com>
|
|
- Incorporated security patch from Chip Salzenberg <salzench@nielsenmedia.com>
|
|
|
|
* Fri Feb 07 1997 Erik Troan <ewt@redhat.com>
|
|
- Use -Darchname=i386-linux
|
|
- Require csh (for glob)
|
|
- Use RPM_ARCH during configuration and installation for arch independence
|