git: 0623388de841 - main - lang/perl5.38: add latest Perl version (in RC2)

From: Mathieu Arnold <mat_at_FreeBSD.org>
Date: Sat, 24 Jun 2023 18:54:04 UTC
The branch main has been updated by mat:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0623388de841ec08d7a038283eccb8f24cb95d53

commit 0623388de841ec08d7a038283eccb8f24cb95d53
Author:     Mathieu Arnold <mat@FreeBSD.org>
AuthorDate: 2023-06-24 18:45:36 +0000
Commit:     Mathieu Arnold <mat@FreeBSD.org>
CommitDate: 2023-06-24 18:53:43 +0000

    lang/perl5.38: add latest Perl version (in RC2)
    
    (cherry picked from commit b5cbd10fb4052bfe3f61536eabcdcf02a4fd606a)
---
 Mk/Uses/perl5.mk                                   |    6 +-
 Mk/bsd.default-versions.mk                         |    2 +-
 lang/Makefile                                      |    1 +
 lang/perl5.38/Makefile                             |  289 +++
 lang/perl5.38/distinfo                             |    3 +
 lang/perl5.38/files/patch-Configure                |   37 +
 lang/perl5.38/files/patch-Makefile.SH              |   12 +
 ...h-cpan_ExtUtils-Install_lib_ExtUtils_Install.pm |   13 +
 .../files/patch-cpan_ExtUtils-Install_t_Install.t  |   22 +
 ...cpan_ExtUtils-MakeMaker_lib_ExtUtils_MM__Any.pm |   20 +
 .../patch-cpan_ExtUtils-MakeMaker_t_INST__PREFIX.t |   22 +
 .../patch-cpan_Pod-Perldoc_lib_Pod_Perldoc.pm      |   16 +
 ...patch-cpan_Pod-Perldoc_lib_Pod_Perldoc_ToMan.pm |   24 +
 ...atch-cpan_Pod-Perldoc_lib_Pod_Perldoc_ToTerm.pm |   13 +
 lang/perl5.38/files/patch-hints_freebsd.sh         |   24 +
 lang/perl5.38/files/patch-perl.c                   |   28 +
 lang/perl5.38/files/patch-t_porting_customized.dat |   19 +
 lang/perl5.38/files/perl-man.conf.in               |    2 +
 lang/perl5.38/pkg-descr                            |    4 +
 lang/perl5.38/pkg-plist                            | 2513 ++++++++++++++++++++
 lang/perl5.38/version.mk                           |    2 +
 21 files changed, 3070 insertions(+), 2 deletions(-)

diff --git a/Mk/Uses/perl5.mk b/Mk/Uses/perl5.mk
index 7890b88e2b56..abf053a0bc9d 100644
--- a/Mk/Uses/perl5.mk
+++ b/Mk/Uses/perl5.mk
@@ -48,6 +48,8 @@ USE_PERL5?=	run build
 .include "${PORTSDIR}/lang/perl5.34/version.mk"
 .  elif ${PERL5_DEFAULT} == 5.36
 .include "${PORTSDIR}/lang/perl5.36/version.mk"
+.  elif ${PERL5_DEFAULT} == 5.38
+.include "${PORTSDIR}/lang/perl5.38/version.mk"
 .  elif ${PERL5_DEFAULT} == devel
 .include "${PORTSDIR}/lang/perl5-devel/version.mk"
 # Force PERL_PORT here in case two identical PERL_VERSION.
@@ -81,7 +83,9 @@ PERL_ARCH?=	mach
 # perl5_default file, or up there in the default versions selection.
 # When adding a version, please keep the comment in
 # Mk/bsd.default-versions.mk in sync.
-.  if   ${PERL_LEVEL} >= 503600
+.  if   ${PERL_LEVEL} >= 503800
+PERL_PORT?=	perl5.38
+.  elif   ${PERL_LEVEL} >= 503600
 PERL_PORT?=	perl5.36
 .  elif   ${PERL_LEVEL} >= 503400
 PERL_PORT?=	perl5.34
diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk
index f173a3e1b72a..1bc170d62223 100644
--- a/Mk/bsd.default-versions.mk
+++ b/Mk/bsd.default-versions.mk
@@ -101,7 +101,7 @@ NINJA_DEFAULT?=		ninja
 NODEJS_DEFAULT?=	lts
 # Possible value: 24, 25, 26
 OPENLDAP_DEFAULT?=	26
-# Possible values: 5.32, 5.34, 5.36, devel
+# Possible values: 5.32, 5.34, 5.36, 5.38, devel
 .  if !exists(${LOCALBASE}/bin/perl) || (!defined(_PORTS_ENV_CHECK) && \
     defined(PACKAGE_BUILDING))
 PERL5_DEFAULT?=		5.32
diff --git a/lang/Makefile b/lang/Makefile
index dcf627ee6f5f..6c427663e81d 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -263,6 +263,7 @@
     SUBDIR += perl5.32
     SUBDIR += perl5.34
     SUBDIR += perl5.36
+    SUBDIR += perl5.38
     SUBDIR += petite-chez
     SUBDIR += pfe
     SUBDIR += pharo
diff --git a/lang/perl5.38/Makefile b/lang/perl5.38/Makefile
new file mode 100644
index 000000000000..69a88abd5c80
--- /dev/null
+++ b/lang/perl5.38/Makefile
@@ -0,0 +1,289 @@
+PORTNAME=	perl
+DISTVERSION=	${PERL_VERSION}-RC2	# TODO: set EXPIRATION_DATE when .0 is released and remove .r from version.mk
+PORTREVISION=	2
+CATEGORIES=	lang devel perl5
+MASTER_SITES=	CPAN/../../src/5.0
+DIST_SUBDIR=	perl
+
+MAINTAINER=	mat@FreeBSD.org
+COMMENT=	Practical Extraction and Report Language
+WWW=		https://www.perl.org/
+
+LICENSE=	ART10 GPLv1+
+LICENSE_COMB=	dual
+LICENSE_FILE_ART10=	${WRKSRC}/Artistic
+LICENSE_FILE_GPLv1+ =	${WRKSRC}/Copying
+
+# Uncomment when the default Perl is switched to 5.40
+#DEPRECATED=	Support end three years after .0 release, please upgrade to a more recent version of Perl
+#EXPIRATION_DATE=<Release date of .0 + 3 years>
+
+USES=		cpe tar:xz
+
+# Give a hint of where libperl.so can be found.
+USE_LDCONFIG=	${PREFIX}/${_ARCH_LIB}/CORE
+
+TEST_TARGET=	test_harness
+TEST_ENV=	${MAKE_ENV} \
+		LD_LIBRARY_PATH=${WRKSRC} \
+		TEST_JOBS=${MAKE_JOBS_NUMBER}
+
+PORTSCOUT=	limit:^${PERL_VER}.
+
+HAS_CONFIGURE=		yes
+CONFIGURE_SCRIPT=	Configure
+CONFIGURE_ARGS=		-Darchlib=${PREFIX}/${_ARCH_LIB} \
+			-Dcc="${CC}" \
+			-Dcf_by=${MAINTAINER:C,@.*,,} \
+			-Dcf_email=${MAINTAINER} \
+			-Dcf_time="`${STAT} -t \"%a %b %d %T %Z %Y\" -f %Sm ${_DISTDIR}/${DISTNAME}${EXTRACT_SUFX}`" \
+			-Dinc_version_list=none \
+			-Dlibperl=libperl.so.${PERL_VERSION} \
+			-Dman1dir=${PREFIX}/${PERLMANPREFIX_REL}/man/man1 \
+			-Dman3dir=${PREFIX}/${PERLMANPREFIX_REL}/man/man3 \
+			-Dprefix=${PREFIX} \
+			-Dprivlib=${PREFIX}/${_PRIV_LIB} \
+			-Dscriptdir=${PREFIX}/bin \
+			-Dsitearch=${SITE_ARCH} \
+			-Dsitelib=${SITE_PERL} \
+			-Dsiteman1dir=${SITE_MAN1} \
+			-Dsiteman3dir=${SITE_MAN3} \
+			-Dusenm=n \
+			-Duseshrplib \
+			-sde \
+			-Ui_iconv \
+			-Ui_malloc \
+			-Uinstallusrbinperl
+# Keep the following two in sync.
+# lddlflags is used for all .so linking
+# shrpldflags is used for libperl.so, so remove all the extra bits inherited from lddlflags.
+CONFIGURE_ARGS+=	-Alddlflags='-L${WRKSRC} -L${PREFIX}/${_ARCH_LIB}/CORE -lperl' \
+			-Dshrpldflags='$$(LDDLFLAGS:N-L${WRKSRC}:N-L${PREFIX}/${_ARCH_LIB}/CORE:N-lperl) -Wl,-soname,$$(LIBPERL:R)'
+
+# When built from a git repository, newvers.sh can put a = in the version.
+CONFIGURE_ENV=	UNAME_v="$$(uname -v | sed 'y/=/ /')"
+
+SUB_FILES=	perl-man.conf
+
+INSTALL_TARGET=	install-strip
+
+.if defined(PERL_VENDOR_PREFIX)
+CONFIGURE_ARGS+=	-Dvendorarch=${PERL_VENDOR_PREFIX}/${_ARCH_LIB} \
+			-Dvendorbin=${PERL_VENDOR_PREFIX}/bin \
+			-Dvendorlib=${PERL_VENDOR_PREFIX}/${_PRIV_LIB} \
+			-Dvendorman1dir=${PERL_VENDOR_PREFIX}/man/man1 \
+			-Dvendorman3dir=${PERL_VENDOR_PREFIX}/${_PRIV_LIB}/man/man3 \
+			-Dvendorprefix=${PERL_VENDOR_PREFIX}
+.endif
+
+# http://perl5.git.perl.org/perl.git/commit/b83080de5c4254
+# PERLIOBUF_DEFAULT_BUFSIZ size in bytes (default: 8192 bytes)
+.if defined(PERLIOBUF_DEFAULT_BUFSIZ)
+CONFIGURE_ARGS+=	-Accflags=-DPERLIOBUF_DEFAULT_BUFSIZ=${PERLIOBUF_DEFAULT_BUFSIZ}
+.endif
+
+PLIST_SUB=	ARCH_LIB=${_ARCH_LIB} \
+		MAN1=${PERLMANPREFIX_REL}/man/man1 \
+		MAN3=${PERLMANPREFIX_REL}/man/man3 \
+		PERL_ARCH=${PERL_ARCH} \
+		PERL_ARCH_regex=[[:<:]]${PERL_ARCH}[[:>:]] \
+		PERL_VER=${PERL_VER} \
+		PERL_VERSION=${PERL_VERSION} \
+		PERLMANPREFIX=${PERLMANPREFIX_REL} \
+		PERLMANPREFIX_regex=${PERLMANPREFIX_REL}[[:>:]] \
+		PKGNAMESUFFIX=${PKGNAMESUFFIX} \
+		PRIV_LIB=${_PRIV_LIB} \
+		SITE_ARCH=${SITE_ARCH_REL} \
+		SITE_PERL=${SITE_PERL_REL} \
+		SITEMANPREFIX=${SITE_MAN_PREFIX}
+
+SUB_LIST=	PERL_ARCH=${PERL_ARCH} \
+		PERL_VER=${PERL_VER} \
+		PERL_VERSION=${PERL_VERSION} \
+		PERLMANPREFIX=${PERLMANPREFIX_REL} \
+		PRIV_LIB=${_PRIV_LIB} \
+		SITE_PERL=${SITE_PERL_REL} \
+		SITEMANPREFIX=${SITE_MAN_PREFIX}
+
+.include "version.mk"
+PERL_VER?=		${PERL_VERSION:C/\.[0-9]+$//}
+PERL_ARCH=		mach
+SITE_PERL_REL?=		lib/perl5/site_perl
+SITE_PERL?=		${PREFIX}/${SITE_PERL_REL}
+SITE_ARCH_REL?=		${SITE_PERL_REL}/${PERL_ARCH}/${PERL_VER}
+SITE_ARCH?=		${PREFIX}/${SITE_ARCH_REL}
+SITE_MAN_PREFIX=	${SITE_PERL_REL}
+SITE_MAN3_REL?=		${SITE_MAN_PREFIX}/man/man3
+SITE_MAN3?=		${PREFIX}/${SITE_MAN3_REL}
+SITE_MAN1_REL?=		${SITE_MAN_PREFIX}/man/man1
+SITE_MAN1?=		${PREFIX}/${SITE_MAN1_REL}
+
+_PRIV_LIB=	lib/perl5/${PERL_VER}
+_ARCH_LIB=	${_PRIV_LIB}/${PERL_ARCH}
+
+PERLMANPREFIX_REL=	${_PRIV_LIB}/perl
+PERLMANPREFIX=		${PREFIX}/${PERLMANPREFIX_REL}
+MANDIRS=		${PERLMANPREFIX}/man
+
+OPTIONS_DEFINE=		DEBUG DOT_INC DTRACE GDBM MULTIPLICITY PERL_64BITINT \
+			PERL_MALLOC SITECUSTOMIZE THREADS
+OPTIONS_DEFAULT=	DTRACE MULTIPLICITY PERL_64BITINT THREADS
+
+.if !exists(/usr/sbin/dtrace)
+OPTIONS_EXCLUDE=	DTRACE
+.endif
+.for a in aarch64 arm armv6 armv7 \
+	mips mips64 mips64el mips64elhf mips64hf mipsel mipselhf mipshf mipsn32 \
+	riscv64 riscv64sf sparc64
+OPTIONS_EXCLUDE_${a}=	DTRACE
+.endfor
+OPTIONS_SUB=		yes
+
+DOT_INC_DESC=		Add '.' to @INC (unsafe)
+GDBM_DESC=		GDBM_File extension
+MULTIPLICITY_DESC=	Use multiplicity
+PERL_64BITINT_DESC=	Use 64 bit integers (on i386)
+PERL_MALLOC_DESC=	Use Perl malloc
+SITECUSTOMIZE_DESC=	Run-time customization of @INC
+THREADS_DESC=		Build threaded perl
+
+DEBUG_CONFIGURE_ON=		-DDEBUGGING \
+				-Doptimize="-g"
+DEBUG_CONFIGURE_OFF=		-Doptimize="${CFLAGS}"
+DOT_INC_CONFIGURE_ON=		-Ddefault_inc_excludes_dot=n
+DTRACE_CONFIGURE_ON=		-Dusedtrace
+DTRACE_CONFIGURE_OFF=		-Uusedtrace
+GDBM_CONFIGURE_ON=		-Di_gdbm
+GDBM_CONFIGURE_OFF=		-Ui_gdbm
+GDBM_LIB_DEPENDS=		libgdbm.so:databases/gdbm
+MULTIPLICITY_CONFIGURE_ON=	-Dusemultiplicity=y
+MULTIPLICITY_CONFIGURE_OFF=	-Dusemultiplicity=n
+PERL_64BITINT_CONFIGURE_ON=	-Duse64bitint
+PERL_MALLOC_CONFIGURE_ON=	-Dusemymalloc=y
+PERL_MALLOC_CONFIGURE_OFF=	-Dusemymalloc=n
+SITECUSTOMIZE_CONFIGURE_ON=	-Dusesitecustomize
+THREADS_CONFIGURE_ON=		-Dusethreads=y
+THREADS_CONFIGURE_OFF=		-Dusethreads=n
+
+# Why this is required is explained in:
+# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227356#c5
+_PERL5_DEFAULT_FILE=	/tmp/PERL5_DEFAULT
+
+# Get the default version, and possibly, overwrite it.
+.include <bsd.port.options.mk>
+.sinclude "${_PERL5_DEFAULT_FILE}"
+
+# if this port is default due PERL5_DEFAULT
+# change PKGNAME to reflect this
+.if ${PERL_VER} == ${PERL5_DEFAULT}
+PKGNAMESUFFIX=	5
+IAMDEFAULTPERL=	yes
+.else
+# make PKGNAME unique among other lang/perl5.x
+PKGNAMESUFFIX=	${PERL_VER}
+.endif
+
+# Am I building the default Perl ?
+.if defined(IAMDEFAULTPERL)
+PLIST_SUB+=		BINSUFFIX="" \
+			DEFAULT=""
+.else
+BINSUFFIX=		${PERL_VERSION}
+PLIST_SUB+=		BINSUFFIX=${PERL_VERSION} \
+			DEFAULT="@comment "
+CONFIGURE_ARGS+=	-Dversiononly
+.endif
+
+.if !defined(IAMDEFAULTPERL)
+pre-everything::
+	@${ECHO_MSG} "##################################################"
+	@${ECHO_MSG} ""
+	@${ECHO_MSG} "      This is *NOT* the DEFAULT perl version"
+	@${ECHO_MSG} ""
+	@${ECHO_MSG} "It will *NOT* install ${PREFIX}/bin/perl"
+	@${ECHO_MSG} ""
+	@${ECHO_MSG} "It will *ONLY* install ${PREFIX}/bin/perl${PERL_VERSION}"
+	@${ECHO_MSG} ""
+	@${ECHO_MSG} "The default Perl version currently is ${PERL5_DEFAULT}."
+	@${ECHO_MSG} ""
+	@${ECHO_MSG} "If you want to use this version as the default,"
+	@${ECHO_MSG} "stop the build now, add this line to your"
+	@${ECHO_MSG} "/etc/make.conf, and then restart the build."
+	@${ECHO_MSG} ""
+	@${ECHO_MSG} "DEFAULT_VERSIONS+=perl5=${PERL_VER}"
+	@${ECHO_MSG} ""
+	@${ECHO_MSG} "##################################################"
+.  if !(defined(PACKAGE_BUILDING) || defined(BATCH))
+	@sleep 30
+.  endif
+.endif
+
+# Put a symlink to the future libperl.so.x.yy so that -lperl works.
+# Also, save PERL5_DEFAULT in case someone is not using the default Perl
+# version whilst not having set DEFAULT_VERSIONS=perl5=blah.  While upgrading,
+# portmaster/portupgrade will remove the installed Perl version, and it will
+# remove any way to guess what the default Perl version is needed.
+post-extract:
+	${LN} -s libperl.so.${PERL_VERSION} ${WRKSRC}/libperl.so
+	${LN} -s libperl.so.${PERL_VERSION} ${WRKSRC}/libperl.so.${PERL_VER}
+.if !defined(PACKAGE_BUILDING)
+	@${ECHO_CMD} "PERL5_DEFAULT=${PERL5_DEFAULT}" > ${_PERL5_DEFAULT_FILE}
+.endif
+
+.if !defined(PACKAGE_BUILDING)
+post-clean:
+	@${RM} ${_PERL5_DEFAULT_FILE}
+.endif
+
+post-patch:
+.if ${LOCALBASE} != /usr/local
+	${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
+		${WRKSRC}/Configure ${WRKSRC}/hints/freebsd.sh
+.endif
+.if !defined(IAMDEFAULTPERL)
+	${REINPLACE_CMD} -e '/do_installprivlib = 0 if .versiononly/d; \
+		/^if.*nopods.*versiononly || /s/.*/if (1) {/' \
+		${WRKSRC}/installperl
+.endif
+
+post-install:
+	@${REINPLACE_CMD} -e '/^lddlflags/s|-L${WRKSRC} ||' \
+		${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl
+	@${TOUCH} -r ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl.bak ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl
+	@${RM} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl.bak
+.if ${CC} == /nxb-bin/usr/bin/cc
+	@${REINPLACE_CMD} -e 's=/nxb-bin==' \
+		${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config.pm ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl
+# Restore Config.pm's timestamp so that Perl's build system does not think it
+# needs to rebuild everything.
+	@${TOUCH} -r ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config.pm.bak ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config.pm
+	@${TOUCH} -r ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl.bak ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl
+	@${RM} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config.pm.bak ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/Config_heavy.pl.bak
+.endif
+
+	${MKDIR} ${STAGEDIR}${SITE_MAN1} ${STAGEDIR}${SITE_MAN3}
+	${MKDIR} ${STAGEDIR}${SITE_ARCH}/auto
+	${MKDIR} ${STAGEDIR}${SITE_PERL}/auto
+.if defined(IAMDEFAULTPERL)
+	${LN} -sf perl ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION}
+.endif
+	${LN} -sf libperl.so.${PERL_VERSION} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so
+	${LN} -sf libperl.so.${PERL_VERSION} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so.${PERL_VER}
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION}
+	${MKDIR} ${STAGEDIR}${SITE_ARCH}/machine
+	${MKDIR} ${STAGEDIR}${SITE_ARCH}/sys
+# h2ph needs perl, but perl is not installed, it's only
+# staged, so, use the one in WRKDIR
+	(cd /usr/include && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \
+		${WRKSRC}/perl -I ${WRKSRC}/lib ${STAGEDIR}${PREFIX}/bin/h2ph${BINSUFFIX} \
+		-d ${STAGEDIR}${SITE_ARCH} *.h machine/*.h sys/*.h >/dev/null)
+	@${FIND} ${STAGEDIR}${SITE_ARCH} -name '*.ph' | sed -e 's|${STAGEDIR}||' >> ${TMPPLIST}
+	${FIND} ${STAGEDIR} -name '*.so*' -type f | while read f; \
+		do \
+			${CHMOD} 644 $$f; \
+			${STRIP_CMD} $$f; \
+			${CHMOD} 444 $$f; \
+		done
+	${INSTALL_DATA} ${WRKDIR}/perl-man.conf ${STAGEDIR}${PREFIX}/etc/man.d/perl${PKGNAMESUFFIX}.conf
+
+.include <bsd.port.mk>
diff --git a/lang/perl5.38/distinfo b/lang/perl5.38/distinfo
new file mode 100644
index 000000000000..ce930996de75
--- /dev/null
+++ b/lang/perl5.38/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1687631585
+SHA256 (perl/perl-5.38.0-RC2.tar.xz) = 1bb4b25a99378eea914263d6078390e90413b72711d7b9a9ccfe0c0d65559509
+SIZE (perl/perl-5.38.0-RC2.tar.xz) = 13557644
diff --git a/lang/perl5.38/files/patch-Configure b/lang/perl5.38/files/patch-Configure
new file mode 100644
index 000000000000..f55f643a071c
--- /dev/null
+++ b/lang/perl5.38/files/patch-Configure
@@ -0,0 +1,37 @@
+- Allow setting cf_time (reproducible builds)
+- ?
+- ?
+
+--- Configure.orig	2023-05-16 23:36:32 UTC
++++ Configure
+@@ -3907,7 +3907,10 @@ esac
+ . ./posthint.sh
+ 
+ : who configured the system
+-cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
++case "$cf_time" in
++"")
++	cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1` ;;
++esac
+ case "$cf_by" in
+ "")
+ 	cf_by=`(logname) 2>/dev/null`
+@@ -5035,7 +5038,7 @@ esac
+ : Now check and see which directories actually exist, avoiding duplicates
+ for xxx in $dlist
+ do
+-    if $test -d $xxx; then
++    if $test -d $xxx || [ $xxx = $prefix/lib ]; then
+ 		case " $libpth " in
+ 		*" $xxx "*) ;;
+ 		*) libpth="$libpth $xxx";;
+@@ -9586,8 +9589,7 @@ prefixvar=siteman3dir
+ 
+ : determine where add-on public executable scripts go
+ case "$sitescript" in
+-'')	dflt=$siteprefix/script
+-	$test -d $dflt || dflt=$sitebin ;;
++'')	dflt=$sitebin ;;
+ *)  dflt="$sitescript" ;;
+ esac
+ fn=d~+
diff --git a/lang/perl5.38/files/patch-Makefile.SH b/lang/perl5.38/files/patch-Makefile.SH
new file mode 100644
index 000000000000..f5dfc3bd2a60
--- /dev/null
+++ b/lang/perl5.38/files/patch-Makefile.SH
@@ -0,0 +1,12 @@
+Allow customisation of shrpldflags.
+
+--- Makefile.SH.orig	2022-06-19 19:29:35 UTC
++++ Makefile.SH
+@@ -40,7 +40,6 @@ linklibperl_nonshr=''
+ pwd="`pwd`"
+ linklibperl='$(LIBPERL)'
+ linklibperl_nonshr=''
+-shrpldflags='$(LDDLFLAGS)'
+ ldlibpth=''
+ DPERL_EXTERNAL_GLOB='-DPERL_EXTERNAL_GLOB'
+ DPERL_IS_MINIPERL='-DPERL_IS_MINIPERL'
diff --git a/lang/perl5.38/files/patch-cpan_ExtUtils-Install_lib_ExtUtils_Install.pm b/lang/perl5.38/files/patch-cpan_ExtUtils-Install_lib_ExtUtils_Install.pm
new file mode 100644
index 000000000000..cc8dc2d594e9
--- /dev/null
+++ b/lang/perl5.38/files/patch-cpan_ExtUtils-Install_lib_ExtUtils_Install.pm
@@ -0,0 +1,13 @@
+Make installed files writable by the installing user.
+
+--- cpan/ExtUtils-Install/lib/ExtUtils/Install.pm.orig	2021-01-04 00:39:17 UTC
++++ cpan/ExtUtils-Install/lib/ExtUtils/Install.pm
+@@ -795,7 +795,7 @@ sub install { #XXX OS-SPECIFIC
+                 utime($atime,$mtime + _Is_VMS,$targetfile) unless $dry_run>1;
+ 
+ 
+-                $mode = 0444 | ( $mode & 0111 ? 0111 : 0 );
++                $mode = 0644 | ( $mode & 0111 ? 0111 : 0 );
+                 $mode = $mode | 0222
+                     if $realtarget ne $targetfile;
+                 _chmod( $mode, $targetfile, $verbose );
diff --git a/lang/perl5.38/files/patch-cpan_ExtUtils-Install_t_Install.t b/lang/perl5.38/files/patch-cpan_ExtUtils-Install_t_Install.t
new file mode 100644
index 000000000000..1834df9398b5
--- /dev/null
+++ b/lang/perl5.38/files/patch-cpan_ExtUtils-Install_t_Install.t
@@ -0,0 +1,22 @@
+Make installed files writable by the installing user. (fix tests)
+
+--- cpan/ExtUtils-Install/t/Install.t.orig	2015-10-14 14:27:14 UTC
++++ cpan/ExtUtils-Install/t/Install.t
+@@ -240,7 +240,7 @@ SKIP: {
+                          },
+     ]);
+ 
+-    ok( !writeable("$bigdir/DummyHard.pm"), 'DummyHard.pm not writeable' );
++    ok( writeable("$bigdir/DummyHard.pm"), 'DummyHard.pm writeable' );
+ 
+     use File::Compare;
+     ok(compare("$bigdir/Dummy.pm", "$bigdir/DummyHard.pm"),
+@@ -264,7 +264,7 @@ SKIP: {
+                          },
+     ]);
+ 
+-    ok( !writeable("$bigdir/DummyOrig.pm"), 'DummyOrig.pm not writeable' );
++    ok( writeable("$bigdir/DummyOrig.pm"), 'DummyOrig.pm writeable' );
+     ok( !-l "$bigdir/Dummy.pm", 'Dummy.pm not a link' );
+     ok(compare("$bigdir/Dummy.pm", "$bigdir/DummyOrig.pm"),
+         "orig file should be different");
diff --git a/lang/perl5.38/files/patch-cpan_ExtUtils-MakeMaker_lib_ExtUtils_MM__Any.pm b/lang/perl5.38/files/patch-cpan_ExtUtils-MakeMaker_lib_ExtUtils_MM__Any.pm
new file mode 100644
index 000000000000..e747986d06f9
--- /dev/null
+++ b/lang/perl5.38/files/patch-cpan_ExtUtils-MakeMaker_lib_ExtUtils_MM__Any.pm
@@ -0,0 +1,20 @@
+- Allow overriding PREFIX?
+
+--- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm.orig	2020-10-18 21:18:11 UTC
++++ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
+@@ -2032,13 +2032,14 @@ sub init_INSTALL_from_PREFIX {
+           ('$(PREFIX)') x 3;
+     }
+     else {
++        $self->{PREFIX}   ||= $iprefix;
+         $self->{PERLPREFIX}   ||= $iprefix;
+         $self->{SITEPREFIX}   ||= $sprefix;
+         $self->{VENDORPREFIX} ||= $vprefix;
+ 
+         # Lots of MM extension authors like to use $(PREFIX) so we
+         # put something sensible in there no matter what.
+-        $self->{PREFIX} = '$('.uc $self->{INSTALLDIRS}.'PREFIX)';
++        #$self->{PREFIX} = '$('.uc $self->{INSTALLDIRS}.'PREFIX)';
+     }
+ 
+     my $arch    = $Config{archname};
diff --git a/lang/perl5.38/files/patch-cpan_ExtUtils-MakeMaker_t_INST__PREFIX.t b/lang/perl5.38/files/patch-cpan_ExtUtils-MakeMaker_t_INST__PREFIX.t
new file mode 100644
index 000000000000..c4048adc7fbe
--- /dev/null
+++ b/lang/perl5.38/files/patch-cpan_ExtUtils-MakeMaker_t_INST__PREFIX.t
@@ -0,0 +1,22 @@
+- Allow overriding PREFIX? (fix test)
+
+--- cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t.orig	2020-10-18 21:18:11 UTC
++++ cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t
+@@ -11,7 +11,7 @@ BEGIN {
+ 
+ use strict;
+ use warnings;
+-use Test::More tests => 52;
++use Test::More tests => 51;
+ use MakeMaker::Test::Utils;
+ use MakeMaker::Test::Setup::BFD;
+ use ExtUtils::MakeMaker;
+@@ -65,7 +65,7 @@ like( $stdout->read, qr{
+                         (?:Writing\ MYMETA.yml\ and\ MYMETA.json\n)?
+ }x );
+ 
+-is( $mm->{PREFIX}, '$(SITEPREFIX)', 'PREFIX set based on INSTALLDIRS' );
++## is( $mm->{PREFIX}, '$(SITEPREFIX)', 'PREFIX set based on INSTALLDIRS' );
+ 
+ isa_ok( $mm, 'ExtUtils::MakeMaker' );
+ 
diff --git a/lang/perl5.38/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc.pm b/lang/perl5.38/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc.pm
new file mode 100644
index 000000000000..8a9479cc7511
--- /dev/null
+++ b/lang/perl5.38/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc.pm
@@ -0,0 +1,16 @@
+Put back some non dumb outputter by default
+
+--- cpan/Pod-Perldoc/lib/Pod/Perldoc.pm.orig	2019-03-12 16:47:18 UTC
++++ cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
+@@ -486,6 +486,11 @@ sub init_formatter_class_list {
+ 
+   $self->opt_M_with('Pod::Perldoc::ToPod');   # the always-there fallthru
+   $self->opt_o_with('text');
++  $self->opt_o_with('man')
++    unless $self->is_mswin32 || $self->is_dos || $self->is_amigaos
++    || !($ENV{TERM} && (
++	($ENV{TERM} || '') !~ /dumb|emacs|none|unknown/i
++      ));
+ 
+   return;
+ }
diff --git a/lang/perl5.38/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc_ToMan.pm b/lang/perl5.38/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc_ToMan.pm
new file mode 100644
index 000000000000..d807041754d4
--- /dev/null
+++ b/lang/perl5.38/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc_ToMan.pm
@@ -0,0 +1,24 @@
+- Handle MANWIDTH=tty
+- Reset $? before opening mandoc so that the outputter works.
+
+--- cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm.orig	2019-03-11 04:03:26 UTC
++++ cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm
+@@ -108,6 +108,8 @@ sub _get_columns_from_manwidth {
+ 
+ 	return 0 unless defined $ENV{MANWIDTH};
+ 
++	if ($ENV{MANWIDTH} eq 'tty') { return 0; }
++
+ 	unless( $ENV{MANWIDTH} =~ m/\A\d+\z/ ) {
+ 		$self->warn( "Ignoring non-numeric MANWIDTH ($ENV{MANWIDTH})\n" );
+ 		return 0;
+@@ -309,6 +311,9 @@ sub _filter_through_nroff {
+ 	require Symbol;
+ 	require IPC::Open3;
+ 	require IO::Handle;
++
++	# Reset this???
++	$?=0;
+ 
+ 	my $pid = IPC::Open3::open3(
+ 		my $writer,
diff --git a/lang/perl5.38/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc_ToTerm.pm b/lang/perl5.38/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc_ToTerm.pm
new file mode 100644
index 000000000000..839207741f2d
--- /dev/null
+++ b/lang/perl5.38/files/patch-cpan_Pod-Perldoc_lib_Pod_Perldoc_ToTerm.pm
@@ -0,0 +1,13 @@
+Handle MANWIDTH=tty
+
+--- cpan/Pod-Perldoc/lib/Pod/Perldoc/ToTerm.pm.orig	2017-04-03 07:28:44 UTC
++++ cpan/Pod-Perldoc/lib/Pod/Perldoc/ToTerm.pm
+@@ -69,6 +69,8 @@ sub _get_columns_from_manwidth {
+ 
+ 	return 0 unless defined $ENV{MANWIDTH};
+ 
++	if ($ENV{MANWIDTH} eq 'tty') { return 0; }
++
+ 	unless( $ENV{MANWIDTH} =~ m/\A\d+\z/ ) {
+ 		$self->warn( "Ignoring non-numeric MANWIDTH ($ENV{MANWIDTH})\n" );
+ 		return 0;
diff --git a/lang/perl5.38/files/patch-hints_freebsd.sh b/lang/perl5.38/files/patch-hints_freebsd.sh
new file mode 100644
index 000000000000..9907c745ded7
--- /dev/null
+++ b/lang/perl5.38/files/patch-hints_freebsd.sh
@@ -0,0 +1,24 @@
+Remove libs that are not here on FreeBSD.
+
+--- hints/freebsd.sh.orig	2022-06-19 19:29:35 UTC
++++ hints/freebsd.sh
+@@ -88,6 +88,8 @@ case "$osvers" in
+ 	esac
+ 	libswanted=`echo $libswanted | sed 's/ malloc / /'`
+ 	libswanted=`echo $libswanted | sed 's/ bind / /'`
++	libswanted=`echo $libswanted | sed 's/ dl / /'`
++	libswanted=`echo $libswanted | sed 's/ c / /'`
+ 	# iconv gone in Perl 5.8.1, but if someone compiles 5.8.0 or earlier.
+ 	libswanted=`echo $libswanted | sed 's/ iconv / /'`
+ 	d_setregid='define'
+@@ -102,6 +104,10 @@ case "$osvers" in
+ 	        ;;
+ 	esac
+ 	libswanted=`echo $libswanted | sed 's/ malloc / /'`
++	libswanted=`echo $libswanted | sed 's/ bind / /'`
++	libswanted=`echo $libswanted | sed 's/ dl / /'`
++	libswanted=`echo $libswanted | sed 's/ iconv / /'`
++	libswanted=`echo $libswanted | sed 's/ c / /'`
+ 	;;
+ esac
+ 
diff --git a/lang/perl5.38/files/patch-perl.c b/lang/perl5.38/files/patch-perl.c
new file mode 100644
index 000000000000..944dcf81e24a
--- /dev/null
+++ b/lang/perl5.38/files/patch-perl.c
@@ -0,0 +1,28 @@
+Remove compile time information (reproducible builds)
+
+--- perl.c.orig	2023-05-16 23:36:32 UTC
++++ perl.c
+@@ -2098,23 +2098,7 @@ S_Internals_V(pTHX_ CV *cv)
+     PUSHs(Perl_newSVpvn_flags(aTHX_ non_bincompat_options,
+                               sizeof(non_bincompat_options) - 1, SVs_TEMP));
+ 
+-#ifndef PERL_BUILD_DATE
+-#  ifdef __DATE__
+-#    ifdef __TIME__
+-#      define PERL_BUILD_DATE __DATE__ " " __TIME__
+-#    else
+-#      define PERL_BUILD_DATE __DATE__
+-#    endif
+-#  endif
+-#endif
+-
+-#ifdef PERL_BUILD_DATE
+-    PUSHs(Perl_newSVpvn_flags(aTHX_
+-                              STR_WITH_LEN("Compiled at " PERL_BUILD_DATE),
+-                              SVs_TEMP));
+-#else
+     PUSHs(&PL_sv_undef);
+-#endif
+ 
+     for (i = 1; i <= local_patch_count; i++) {
+         /* This will be an undef, if PL_localpatches[i] is NULL.  */
diff --git a/lang/perl5.38/files/patch-t_porting_customized.dat b/lang/perl5.38/files/patch-t_porting_customized.dat
new file mode 100644
index 000000000000..1feb91e38f3b
--- /dev/null
+++ b/lang/perl5.38/files/patch-t_porting_customized.dat
@@ -0,0 +1,19 @@
+Fix tests for modified files.
+
+--- t/porting/customized.dat.orig	2023-06-12 12:33:35 UTC
++++ t/porting/customized.dat
+@@ -9,12 +9,13 @@ Digest::MD5 cpan/Digest-MD5/MD5.pm cf2fd9d327f3e314e9e
+ Digest::MD5 cpan/Digest-MD5/MD5.xs dc40839d25ba5e2d6f42fc9b81b409f1d0dbfb0e
+ ExtUtils::Constant cpan/ExtUtils-Constant/lib/ExtUtils/Constant/Base.pm 7560e1018f806db5689dee78728ccb8374aea741
+ ExtUtils::Constant cpan/ExtUtils-Constant/t/Constant.t 165e9c7132b003fd192d32a737b0f51f9ba4999e
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm ac29a8dc1c7d6f0aca4abff0730c05bde1dab3ad
+ Filter::Util::Call pod/perlfilter.pod d1e217d0bc6083755b9017050b8724472c58275a
+ IO::Socket::IP cpan/IO-Socket-IP/lib/IO/Socket/IP.pm a3390d0b3b617a0b810c75941bfc6e6d0be5b785
+ Locale::Maketext::Simple cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm 57ed38905791a17c150210cd6f42ead22a7707b6
+ MIME::Base64 cpan/MIME-Base64/Base64.xs ad617fe2d01932c35b92defa26d40aba601a95a8
+ MIME::Base64 cpan/MIME-Base64/lib/MIME/Base64.pm 18e38d197c7c83f96b24f48bef514e93908e6a82
+-Pod::Perldoc cpan/Pod-Perldoc/lib/Pod/Perldoc.pm 582be34c077c9ff44d99914724a0cc2140bcd48c
++Pod::Perldoc cpan/Pod-Perldoc/lib/Pod/Perldoc.pm 8b35c5a137791b0cfedcffd2937cb3b5fb984cac
+ Test::Harness cpan/Test-Harness/t/harness.t 38b13cfc479d37d91c104b97dd364a74dfde0f2f
+ Time::Piece cpan/Time-Piece/Piece.pm 8cec8b66183ceddb9bf2b6af35dcdd345bc9adfa
+ Time::Piece cpan/Time-Piece/Piece.xs 543152540ee17788a638b2c5746b86c3d04401d1
diff --git a/lang/perl5.38/files/perl-man.conf.in b/lang/perl5.38/files/perl-man.conf.in
new file mode 100644
index 000000000000..cbe3a5c56862
--- /dev/null
+++ b/lang/perl5.38/files/perl-man.conf.in
@@ -0,0 +1,2 @@
+MANPATH %%PREFIX%%/%%SITEMANPREFIX%%/man
+MANPATH %%PREFIX%%/%%PERLMANPREFIX%%/man
diff --git a/lang/perl5.38/pkg-descr b/lang/perl5.38/pkg-descr
new file mode 100644
index 000000000000..793a3bae9c77
--- /dev/null
+++ b/lang/perl5.38/pkg-descr
@@ -0,0 +1,4 @@
+Perl is a language that combines some of the features of C, sed, awk and
+shell.  See the manual page for more hype.  There are also many books
+published by O'Reilly & Assoc.  See pod/perlbook.pod for more
+information.
diff --git a/lang/perl5.38/pkg-plist b/lang/perl5.38/pkg-plist
new file mode 100644
index 000000000000..502ec76a7a5a
--- /dev/null
+++ b/lang/perl5.38/pkg-plist
@@ -0,0 +1,2513 @@
+bin/corelist%%BINSUFFIX%%
+bin/cpan%%BINSUFFIX%%
+bin/enc2xs%%BINSUFFIX%%
+bin/encguess%%BINSUFFIX%%
+bin/h2ph%%BINSUFFIX%%
+bin/h2xs%%BINSUFFIX%%
+bin/instmodsh%%BINSUFFIX%%
+bin/json_pp%%BINSUFFIX%%
+bin/libnetcfg%%BINSUFFIX%%
+%%DEFAULT%%bin/perl
+bin/perl%%PERL_VERSION%%
+bin/perlbug%%BINSUFFIX%%
+bin/perldoc%%BINSUFFIX%%
+bin/perlivp%%BINSUFFIX%%
+bin/perlthanks%%BINSUFFIX%%
+bin/piconv%%BINSUFFIX%%
+bin/pl2pm%%BINSUFFIX%%
+bin/pod2html%%BINSUFFIX%%
+bin/pod2man%%BINSUFFIX%%
+bin/pod2text%%BINSUFFIX%%
+bin/pod2usage%%BINSUFFIX%%
+bin/podchecker%%BINSUFFIX%%
+bin/prove%%BINSUFFIX%%
+bin/ptar%%BINSUFFIX%%
+bin/ptardiff%%BINSUFFIX%%
+bin/ptargrep%%BINSUFFIX%%
+bin/shasum%%BINSUFFIX%%
+bin/splain%%BINSUFFIX%%
+bin/streamzip%%BINSUFFIX%%
+bin/xsubpp%%BINSUFFIX%%
+bin/zipdetails%%BINSUFFIX%%
+etc/man.d/perl%%PKGNAMESUFFIX%%.conf
+%%PRIV_LIB%%/AnyDBM_File.pm
+%%PRIV_LIB%%/App/Cpan.pm
+%%PRIV_LIB%%/App/Prove.pm
+%%PRIV_LIB%%/App/Prove/State.pm
+%%PRIV_LIB%%/App/Prove/State/Result.pm
+%%PRIV_LIB%%/App/Prove/State/Result/Test.pm
+%%PRIV_LIB%%/Archive/Tar.pm
+%%PRIV_LIB%%/Archive/Tar/Constant.pm
+%%PRIV_LIB%%/Archive/Tar/File.pm
+%%PRIV_LIB%%/Attribute/Handlers.pm
+%%PRIV_LIB%%/AutoLoader.pm
+%%PRIV_LIB%%/AutoSplit.pm
+%%PRIV_LIB%%/B/Deparse.pm
+%%PRIV_LIB%%/B/Op_private.pm
+%%PRIV_LIB%%/Benchmark.pm
+%%PRIV_LIB%%/CORE.pod
+%%PRIV_LIB%%/CPAN.pm
+%%PRIV_LIB%%/CPAN/API/HOWTO.pod
+%%PRIV_LIB%%/CPAN/Author.pm
+%%PRIV_LIB%%/CPAN/Bundle.pm
+%%PRIV_LIB%%/CPAN/CacheMgr.pm
+%%PRIV_LIB%%/CPAN/Complete.pm
+%%PRIV_LIB%%/CPAN/Debug.pm
+%%PRIV_LIB%%/CPAN/DeferredCode.pm
+%%PRIV_LIB%%/CPAN/Distribution.pm
+%%PRIV_LIB%%/CPAN/Distroprefs.pm
+%%PRIV_LIB%%/CPAN/Distrostatus.pm
+%%PRIV_LIB%%/CPAN/Exception/RecursiveDependency.pm
+%%PRIV_LIB%%/CPAN/Exception/blocked_urllist.pm
+%%PRIV_LIB%%/CPAN/Exception/yaml_not_installed.pm
+%%PRIV_LIB%%/CPAN/Exception/yaml_process_error.pm
+%%PRIV_LIB%%/CPAN/FTP.pm
+%%PRIV_LIB%%/CPAN/FTP/netrc.pm
+%%PRIV_LIB%%/CPAN/FirstTime.pm
+%%PRIV_LIB%%/CPAN/HTTP/Client.pm
+%%PRIV_LIB%%/CPAN/HTTP/Credentials.pm
+%%PRIV_LIB%%/CPAN/HandleConfig.pm
+%%PRIV_LIB%%/CPAN/Index.pm
+%%PRIV_LIB%%/CPAN/InfoObj.pm
+%%PRIV_LIB%%/CPAN/Kwalify.pm
+%%PRIV_LIB%%/CPAN/Kwalify/distroprefs.dd
+%%PRIV_LIB%%/CPAN/Kwalify/distroprefs.yml
+%%PRIV_LIB%%/CPAN/LWP/UserAgent.pm
+%%PRIV_LIB%%/CPAN/Meta.pm
+%%PRIV_LIB%%/CPAN/Meta/Converter.pm
+%%PRIV_LIB%%/CPAN/Meta/Feature.pm
+%%PRIV_LIB%%/CPAN/Meta/History.pm
+%%PRIV_LIB%%/CPAN/Meta/History/Meta_1_0.pod
+%%PRIV_LIB%%/CPAN/Meta/History/Meta_1_1.pod
+%%PRIV_LIB%%/CPAN/Meta/History/Meta_1_2.pod
+%%PRIV_LIB%%/CPAN/Meta/History/Meta_1_3.pod
+%%PRIV_LIB%%/CPAN/Meta/History/Meta_1_4.pod
+%%PRIV_LIB%%/CPAN/Meta/Merge.pm
+%%PRIV_LIB%%/CPAN/Meta/Prereqs.pm
+%%PRIV_LIB%%/CPAN/Meta/Requirements.pm
+%%PRIV_LIB%%/CPAN/Meta/Spec.pm
+%%PRIV_LIB%%/CPAN/Meta/Validator.pm
+%%PRIV_LIB%%/CPAN/Meta/YAML.pm
+%%PRIV_LIB%%/CPAN/Mirrors.pm
+%%PRIV_LIB%%/CPAN/Module.pm
+%%PRIV_LIB%%/CPAN/Nox.pm
+%%PRIV_LIB%%/CPAN/Plugin.pm
+%%PRIV_LIB%%/CPAN/Plugin/Specfile.pm
+%%PRIV_LIB%%/CPAN/Prompt.pm
+%%PRIV_LIB%%/CPAN/Queue.pm
+%%PRIV_LIB%%/CPAN/Shell.pm
+%%PRIV_LIB%%/CPAN/Tarzip.pm
+%%PRIV_LIB%%/CPAN/URL.pm
+%%PRIV_LIB%%/CPAN/Version.pm
+%%PRIV_LIB%%/Carp.pm
+%%PRIV_LIB%%/Carp/Heavy.pm
+%%PRIV_LIB%%/Class/Struct.pm
+%%PRIV_LIB%%/Compress/Zlib.pm
+%%PRIV_LIB%%/Config/Extensions.pm
+%%PRIV_LIB%%/Config/Perl/V.pm
+%%PRIV_LIB%%/DB.pm
+%%PRIV_LIB%%/DBM_Filter.pm
+%%PRIV_LIB%%/DBM_Filter/compress.pm
+%%PRIV_LIB%%/DBM_Filter/encode.pm
+%%PRIV_LIB%%/DBM_Filter/int32.pm
+%%PRIV_LIB%%/DBM_Filter/null.pm
+%%PRIV_LIB%%/DBM_Filter/utf8.pm
+%%PRIV_LIB%%/Devel/SelfStubber.pm
+%%PRIV_LIB%%/Digest.pm
+%%PRIV_LIB%%/Digest/base.pm
+%%PRIV_LIB%%/Digest/file.pm
+%%PRIV_LIB%%/DirHandle.pm
+%%PRIV_LIB%%/Dumpvalue.pm
+%%PRIV_LIB%%/Encode/Changes.e2x
+%%PRIV_LIB%%/Encode/ConfigLocal_PM.e2x
+%%PRIV_LIB%%/Encode/Makefile_PL.e2x
+%%PRIV_LIB%%/Encode/PerlIO.pod
+%%PRIV_LIB%%/Encode/README.e2x
+%%PRIV_LIB%%/Encode/Supported.pod
+%%PRIV_LIB%%/Encode/_PM.e2x
+%%PRIV_LIB%%/Encode/_T.e2x
+%%PRIV_LIB%%/Encode/encode.h
+%%PRIV_LIB%%/English.pm
+%%PRIV_LIB%%/Env.pm
+%%PRIV_LIB%%/Exporter.pm
+%%PRIV_LIB%%/Exporter/Heavy.pm
+%%PRIV_LIB%%/ExtUtils/CBuilder.pm
+%%PRIV_LIB%%/ExtUtils/CBuilder/Base.pm
+%%PRIV_LIB%%/ExtUtils/CBuilder/Platform/Unix.pm
+%%PRIV_LIB%%/ExtUtils/CBuilder/Platform/VMS.pm
+%%PRIV_LIB%%/ExtUtils/CBuilder/Platform/Windows.pm
+%%PRIV_LIB%%/ExtUtils/CBuilder/Platform/Windows/BCC.pm
+%%PRIV_LIB%%/ExtUtils/CBuilder/Platform/Windows/GCC.pm
+%%PRIV_LIB%%/ExtUtils/CBuilder/Platform/Windows/MSVC.pm
+%%PRIV_LIB%%/ExtUtils/CBuilder/Platform/aix.pm
+%%PRIV_LIB%%/ExtUtils/CBuilder/Platform/android.pm
+%%PRIV_LIB%%/ExtUtils/CBuilder/Platform/cygwin.pm
+%%PRIV_LIB%%/ExtUtils/CBuilder/Platform/darwin.pm
+%%PRIV_LIB%%/ExtUtils/CBuilder/Platform/dec_osf.pm
+%%PRIV_LIB%%/ExtUtils/CBuilder/Platform/os2.pm
+%%PRIV_LIB%%/ExtUtils/Command.pm
+%%PRIV_LIB%%/ExtUtils/Command/MM.pm
+%%PRIV_LIB%%/ExtUtils/Constant.pm
+%%PRIV_LIB%%/ExtUtils/Constant/Base.pm
+%%PRIV_LIB%%/ExtUtils/Constant/ProxySubs.pm
+%%PRIV_LIB%%/ExtUtils/Constant/Utils.pm
+%%PRIV_LIB%%/ExtUtils/Constant/XS.pm
+%%PRIV_LIB%%/ExtUtils/Embed.pm
+%%PRIV_LIB%%/ExtUtils/Install.pm
+%%PRIV_LIB%%/ExtUtils/Installed.pm
+%%PRIV_LIB%%/ExtUtils/Liblist.pm
+%%PRIV_LIB%%/ExtUtils/Liblist/Kid.pm
+%%PRIV_LIB%%/ExtUtils/MANIFEST.SKIP
+%%PRIV_LIB%%/ExtUtils/MM.pm
+%%PRIV_LIB%%/ExtUtils/MM_AIX.pm
+%%PRIV_LIB%%/ExtUtils/MM_Any.pm
+%%PRIV_LIB%%/ExtUtils/MM_BeOS.pm
+%%PRIV_LIB%%/ExtUtils/MM_Cygwin.pm
+%%PRIV_LIB%%/ExtUtils/MM_DOS.pm
+%%PRIV_LIB%%/ExtUtils/MM_Darwin.pm
+%%PRIV_LIB%%/ExtUtils/MM_MacOS.pm
+%%PRIV_LIB%%/ExtUtils/MM_NW5.pm
+%%PRIV_LIB%%/ExtUtils/MM_OS2.pm
+%%PRIV_LIB%%/ExtUtils/MM_OS390.pm
+%%PRIV_LIB%%/ExtUtils/MM_QNX.pm
+%%PRIV_LIB%%/ExtUtils/MM_UWIN.pm
+%%PRIV_LIB%%/ExtUtils/MM_Unix.pm
+%%PRIV_LIB%%/ExtUtils/MM_VMS.pm
+%%PRIV_LIB%%/ExtUtils/MM_VOS.pm
+%%PRIV_LIB%%/ExtUtils/MM_Win32.pm
+%%PRIV_LIB%%/ExtUtils/MM_Win95.pm
+%%PRIV_LIB%%/ExtUtils/MY.pm
+%%PRIV_LIB%%/ExtUtils/MakeMaker.pm
+%%PRIV_LIB%%/ExtUtils/MakeMaker/Config.pm
+%%PRIV_LIB%%/ExtUtils/MakeMaker/FAQ.pod
+%%PRIV_LIB%%/ExtUtils/MakeMaker/Locale.pm
+%%PRIV_LIB%%/ExtUtils/MakeMaker/Tutorial.pod
+%%PRIV_LIB%%/ExtUtils/MakeMaker/version.pm
+%%PRIV_LIB%%/ExtUtils/Manifest.pm
+%%PRIV_LIB%%/ExtUtils/Miniperl.pm
+%%PRIV_LIB%%/ExtUtils/Mkbootstrap.pm
+%%PRIV_LIB%%/ExtUtils/Mksymlists.pm
+%%PRIV_LIB%%/ExtUtils/PL2Bat.pm
+%%PRIV_LIB%%/ExtUtils/Packlist.pm
+%%PRIV_LIB%%/ExtUtils/ParseXS.pm
+%%PRIV_LIB%%/ExtUtils/ParseXS.pod
+%%PRIV_LIB%%/ExtUtils/ParseXS/Constants.pm
+%%PRIV_LIB%%/ExtUtils/ParseXS/CountLines.pm
+%%PRIV_LIB%%/ExtUtils/ParseXS/Eval.pm
+%%PRIV_LIB%%/ExtUtils/ParseXS/Utilities.pm
+%%PRIV_LIB%%/ExtUtils/Typemaps.pm
+%%PRIV_LIB%%/ExtUtils/Typemaps/Cmd.pm
+%%PRIV_LIB%%/ExtUtils/Typemaps/InputMap.pm
+%%PRIV_LIB%%/ExtUtils/Typemaps/OutputMap.pm
+%%PRIV_LIB%%/ExtUtils/Typemaps/Type.pm
+%%PRIV_LIB%%/ExtUtils/testlib.pm
+%%PRIV_LIB%%/ExtUtils/typemap
+%%PRIV_LIB%%/ExtUtils/xsubpp
+%%PRIV_LIB%%/Fatal.pm
+%%PRIV_LIB%%/File/Basename.pm
+%%PRIV_LIB%%/File/Compare.pm
+%%PRIV_LIB%%/File/Copy.pm
+%%PRIV_LIB%%/File/Fetch.pm
+%%PRIV_LIB%%/File/Find.pm
+%%PRIV_LIB%%/File/GlobMapper.pm
+%%PRIV_LIB%%/File/Path.pm
+%%PRIV_LIB%%/File/Temp.pm
+%%PRIV_LIB%%/File/stat.pm
+%%PRIV_LIB%%/FileCache.pm
+%%PRIV_LIB%%/FileHandle.pm
+%%PRIV_LIB%%/Filter/Simple.pm
+%%PRIV_LIB%%/FindBin.pm
+%%PRIV_LIB%%/Getopt/Long.pm
+%%PRIV_LIB%%/Getopt/Std.pm
+%%PRIV_LIB%%/HTTP/Tiny.pm
+%%PRIV_LIB%%/I18N/Collate.pm
+%%PRIV_LIB%%/I18N/LangTags.pm
+%%PRIV_LIB%%/I18N/LangTags/Detect.pm
+%%PRIV_LIB%%/I18N/LangTags/List.pm
+%%PRIV_LIB%%/IO/Compress/Adapter/Bzip2.pm
+%%PRIV_LIB%%/IO/Compress/Adapter/Deflate.pm
+%%PRIV_LIB%%/IO/Compress/Adapter/Identity.pm
+%%PRIV_LIB%%/IO/Compress/Base.pm
+%%PRIV_LIB%%/IO/Compress/Base/Common.pm
+%%PRIV_LIB%%/IO/Compress/Bzip2.pm
+%%PRIV_LIB%%/IO/Compress/Deflate.pm
+%%PRIV_LIB%%/IO/Compress/FAQ.pod
+%%PRIV_LIB%%/IO/Compress/Gzip.pm
+%%PRIV_LIB%%/IO/Compress/Gzip/Constants.pm
+%%PRIV_LIB%%/IO/Compress/RawDeflate.pm
+%%PRIV_LIB%%/IO/Compress/Zip.pm
+%%PRIV_LIB%%/IO/Compress/Zip/Constants.pm
+%%PRIV_LIB%%/IO/Compress/Zlib/Constants.pm
+%%PRIV_LIB%%/IO/Compress/Zlib/Extra.pm
+%%PRIV_LIB%%/IO/Socket/IP.pm
+%%PRIV_LIB%%/IO/Uncompress/Adapter/Bunzip2.pm
+%%PRIV_LIB%%/IO/Uncompress/Adapter/Identity.pm
+%%PRIV_LIB%%/IO/Uncompress/Adapter/Inflate.pm
+%%PRIV_LIB%%/IO/Uncompress/AnyInflate.pm
+%%PRIV_LIB%%/IO/Uncompress/AnyUncompress.pm
+%%PRIV_LIB%%/IO/Uncompress/Base.pm
+%%PRIV_LIB%%/IO/Uncompress/Bunzip2.pm
+%%PRIV_LIB%%/IO/Uncompress/Gunzip.pm
+%%PRIV_LIB%%/IO/Uncompress/Inflate.pm
*** 2270 LINES SKIPPED ***