summaryrefslogtreecommitdiff
path: root/lang/perl5
diff options
context:
space:
mode:
authorjlam <jlam>2001-09-05 17:13:40 +0000
committerjlam <jlam>2001-09-05 17:13:40 +0000
commitf3adbc2399ca487a6c896783619da9ce82fce688 (patch)
tree467c0c79b247b5a4a1bd5d528d1051917d34a847 /lang/perl5
parent3792021d80967e4d218f6bbd1a60ecb0532e7cac (diff)
downloadpkgsrc-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.
Diffstat (limited to 'lang/perl5')
-rw-r--r--lang/perl5/Makefile128
-rw-r--r--lang/perl5/distinfo9
-rw-r--r--lang/perl5/patches/patch-aa17
-rw-r--r--lang/perl5/patches/patch-ab41
-rw-r--r--lang/perl5/patches/patch-ac20
-rw-r--r--lang/perl5/patches/patch-ad51
-rw-r--r--lang/perl5/patches/patch-ae51
-rw-r--r--lang/perl5/pkg/MESSAGE11
-rw-r--r--lang/perl5/pkg/PLIST5
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