Subject: Pending perl changes
To: None <tech-pkg@netbsd.org>
From: Johnny C. Lam <jlam@netbsd.org>
List: tech-pkg
Date: 07/15/2005 05:10:58
--azLHFNyN32YCQGCU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

I'm going to be committing my massive Perl changes next week.  I've
attached a diff of lang/perl5 for people that want to look it over
and test it.  After applying the diff, you may need to remove
lang/perl5/MESSAGE.  This diff also updates Perl to 5.8.7.  No changes
to most p5-* packages should be needed, though some packages may need
minor changes.  Those will be taken care of in the same commit, though
I don't have those changes available yet.

	Cheers,

	-- Johnny Lam <jlam@NetBSD.org>

--azLHFNyN32YCQGCU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="perl.diff"

Index: MESSAGE
===================================================================
RCS file: MESSAGE
diff -N MESSAGE
--- MESSAGE	24 Jun 2005 06:43:45 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,9 +0,0 @@
-===========================================================================
-$NetBSD: MESSAGE,v 1.5 2005/06/24 06:43:45 jlam Exp $
-
-${PKGNAME} will use the following directory as the default
-location of the site-specific Perl modules:
-
-	${PERL5_SITELIB}
-
-===========================================================================
Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl5/Makefile,v
retrieving revision 1.96
diff -u -r1.96 Makefile
--- Makefile	13 Jul 2005 15:20:29 -0000	1.96
+++ Makefile	15 Jul 2005 05:03:27 -0000
@@ -6,14 +6,15 @@
 PERL5_SNAPSHOT=	# empty
 PERL5_RC_VERS=	# empty
 
-PERL5_VERS=	5.8.6
+PERL5_VERS=	5.8.7
 CATEGORIES=	lang devel perl5
 EXTRACT_SUFX=	.tar.bz2
+WRKSRC=		${WRKDIR}/${DISTNAME}
 
 .if empty(PERL5_SNAPSHOT) && empty(PERL5_RC_VERS)
 DISTNAME=	perl-${PERL5_VERS}
 PKGNAME=	perl-${PERL5_VERS}
-PKGREVISION=	6
+PKGREVISION=	# empty
 MASTER_SITES=	${MASTER_SITE_PERL_CPAN:S,/modules/by-module/$,/src/,}
 .else
 .  if !empty(PERL5_SNAPSHOT)
@@ -41,19 +42,32 @@
 		p5-Devel-DProf-[0-9]* p5-Devel-Peek-[0-9]* \
 		perl-mk-[0-9]* perl-thread-[0-9]*
 
-PKG_INSTALLATION_TYPES=	overwrite pkgviews
+.include "../../mk/bsd.prefs.mk"
+
+PERL5_API_VERS?=	unknown
+.if exists(${WRKSRC}/patchlevel.h)
+PERL5_API_VERS_cmd=							\
+	${AWK} '/\#define[ 	]*PERL_API_REVISION/ { R = $$3 }	\
+		/\#define[ 	]*PERL_API_VERSION/ { r = "."$$3 }	\
+		/\#define[ 	]*PERL_API_SUBVERSION/ { s = "."$$3 }	\
+		END { printf "%s%s%s\n", R, r, s }'			\
+		${WRKSRC}/patchlevel.h
+PERL5_API_VERS=		${PERL5_API_VERS_cmd:sh}
+.endif
+
+PERL5=			${PREFIX}/bin/perl${PERL5_VERS}
+PERL5_PERLBASE=		${PREFIX}/lib/perl5
+PERL5_SITEBASE=		${PREFIX}/lib/perl5/site_perl
+PERL5_VENDORBASE=	${PREFIX}/lib/perl5/vendor_perl
 
 .include "../../mk/compiler.mk"
 
 HAS_CONFIGURE=		yes
 CONFIGURE_SCRIPT=	./Configure
 CONFIGURE_ARGS+=	-sde
-CONFIGURE_ARGS+=	-Dprefix="${PREFIX}"
-CONFIGURE_ARGS+=	-Dscriptdir="${PREFIX}/bin"
 CONFIGURE_ARGS+=	-Darchname="${MACHINE_ARCH}-${LOWER_OPSYS}"
-CONFIGURE_ARGS+=	-Dcc="${CC}"
-CONFIGURE_ARGS+=	-Doptimize="${CFLAGS}"
-CONFIGURE_ARGS+=	-Dinstallstyle="lib/perl5"
+CONFIGURE_ARGS+=	-Dcc=${CC:Q}
+CONFIGURE_ARGS+=	-Doptimize=${CFLAGS:Q}
 CONFIGURE_ARGS+=	-Duseshrplib
 CONFIGURE_ARGS+=	-Ui_malloc
 CONFIGURE_ARGS+=	-Uusemymalloc
@@ -62,31 +76,43 @@
 
 TEST_TARGET=		test
 
-# Install Perl man3 pages into a private directory under the normal
-# Perl installation.  Also install site-specific Perl man3 pages into a
-# private directory within site_perl.  This avoids manpage conflicts
-# between 3rd-party modules, the standard Perl library, and other
-# packages.
-#
+###
+### Installation directories for "perl", "site", and "vendor" bits.
+###
+CONFIGURE_ARGS+=	-Dinstallstyle="lib/perl5"
+CONFIGURE_ARGS+=	-Dprefix=${PREFIX:Q}
+CONFIGURE_ARGS+=	-Dsiteprefix=${PREFIX:Q}
+CONFIGURE_ARGS+=	-Dvendorprefix=${PREFIX:Q}
+
+# The Perl Configure script will install scripts into "*/script"
+# directories if they exist, so override with explicit settings.
+#
+CONFIGURE_ARGS+=	-Dscriptdir=${PERL5_PERLBASE:Q}/bin
+CONFIGURE_ARGS+=	-Dsitescript=${PERL5_SITEBASE:Q}/bin
+CONFIGURE_ARGS+=	-Dvendorscript=${PERL5_VENDORBASE:Q}/bin
+
+# Put the API-specific files into API-specific directories instead
+# of the default version-specific directories.
+#
+CONFIGURE_ARGS+=	-Dprivlib=${PERL5_PERLBASE:Q}/${PERL5_API_VERS}
+CONFIGURE_ARGS+=	-Dsitelib=${PERL5_SITEBASE:Q}/${PERL5_API_VERS}
+CONFIGURE_ARGS+=	-Dvendorlib=${PERL5_VENDORBASE:Q}/${PERL5_API_VERS}
+
+# Avoid manpage conflicts between the standard Perl library, 3rd-party
+# modules, and other packages.
+#
+CONFIGURE_ARGS+=	-Dman1ext="1"
+CONFIGURE_ARGS+=	-Dman1dir=${PERL5_PERLBASE:Q}/man/man1
+CONFIGURE_ARGS+=	-Dsiteman1dir=${PERL5_SITEBASE:Q}/man/man1
+CONFIGURE_ARGS+=	-Dvendorman1dir=${PERL5_VENDORBASE:Q}/man/man1
 CONFIGURE_ARGS+=	-Dman3ext="3"
-CONFIGURE_ARGS+=	-Dman3dir="${PERL5_PRIVLIB}/man/man3"
-CONFIGURE_ARGS+=	-Dsiteman3dir="${PERL5_SITEPERL}/man/man3"
-
-# Ensure that the Perl man1 pages go into ${PREFIX}/man/man1 and not
-# into some other platform-specific location kindly "guessed" by the
-# Configure script.
-#
-CONFIGURE_ARGS+=	-Dman1dir="${PREFIX}/man/man1"
-
-# The site directories are all relative to the perl view.
-CONFIGURE_ARGS+=	-Dsiteprefix="${VIEWBASE}"
-CONFIGURE_ARGS+=	-Dsiteman1dir="${VIEWBASE}/man/man1"
-
-.include "../../mk/bsd.prefs.mk"
+CONFIGURE_ARGS+=	-Dman3dir=${PERL5_PERLBASE:Q}/man/man3
+CONFIGURE_ARGS+=	-Dsiteman3dir=${PERL5_SITEBASE:Q}/man/man3
+CONFIGURE_ARGS+=	-Dvendorman3dir=${PERL5_VENDORBASE:Q}/man/man3
 
 .if ${OPSYS} == "Darwin"
 #
-# The perl build attempts to work around case-insensitivity problems on
+# The Perl build attempts to work around case-insensitivity problems on
 # HFS filesystems by using GNUmakefiles, so we need to use GNU make.
 #
 USE_TOOLS+=	gmake
@@ -95,6 +121,7 @@
 # Perl embeds the full paths to the following tools in several installed
 # files, so make sure the paths to the ones in ${TOOLS_DIR} aren't used.
 #
+PKGSRC_USE_TOOLS+=	basename
 USE_TOOLS+=		hostname ln sed test
 CONFIGURE_ARGS+=	-Daphostname=${TOOLS_HOSTNAME_CMD:Q}
 CONFIGURE_ARGS+=	-Dln=${TOOLS_LN:Q}
@@ -172,51 +199,47 @@
 PERL5_USE_THREADS=	no
 .endif
 
-.if !empty(PERL5_USE_THREADS:M[nN][oO])
-CONFIGURE_ARGS+=	-Uuseithreads
-.else
+PKG_OPTIONS_VAR=	PKG_OPTIONS.perl
+PKG_SUPPORTED_OPTIONS=	threads
+.if !empty(PERL5_USE_THREADS:M[yY][eE][sS])
+PKG_SUGGESTED_OPTIONS=	threads
+.endif
+.include "../../mk/bsd.options.mk"
+
+.if !empty(PKG_OPTIONS:Mthreads)
 .  include "../../mk/pthread.buildlink3.mk"
 CONFIGURE_ARGS+=	-Duseithreads
 CFLAGS+=		${PTHREAD_CFLAGS}
 PERL5_HINTS_LDFLAGS+=	${PTHREAD_LDFLAGS}
 PERL5_HINTS_LDDLFLAGS+=	${PTHREAD_LDFLAGS}
 LIBSWANTED+=		${PTHREAD_LIBS:M-l*:S/^-l//}
+.else
+CONFIGURE_ARGS+=	-Uuseithreads
 .endif
 
 .if !empty(LIBSWANTED)
-CONFIGURE_ARGS+=	-Dlibswanted="${LIBSWANTED}"
+CONFIGURE_ARGS+=	-Dlibswanted=${LIBSWANTED:Q}
 .endif
 
 .include "../../mk/compiler.mk"
 
 .if ${OPSYS} == "IRIX"
 .  if ${ABI} == "64"
-CONFIGURE_ARGS+=	-Dcc='${CC} -64' -Duse64bitint
+CONFIGURE_ARGS+=	-Dcc=${CC:Q}" -64" -Duse64bitint
 .  else
-CONFIGURE_ARGS+=	-Dcc='${CC} -n32'
+CONFIGURE_ARGS+=	-Dcc=${CC:Q}" -n32"
 .  endif
 .endif
 
-PERL5=			${PREFIX}/bin/perl${PERL5_VERS}
-PERL5_PRIVLIB=		${PREFIX}/lib/perl5/${PERL5_VERS}
-PERL5_SITEPERL=		${VIEWBASE}/lib/perl5/site_perl
-PERL5_SITELIB=		${VIEWBASE}/lib/perl5/site_perl/${PERL5_VERS}
-PLIST_SUBST+=		PERL5_SITEPERL=${PERL5_SITEPERL:S/^${PREFIX}\///}
-PLIST_SUBST+=		PERL5_SITELIB=${PERL5_SITELIB:S/^${PREFIX}\///}
-MESSAGE_SUBST+=		PERL5_SITELIB=${PERL5_SITELIB}
-
-# Some platforms may want the directory mode not to be 0755.  This is,
-# unfortunately, hardcoded in quite a few places in Perl.  So let's substitute
-# what pkgsrc said instead.
-post-patch:
-.if ${PKGDIRMODE} != "755"
-.  for f in installhtml installman installperl lib/ExtUtils/Install.pm
-	cd ${WRKSRC} && \
-		${MV} -f ${f} ${f}.dirmode && \
-		${SED} -e 's/755/${PKGDIRMODE}/g;/umask(/d' \
-		${f}.dirmode >${f}
-.  endfor
-.endif
+# Some platforms may want the directory mode not to be 0755.  This
+# is, unfortunately, hardcoded in quite a few places in Perl, so
+# let's substitute what pkgsrc says instead.
+#
+SUBST_CLASSES+=		dirmode
+SUBST_STAGE.dirmode=	post-patch
+SUBST_FILES.dirmode=	installhtml installman installperl		\
+			lib/ExtUtils/Install.pm
+SUBST_SED.dirmode=	-e "s/755/${PKGDIRMODE}/g;/umask(/d"
 
 # It's tough to guess which hints file will be used, so add our modifications
 # to all of them:
@@ -228,63 +251,64 @@
 	hintdir="${WRKSRC}/hints";					\
 	for hints in $${hintdir}/*.sh; do				\
 		${CHMOD} +w $${hints};					\
-		( ${ECHO} "";						\
+		{ ${ECHO} "";						\
 		  ${ECHO} "cat > UU/pkgsrc.cbu <<'EOCBU'";		\
 		  ${ECHO} "# This script UU/pkgsrc.cbu will get 'called-back' by Configure to set"; \
 		  ${ECHO} '# linker options after all other call-back scripts have been invoked.'; \
 		  ${ECHO} 'ldflags="${PERL5_HINTS_LDFLAGS} $$ldflags"';	\
 		  ${ECHO} 'lddlflags="${PERL5_HINTS_LDFLAGS} $$lddlflags"'; \
 		  ${ECHO} "EOCBU";					\
-		) >> $${hints};						\
+		} >> $${hints};						\
 	done
 	hintdir="${WRKSRC}/hints";					\
 	for hints in $${hintdir}/*.sh; do				\
-		( ${ECHO} "";						\
+		{ ${ECHO} "";						\
 		  ${ECHO} "# Set pkgsrc defaults for library and header search paths."; \
 		  ${ECHO} 'locincpth="${LOCINCPATH}"';			\
 		  ${ECHO} 'loclibpth="${LOCLIBPATH}"';			\
-		) >> $${hints};						\
+		} >> $${hints};						\
 	done
 .if !empty(SYSLIBPATH)
 	hintdir="${WRKSRC}/hints";					\
 	for hints in $${hintdir}/*.sh; do				\
-		( ${ECHO} "glibpth='${SYSLIBPATH}'";			\
-		) >> $${hints};						\
+		{ ${ECHO} "glibpth='${SYSLIBPATH}'"; } >> $${hints};	\
 	done
 .endif
 
-WRKSRC_PERL5=	${WRKSRC}/perl
 PLIST_SRC=	${WRKDIR}/.PLIST_SRC
 PLIST_FILE_SED=	-e "s,[ 	].*,," -e "s,/\./,/,g" -e "s,${PREFIX}/,,"
 PLIST_DIR_SED=	${PLIST_FILE_SED}					\
 		-e "s,^,@unexec \${RMDIR} -p %D/,"			\
 		-e "s,/[^/]*$$, 2>/dev/null || ${TRUE},"		\
 
+INSTALLATION_DIRS=	man/man1
+
 post-install:
-	${RM} -f ${PREFIX}/bin/perl ${PREFIX}/bin/perl${PERL5_VERS}
-	${INSTALL_PROGRAM_DIR} ${PREFIX}/bin
-	${INSTALL_PROGRAM} ${WRKSRC_PERL5} ${PREFIX}/bin/perl${PERL5_VERS}
-	${LN} -f ${PREFIX}/bin/perl${PERL5_VERS} ${PREFIX}/bin/perl
-.if defined(_STRIPFLAG_INSTALL) && !empty(_STRIPFLAG_INSTALL)
-	if [ -x ${PREFIX}/bin/a2p ]; then				\
+	${RM} -f ${WRKDIR}/perlman
+	${TOUCH} ${WRKDIR}/perlman
+	${LS} -1 ${PERL5_PERLBASE}/man/man1/perl*.1 |			\
+	while read src; do						\
+		dest=${PREFIX}/man/man1/`${BASENAME} $$src`;		\
+		${LN} -sf $$src $$dest;					\
+		${ECHO} "$$dest" >> ${WRKDIR}/perlman;			\
+	done
+	if ${TEST} -x ${PREFIX}/bin/a2p; then				\
 		strip ${PREFIX}/bin/a2p;				\
 	fi
-.endif
 	# Generate the PLIST template
 	eval `${PERL5} -V:installarchlib 2>/dev/null`;			\
 	eval `${PERL5} -V:installsitearch 2>/dev/null`;			\
-	sitearch=`${ECHO} $$installsitearch | ${SED} ${PLIST_FILE_SED}`; \
+	eval `${PERL5} -V:installvendorarch 2>/dev/null`;		\
 	${RMDIR} -p $$installsitearch 2>/dev/null || ${TRUE};		\
+	${RMDIR} -p $$installvendorarch 2>/dev/null || ${TRUE};		\
 	packlist="$$installarchlib/.packlist";				\
-	( ${ECHO} "@unexec ${RM} -f %D/$$sitearch/perllocal.pod";	\
-	  ${ECHO} "@unexec ${RMDIR} -p %D/$$sitearch 2>/dev/null || ${TRUE}"; \
-	  ${CAT} ${PKGDIR}/PLIST;					\
+	{ ${CAT} ${PKGDIR}/PLIST;					\
 	  ${ECHO} "@comment The following lines are automatically generated"; \
 	  ${ECHO} "@comment from the installed .packlist files.";	\
-	) > ${PLIST_SRC};						\
-	( ${ECHO} "$$packlist" && ${CAT} $$packlist )			\
-	| ${SED} ${PLIST_FILE_SED} | ${SORT} -u >> ${PLIST_SRC};	\
-	( ${ECHO} "$$packlist" && ${CAT} $$packlist )			\
-	| ${SED} ${PLIST_DIR_SED} | ${SORT} -ur >> ${PLIST_SRC}
+	} > ${PLIST_SRC};						\
+	{ ${ECHO} "$$packlist"; ${CAT} ${WRKDIR}/perlman $$packlist; }	\
+		| ${SED} ${PLIST_FILE_SED} | ${SORT} -u >> ${PLIST_SRC}; \
+	{ ${ECHO} "$$packlist"; ${CAT} ${WRKDIR}/perlman $$packlist; }	\
+		| ${SED} ${PLIST_DIR_SED} | ${SORT} -ur >> ${PLIST_SRC}
 
 .include "../../mk/bsd.pkg.mk"
Index: PLIST
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl5/PLIST,v
retrieving revision 1.4
diff -u -r1.4 PLIST
--- PLIST	24 Jun 2005 06:43:45 -0000	1.4
+++ PLIST	15 Jul 2005 05:03:27 -0000
@@ -1,5 +1 @@
 @comment $NetBSD: PLIST,v 1.4 2005/06/24 06:43:45 jlam Exp $
-@unexec ${RMDIR} -p %D/${PERL5_SITEPERL}/man/man3 2>/dev/null || ${TRUE}
-@unexec ${RMDIR} -p %D/${PERL5_SITEPERL}/man 2>/dev/null || ${TRUE}
-@unexec ${RMDIR} -p %D/${PERL5_SITEPERL} 2>/dev/null || ${TRUE}
-@unexec ${RMDIR} -p %D/${PERL5_SITELIB} 2>/dev/null || ${TRUE}
Index: buildlink3.mk
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl5/buildlink3.mk,v
retrieving revision 1.24
diff -u -r1.24 buildlink3.mk
--- buildlink3.mk	24 Jun 2005 06:43:45 -0000	1.24
+++ buildlink3.mk	15 Jul 2005 05:03:27 -0000
@@ -14,25 +14,26 @@
 
 .if !empty(PERL5_BUILDLINK3_MK:M+)
 USE_TOOLS+=			perl
+PERL5_REQD+=			5.8.7
 TOOLS_DEPENDS.perl=		# buildlink3 will handle the dependency
-BUILDLINK_DEPENDS.perl+=	{perl>=${PERL5_REQD},perl-thread>=${PERL5_REQD}}
-BUILDLINK_RECOMMENDED.perl+=	perl>=5.8.5nb6
+BUILDLINK_DEPENDS.perl+=	perl>=${PERL5_REQD}
 BUILDLINK_PKGSRCDIR.perl?=	../../lang/perl5
 
-.if defined(USE_PERL5) && !empty(USE_PERL5:Mbuild)
+.  if defined(USE_PERL5) && !empty(USE_PERL5:Mbuild)
 BUILDLINK_DEPMETHOD.perl?=	build
-.endif
-.if defined(TOOLS_DEPMETHOD.perl) && !empty(TOOLS_DEPMETHOD.perl:MBUILD_DEPENDS)
+.  endif
+.  if defined(TOOLS_DEPMETHOD.perl) && \
+      !empty(TOOLS_DEPMETHOD.perl:MBUILD_DEPENDS)
 BUILDLINK_DEPMETHOD.perl?=	build
-.endif
+.  endif
 
 PERL5_OPTIONS?=		# empty
-.if !empty(PERL5_OPTIONS:Mthreads)
+.  if !empty(PERL5_OPTIONS:Mthreads)
 USE_PKGINSTALL=		yes
 INSTALL_EXTRA_TMPL+=	${.CURDIR}/../../lang/perl5/files/install.tmpl
-.endif
+.  endif
 
-.if ${PKG_INSTALLATION_TYPE} == "overwrite"
+.  if ${PKG_INSTALLATION_TYPE} == "overwrite"
 #
 # Perl keeps headers and odd libraries in an odd path not caught by the
 # default BUILDLINK_FILES_CMD, so name them to be symlinked into
@@ -41,8 +42,7 @@
 BUILDLINK_FILES.perl=							\
 	${PERL5_SUB_INSTALLARCHLIB}/CORE/*				\
 	${PERL5_SUB_INSTALLARCHLIB}/auto/DynaLoader/DynaLoader.a
-.endif
-
+.  endif
 .endif  # PERL5_BUILDLINK3_MK
 
 BUILDLINK_DEPTH:=	${BUILDLINK_DEPTH:S/+$//}
Index: distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl5/distinfo,v
retrieving revision 1.22
diff -u -r1.22 distinfo
--- distinfo	24 Jun 2005 06:43:45 -0000	1.22
+++ distinfo	15 Jul 2005 05:03:27 -0000
@@ -1,24 +1,22 @@
 $NetBSD: distinfo,v 1.22 2005/06/24 06:43:45 jlam Exp $
 
-SHA1 (perl-5.8.6.tar.bz2) = 5267c5b4900a995a10e4fc56fe10a6852004c29b
-RMD160 (perl-5.8.6.tar.bz2) = 52fdee3caecf67417a9c081b7aae84807235cb27
-Size (perl-5.8.6.tar.bz2) = 9693085 bytes
-SHA1 (patch-aa) = 3c16c599dae752cea4143ca48071118ece5925a4
+SHA1 (perl-5.8.7.tar.bz2) = c9477c6fe76b200033694bdc555a0276523d4228
+RMD160 (perl-5.8.7.tar.bz2) = 110c286d73fd89e25da8ea394e763f209a76d283
+Size (perl-5.8.7.tar.bz2) = 9839086 bytes
+SHA1 (patch-aa) = 03e6d0683625a3da30582abb89646b88cde84ea9
 SHA1 (patch-ae) = 044ac094cd475a16483552aa6f1bde03bd11f592
-SHA1 (patch-ah) = cb103c14090b2d61720ee9b555b32085c8eeb810
+SHA1 (patch-ah) = 7847562d35cd4834a45139b6a8cfe766aa45fa0a
+SHA1 (patch-al) = 7b86ec658c09077bec513eadc02006525a548d6f
+SHA1 (patch-am) = f82f8fd7fa372f1d47b057b6051613d66dc4bc23
+SHA1 (patch-an) = 25c0991dba16ebe11422a97f544cb100e8da56b8
 SHA1 (patch-ba) = 096835f71a69f29e50bdad47944afa838dba5aec
 SHA1 (patch-bd) = 9f96ba1912f2a8db93db31f7a63c0b49a045318d
-SHA1 (patch-be) = 9f667f33ea24300a5580db84d0978ca53f126f29
-SHA1 (patch-bf) = 9bc5690b41a70617cde89b805184a8d5605d20d1
-SHA1 (patch-ca) = 3198a5f49c2a850b1ea1f5c6f0738f45da505924
-SHA1 (patch-cb) = 5eec09e832735d2e59fd82f7043fa78ee08cbd0d
+SHA1 (patch-ca) = 8eef6a9f96b8f1c6a7c34b521b7c633d396757e3
+SHA1 (patch-cb) = b4a3e81675bd67d88522debb02f49dda82542ef5
 SHA1 (patch-cc) = b04ea30ac47ae0748aa6b6c83c8de0396ace349f
-SHA1 (patch-cd) = d9420f57f036567abac821a8144768a2a7057b47
-SHA1 (patch-ce) = c7d2defd2cfa872c1f6651678bc3de6cd7aeaf34
-SHA1 (patch-cf) = 23cf46c8d683b688878433ec9b33f3c65528cd28
-SHA1 (patch-cg) = e1b56aaa40934f78298d1fd9303fbae33c472d8e
-SHA1 (patch-ch) = 6cfd77bba102a4bca82576f061ba60c1610c4d07
-SHA1 (patch-ci) = 89bc6e67b18ca903cb3791fd598fd579bc48298b
+SHA1 (patch-ce) = 6b1efab32c6bc28e0faf7522322e6d805eb21730
+SHA1 (patch-ch) = 028439dde97f1d5a94fbd571a59fd0ab2c5b3b07
+SHA1 (patch-ci) = 908a8bb35c088b994bde49707ab1536b4ab3d7a4
 SHA1 (patch-cj) = 680b7161d7530825376b9d5c108fc01f15768e5e
 SHA1 (patch-ck) = 28207b8186c9ad194a1edc696159915bc16d1097
 SHA1 (patch-cl) = 8553c83e721f5ae43a5f6e0e4d2b70510b69e77c
Index: module.mk
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl5/module.mk,v
retrieving revision 1.47
diff -u -r1.47 module.mk
--- module.mk	13 Jul 2005 18:01:31 -0000	1.47
+++ module.mk	15 Jul 2005 05:03:27 -0000
@@ -34,10 +34,6 @@
 
 .include "../../mk/bsd.prefs.mk"
 
-BUILDLINK_DEPMETHOD.perl+=	full
-
-BUILDING_PERL5?=		no
-BUILDING_MODULE_BUILD?=		no
 PERL5_MODULE_TYPE?=		MakeMaker
 
 .if (${PERL5_MODULE_TYPE} != "MakeMaker") && \
@@ -45,119 +41,159 @@
 PKG_FAIL_REASON+=	"\`\`${PERL5_MODULE_TYPE}'' is not a supported PERL5_MODULE_TYPE."
 .endif
 
-.if empty(BUILDING_PERL5:M[yY][eE][sS])
-.  include "../../lang/perl5/buildlink3.mk"
+# Default test target for Perl modules
+TEST_TARGET?=		test
+
+.include "../../mk/compiler.mk"
+
+.if ${OPSYS} == "AIX"
+.  if !empty(CC_VERSION:Mgcc*)
+BROKEN=		Perl does not like building with GCC on AIX, please use a different compiler
+.  endif
+.endif
+
+.if ${PERL5_MODULE_TYPE} == "Module::Build"
+_PERL5_MODTYPE=		modbuild
+.elif ${PERL5_MODULE_TYPE} == "MakeMaker"
+_PERL5_MODTYPE=		makemaker
 .endif
 
-.if empty(BUILDING_MODULE_BUILD:M[yY][eE][sS]) && \
+
+###########################################################################
+###
+### Add the proper dependencies for using the specified module build
+### system.
+###
+
+BUILDLINK_DEPMETHOD.perl+=	full
+.include "../../lang/perl5/buildlink3.mk"
+
+.if empty(PKGPATH:Mdevel/p5-Module-Build) && \
     (${PERL5_MODULE_TYPE} == "Module::Build")
 BUILD_DEPENDS+=		p5-Module-Build>=0.2608nb1:../../devel/p5-Module-Build
 .endif
 
-.include "../../lang/perl5/vars.mk"
 
-PERL5_CONFIGURE?=	YES
+###########################################################################
+###
+### Target definitions (configure, build, install, etc.)
+###
+
+PERL5_CONFIGURE?=	yes
 PERL5_CONFIGURE_DIRS?=	${CONFIGURE_DIRS}
 
-# All pkgsrc-install perl modules are installed into the "site"
+MAKE_ENV+=	LC_ALL=C
+
+# All pkgsrc-installed Perl modules are installed into the "vendor"
 # directories.
 #
-MAKE_PARAMS+=		INSTALLDIRS=site
-
-.include "../../mk/compiler.mk"
-
-.if ${OPSYS} == "AIX"
-.if !empty(CC_VERSION:Mgcc*)
-BROKEN=		Perl does not like building with gcc on AIX, please use a different compiler
-.endif
-.endif
+MAKE_PARAMS.makemaker+=	INSTALLDIRS=vendor
+MAKE_PARAMS.modbuild+=	installdirs=vendor
 
-MAKE_ENV+=	LC_ALL=C
-.if ${PERL5_MODULE_TYPE} == "Module::Build"
-_CONF_ARG=	Build.PL
-.elif ${PERL5_MODULE_TYPE} == "MakeMaker"
-_CONF_ARG=	Makefile.PL ${MAKE_PARAMS}
-.endif
+MAKE_PARAMS+=	${MAKE_PARAMS.${_PERL5_MODTYPE}}
 
-.PHONY: perl5-configure
-perl5-configure:
+.PHONY: do-makemaker-configure
+do-makemaker-configure:
 	${_PKG_SILENT}${_PKG_DEBUG}					\
 	for dir in ${PERL5_CONFIGURE_DIRS}; do				\
-		if [ -f $$dir/Makefile.PL ]; then			\
+		if ${TEST} -f $$dir/Makefile.PL; then			\
 			( cd $$dir && ${SETENV} ${MAKE_ENV}		\
-			  ${PERL5} ${_CONF_ARG});		\
+			  ${PERL5} Makefile.PL ${MAKE_PARAMS} );	\
 		fi;							\
 	done
 
-.if defined(PERL5_CONFIGURE) && !empty(PERL5_CONFIGURE:M[yY][eE][sS])
-.  if target(do-configure)
-do-configure: perl5-configure
-.  else
-do-configure: perl5-configure
-	${_PKG_SILENT}${_PKG_DEBUG}${DO_NADA}
-.  endif
-.endif
+.PHONY: do-modbuild-configure
+do-modbuild-configure:
+	${_PKG_SILENT}${_PKG_DEBUG}					\
+	for dir in ${PERL5_CONFIGURE_DIRS}; do				\
+		if ${TEST} -f $$dir/Build.PL; then			\
+			( cd $$dir && ${SETENV} ${MAKE_ENV}		\
+			  ${PERL5} Build.PL ${MAKE_PARAMS} );		\
+		fi;							\
+	done
 
-# Repoint all of the site-specific variables to be under the perl5
-# module's ${PREFIX}.
-#
-.for _var_ in ${_PERL5_SITEVARS} INSTALLSCRIPT
-PERL5_${_var_}=		${PREFIX}/${PERL5_SUB_${_var_}}
-PERL5_MAKE_FLAGS+=	${_var_}="${PERL5_${_var_}}"
-.endfor
+.PHONY: perl5-configure
+perl5-configure: do-${_PERL5_MODTYPE}-configure
 
-.if ${PERL5_MODULE_TYPE} == "MakeMaker"
-#
-# The PREFIX in the generated Makefile will point to ${_PERL5_PREFIX},
-# so override its value to the module's ${PREFIX}.
-#
-PERL5_MAKE_FLAGS+=	PREFIX="${PREFIX}"
+.if !empty(PERL5_CONFIGURE:M[yY][eE][sS])
+do-configure: perl5-configure
 .endif
 
-.if ${PERL5_MODULE_TYPE} == "Module::Build"
-do-build:
+.PHONY: do-modbuild-build
+do-modbuild-build:
 	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ./Build
 
-do-test:
+.PHONY: do-modbuild-test
+do-modbuild-test:
 	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ./Build test
 
-do-install:
+.PHONY: do-modbuild-install
+do-modbuild-install:
 	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ./Build install
-.endif
 
-.if defined(DEFAULT_VIEW.perl)
-DEFAULT_VIEW.${PKGBASE}=	${DEFAULT_VIEW.perl}
-.endif
+.for _target_ in build test install
+.  if target(do-${_PERL5_MODTYPE}-${_target_})
+do-${_target_}: do-${_PERL5_MODTYPE}-${_target_}
+.  endif
+.endfor
 
-.if defined(PERL5_LDFLAGS) && !empty(PERL5_LDFLAGS)
-FIX_RPATH+=	PERL5_LDFLAGS
-LDFLAGS+=	${PERL5_LDFLAGS}
-.endif
+
+###########################################################################
+###
+### Make variable overrides
+###
 
 # MakeMaker provides two hooks, OPTIMIZE and OTHERLDFLAGS, to
 # customize the arguments passed to the preprocessor and linker,
 # respectively.
 #
-PERL5_MAKE_FLAGS+=	OPTIMIZE="${CFLAGS} ${CPPFLAGS}"
+PERL5_MAKE_FLAGS.makemaker+=	OPTIMIZE=${CFLAGS:Q}" "${CPPFLAGS:Q}
 .if ${OBJECT_FMT} == "a.out"
-PERL5_MAKE_FLAGS+=	OTHERLDFLAGS="${LDFLAGS:S/-Wl,//g}"
+PERL5_MAKE_FLAGS.makemaker+=	OTHERLDFLAGS=${LDFLAGS:S/-Wl,//g:Q}
 .else
-PERL5_MAKE_FLAGS+=	OTHERLDFLAGS="${LDFLAGS}"
+PERL5_MAKE_FLAGS.makemaker+=	OTHERLDFLAGS=${LDFLAGS:Q}
+.endif
+
+# Repoint all of the vendor-specific variables to be under the perl5
+# module's ${PREFIX}.
+#
+.include "../../lang/perl5/vars.mk"
+.for _var_ in ${_PERL5_VARS}
+PERL5_MAKE_FLAGS.makemaker+=	${_var_}=${PERL5_${_var_}:Q}
+.endfor
+#
+# The PREFIX in the generated Makefile will point to ${_PERL5_PREFIX},
+# so override its value to the module's ${PREFIX}.
+#
+PERL5_MAKE_FLAGS.makemaker+=	PREFIX=${PREFIX:Q}
+
+PERL5_MAKE_FLAGS+=	${PERL5_MAKE_FLAGS.${_PERL5_MODTYPE}}
+MAKE_FLAGS+=		${PERL5_MAKE_FLAGS}
+
+.if defined(PERL5_LDFLAGS) && !empty(PERL5_LDFLAGS)
+FIX_RPATH+=	PERL5_LDFLAGS
+LDFLAGS+=	${PERL5_LDFLAGS}
 .endif
 
+
+###########################################################################
+###
+### Packlist -> PLIST generation
+###
+
 # Generate the PLIST from the files listed in PERL5_PACKLIST.
 .if defined(PERL5_PACKLIST)
-PERL5_PACKLIST_DIR?=	${PERL5_SITEARCH}
+PERL5_PACKLIST_DIR?=	${PERL5_INSTALLVENDORARCH}
 _PERL5_PACKLIST=	${PERL5_PACKLIST:S/^/${PERL5_PACKLIST_DIR}\//}
 PERL5_PLIST_COMMENT= \
-	( ${ECHO} "@comment The following lines are automatically generated"; \
-	  ${ECHO} "@comment from the installed .packlist files." )
+	{ ${ECHO} "@comment The following lines are automatically generated"; \
+	  ${ECHO} "@comment from the installed .packlist files."; }
 PERL5_PLIST_FILES= \
-	( ${CAT} ${_PERL5_PACKLIST}; for f in ${_PERL5_PACKLIST}; do [ ! -f $$f ] || ${ECHO} $$f; done ) \
+	{ ${CAT} ${_PERL5_PACKLIST}; for f in ${_PERL5_PACKLIST}; do ${TEST} ! -f "$$f" || ${ECHO} "$$f"; done; } \
 	| ${SED} -e "s,[ 	].*,," -e "s,/\./,/,g" -e "s,${PREFIX}/,," \
 	| ${SORT} -u
 PERL5_PLIST_DIRS= \
-	( ${CAT} ${_PERL5_PACKLIST}; for f in ${_PERL5_PACKLIST}; do [ ! -f $$f ] || ${ECHO} $$f; done ) \
+	{ ${CAT} ${_PERL5_PACKLIST}; for f in ${_PERL5_PACKLIST}; do ${TEST} ! -f "$$f" || ${ECHO} "$$f"; done; } \
 	| ${SED} -e "s,[ 	].*,," -e "s,/\./,/,g" -e "s,${PREFIX}/,," \
 		-e "s,^,@unexec \${RMDIR} -p %D/," \
 		-e "s,/[^/]*$$, 2>/dev/null || ${TRUE}," \
@@ -168,41 +204,4 @@
 GENERATE_PLIST+=	${PERL5_GENERATE_PLIST};
 .endif
 
-# The build and install stages require slightly different values for
-# INSTALLARCHLIB.  During the build, INSTALLARCHLIB refers to the
-# directory where libperl.so may be found, which should point into the
-# default view.  During the install, INSTALLARCHLIB refers to the
-# directory where the perllocal.pod file should be installed, which
-# should point into the package prefix.
-#
-.if empty(BUILDING_PERL5:M[yY][eE][sS])
-MAKE_FLAGS+=		${PERL5_MAKE_FLAGS}
-BUILD_MAKE_FLAGS=	${MAKE_FLAGS}
-BUILD_MAKE_FLAGS+=	INSTALLARCHLIB="${VIEWBASE}/${PERL5_SUB_INSTALLARCHLIB}"
-INSTALL_MAKE_FLAGS=	${MAKE_FLAGS}
-INSTALL_MAKE_FLAGS+=	INSTALLARCHLIB="${PREFIX}/${PERL5_SUB_INSTALLARCHLIB}"
-.endif
-
-# Remove the perllocal.pod file from the installation since we don't
-# bother keeping the file contents up-to-date anyway.
-#
-.if ${PKG_INSTALLATION_TYPE} == "pkgviews"
-post-install: perl5-post-install
-.endif
-
-.PHONY: perl5-post-install
-perl5-post-install:
-	${_PKG_SILENT}${_PKG_DEBUG}					\
-	for dir in							\
-	    ${PREFIX}/${PERL5_SUB_INSTALLARCHLIB}			\
-	    ${PERL5_INSTALLSITEARCH};					\
-	do								\
-		if [ -f $$dir/perllocal.pod ]; then			\
-			${RM} -f $$dir/perllocal.pod;			\
-		fi;							\
-	done
-
-# Default test target for perl5 modules
-TEST_TARGET?=	test
-
 .endif	# _PERL5_MODULE_MK
Index: vars.mk
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl5/vars.mk,v
retrieving revision 1.2
diff -u -r1.2 vars.mk
--- vars.mk	12 May 2005 20:59:29 -0000	1.2
+++ vars.mk	15 Jul 2005 05:03:27 -0000
@@ -6,18 +6,19 @@
 
 .include "../../mk/bsd.prefs.mk"
 
-_PERL5_SITEVARS=							\
-	INSTALLSITEBIN INSTALLSITELIB INSTALLSITEARCH			\
-	INSTALLSITEMAN1DIR INSTALLSITEMAN3DIR				\
-	SITELIBEXP SITEARCHEXP
+_PERL5_VARS=	INSTALLARCHLIB INSTALLSCRIPT				\
+		INSTALLVENDORBIN INSTALLVENDORSCRIPT			\
+		INSTALLVENDORLIB INSTALLVENDORARCH			\
+		INSTALLVENDORMAN1DIR INSTALLVENDORMAN3DIR
 
-_PERL5_SITEVAR.INSTALLSITEBIN=		installsitebin
-_PERL5_SITEVAR.INSTALLSITELIB=		installsitelib
-_PERL5_SITEVAR.INSTALLSITEARCH=		installsitearch
-_PERL5_SITEVAR.INSTALLSITEMAN1DIR=	installsiteman1dir
-_PERL5_SITEVAR.INSTALLSITEMAN3DIR=	installsiteman3dir
-_PERL5_SITEVAR.SITELIBEXP=		sitelibexp
-_PERL5_SITEVAR.SITEARCHEXP=		sitearchexp
+_PERL5_VAR.INSTALLARCHLIB=		installarchlib
+_PERL5_VAR.INSTALLSCRIPT=		installscript
+_PERL5_VAR.INSTALLVENDORBIN=		installvendorbin
+_PERL5_VAR.INSTALLVENDORSCRIPT=		installvendorscript
+_PERL5_VAR.INSTALLVENDORLIB=		installvendorlib
+_PERL5_VAR.INSTALLVENDORARCH=		installvendorarch
+_PERL5_VAR.INSTALLVENDORMAN1DIR=	installvendorman1dir
+_PERL5_VAR.INSTALLVENDORMAN3DIR=	installvendorman3dir
 
 .if defined(PERL5) && exists(${PERL5:Q})
 #
@@ -29,40 +30,17 @@
 	eval `${PERL5:Q} -V:prefix 2>/dev/null`; ${ECHO} $$prefix
 .  endif
 MAKEVARS+=	_PERL5_PREFIX
-.  if !defined(_PERL5_SITEPREFIX)
-_PERL5_SITEPREFIX!=	\
-	eval `${PERL5:Q} -V:siteprefix 2>/dev/null`; ${ECHO} $$siteprefix
-.  endif
-MAKEVARS+=	_PERL5_SITEPREFIX
 #
-# Define PERL5_SUB_* as the site variables minus the installation prefix
+# Define PERL5_SUB_* as the vendor variables minus the installation prefix
 # define later variables.
 #
-.  for _var_ in ${_PERL5_SITEVARS}
+.  for _var_ in ${_PERL5_VARS}
 .    if !defined(PERL5_SUB_${_var_})
 PERL5_SUB_${_var_}!=	\
-	eval `${PERL5:Q} -V:${_PERL5_SITEVAR.${_var_}} 2>/dev/null`;	\
-	${ECHO} $${${_PERL5_SITEVAR.${_var_}}} | ${SED} -e "s,^${_PERL5_SITEPREFIX}/,,"
+	eval `${PERL5:Q} -V:${_PERL5_VAR.${_var_}} 2>/dev/null`;	\
+	${ECHO} $${${_PERL5_VAR.${_var_}}} | ${SED} -e "s,^${_PERL5_PREFIX}/,,"
 .    endif
-MAKEVARS+=	PERL5_SUB_${_var_}
+PERL5_${_var_}?=	${PREFIX}/${PERL5_SUB_${_var_}}
+MAKEVARS+=		PERL5_SUB_${_var_}
 .  endfor
-
-.  if !defined(PERL5_SUB_INSTALLARCHLIB)
-PERL5_SUB_INSTALLARCHLIB!=	\
-	eval `${PERL5} -V:installarchlib 2>/dev/null`;			\
-	${ECHO} $$installarchlib | ${SED} -e "s,^${_PERL5_PREFIX}/,,"
-.  endif
-MAKEVARS+=	PERL5_SUB_INSTALLARCHLIB
-.  if !defined(PERL5_SUB_INSTALLSCRIPT)
-PERL5_SUB_INSTALLSCRIPT!=	\
-	eval `${PERL5} -V:installscript 2>/dev/null`;			\
-	${ECHO} $$installscript | ${SED} -e "s,^${_PERL5_PREFIX}/,,"
-.  endif
-MAKEVARS+=	PERL5_SUB_INSTALLSCRIPT
 .endif	# PERL5
-
-.if ${PKG_INSTALLATION_TYPE} == "overwrite"
-.  for _var_ in SITELIB SITEARCH ARCHLIB
-PERL5_${_var_}?=	${LOCALBASE}/${PERL5_SUB_INSTALL${_var_}}
-.  endfor
-.endif
Index: patches/patch-aa
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl5/patches/patch-aa,v
retrieving revision 1.26
diff -u -r1.26 patch-aa
--- patches/patch-aa	24 Jun 2005 06:43:45 -0000	1.26
+++ patches/patch-aa	15 Jul 2005 05:03:27 -0000
@@ -1,4 +1,4 @@
-$NetBSD: patch-aa,v 1.26 2005/06/24 06:43:45 jlam Exp $
+$NetBSD$
 
 --- lib/ExtUtils/MM_Unix.pm.orig	2004-01-05 17:34:59.000000000 -0500
 +++ lib/ExtUtils/MM_Unix.pm
@@ -48,3 +48,39 @@
  	    }
  	}
      }
+@@ -2480,13 +2480,13 @@ sub install {
+     my(@m);
+ 
+     push @m, q{
+-install :: all pure_install doc_install
++install :: all pure_install
+ 
+-install_perl :: all pure_perl_install doc_perl_install
++install_perl :: all pure_perl_install
+ 
+-install_site :: all pure_site_install doc_site_install
++install_site :: all pure_site_install
+ 
+-install_vendor :: all pure_vendor_install doc_vendor_install
++install_vendor :: all pure_vendor_install
+ 
+ pure_install :: pure_$(INSTALLDIRS)_install
+ 
+@@ -2519,7 +2519,7 @@ pure_site_install ::
+ 		$(INST_LIB) $(DESTINSTALLSITELIB) \
+ 		$(INST_ARCHLIB) $(DESTINSTALLSITEARCH) \
+ 		$(INST_BIN) $(DESTINSTALLSITEBIN) \
+-		$(INST_SCRIPT) $(DESTINSTALLSCRIPT) \
++		$(INST_SCRIPT) $(DESTINSTALLSITESCRIPT) \
+ 		$(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \
+ 		$(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR)
+ 	$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
+@@ -2532,7 +2532,7 @@ pure_vendor_install ::
+ 		$(INST_LIB) $(DESTINSTALLVENDORLIB) \
+ 		$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
+ 		$(INST_BIN) $(DESTINSTALLVENDORBIN) \
+-		$(INST_SCRIPT) $(DESTINSTALLSCRIPT) \
++		$(INST_SCRIPT) $(DESTINSTALLVENDORSCRIPT) \
+ 		$(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \
+ 		$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
+ 
Index: patches/patch-ah
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl5/patches/patch-ah,v
retrieving revision 1.6
diff -u -r1.6 patch-ah
--- patches/patch-ah	24 Jun 2005 06:43:46 -0000	1.6
+++ patches/patch-ah	15 Jul 2005 05:03:27 -0000
@@ -1,67 +1,91 @@
-$NetBSD: patch-ah,v 1.6 2005/06/24 06:43:46 jlam Exp $
+$NetBSD$
 
---- perl.c.orig	2004-11-23 10:16:56.000000000 -0500
+--- perl.c.orig	2005-04-22 10:14:27.000000000 -0400
 +++ perl.c
-@@ -4314,12 +4314,33 @@ S_init_perllib(pTHX)
+@@ -4391,45 +4391,12 @@ S_init_perllib(pTHX)
      }
  
  /* Use the ~-expanded versions of APPLLIB (undocumented),
 -    ARCHLIB PRIVLIB SITEARCH SITELIB VENDORARCH and VENDORLIB
-+    SITEARCH SITELIB ARCHLIB PRIVLIB VENDORARCH and VENDORLIB
++    SITEARCH SITELIB VENDORARCH VENDORLIB ARCHLIB and PRIVLIB
  */
  #ifdef APPLLIB_EXP
      incpush(APPLLIB_EXP, TRUE, TRUE, TRUE);
  #endif
  
-+#ifdef SITEARCH_EXP
-+    /* sitearch is always relative to sitelib on Windows for
-+     * DLL-based path intuition to work correctly */
-+#  if !defined(WIN32)
-+    incpush(SITEARCH_EXP, FALSE, FALSE, TRUE);
-+#  endif
-+#endif
-+
-+#ifdef SITELIB_EXP
-+#  if defined(WIN32)
-+    /* this picks up sitearch as well */
-+    incpush(SITELIB_EXP, TRUE, FALSE, TRUE);
-+#  else
-+    incpush(SITELIB_EXP, FALSE, FALSE, TRUE);
-+#  endif
-+#endif
-+
-+#ifdef SITELIB_STEM /* Search for version-specific dirs below here */
-+    incpush(SITELIB_STEM, FALSE, TRUE, TRUE);
-+#endif
-+
- #ifdef ARCHLIB_EXP
-     incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE);
- #endif
-@@ -4353,27 +4374,6 @@ S_init_perllib(pTHX)
-     incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE);
- #endif
- 
--#ifdef SITEARCH_EXP
--    /* sitearch is always relative to sitelib on Windows for
--     * DLL-based path intuition to work correctly */
--#  if !defined(WIN32)
--    incpush(SITEARCH_EXP, FALSE, FALSE, TRUE);
--#  endif
+-#ifdef ARCHLIB_EXP
+-    incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE);
 -#endif
--
--#ifdef SITELIB_EXP
--#  if defined(WIN32)
--    /* this picks up sitearch as well */
--    incpush(SITELIB_EXP, TRUE, FALSE, TRUE);
--#  else
--    incpush(SITELIB_EXP, FALSE, FALSE, TRUE);
--#  endif
+-#ifdef MACOS_TRADITIONAL
+-    {
+-	Stat_t tmpstatbuf;
+-    	SV * privdir = NEWSV(55, 0);
+-	char * macperl = PerlEnv_getenv("MACPERL");
+-	
+-	if (!macperl)
+-	    macperl = "";
+-	
+-	Perl_sv_setpvf(aTHX_ privdir, "%slib:", macperl);
+-	if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode))
+-	    incpush(SvPVX(privdir), TRUE, FALSE, TRUE);
+-	Perl_sv_setpvf(aTHX_ privdir, "%ssite_perl:", macperl);
+-	if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode))
+-	    incpush(SvPVX(privdir), TRUE, FALSE, TRUE);
+-	
+-   	SvREFCNT_dec(privdir);
+-    }
+-    if (!PL_tainting)
+-	incpush(":", FALSE, FALSE, TRUE);
+-#else
+-#ifndef PRIVLIB_EXP
+-#  define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl"
 -#endif
--
--#ifdef SITELIB_STEM /* Search for version-specific dirs below here */
--    incpush(SITELIB_STEM, FALSE, TRUE, TRUE);
+-#if defined(WIN32)
+-    incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE);
+-#else
+-    incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE);
 -#endif
 -
- #ifdef PERL_VENDORARCH_EXP
-     /* vendorarch is always relative to vendorlib on Windows for
+ #ifdef SITEARCH_EXP
+     /* sitearch is always relative to sitelib on Windows for
       * DLL-based path intuition to work correctly */
+@@ -4471,6 +4438,39 @@ S_init_perllib(pTHX)
+     incpush(PERL_VENDORLIB_STEM, FALSE, TRUE, TRUE);
+ #endif
+ 
++#ifdef ARCHLIB_EXP
++    incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE);
++#endif
++#ifdef MACOS_TRADITIONAL
++    {
++	Stat_t tmpstatbuf;
++    	SV * privdir = NEWSV(55, 0);
++	char * macperl = PerlEnv_getenv("MACPERL");
++	
++	if (!macperl)
++	    macperl = "";
++	
++	Perl_sv_setpvf(aTHX_ privdir, "%slib:", macperl);
++	if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode))
++	    incpush(SvPVX(privdir), TRUE, FALSE, TRUE);
++	Perl_sv_setpvf(aTHX_ privdir, "%ssite_perl:", macperl);
++	if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode))
++	    incpush(SvPVX(privdir), TRUE, FALSE, TRUE);
++	
++   	SvREFCNT_dec(privdir);
++    }
++    if (!PL_tainting)
++	incpush(":", FALSE, FALSE, TRUE);
++#else
++#ifndef PRIVLIB_EXP
++#  define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl"
++#endif
++#if defined(WIN32)
++    incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE);
++#else
++    incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE);
++#endif
++
+ #ifdef PERL_OTHERLIBDIRS
+     incpush(PERL_OTHERLIBDIRS, TRUE, TRUE, TRUE);
+ #endif
Index: patches/patch-al
===================================================================
RCS file: patches/patch-al
diff -N patches/patch-al
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-al	15 Jul 2005 05:03:27 -0000
@@ -0,0 +1,21 @@
+$NetBSD$
+
+--- lib/ExtUtils/MM_VMS.pm.orig	2004-01-05 17:34:59.000000000 -0500
++++ lib/ExtUtils/MM_VMS.pm
+@@ -1457,13 +1457,13 @@ sub install {
+     }
+ 
+     push @m, q[
+-install :: all pure_install doc_install
++install :: all pure_install
+ 	$(NOECHO) $(NOOP)
+ 
+-install_perl :: all pure_perl_install doc_perl_install
++install_perl :: all pure_perl_install
+ 	$(NOECHO) $(NOOP)
+ 
+-install_site :: all pure_site_install doc_site_install
++install_site :: all pure_site_install
+ 	$(NOECHO) $(NOOP)
+ 
+ pure_install :: pure_$(INSTALLDIRS)_install
Index: patches/patch-am
===================================================================
RCS file: patches/patch-am
diff -N patches/patch-am
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-am	15 Jul 2005 05:03:27 -0000
@@ -0,0 +1,55 @@
+$NetBSD$
+
+--- lib/ExtUtils/MakeMaker.pm.orig	2004-01-05 17:34:59.000000000 -0500
++++ lib/ExtUtils/MakeMaker.pm
+@@ -215,7 +215,7 @@ sub full_setup {
+     INSTALLMAN1DIR          INSTALLMAN3DIR
+     INSTALLSITEMAN1DIR      INSTALLSITEMAN3DIR
+     INSTALLVENDORMAN1DIR    INSTALLVENDORMAN3DIR
+-    INSTALLSCRIPT 
++    INSTALLSCRIPT   INSTALLSITESCRIPT  INSTALLVENDORSCRIPT
+     PERL_LIB        PERL_ARCHLIB 
+     SITELIBEXP      SITEARCHEXP 
+ 
+@@ -1075,7 +1075,7 @@ INSTALLDIRS according to the following t
+   INST_ARCHLIB   INSTALLARCHLIB  INSTALLSITEARCH     INSTALLVENDORARCH
+   INST_LIB       INSTALLPRIVLIB  INSTALLSITELIB      INSTALLVENDORLIB
+   INST_BIN       INSTALLBIN      INSTALLSITEBIN      INSTALLVENDORBIN
+-  INST_SCRIPT    INSTALLSCRIPT   INSTALLSCRIPT       INSTALLSCRIPT
++  INST_SCRIPT    INSTALLSCRIPT   INSTALLSITESCRIPT   INSTALLVENDORSCRIPT
+   INST_MAN1DIR   INSTALLMAN1DIR  INSTALLSITEMAN1DIR  INSTALLVENDORMAN1DIR
+   INST_MAN3DIR   INSTALLMAN3DIR  INSTALLSITEMAN3DIR  INSTALLVENDORMAN3DIR
+ 
+@@ -1527,7 +1527,7 @@ Defaults to $Config{installprivlib}.
+ =item INSTALLSCRIPT
+ 
+ Used by 'make install' which copies files from INST_SCRIPT to this
+-directory.
++directory if INSTALLDIRS is set to perl.
+ 
+ =item INSTALLSITEARCH
+ 
+@@ -1554,6 +1554,11 @@ $(SITEPREFIX)/man/man$(MAN*EXT).
+ 
+ If set to 'none', no man pages will be installed.
+ 
++=item INSTALLSITESCRIPT
++
++Used by 'make install' which copies files from INST_SCRIPT to this
++directory if INSTALLDIRS is set to site (default).
++
+ =item INSTALLVENDORARCH
+ 
+ Used by 'make install', which copies files from INST_ARCHLIB to this
+@@ -1578,6 +1583,11 @@ INSTALLDIRS=vendor.  Defaults to $(VENDO
+ 
+ If set to 'none', no man pages will be installed.
+ 
++=item INSTALLVENDORSCRIPT
++
++Used by 'make install' which copies files from INST_SCRIPT to this
++directory if INSTALLDIRS is set to vendor.
++
+ =item INST_ARCHLIB
+ 
+ Same as INST_LIB for architecture dependent files.
Index: patches/patch-an
===================================================================
RCS file: patches/patch-an
diff -N patches/patch-an
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-an	15 Jul 2005 05:03:27 -0000
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- lib/ExtUtils/MM_Any.pm.orig	2004-01-05 17:34:59.000000000 -0500
++++ lib/ExtUtils/MM_Any.pm
+@@ -57,7 +57,7 @@ sub installvars {
+     return qw(PRIVLIB SITELIB  VENDORLIB
+               ARCHLIB SITEARCH VENDORARCH
+               BIN     SITEBIN  VENDORBIN
+-              SCRIPT
++              SCRIPT  SITESCRIPT  VENDORSCRIPT
+               MAN1DIR SITEMAN1DIR VENDORMAN1DIR
+               MAN3DIR SITEMAN3DIR VENDORMAN3DIR
+              );
Index: patches/patch-be
===================================================================
RCS file: patches/patch-be
diff -N patches/patch-be
--- patches/patch-be	24 Jun 2005 06:43:47 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
-$NetBSD: patch-be,v 1.1 2005/06/24 06:43:47 jlam Exp $
-
---- lib/perl5db.pl.orig	2004-11-17 07:51:18.000000000 -0500
-+++ lib/perl5db.pl
-@@ -215,7 +215,7 @@ the TTY to use for debugging i/o.
- =item * noTTY 
- 
- if set, goes in NonStop mode.  On interrupt, if TTY is not set,
--uses the value of noTTY or F</tmp/perldbtty$$> to find TTY using
-+uses the value of noTTY or F<$HOME/.perldbtty$$> to find TTY using
- Term::Rendezvous.  Current variant is to have the name of TTY in this
- file.
- 
-@@ -6004,8 +6004,8 @@ sub setterm {
-             eval "require Term::Rendezvous;" or die;
- 
-             # See if we have anything to pass to Term::Rendezvous.
--            # Use /tmp/perldbtty$$ if not.
--            my $rv = $ENV{PERLDB_NOTTY} || "/tmp/perldbtty$$";
-+            # Use $HOME/.perldbtty$$ if not [CAN-2004-0976].
-+            my $rv = $ENV{PERLDB_NOTTY} || "$ENV{HOME}/.perldbtty$$";
- 
-             # Rendezvous and get the filehandles.
-             my $term_rv = new Term::Rendezvous $rv;
Index: patches/patch-bf
===================================================================
RCS file: patches/patch-bf
diff -N patches/patch-bf
--- patches/patch-bf	24 Jun 2005 06:43:47 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
-$NetBSD: patch-bf,v 1.1 2005/06/24 06:43:47 jlam Exp $
-
---- perlio.c.orig	2004-09-10 03:06:52.000000000 -0400
-+++ perlio.c
-@@ -454,7 +454,8 @@ PerlIO_debug(const char *fmt, ...)
-     va_list ap;
-     dSYS;
-     va_start(ap, fmt);
--    if (!dbg) {
-+    /* Tighten uid/gid checks [CAN-2005-0155] */
-+    if (!dbg && !PL_tainting && PL_uid == PL_euid && PL_gid == PL_egid) {
- 	char *s = PerlEnv_getenv("PERLIO_DEBUG");
- 	if (s && *s)
- 	    dbg = PerlLIO_open3(s, O_WRONLY | O_CREAT | O_APPEND, 0666);
-@@ -471,7 +472,8 @@ PerlIO_debug(const char *fmt, ...)
- 	s = CopFILE(PL_curcop);
- 	if (!s)
- 	    s = "(none)";
--	sprintf(buffer, "%s:%" IVdf " ", s, (IV) CopLINE(PL_curcop));
-+	/* Avoid PERLIO_DEBUG buffer overflow [CAN-2005-0156] */
-+	sprintf(buffer, "%.40s:%" IVdf " ", s, (IV) CopLINE(PL_curcop));
- 	len = strlen(buffer);
- 	vsprintf(buffer+len, fmt, ap);
- 	PerlLIO_write(dbg, buffer, strlen(buffer));
Index: patches/patch-ca
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl5/patches/patch-ca,v
retrieving revision 1.2
diff -u -r1.2 patch-ca
--- patches/patch-ca	24 Jun 2005 06:43:47 -0000	1.2
+++ patches/patch-ca	15 Jul 2005 05:03:27 -0000
@@ -1,8 +1,8 @@
-$NetBSD: patch-ca,v 1.2 2005/06/24 06:43:47 jlam Exp $
+$NetBSD$
 
---- Configure.orig	2004-09-10 02:25:52.000000000 -0400
+--- Configure.orig	2005-04-20 12:34:37.000000000 -0400
 +++ Configure
-@@ -3107,11 +3107,13 @@ EOM
+@@ -3111,11 +3111,13 @@ EOM
  		dgux)	osname=dgux 
  			osvers="$3"
  			;;
@@ -17,7 +17,7 @@
  		genix)	osname=genix ;;
  		gnu)	osname=gnu
  			osvers="$3" ;;
-@@ -3133,7 +3135,7 @@ EOM
+@@ -3137,7 +3139,7 @@ EOM
  		MiNT)	osname=mint
  			;;
  		netbsd*) osname=netbsd
@@ -26,7 +26,7 @@
  			;;
  		news-os) osvers="$3"
  			case "$3" in
-@@ -3144,8 +3146,8 @@ EOM
+@@ -3148,8 +3150,8 @@ EOM
  		next*) osname=next ;;
  		nonstop-ux) osname=nonstopux ;;
  		openbsd) osname=openbsd
@@ -37,16 +37,16 @@
  		os2)	osname=os2
  			osvers="$4"
  			;;
-@@ -7852,7 +7854,7 @@ if "$useshrplib"; then
+@@ -7856,7 +7858,7 @@ if "$useshrplib"; then
  	solaris)
  		xxx="-R $shrpdir"
  		;;
--	freebsd|netbsd|openbsd)
+-	freebsd|netbsd|openbsd|interix)
 +	freebsd|netbsd|openbsd|dragonfly|interix)
  		xxx="-Wl,-R$shrpdir"
  		;;
- 	bsdos|linux|irix*|dec_osf)
-@@ -8973,6 +8975,13 @@ EOCP
+ 	bsdos|linux|irix*|dec_osf|gnu*)
+@@ -8977,6 +8979,13 @@ EOCP
  	;;
  esac
  
@@ -60,7 +60,7 @@
  case "$vendorprefix" in
  '')	d_vendorbin="$undef"
  	vendorbin=''
-@@ -17290,7 +17299,15 @@ RCAT(Rei,ser)
+@@ -17339,7 +17348,15 @@ RCAT(Rei,ser)
  ACAT(Cir,cus)
  EOCP
  $cppstdin $cppflags $cppminus <cpp_stuff.c >cpp_stuff.out 2>&1
Index: patches/patch-cb
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl5/patches/patch-cb,v
retrieving revision 1.1
diff -u -r1.1 patch-cb
--- patches/patch-cb	24 Jun 2005 06:43:47 -0000	1.1
+++ patches/patch-cb	15 Jul 2005 05:03:27 -0000
@@ -1,7 +1,8 @@
-$NetBSD: patch-cb,v 1.1 2005/06/24 06:43:47 jlam Exp $
---- Makefile.SH.orig	2004-10-21 08:30:02.000000000 -0700
-+++ Makefile.SH	2005-03-08 18:05:48.000000000 -0700
-@@ -69,7 +69,11 @@
+$NetBSD$
+
+--- Makefile.SH.orig	2005-02-05 10:17:44.000000000 -0500
++++ Makefile.SH
+@@ -73,7 +73,11 @@ true)
  	sunos*)
  		linklibperl="-lperl"
  		;;
@@ -13,8 +14,8 @@
 +	netbsd*|freebsd[234]*|openbsd*|dragonfly*)
  		linklibperl="-L. -lperl"
  		;;
- 	aix*)
-@@ -77,7 +81,7 @@
+ 	interix*)
+@@ -85,7 +89,7 @@ true)
  		case "$osvers" in
  		3*)	shrpldflags="$shrpldflags -e _nostart"
  			;;
Index: patches/patch-cd
===================================================================
RCS file: patches/patch-cd
diff -N patches/patch-cd
--- patches/patch-cd	24 Jun 2005 06:43:47 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$NetBSD: patch-cd,v 1.1 2005/06/24 06:43:47 jlam Exp $
-
---- lib/File/Find.pm.orig	Fri Feb 27 11:31:34 2004
-+++ lib/File/Find.pm	Mon Apr 26 00:34:04 2004
-@@ -1221,6 +1221,7 @@
- 
- $File::Find::dont_use_nlink = 1
-     if $^O eq 'os2' || $^O eq 'dos' || $^O eq 'amigaos' || $^O eq 'MSWin32' ||
-+       $^O eq 'interix' ||
-        $^O eq 'cygwin' || $^O eq 'epoc' || $^O eq 'qnx' ||
- 	   $^O eq 'nto';
- 
Index: patches/patch-ce
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl5/patches/patch-ce,v
retrieving revision 1.1
diff -u -r1.1 patch-ce
--- patches/patch-ce	24 Jun 2005 06:43:47 -0000	1.1
+++ patches/patch-ce	15 Jul 2005 05:03:28 -0000
@@ -1,8 +1,8 @@
-$NetBSD: patch-ce,v 1.1 2005/06/24 06:43:47 jlam Exp $
+$NetBSD$
 
---- lib/File/Temp.pm.orig	Fri Apr 23 12:42:30 2004
-+++ lib/File/Temp.pm	Fri Apr 23 12:44:21 2004
-@@ -2012,6 +2012,7 @@
+--- lib/File/Temp.pm.orig	2005-04-03 11:27:16.000000000 -0400
++++ lib/File/Temp.pm
+@@ -2128,6 +2128,7 @@ The value is only relevant when C<safe_l
  
  {
    my $TopSystemUID = 10;
Index: patches/patch-cf
===================================================================
RCS file: patches/patch-cf
diff -N patches/patch-cf
--- patches/patch-cf	24 Jun 2005 06:43:47 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$NetBSD: patch-cf,v 1.1 2005/06/24 06:43:47 jlam Exp $
-
---- t/io/openpid.t.orig	Fri Apr 23 12:45:43 2004
-+++ t/io/openpid.t	Fri Apr 23 12:45:56 2004
-@@ -23,6 +23,7 @@
- use Config;
- $| = 1;
- $SIG{PIPE} = 'IGNORE';
-+$SIG{HUP} = 'IGNORE' if $^O eq 'interix';
- 
- my $perl = which_perl();
- $perl .= qq[ "-I../lib"];
Index: patches/patch-cg
===================================================================
RCS file: patches/patch-cg
diff -N patches/patch-cg
--- patches/patch-cg	24 Jun 2005 06:43:47 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
-$NetBSD: patch-cg,v 1.1 2005/06/24 06:43:47 jlam Exp $
-
---- t/op/groups.t.orig	Fri Apr 23 12:46:39 2004
-+++ t/op/groups.t	Fri Apr 23 12:46:53 2004
-@@ -133,7 +133,7 @@
- 
- print "# gr = @gr\n";
- 
--if ($^O =~ /^(?:uwin|cygwin|solaris)$/) {
-+if ($^O =~ /^(?:uwin|cygwin|interix|solaris)$/) {
- 	# Or anybody else who can have spaces in group names.
- 	$gr1 = join(' ', grep(!$did{$_}++, sort split(' ', join(' ', @gr))));
- } else {
Index: patches/patch-ch
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl5/patches/patch-ch,v
retrieving revision 1.1
diff -u -r1.1 patch-ch
--- patches/patch-ch	24 Jun 2005 06:43:47 -0000	1.1
+++ patches/patch-ch	15 Jul 2005 05:03:28 -0000
@@ -1,8 +1,8 @@
-$NetBSD: patch-ch,v 1.1 2005/06/24 06:43:47 jlam Exp $
+$NetBSD$
 
---- hints/dec_osf.sh.orig	2004-05-14 03:44:00.000000000 +0200
+--- hints/dec_osf.sh.orig	2005-02-05 10:19:27.000000000 -0500
 +++ hints/dec_osf.sh
-@@ -243,7 +243,7 @@ case "`uname -r`" in
+@@ -254,7 +254,7 @@ case "`uname -r`" in
  		      # fixed in 4.0E or better.
  		      ;;
  		  *)    
Index: patches/patch-ci
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl5/patches/patch-ci,v
retrieving revision 1.1
diff -u -r1.1 patch-ci
--- patches/patch-ci	24 Jun 2005 06:43:47 -0000	1.1
+++ patches/patch-ci	15 Jul 2005 05:03:28 -0000
@@ -1,8 +1,8 @@
-$NetBSD: patch-ci,v 1.1 2005/06/24 06:43:47 jlam Exp $
+$NetBSD$
 
---- pp_sys.c.orig	2004-10-19 13:07:23.000000000 -0400
+--- pp_sys.c.orig	2005-04-27 18:12:46.000000000 -0400
 +++ pp_sys.c
-@@ -4450,9 +4450,11 @@ PP(pp_gmtime)
+@@ -4466,9 +4466,11 @@ PP(pp_gmtime)
  	when = (Time_t)SvIVx(POPs);
  #endif
  

--azLHFNyN32YCQGCU--