diff options
author | jlam <jlam> | 2001-09-05 17:13:40 +0000 |
---|---|---|
committer | jlam <jlam> | 2001-09-05 17:13:40 +0000 |
commit | f3adbc2399ca487a6c896783619da9ce82fce688 (patch) | |
tree | 467c0c79b247b5a4a1bd5d528d1051917d34a847 | |
parent | 3792021d80967e4d218f6bbd1a60ecb0532e7cac (diff) | |
download | pkgsrc-f3adbc2399ca487a6c896783619da9ce82fce688.tar.gz |
Update perl to 5.6.1nb2. Changes from perl-5.6.1nb1 include undoing the
perl mess I created a year ago and making this a vanilla perl installation
again, and explicitly setting the system library path so that /usr/local/*
doesn't appear anywhere.
The installed perl library now also includes CGI.pm-2.752. The www/p5-CGI
package installs in to ${PERL5_SITEARCH} so there is no conflict with the
"standard" CGI.pm.
-rw-r--r-- | lang/perl5/Makefile | 128 | ||||
-rw-r--r-- | lang/perl5/distinfo | 9 | ||||
-rw-r--r-- | lang/perl5/patches/patch-aa | 17 | ||||
-rw-r--r-- | lang/perl5/patches/patch-ab | 41 | ||||
-rw-r--r-- | lang/perl5/patches/patch-ac | 20 | ||||
-rw-r--r-- | lang/perl5/patches/patch-ad | 51 | ||||
-rw-r--r-- | lang/perl5/patches/patch-ae | 51 | ||||
-rw-r--r-- | lang/perl5/pkg/MESSAGE | 11 | ||||
-rw-r--r-- | lang/perl5/pkg/PLIST | 5 |
9 files changed, 319 insertions, 14 deletions
diff --git a/lang/perl5/Makefile b/lang/perl5/Makefile index 337d6659aaa..5bdb7132143 100644 --- a/lang/perl5/Makefile +++ b/lang/perl5/Makefile @@ -1,24 +1,128 @@ -# $NetBSD: Makefile,v 1.39 2001/07/09 17:21:22 tv Exp $ +# $NetBSD: Makefile,v 1.40 2001/09/05 17:13:40 jlam Exp $ .include "../../lang/perl5/Makefile.common" -PKGNAME= perl-${PERL5_VERS}nb1 -PERL5_PKG_VERS= # empty +PKGNAME= perl-${PERL5_VERS} +PERL5_PKG_VERS= nb2 CATEGORIES+= lang devel -DISTFILES= # empty +MAINTAINER= jlam@netbsd.org HOMEPAGE= http://language.perl.com/index.html COMMENT= Practical Extraction and Report Language -DEPENDS+= perl-base>=${PERL5_DIST_VERS}:../../lang/perl5-base -DEPENDS+= p5-CGI>=2.75.2:../../www/p5-CGI +CONFLICTS= perl-5.00* \ + p5-CGI-2.66 p5-CGI-2.75 p5-CGI-2.75.[0-2] \ + p5-Data-Dumper-2.1[0-9][0-9] p5-Data-Dumper-[0-9][0-9] \ + p5-Devel-DProf-[0-9]* p5-Devel-Peek-[0-9]* \ + perl-mk-[0-9]* -EXTRACT_ONLY= # empty -NO_CHECKSUM= # defined -NO_PATCH= # defined -NO_CONFIGURE= # defined -NO_BUILD= # defined +HAS_CONFIGURE= # defined +CONFIGURE_SCRIPT= ./Configure +CONFIGURE_ARGS+= -sde +CONFIGURE_ARGS+= -Dprefix="${PREFIX}" +CONFIGURE_ARGS+= -Darchname="${MACHINE_ARCH}-${LOWER_OPSYS}" +CONFIGURE_ARGS+= -Doptimize="${CFLAGS}" +CONFIGURE_ARGS+= -Dcc="${CC}" +CONFIGURE_ARGS+= -Uusemymalloc +CONFIGURE_ARGS+= -Uinstallusrbinperl -do-install: # empty +.include "../../mk/bsd.prefs.mk" + +MKPIC?= yes + +# Nail down the needed libraries for each platform here to avoid hidden +# dependencies. +# +LIBSWANTED.NetBSD= m crypt + +# SYSLIBPATH should contain the directories in which the system libraries +# may be found. +# +SYSLIBPATH.NetBSD= /usr/lib +#SYSLIBPATH.Linux= /lib /usr/lib + +.if defined(LIBSWANTED.${OPSYS}) +CONFIGURE_ARGS+= -Dlibswanted="${LIBSWANTED.${OPSYS}}" +.endif + +.if (${OPSYS} == "NetBSD") +.if !exists(/usr/libexec/ld.so) && !exists(/usr/libexec/ld.elf_so) +MKPIC= no +.endif +.if (${MACHINE_ARCH} == "sparc64") +# The toolchain on sparc64 is not really production-quality right now, but +# gcc-2.96 is supposed to fix most problems. Passing -g to the configure +# process triggers -DDEBUGGING, which plays the real trick and circumvents +# code-generation bugs, so we add -g to CFLAGS to at least have a really +# debuggable build. +# +CFLAGS+= -g -msoft-quad-float -O2 +.endif +.elif (${OPSYS} == "SunOS") +CFLAGS= +.endif + +.if (${MKPIC} == "yes") +CONFIGURE_ARGS+= -Duseshrplib +.endif + +PERL5_ARCHLIB= ${PREFIX}/lib/perl5/${PERL5_DIST_VERS}/${MACHINE_ARCH}-${LOWER_OPSYS} +PERL5_SITEARCH= ${PREFIX}/lib/perl5/site_perl/${PERL5_DIST_VERS}/${MACHINE_ARCH}-${LOWER_OPSYS} +PERL5_PACKLIST= ${PERL5_ARCHLIB}/.packlist + +# It's tough to guess which hints file will be used, so add our modifications +# to all of them. +# +post-patch: + hintdir="${WRKSRC}/hints"; \ + for hints in $${hintdir}/*.sh; do \ + ${CHMOD} +w $${hints}; \ + ( ${ECHO} ""; \ + ${ECHO} "locincpth=''"; \ + ${ECHO} "loclibpth=''"; \ + ) >> $${hints}; \ + done +.if defined(SYSLIBPATH.${OPSYS}) + hintdir="${WRKSRC}/hints"; \ + for hints in $${hintdir}/*.sh; do \ + ( ${ECHO} "glibpth='${SYSLIBPATH.${OPSYS}}'"; \ + ) >> $${hints}; \ + done +.endif + +# On platforms that build shared libraries, rebuild the perl binary as a +# statically linked binary for speed optimization. Performance increase +# is only by word-of-mouth -- no actual benchmarks have been produced. +# +.if (${MKPIC} == "yes") +STATIC_WRKDIR= ${WRKDIR}/static +STATIC_MAKEFLAGS= MKPIC=no +STATIC_MAKEFLAGS+= WRKDIR=${STATIC_WRKDIR} +STATIC_MAKEFLAGS+= ALL_TARGET=perl + +post-build: + cd ${.CURDIR} && ${MAKE} build ${STATIC_MAKEFLAGS} +.endif + +post-install: +.if (${MKPIC} == "yes") + ${RM} ${PREFIX}/bin/perl + ${INSTALL_PROGRAM} ${STATIC_WRKDIR}/${DISTNAME}/perl ${PREFIX}/bin/perl +.endif + strip ${PREFIX}/bin/a2p + strip ${PREFIX}/bin/perl + ${RMDIR} -p ${PERL5_SITEARCH} 2>/dev/null || ${TRUE} + ${RM} -f ${WRKDIR}/bsd.perl.mk + eval `${PERL5} -V:installsitelib 2>/dev/null` && \ + echo PERL5_SITELIB=$$installsitelib >>${WRKDIR}/bsd.perl.mk + eval `${PERL5} -V:installsitearch 2>/dev/null` && \ + echo PERL5_SITEARCH=$$installsitearch >>${WRKDIR}/bsd.perl.mk + eval `${PERL5} -V:installarchlib 2>/dev/null` && \ + echo PERL5_ARCHLIB=$$installarchlib >>${WRKDIR}/bsd.perl.mk + ${INSTALL_DATA} ${WRKDIR}/bsd.perl.mk ${PREFIX}/share/mk/bsd.perl.mk + +test: + @cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} \ + ${MAKE_PROGRAM} ${MAKE_FLAGS} -f ${MAKEFILE} test .include "../../mk/bsd.pkg.mk" diff --git a/lang/perl5/distinfo b/lang/perl5/distinfo new file mode 100644 index 00000000000..01371ccb367 --- /dev/null +++ b/lang/perl5/distinfo @@ -0,0 +1,9 @@ +$NetBSD: distinfo,v 1.1 2001/09/05 17:13:40 jlam Exp $ + +SHA1 (perl-5.6.1.tar.gz) = c718b38685f90d51a9a6b1b008de0d7d198c0744 +Size (perl-5.6.1.tar.gz) = 5983695 bytes +SHA1 (patch-aa) = 7b235dd5f4939f3b21789996514d165877cdea4d +SHA1 (patch-ab) = 9b142c7404beccc313961063128af68a685b79e3 +SHA1 (patch-ac) = dfebafeec171c86de3d6105e5543270a30f82691 +SHA1 (patch-ad) = 7a3ca903d958026473f593fdeb172f86f2ef66d2 +SHA1 (patch-ae) = 677797f38279b7602fc5bbac8ee80c0e09f6e285 diff --git a/lang/perl5/patches/patch-aa b/lang/perl5/patches/patch-aa new file mode 100644 index 00000000000..ad27d4fdaaa --- /dev/null +++ b/lang/perl5/patches/patch-aa @@ -0,0 +1,17 @@ +$NetBSD: patch-aa,v 1.18 2001/09/05 17:13:40 jlam Exp $ + +--- Configure.orig Sun Mar 18 19:03:33 2001 ++++ Configure Sat Sep 1 14:31:15 2001 +@@ -6807,8 +6807,11 @@ + aix) + # We'll set it in Makefile.SH... + ;; +- solaris|netbsd) ++ solaris) + xxx="-R $shrpdir" ++ ;; ++ netbsd) ++ xxx="-Wl,-R$shrpdir" + ;; + freebsd) + xxx="-Wl,-R$shrpdir" diff --git a/lang/perl5/patches/patch-ab b/lang/perl5/patches/patch-ab new file mode 100644 index 00000000000..4bcece22a03 --- /dev/null +++ b/lang/perl5/patches/patch-ab @@ -0,0 +1,41 @@ +$NetBSD: patch-ab,v 1.8 2001/09/05 17:13:41 jlam Exp $ + +--- hints/netbsd.sh.orig Thu Feb 22 18:57:55 2001 ++++ hints/netbsd.sh Sat Sep 1 03:57:59 2001 +@@ -21,7 +21,11 @@ + if [ -f /usr/libexec/ld.elf_so ]; then + d_dlopen=$define + d_dlerror=$define +- ccdlflags="-Wl,-E -Wl,-R${PREFIX}/lib $ccdlflags" ++ # Include the whole libgcc.a, required for Xerces-P, which ++ # needs __eh_alloc, __pure_virtual, and others. ++ # XXX This should be obsoleted by gcc-3.0. ++ ccdlflags="-Wl,-whole-archive -lgcc -Wl,-no-whole-archive \ ++ -Wl,-E -Wl,-R${PREFIX}/lib $ccdlflags" + cccdlflags="-DPIC -fPIC $cccdlflags" + lddlflags="--whole-archive -shared $lddlflags" + elif [ "`uname -m`" = "pmax" ]; then +@@ -59,14 +63,18 @@ + d_setruid="$undef" + + # there's no problem with vfork. +-case "$usevfork" in +-'') usevfork=true ;; +-esac ++usevfork=true ++ ++# Using perl's malloc leads to trouble on some toolchain versions. ++usemymalloc="$undef" + + # Pre-empt the /usr/bin/perl question of installperl. +-installusrbinperl='n' ++installusrbinperl="$undef" ++ ++# Don't install any manpages in man3; make user use perldoc ++# (to prevent confusion with similarly named man2/man3 pages). ++man3dir=none + + # Recognize the NetBSD packages collection. +-# GDBM might be here. + test -d /usr/pkg/lib && loclibpth="$loclibpth /usr/pkg/lib" + test -d /usr/pkg/include && locincpth="$locincpth /usr/pkg/include" diff --git a/lang/perl5/patches/patch-ac b/lang/perl5/patches/patch-ac new file mode 100644 index 00000000000..093b56b8373 --- /dev/null +++ b/lang/perl5/patches/patch-ac @@ -0,0 +1,20 @@ +$NetBSD: patch-ac,v 1.8 2001/09/05 17:13:41 jlam Exp $ + +--- lib/ExtUtils/Install.pm.orig Thu Feb 22 18:57:55 2001 ++++ lib/ExtUtils/Install.pm Sat Sep 1 03:57:59 2001 +@@ -156,7 +156,14 @@ + } else { + inc_uninstall($_,$File::Find::dir,$verbose,0); # nonono set to 0 + } +- $packlist->{$origfile}++; ++ # ++ # jlam 2001-05-21 - Fix a bug in the packlists where only the ++ # filename and not the full pathname is recorded. The broken ++ # line is: ++ # ++ # $packlist->{$origfile}++; ++ # ++ $packlist->{$targetfile}++; + + }, "."); + chdir($cwd) or Carp::croak("Couldn't chdir to $cwd: $!"); diff --git a/lang/perl5/patches/patch-ad b/lang/perl5/patches/patch-ad new file mode 100644 index 00000000000..d115dce9356 --- /dev/null +++ b/lang/perl5/patches/patch-ad @@ -0,0 +1,51 @@ +$NetBSD: patch-ad,v 1.9 2001/09/05 17:13:41 jlam Exp $ + +--- pp.c.orig Sat Apr 7 23:09:16 2001 ++++ pp.c Sat Sep 1 03:57:59 2001 +@@ -1900,6 +1900,28 @@ + } + } + ++/* ++ * There are strange code-generation bugs caused on sparc64 by gcc-2.95.2. ++ * These need to be revisited when a newer toolchain becomes available. ++ */ ++#if defined(__sparc64__) && defined(__GNUC__) ++#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96) ++#undef SPARC64_WORKAROUND ++#define SPARC64_WORKAROUND 1 ++#endif ++#endif ++ ++#if defined(SPARC64_WORKAROUND) ++double ++sparc64_workaround_modf(double theVal, double *theIntRes) ++{ ++ double res, ret; ++ ret = modf(theVal, &res); ++ *theIntRes = res; ++ return ret; ++} ++#endif ++ + PP(pp_int) + { + dSP; dTARGET; +@@ -1913,6 +1935,9 @@ + } + else { + if (value >= 0.0) { ++#if defined(SPARC64_WORKAROUND) ++ (void)sparc64_workaround_modf(value, &value); ++#else + #if defined(HAS_MODFL) || defined(LONG_DOUBLE_EQUALS_DOUBLE) + (void)Perl_modf(value, &value); + #else +@@ -1920,6 +1945,7 @@ + (void)Perl_modf(tmp, &tmp); + value = (NV)tmp; + #endif ++#endif /* SPARC64_WORKAROUND */ + } + else { + #if defined(HAS_MODFL) || defined(LONG_DOUBLE_EQUALS_DOUBLE) diff --git a/lang/perl5/patches/patch-ae b/lang/perl5/patches/patch-ae new file mode 100644 index 00000000000..4e41088bd59 --- /dev/null +++ b/lang/perl5/patches/patch-ae @@ -0,0 +1,51 @@ +$NetBSD: patch-ae,v 1.8 2001/09/05 17:13:41 jlam Exp $ + +--- regcomp.c.orig Wed Mar 21 21:05:02 2001 ++++ regcomp.c Sat Sep 1 03:57:59 2001 +@@ -541,6 +541,17 @@ + cl->flags |= ANYOF_EOS; + } + ++/* ++ * There are strange code-generation bugs caused on sparc64 by gcc-2.95.2. ++ * These need to be revisited when a newer toolchain becomes available. ++ */ ++#if defined(__sparc64__) && defined(__GNUC__) ++#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96) ++#undef SPARC64_WORKAROUND ++#define SPARC64_WORKAROUND 1 ++#endif ++#endif ++ + /* REx optimizer. Converts nodes into quickier variants "in place". + Finds fixed substrings. */ + +@@ -1076,11 +1087,28 @@ + int counted = mincount != 0; + + if (data->last_end > 0 && mincount != 0) { /* Ends with a string. */ ++#if defined(SPARC64_WORKAROUND) ++ I32 b = 0; ++ STRLEN l = 0; ++ char *s = NULL; ++ I32 old = 0; ++ ++ if (pos_before >= data->last_start_min) ++ b = pos_before; ++ else ++ b = data->last_start_min; ++ ++ l = 0; ++ s = SvPV(data->last_found, l); ++ old = b - data->last_start_min; ++ ++#else + I32 b = pos_before >= data->last_start_min + ? pos_before : data->last_start_min; + STRLEN l; + char *s = SvPV(data->last_found, l); + I32 old = b - data->last_start_min; ++#endif + + if (UTF) + old = utf8_hop((U8*)s, old) - (U8*)s; diff --git a/lang/perl5/pkg/MESSAGE b/lang/perl5/pkg/MESSAGE new file mode 100644 index 00000000000..a1c09932199 --- /dev/null +++ b/lang/perl5/pkg/MESSAGE @@ -0,0 +1,11 @@ +====================================================================== +$NetBSD: MESSAGE,v 1.1 2001/09/05 17:13:41 jlam Exp $ + +Note: Perl no longer installs manual pages for Perl library functions, +such as "open" or "Data::Dumper", into section 3 of the system manual +("man3"). + +Use the "perldoc" program instead to obtain documentation for Perl +library functions. + +====================================================================== diff --git a/lang/perl5/pkg/PLIST b/lang/perl5/pkg/PLIST index 2ab0546ba31..9de5e4a545a 100644 --- a/lang/perl5/pkg/PLIST +++ b/lang/perl5/pkg/PLIST @@ -1,2 +1,3 @@ -@comment $NetBSD: PLIST,v 1.10 2000/09/05 09:20:44 jlam Exp $ -@comment this plist intentionally left empty +@comment $NetBSD: PLIST,v 1.11 2001/09/05 17:13:41 jlam Exp $ +share/mk/bsd.perl.mk +@unexec rm -f %D/${PERL5_ARCHLIB}/perllocal.pod |