mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-28 05:29:48 +00:00
- Remove lang/perl5.8 (12/16/2008 EOL) and lang/perl5.10 (08/23/2009 EOL)
- lang/5.12 (default) is in Maint mode and lang/5.14 is GA right now. - The final UNcommitted portition of this PR will move the default perl to lang/perl5.14 but mail/cyrus-impad2 mail/cyrus-impad22 print/perlftlib audio/papcl www/WebMagick misc/gcstar math/ploymak must be fixed or marked BROKEN 1st. PR: ports/165457 Submitted by: pgollucci (myself) Approved by: portmgr (linimon) Exp Run by: linimon Tested by: make index
This commit is contained in:
parent
414c2f5806
commit
346415e3c0
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=292976
@ -68,10 +68,6 @@ PERL_ARCH?= mach
|
||||
PERL_PORT?= perl5.14
|
||||
.elif ${PERL_LEVEL} >= 501200
|
||||
PERL_PORT?= perl5.12
|
||||
.elif ${PERL_LEVEL} >= 501000
|
||||
PERL_PORT?= perl5.10
|
||||
.else # ${PERL_LEVEL} < 501000
|
||||
PERL_PORT?= perl5.8
|
||||
.endif
|
||||
|
||||
SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VERSION}
|
||||
|
@ -235,10 +235,8 @@
|
||||
SUBDIR += pbasic
|
||||
SUBDIR += pcc
|
||||
SUBDIR += pecl-perl
|
||||
SUBDIR += perl5.10
|
||||
SUBDIR += perl5.12
|
||||
SUBDIR += perl5.14
|
||||
SUBDIR += perl5.8
|
||||
SUBDIR += petite-chez
|
||||
SUBDIR += pfe
|
||||
SUBDIR += phantomjs
|
||||
|
@ -1,245 +0,0 @@
|
||||
# New ports collection makefile for: perl5
|
||||
# Date created: 16 April 1995
|
||||
# Whom: markm
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= perl
|
||||
PORTVERSION= ${PERL_VERSION}
|
||||
PORTREVISION= 7
|
||||
CATEGORIES= lang devel perl5
|
||||
MASTER_SITES= CPAN \
|
||||
${MASTER_SITE_LOCAL:S/$/:local/} \
|
||||
http://protey.ru/freebsd/distfiles/:local
|
||||
MASTER_SITE_SUBDIR= ../../src \
|
||||
skv/:local
|
||||
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
|
||||
BSDPAN-${BSDPAN_VERSION}${EXTRACT_SUFX}:local
|
||||
DIST_SUBDIR= perl
|
||||
|
||||
MAINTAINER= skv@FreeBSD.org
|
||||
COMMENT= Practical Extraction and Report Language
|
||||
|
||||
LICENSE= ART10 GPLv1
|
||||
LICENSE_COMB= dual
|
||||
|
||||
CONFLICTS= perl-5.6.* perl-5.8.* perl-threaded-5.8.* \
|
||||
perl-5.12.* perl-threaded-5.12.* \
|
||||
perl-5.14.* perl-threaded-5.14.*
|
||||
MAKE_JOBS_UNSAFE= yes
|
||||
|
||||
OPTIONS= DEBUGGING "Build with debugging support" off \
|
||||
GDBM "Build GDBM_File extension" off \
|
||||
PERL_MALLOC "Use Perl malloc" off \
|
||||
PERL_64BITINT "Use 64 bit integers (on i386)" on \
|
||||
THREADS "Build threaded perl" off \
|
||||
PTHREAD "Build with -pthread" on \
|
||||
MULTIPLICITY "Use multiplicity" off \
|
||||
SUIDPERL "Build set-user-id suidperl binary" off \
|
||||
SITECUSTOMIZE "Run-time customization of @INC" off \
|
||||
USE_PERL "Rewrite links in /usr/bin" on
|
||||
|
||||
PORTSCOUT= limitw:1,even
|
||||
|
||||
PERL_VERSION= 5.10.1
|
||||
PERL_ARCH= mach
|
||||
SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VERSION}
|
||||
SITE_PERL?= ${LOCALBASE}/${SITE_PERL_REL}
|
||||
|
||||
USE_BZIP2= yes
|
||||
HAS_CONFIGURE= yes
|
||||
MAKE_JOBS_SAFE= yes
|
||||
CONFIGURE_SCRIPT=Configure
|
||||
CONFIGURE_ARGS= -sde -Dprefix=${PREFIX} \
|
||||
-Darchlib=${PREFIX}/lib/perl5/${PERL_VERSION}/${PERL_ARCH} \
|
||||
-Dprivlib=${PREFIX}/lib/perl5/${PERL_VERSION} \
|
||||
-Dman3dir=${PREFIX}/lib/perl5/${PERL_VERSION}/perl/man/man3 \
|
||||
-Dman1dir=${PREFIX}/man/man1 \
|
||||
-Dsitearch=${PREFIX}/${SITE_PERL_REL}/${PERL_ARCH} \
|
||||
-Dsitelib=${PREFIX}/${SITE_PERL_REL} -Dscriptdir=${PREFIX}/bin \
|
||||
-Dsiteman3dir=${PREFIX}/lib/perl5/${PERL_VERSION}/man/man3 \
|
||||
-Dsiteman1dir=${PREFIX}/man/man1 \
|
||||
-Ui_malloc -Ui_iconv -Uinstallusrbinperl \
|
||||
-Dcc="${CC}" -Duseshrplib -Dinc_version_list=none \
|
||||
-Dccflags=-DAPPLLIB_EXP=\"${BSDPAN_DEST}\"
|
||||
LOCALE_CLEANUP= LANG="" LC_ALL="" LC_COLLATE="" LC_CTYPE="" \
|
||||
LC_MESSAGES="" LC_MONETARY="" LC_NUMERIC="" \
|
||||
LC_TIME=""
|
||||
CONFIGURE_ENV+= ${LOCALE_CLEANUP} UNAME_v="$$(uname -v | sed 'y/=/ /')"
|
||||
MAKE_ENV+= ${LOCALE_CLEANUP}
|
||||
|
||||
.include "Makefile.man"
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if defined(PERL_VENDOR_PREFIX)
|
||||
CONFIGURE_ARGS+= \
|
||||
-Dvendorprefix=${PERL_VENDOR_PREFIX} \
|
||||
-Dvendorarch=${PERL_VENDOR_PREFIX}/lib/perl5/${PERL_VERSION}/${PERL_ARCH} \
|
||||
-Dvendorbin=${PERL_VENDOR_PREFIX}/bin \
|
||||
-Dvendorlib=${PERL_VENDOR_PREFIX}/lib/perl5/${PERL_VERSION} \
|
||||
-Dvendorman3dir=${PERL_VENDOR_PREFIX}/lib/perl5/${PERL_VERSION}/man/man3 \
|
||||
-Dvendorman1dir=${PERL_VENDOR_PREFIX}/man/man1
|
||||
.endif
|
||||
|
||||
PLIST_SUB+= PERL_VERSION=${PERL_VERSION} \
|
||||
PERL_VER=${PERL_VERSION} \
|
||||
PERL_ARCH=${PERL_ARCH} \
|
||||
SITE_PERL=${SITE_PERL:S|^${LOCALBASE}/||}
|
||||
|
||||
.if defined(WITH_DEBUGGING)
|
||||
CONFIGURE_ARGS+= -Doptimize="-g" -DDEBUGGING
|
||||
STRIP=
|
||||
STRIP_CMD= ${TRUE}
|
||||
.else
|
||||
CONFIGURE_ARGS+= -Doptimize="${CFLAGS}"
|
||||
.endif
|
||||
|
||||
.if defined(ENABLE_SUIDPERL) || defined(WITH_SUIDPERL)
|
||||
CONFIGURE_ARGS+= -Dd_dosuid=define
|
||||
PLIST_SUB+= SUIDPERL=""
|
||||
.else
|
||||
CONFIGURE_ARGS+= -Ud_dosuid
|
||||
PLIST_SUB+= SUIDPERL="@comment "
|
||||
.endif
|
||||
|
||||
.if defined(WITH_GDBM)
|
||||
CONFIGURE_ARGS+= -Di_gdbm
|
||||
LIB_DEPENDS+= gdbm.4:${PORTSDIR}/databases/gdbm
|
||||
PLIST_SUB+= GDBM=""
|
||||
.else
|
||||
CONFIGURE_ARGS+= -Ui_gdbm
|
||||
PLIST_SUB+= GDBM="@comment "
|
||||
.endif
|
||||
|
||||
.if ${OSVERSION} >= 900022
|
||||
PLIST_SUB+= MANCONF=""
|
||||
.else
|
||||
PLIST_SUB+= MANCONF="@comment "
|
||||
.endif
|
||||
|
||||
.if defined(WITHOUT_PERL_MALLOC)
|
||||
.undef WITH_PERL_MALLOC
|
||||
.else
|
||||
WITH_PERL_MALLOC= yes
|
||||
.endif
|
||||
|
||||
.if defined(WITH_THREADS)
|
||||
#XXX .if ${ARCH} == "amd64"
|
||||
#XXX IGNORE= Threaded perl does not pass tests on ${ARCH}
|
||||
#XXX .endif
|
||||
CONFIGURE_ARGS+= -Dusethreads=y
|
||||
PKGNAMESUFFIX= -threaded
|
||||
WITH_PTHREAD= yes
|
||||
# it seems perl malloc has problems with threaded perl on FreeBSD
|
||||
.undef WITH_PERL_MALLOC
|
||||
.else
|
||||
CONFIGURE_ARGS+= -Dusethreads=n
|
||||
.endif
|
||||
|
||||
.if defined(WITH_PERL_MALLOC)
|
||||
CONFIGURE_ARGS+= -Dusemymalloc=y
|
||||
.else
|
||||
CONFIGURE_ARGS+= -Dusemymalloc=n
|
||||
.endif
|
||||
|
||||
.if defined(WITH_PERL_64BITINT)
|
||||
CONFIGURE_ARGS+= -Duse64bitint
|
||||
.endif
|
||||
|
||||
.if defined(WITH_MULTIPLICITY)
|
||||
CONFIGURE_ARGS+= -Dusemultiplicity=y
|
||||
.endif
|
||||
|
||||
.if defined(WITH_SITECUSTOMIZE)
|
||||
CONFIGURE_ARGS+= -Dusesitecustomize
|
||||
.endif
|
||||
|
||||
.if defined(WITH_USE_PERL)
|
||||
LINK_USRBIN= yes
|
||||
.else
|
||||
LINK_USRBIN= no
|
||||
.endif
|
||||
|
||||
NO_LATEST_LINK= yes
|
||||
|
||||
.if defined(WITH_GDBM)
|
||||
MAN3+= GDBM_File.3
|
||||
.endif
|
||||
MAN3PREFIX= ${PREFIX}/lib/perl5/${PERL_VERSION}/perl
|
||||
|
||||
BSDPAN_DEST= ${PREFIX}/lib/perl5/${PERL_VERSION}/BSDPAN
|
||||
BSDPAN_FILES= BSDPAN.pm BSDPAN/Override.pm Config.pm \
|
||||
ExtUtils/MM_Unix.pm \
|
||||
ExtUtils/MakeMaker.pm \
|
||||
ExtUtils/Packlist.pm
|
||||
BSDPAN_VERSION= 20111107
|
||||
BSDPAN_WRKSRC= ${WRKDIR}/BSDPAN-${BSDPAN_VERSION}
|
||||
|
||||
PKGINSTALL= ${WRKDIR}/pkg-install
|
||||
PKGDEINSTALL= ${WRKDIR}/pkg-deinstall
|
||||
|
||||
post-patch:
|
||||
${SED} -e 's|%%PREFIX%%|${PREFIX}|g;' \
|
||||
-e 's|%%PERL_VERSION%%|${PERL_VERSION}|g;' \
|
||||
-e 's|%%PERL_ARCH%%|${PERL_ARCH}|g;' \
|
||||
-e 's|%%MAKE_CONF%%|${__MAKE_CONF}|g;' \
|
||||
-e 's|%%LINK_USRBIN%%|${LINK_USRBIN}|g;' \
|
||||
${FILESDIR}/use.perl \
|
||||
> ${WRKDIR}/use.perl
|
||||
${SED} -e 's|%%PREFIX%%|${PREFIX}|g;' \
|
||||
-e 's|%%PERL_VERSION%%|${PERL_VERSION}|g;' \
|
||||
${FILESDIR}/perl-man.conf \
|
||||
> ${WRKDIR}/perl-man.conf
|
||||
${SED} -e 's|%%PERL%%|${PERL}|g; s|%%PERL_VERSION%%|${PERL_VERSION}|g; s|%%PKGNAME%%|${PKGNAME}|g' \
|
||||
${FILESDIR}/perl-after-upgrade \
|
||||
> ${WRKDIR}/perl-after-upgrade
|
||||
${CP} ${WRKDIR}/use.perl ${PKGINSTALL}
|
||||
${CP} ${WRKDIR}/use.perl ${PKGDEINSTALL}
|
||||
${SED} -i '' -e 's|%%PERL_PKGNAME%%|${PKGNAME}|g; s|%%PERL_VER%%|5.10|g;' \
|
||||
-e 's!%%BSDPAN_VERSION%%!${BSDPAN_VERSION}!g;' \
|
||||
${BSDPAN_WRKSRC}/ExtUtils/*.pm
|
||||
${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
|
||||
${WRKSRC}/Configure ${WRKSRC}/hints/freebsd.sh
|
||||
.if defined(WITH_PTHREAD)
|
||||
${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g;' \
|
||||
-e 's|%%PTHREAD_CFLAGS%%|${PTHREAD_CFLAGS}|g;' \
|
||||
${WRKSRC}/hints/freebsd.sh
|
||||
.else
|
||||
${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%||g;' \
|
||||
-e 's|%%PTHREAD_CFLAGS%%||g;' \
|
||||
${WRKSRC}/hints/freebsd.sh
|
||||
.endif
|
||||
|
||||
pre-su-install:
|
||||
@${RM} -f ${PREFIX}/bin/perl${PERL_VERSION}
|
||||
@${RM} -f ${PREFIX}/bin/perl
|
||||
|
||||
post-install:
|
||||
@${STRIP_CMD} ${PREFIX}/bin/perl${PERL_VERSION}
|
||||
@${STRIP_CMD} ${PREFIX}/bin/perl
|
||||
@${PREFIX}/bin/pod2man ${WRKDIR}/perl-after-upgrade >${WRKDIR}/perl-after-upgrade.1
|
||||
@${INSTALL_SCRIPT} ${WRKDIR}/perl-after-upgrade ${PREFIX}/bin/perl-after-upgrade
|
||||
@${INSTALL_MAN} ${WRKDIR}/perl-after-upgrade.1 ${MAN1PREFIX}/man/man1/perl-after-upgrade.1
|
||||
@${LN} -sf ${PREFIX}/bin/perl${PERL_VERSION} ${PREFIX}/bin/perl5
|
||||
.if ${OSVERSION} >= 900022
|
||||
@${INSTALL_DATA} ${WRKDIR}/perl-man.conf ${PREFIX}/etc/man.d/perl${PERL_VERSION}.conf
|
||||
.endif
|
||||
.for files in ${BSDPAN_FILES}
|
||||
${MKDIR} ${BSDPAN_DEST}/${files:H}
|
||||
${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \
|
||||
${BSDPAN_WRKSRC}/${files} ${BSDPAN_DEST}/${files}
|
||||
.endfor
|
||||
PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
|
||||
|
||||
test: build
|
||||
@(cd ${WRKSRC}; make test)
|
||||
|
||||
regression-test: test
|
||||
|
||||
rebuild-xs:
|
||||
${LOCALBASE}/sbin/portupgrade -f `(${FIND} ${PKG_DBDIR}/p5*/+CONTENTS | \
|
||||
${XARGS} ${GREP} -El 'site_perl.*\.so' | \
|
||||
${SED} -e 's!/var/db/pkg/!!; s!/+CONTENTS!!;')`
|
||||
|
||||
.include <bsd.port.post.mk>
|
@ -1,745 +0,0 @@
|
||||
# $FreeBSD$
|
||||
|
||||
MAN1+= a2p.1
|
||||
MAN1+= c2ph.1
|
||||
MAN1+= config_data.1
|
||||
MAN1+= corelist.1
|
||||
MAN1+= cpan.1
|
||||
MAN1+= cpan2dist.1
|
||||
MAN1+= cpanp.1
|
||||
MAN1+= dprofpp.1
|
||||
MAN1+= enc2xs.1
|
||||
MAN1+= find2perl.1
|
||||
MAN1+= h2ph.1
|
||||
MAN1+= h2xs.1
|
||||
MAN1+= instmodsh.1
|
||||
MAN1+= libnetcfg.1
|
||||
MAN1+= perl-after-upgrade.1
|
||||
MAN1+= perl.1
|
||||
MAN1+= perl5004delta.1
|
||||
MAN1+= perl5005delta.1
|
||||
MAN1+= perl5100delta.1
|
||||
MAN1+= perl5101delta.1
|
||||
MAN1+= perl561delta.1
|
||||
MAN1+= perl56delta.1
|
||||
MAN1+= perl570delta.1
|
||||
MAN1+= perl571delta.1
|
||||
MAN1+= perl572delta.1
|
||||
MAN1+= perl573delta.1
|
||||
MAN1+= perl581delta.1
|
||||
MAN1+= perl582delta.1
|
||||
MAN1+= perl583delta.1
|
||||
MAN1+= perl584delta.1
|
||||
MAN1+= perl585delta.1
|
||||
MAN1+= perl586delta.1
|
||||
MAN1+= perl587delta.1
|
||||
MAN1+= perl588delta.1
|
||||
MAN1+= perl589delta.1
|
||||
MAN1+= perl58delta.1
|
||||
MAN1+= perl590delta.1
|
||||
MAN1+= perl591delta.1
|
||||
MAN1+= perl592delta.1
|
||||
MAN1+= perl593delta.1
|
||||
MAN1+= perl594delta.1
|
||||
MAN1+= perl595delta.1
|
||||
MAN1+= perlaix.1
|
||||
MAN1+= perlamiga.1
|
||||
MAN1+= perlapi.1
|
||||
MAN1+= perlapio.1
|
||||
MAN1+= perlapollo.1
|
||||
MAN1+= perlartistic.1
|
||||
MAN1+= perlbeos.1
|
||||
MAN1+= perlbook.1
|
||||
MAN1+= perlboot.1
|
||||
MAN1+= perlbot.1
|
||||
MAN1+= perlbs2000.1
|
||||
MAN1+= perlbug.1
|
||||
MAN1+= perlcall.1
|
||||
MAN1+= perlce.1
|
||||
MAN1+= perlcheat.1
|
||||
MAN1+= perlclib.1
|
||||
MAN1+= perlcn.1
|
||||
MAN1+= perlcommunity.1
|
||||
MAN1+= perlcompile.1
|
||||
MAN1+= perlcygwin.1
|
||||
MAN1+= perldata.1
|
||||
MAN1+= perldbmfilter.1
|
||||
MAN1+= perldebguts.1
|
||||
MAN1+= perldebtut.1
|
||||
MAN1+= perldebug.1
|
||||
MAN1+= perldelta.1
|
||||
MAN1+= perldgux.1
|
||||
MAN1+= perldiag.1
|
||||
MAN1+= perldoc.1
|
||||
MAN1+= perldos.1
|
||||
MAN1+= perldsc.1
|
||||
MAN1+= perlebcdic.1
|
||||
MAN1+= perlembed.1
|
||||
MAN1+= perlepoc.1
|
||||
MAN1+= perlfaq.1
|
||||
MAN1+= perlfaq1.1
|
||||
MAN1+= perlfaq2.1
|
||||
MAN1+= perlfaq3.1
|
||||
MAN1+= perlfaq4.1
|
||||
MAN1+= perlfaq5.1
|
||||
MAN1+= perlfaq6.1
|
||||
MAN1+= perlfaq7.1
|
||||
MAN1+= perlfaq8.1
|
||||
MAN1+= perlfaq9.1
|
||||
MAN1+= perlfilter.1
|
||||
MAN1+= perlfork.1
|
||||
MAN1+= perlform.1
|
||||
MAN1+= perlfreebsd.1
|
||||
MAN1+= perlfunc.1
|
||||
MAN1+= perlglossary.1
|
||||
MAN1+= perlgpl.1
|
||||
MAN1+= perlguts.1
|
||||
MAN1+= perlhack.1
|
||||
MAN1+= perlhaiku.1
|
||||
MAN1+= perlhist.1
|
||||
MAN1+= perlhpux.1
|
||||
MAN1+= perlhurd.1
|
||||
MAN1+= perlintern.1
|
||||
MAN1+= perlintro.1
|
||||
MAN1+= perliol.1
|
||||
MAN1+= perlipc.1
|
||||
MAN1+= perlirix.1
|
||||
MAN1+= perlivp.1
|
||||
MAN1+= perljp.1
|
||||
MAN1+= perlko.1
|
||||
MAN1+= perllexwarn.1
|
||||
MAN1+= perllinux.1
|
||||
MAN1+= perllocale.1
|
||||
MAN1+= perllol.1
|
||||
MAN1+= perlmachten.1
|
||||
MAN1+= perlmacos.1
|
||||
MAN1+= perlmacosx.1
|
||||
MAN1+= perlmint.1
|
||||
MAN1+= perlmod.1
|
||||
MAN1+= perlmodinstall.1
|
||||
MAN1+= perlmodlib.1
|
||||
MAN1+= perlmodstyle.1
|
||||
MAN1+= perlmpeix.1
|
||||
MAN1+= perlmroapi.1
|
||||
MAN1+= perlnetware.1
|
||||
MAN1+= perlnewmod.1
|
||||
MAN1+= perlnumber.1
|
||||
MAN1+= perlobj.1
|
||||
MAN1+= perlop.1
|
||||
MAN1+= perlopenbsd.1
|
||||
MAN1+= perlopentut.1
|
||||
MAN1+= perlos2.1
|
||||
MAN1+= perlos390.1
|
||||
MAN1+= perlos400.1
|
||||
MAN1+= perlothrtut.1
|
||||
MAN1+= perlpacktut.1
|
||||
MAN1+= perlperf.1
|
||||
MAN1+= perlplan9.1
|
||||
MAN1+= perlpod.1
|
||||
MAN1+= perlpodspec.1
|
||||
MAN1+= perlport.1
|
||||
MAN1+= perlpragma.1
|
||||
MAN1+= perlqnx.1
|
||||
MAN1+= perlre.1
|
||||
MAN1+= perlreapi.1
|
||||
MAN1+= perlrebackslash.1
|
||||
MAN1+= perlrecharclass.1
|
||||
MAN1+= perlref.1
|
||||
MAN1+= perlreftut.1
|
||||
MAN1+= perlreguts.1
|
||||
MAN1+= perlrepository.1
|
||||
MAN1+= perlrequick.1
|
||||
MAN1+= perlreref.1
|
||||
MAN1+= perlretut.1
|
||||
MAN1+= perlriscos.1
|
||||
MAN1+= perlrun.1
|
||||
MAN1+= perlsec.1
|
||||
MAN1+= perlsolaris.1
|
||||
MAN1+= perlstyle.1
|
||||
MAN1+= perlsub.1
|
||||
MAN1+= perlsymbian.1
|
||||
MAN1+= perlsyn.1
|
||||
MAN1+= perlthanks.1
|
||||
MAN1+= perlthrtut.1
|
||||
MAN1+= perltie.1
|
||||
MAN1+= perltoc.1
|
||||
MAN1+= perltodo.1
|
||||
MAN1+= perltooc.1
|
||||
MAN1+= perltoot.1
|
||||
MAN1+= perltrap.1
|
||||
MAN1+= perltru64.1
|
||||
MAN1+= perltw.1
|
||||
MAN1+= perlunicode.1
|
||||
MAN1+= perlunifaq.1
|
||||
MAN1+= perluniintro.1
|
||||
MAN1+= perlunitut.1
|
||||
MAN1+= perlutil.1
|
||||
MAN1+= perluts.1
|
||||
MAN1+= perlvar.1
|
||||
MAN1+= perlvmesa.1
|
||||
MAN1+= perlvms.1
|
||||
MAN1+= perlvos.1
|
||||
MAN1+= perlwin32.1
|
||||
MAN1+= perlxs.1
|
||||
MAN1+= perlxstut.1
|
||||
MAN1+= piconv.1
|
||||
MAN1+= pl2pm.1
|
||||
MAN1+= pod2html.1
|
||||
MAN1+= pod2latex.1
|
||||
MAN1+= pod2man.1
|
||||
MAN1+= pod2text.1
|
||||
MAN1+= pod2usage.1
|
||||
MAN1+= podchecker.1
|
||||
MAN1+= podselect.1
|
||||
MAN1+= prove.1
|
||||
MAN1+= psed.1
|
||||
MAN1+= pstruct.1
|
||||
MAN1+= ptar.1
|
||||
MAN1+= ptardiff.1
|
||||
MAN1+= s2p.1
|
||||
MAN1+= shasum.1
|
||||
MAN1+= splain.1
|
||||
MAN1+= xsubpp.1
|
||||
|
||||
MAN3+= AnyDBM_File.3
|
||||
MAN3+= App::Prove.3
|
||||
MAN3+= App::Prove::State.3
|
||||
MAN3+= App::Prove::State::Result.3
|
||||
MAN3+= App::Prove::State::Result::Test.3
|
||||
MAN3+= Archive::Extract.3
|
||||
MAN3+= Archive::Tar.3
|
||||
MAN3+= Archive::Tar::File.3
|
||||
MAN3+= Attribute::Handlers.3
|
||||
MAN3+= AutoLoader.3
|
||||
MAN3+= AutoSplit.3
|
||||
MAN3+= B.3
|
||||
MAN3+= B::Concise.3
|
||||
MAN3+= B::Debug.3
|
||||
MAN3+= B::Deparse.3
|
||||
MAN3+= B::Lint.3
|
||||
MAN3+= B::Lint::Debug.3
|
||||
MAN3+= B::Showlex.3
|
||||
MAN3+= B::Terse.3
|
||||
MAN3+= B::Xref.3
|
||||
MAN3+= Benchmark.3
|
||||
MAN3+= CGI.3
|
||||
MAN3+= CGI::Apache.3
|
||||
MAN3+= CGI::Carp.3
|
||||
MAN3+= CGI::Cookie.3
|
||||
MAN3+= CGI::Fast.3
|
||||
MAN3+= CGI::Pretty.3
|
||||
MAN3+= CGI::Push.3
|
||||
MAN3+= CGI::Switch.3
|
||||
MAN3+= CGI::Util.3
|
||||
MAN3+= CORE.3
|
||||
MAN3+= CPAN.3
|
||||
MAN3+= CPAN::API::HOWTO.3
|
||||
MAN3+= CPAN::Debug.3
|
||||
MAN3+= CPAN::Distroprefs.3
|
||||
MAN3+= CPAN::FirstTime.3
|
||||
MAN3+= CPAN::HandleConfig.3
|
||||
MAN3+= CPAN::Kwalify.3
|
||||
MAN3+= CPAN::Nox.3
|
||||
MAN3+= CPAN::Queue.3
|
||||
MAN3+= CPAN::Tarzip.3
|
||||
MAN3+= CPAN::Version.3
|
||||
MAN3+= CPANPLUS.3
|
||||
MAN3+= CPANPLUS::Backend.3
|
||||
MAN3+= CPANPLUS::Backend::RV.3
|
||||
MAN3+= CPANPLUS::Config.3
|
||||
MAN3+= CPANPLUS::Configure.3
|
||||
MAN3+= CPANPLUS::Dist.3
|
||||
MAN3+= CPANPLUS::Dist::Autobundle.3
|
||||
MAN3+= CPANPLUS::Dist::Base.3
|
||||
MAN3+= CPANPLUS::Dist::Build.3
|
||||
MAN3+= CPANPLUS::Dist::Build::Constants.3
|
||||
MAN3+= CPANPLUS::Dist::MM.3
|
||||
MAN3+= CPANPLUS::Dist::Sample.3
|
||||
MAN3+= CPANPLUS::Error.3
|
||||
MAN3+= CPANPLUS::FAQ.3
|
||||
MAN3+= CPANPLUS::Hacking.3
|
||||
MAN3+= CPANPLUS::Internals.3
|
||||
MAN3+= CPANPLUS::Internals::Extract.3
|
||||
MAN3+= CPANPLUS::Internals::Fetch.3
|
||||
MAN3+= CPANPLUS::Internals::Report.3
|
||||
MAN3+= CPANPLUS::Internals::Search.3
|
||||
MAN3+= CPANPLUS::Internals::Source.3
|
||||
MAN3+= CPANPLUS::Internals::Source::Memory.3
|
||||
MAN3+= CPANPLUS::Internals::Source::SQLite.3
|
||||
MAN3+= CPANPLUS::Internals::Utils.3
|
||||
MAN3+= CPANPLUS::Module.3
|
||||
MAN3+= CPANPLUS::Module::Author.3
|
||||
MAN3+= CPANPLUS::Module::Author::Fake.3
|
||||
MAN3+= CPANPLUS::Module::Checksums.3
|
||||
MAN3+= CPANPLUS::Module::Fake.3
|
||||
MAN3+= CPANPLUS::Selfupdate.3
|
||||
MAN3+= CPANPLUS::Shell.3
|
||||
MAN3+= CPANPLUS::Shell::Classic.3
|
||||
MAN3+= CPANPLUS::Shell::Default.3
|
||||
MAN3+= CPANPLUS::Shell::Default::Plugins::CustomSource.3
|
||||
MAN3+= CPANPLUS::Shell::Default::Plugins::HOWTO.3
|
||||
MAN3+= CPANPLUS::Shell::Default::Plugins::Remote.3
|
||||
MAN3+= CPANPLUS::Shell::Default::Plugins::Source.3
|
||||
MAN3+= Carp.3
|
||||
MAN3+= Carp::Heavy.3
|
||||
MAN3+= Class::ISA.3
|
||||
MAN3+= Class::Struct.3
|
||||
MAN3+= Compress::Raw::Bzip2.3
|
||||
MAN3+= Compress::Raw::Zlib.3
|
||||
MAN3+= Compress::Zlib.3
|
||||
MAN3+= Config.3
|
||||
MAN3+= Config::Extensions.3
|
||||
MAN3+= Cwd.3
|
||||
MAN3+= DB.3
|
||||
MAN3+= DBM_Filter.3
|
||||
MAN3+= DBM_Filter::compress.3
|
||||
MAN3+= DBM_Filter::encode.3
|
||||
MAN3+= DBM_Filter::int32.3
|
||||
MAN3+= DBM_Filter::null.3
|
||||
MAN3+= DBM_Filter::utf8.3
|
||||
MAN3+= DB_File.3
|
||||
MAN3+= Data::Dumper.3
|
||||
MAN3+= Devel::DProf.3
|
||||
MAN3+= Devel::InnerPackage.3
|
||||
MAN3+= Devel::PPPort.3
|
||||
MAN3+= Devel::Peek.3
|
||||
MAN3+= Devel::SelfStubber.3
|
||||
MAN3+= Digest.3
|
||||
MAN3+= Digest::MD5.3
|
||||
MAN3+= Digest::SHA.3
|
||||
MAN3+= Digest::base.3
|
||||
MAN3+= Digest::file.3
|
||||
MAN3+= DirHandle.3
|
||||
MAN3+= Dumpvalue.3
|
||||
MAN3+= DynaLoader.3
|
||||
MAN3+= Encode.3
|
||||
MAN3+= Encode::Alias.3
|
||||
MAN3+= Encode::Byte.3
|
||||
MAN3+= Encode::CJKConstants.3
|
||||
MAN3+= Encode::CN.3
|
||||
MAN3+= Encode::CN::HZ.3
|
||||
MAN3+= Encode::Config.3
|
||||
MAN3+= Encode::EBCDIC.3
|
||||
MAN3+= Encode::Encoder.3
|
||||
MAN3+= Encode::Encoding.3
|
||||
MAN3+= Encode::GSM0338.3
|
||||
MAN3+= Encode::Guess.3
|
||||
MAN3+= Encode::JP.3
|
||||
MAN3+= Encode::JP::H2Z.3
|
||||
MAN3+= Encode::JP::JIS7.3
|
||||
MAN3+= Encode::KR.3
|
||||
MAN3+= Encode::KR::2022_KR.3
|
||||
MAN3+= Encode::MIME::Header.3
|
||||
MAN3+= Encode::MIME::Name.3
|
||||
MAN3+= Encode::PerlIO.3
|
||||
MAN3+= Encode::Supported.3
|
||||
MAN3+= Encode::Symbol.3
|
||||
MAN3+= Encode::TW.3
|
||||
MAN3+= Encode::Unicode.3
|
||||
MAN3+= Encode::Unicode::UTF7.3
|
||||
MAN3+= English.3
|
||||
MAN3+= Env.3
|
||||
MAN3+= Errno.3
|
||||
MAN3+= Exporter.3
|
||||
MAN3+= Exporter::Heavy.3
|
||||
MAN3+= ExtUtils::CBuilder.3
|
||||
MAN3+= ExtUtils::CBuilder::Platform::Windows.3
|
||||
MAN3+= ExtUtils::Command.3
|
||||
MAN3+= ExtUtils::Command::MM.3
|
||||
MAN3+= ExtUtils::Constant.3
|
||||
MAN3+= ExtUtils::Constant::Base.3
|
||||
MAN3+= ExtUtils::Constant::Utils.3
|
||||
MAN3+= ExtUtils::Constant::XS.3
|
||||
MAN3+= ExtUtils::Embed.3
|
||||
MAN3+= ExtUtils::Install.3
|
||||
MAN3+= ExtUtils::Installed.3
|
||||
MAN3+= ExtUtils::Liblist.3
|
||||
MAN3+= ExtUtils::MM.3
|
||||
MAN3+= ExtUtils::MM_AIX.3
|
||||
MAN3+= ExtUtils::MM_Any.3
|
||||
MAN3+= ExtUtils::MM_BeOS.3
|
||||
MAN3+= ExtUtils::MM_Cygwin.3
|
||||
MAN3+= ExtUtils::MM_DOS.3
|
||||
MAN3+= ExtUtils::MM_Darwin.3
|
||||
MAN3+= ExtUtils::MM_MacOS.3
|
||||
MAN3+= ExtUtils::MM_NW5.3
|
||||
MAN3+= ExtUtils::MM_OS2.3
|
||||
MAN3+= ExtUtils::MM_QNX.3
|
||||
MAN3+= ExtUtils::MM_UWIN.3
|
||||
MAN3+= ExtUtils::MM_Unix.3
|
||||
MAN3+= ExtUtils::MM_VMS.3
|
||||
MAN3+= ExtUtils::MM_VOS.3
|
||||
MAN3+= ExtUtils::MM_Win32.3
|
||||
MAN3+= ExtUtils::MM_Win95.3
|
||||
MAN3+= ExtUtils::MY.3
|
||||
MAN3+= ExtUtils::MakeMaker.3
|
||||
MAN3+= ExtUtils::MakeMaker::Config.3
|
||||
MAN3+= ExtUtils::MakeMaker::FAQ.3
|
||||
MAN3+= ExtUtils::MakeMaker::Tutorial.3
|
||||
MAN3+= ExtUtils::Manifest.3
|
||||
MAN3+= ExtUtils::Miniperl.3
|
||||
MAN3+= ExtUtils::Mkbootstrap.3
|
||||
MAN3+= ExtUtils::Mksymlists.3
|
||||
MAN3+= ExtUtils::Packlist.3
|
||||
MAN3+= ExtUtils::ParseXS.3
|
||||
MAN3+= ExtUtils::XSSymSet.3
|
||||
MAN3+= ExtUtils::testlib.3
|
||||
MAN3+= Fatal.3
|
||||
MAN3+= Fcntl.3
|
||||
MAN3+= File::Basename.3
|
||||
MAN3+= File::CheckTree.3
|
||||
MAN3+= File::Compare.3
|
||||
MAN3+= File::Copy.3
|
||||
MAN3+= File::DosGlob.3
|
||||
MAN3+= File::Fetch.3
|
||||
MAN3+= File::Find.3
|
||||
MAN3+= File::Glob.3
|
||||
MAN3+= File::GlobMapper.3
|
||||
MAN3+= File::Path.3
|
||||
MAN3+= File::Spec.3
|
||||
MAN3+= File::Spec::Cygwin.3
|
||||
MAN3+= File::Spec::Epoc.3
|
||||
MAN3+= File::Spec::Functions.3
|
||||
MAN3+= File::Spec::Mac.3
|
||||
MAN3+= File::Spec::OS2.3
|
||||
MAN3+= File::Spec::Unix.3
|
||||
MAN3+= File::Spec::VMS.3
|
||||
MAN3+= File::Spec::Win32.3
|
||||
MAN3+= File::Temp.3
|
||||
MAN3+= File::stat.3
|
||||
MAN3+= FileCache.3
|
||||
MAN3+= FileHandle.3
|
||||
MAN3+= Filter::Simple.3
|
||||
MAN3+= Filter::Util::Call.3
|
||||
MAN3+= FindBin.3
|
||||
MAN3+= Getopt::Long.3
|
||||
MAN3+= Getopt::Std.3
|
||||
MAN3+= Hash::Util.3
|
||||
MAN3+= Hash::Util::FieldHash.3
|
||||
MAN3+= I18N::Collate.3
|
||||
MAN3+= I18N::LangTags.3
|
||||
MAN3+= I18N::LangTags::Detect.3
|
||||
MAN3+= I18N::LangTags::List.3
|
||||
MAN3+= I18N::Langinfo.3
|
||||
MAN3+= IO.3
|
||||
MAN3+= IO::Compress::Base.3
|
||||
MAN3+= IO::Compress::Bzip2.3
|
||||
MAN3+= IO::Compress::Deflate.3
|
||||
MAN3+= IO::Compress::Gzip.3
|
||||
MAN3+= IO::Compress::RawDeflate.3
|
||||
MAN3+= IO::Compress::Zip.3
|
||||
MAN3+= IO::Dir.3
|
||||
MAN3+= IO::File.3
|
||||
MAN3+= IO::Handle.3
|
||||
MAN3+= IO::Pipe.3
|
||||
MAN3+= IO::Poll.3
|
||||
MAN3+= IO::Seekable.3
|
||||
MAN3+= IO::Select.3
|
||||
MAN3+= IO::Socket.3
|
||||
MAN3+= IO::Socket::INET.3
|
||||
MAN3+= IO::Socket::UNIX.3
|
||||
MAN3+= IO::Uncompress::AnyInflate.3
|
||||
MAN3+= IO::Uncompress::AnyUncompress.3
|
||||
MAN3+= IO::Uncompress::Base.3
|
||||
MAN3+= IO::Uncompress::Bunzip2.3
|
||||
MAN3+= IO::Uncompress::Gunzip.3
|
||||
MAN3+= IO::Uncompress::Inflate.3
|
||||
MAN3+= IO::Uncompress::RawInflate.3
|
||||
MAN3+= IO::Uncompress::Unzip.3
|
||||
MAN3+= IO::Zlib.3
|
||||
MAN3+= IPC::Cmd.3
|
||||
MAN3+= IPC::Msg.3
|
||||
MAN3+= IPC::Open2.3
|
||||
MAN3+= IPC::Open3.3
|
||||
MAN3+= IPC::Semaphore.3
|
||||
MAN3+= IPC::SharedMem.3
|
||||
MAN3+= IPC::SysV.3
|
||||
MAN3+= List::Util.3
|
||||
MAN3+= List::Util::XS.3
|
||||
MAN3+= Locale::Constants.3
|
||||
MAN3+= Locale::Country.3
|
||||
MAN3+= Locale::Currency.3
|
||||
MAN3+= Locale::Language.3
|
||||
MAN3+= Locale::Maketext.3
|
||||
MAN3+= Locale::Maketext::Simple.3
|
||||
MAN3+= Locale::Maketext::TPJ13.3
|
||||
MAN3+= Locale::Script.3
|
||||
MAN3+= Log::Message.3
|
||||
MAN3+= Log::Message::Config.3
|
||||
MAN3+= Log::Message::Handlers.3
|
||||
MAN3+= Log::Message::Item.3
|
||||
MAN3+= Log::Message::Simple.3
|
||||
MAN3+= MIME::Base64.3
|
||||
MAN3+= MIME::QuotedPrint.3
|
||||
MAN3+= Math::BigFloat.3
|
||||
MAN3+= Math::BigInt.3
|
||||
MAN3+= Math::BigInt::Calc.3
|
||||
MAN3+= Math::BigInt::CalcEmu.3
|
||||
MAN3+= Math::BigInt::FastCalc.3
|
||||
MAN3+= Math::BigRat.3
|
||||
MAN3+= Math::Complex.3
|
||||
MAN3+= Math::Trig.3
|
||||
MAN3+= Memoize.3
|
||||
MAN3+= Memoize::AnyDBM_File.3
|
||||
MAN3+= Memoize::Expire.3
|
||||
MAN3+= Memoize::ExpireFile.3
|
||||
MAN3+= Memoize::ExpireTest.3
|
||||
MAN3+= Memoize::NDBM_File.3
|
||||
MAN3+= Memoize::SDBM_File.3
|
||||
MAN3+= Memoize::Storable.3
|
||||
MAN3+= Module::Build.3
|
||||
MAN3+= Module::Build::API.3
|
||||
MAN3+= Module::Build::Authoring.3
|
||||
MAN3+= Module::Build::Base.3
|
||||
MAN3+= Module::Build::Compat.3
|
||||
MAN3+= Module::Build::ConfigData.3
|
||||
MAN3+= Module::Build::Cookbook.3
|
||||
MAN3+= Module::Build::ModuleInfo.3
|
||||
MAN3+= Module::Build::Notes.3
|
||||
MAN3+= Module::Build::PPMMaker.3
|
||||
MAN3+= Module::Build::Platform::Amiga.3
|
||||
MAN3+= Module::Build::Platform::Default.3
|
||||
MAN3+= Module::Build::Platform::EBCDIC.3
|
||||
MAN3+= Module::Build::Platform::MPEiX.3
|
||||
MAN3+= Module::Build::Platform::MacOS.3
|
||||
MAN3+= Module::Build::Platform::RiscOS.3
|
||||
MAN3+= Module::Build::Platform::Unix.3
|
||||
MAN3+= Module::Build::Platform::VMS.3
|
||||
MAN3+= Module::Build::Platform::VOS.3
|
||||
MAN3+= Module::Build::Platform::Windows.3
|
||||
MAN3+= Module::Build::Platform::aix.3
|
||||
MAN3+= Module::Build::Platform::cygwin.3
|
||||
MAN3+= Module::Build::Platform::darwin.3
|
||||
MAN3+= Module::Build::Platform::os2.3
|
||||
MAN3+= Module::Build::YAML.3
|
||||
MAN3+= Module::CoreList.3
|
||||
MAN3+= Module::Load.3
|
||||
MAN3+= Module::Load::Conditional.3
|
||||
MAN3+= Module::Loaded.3
|
||||
MAN3+= Module::Pluggable.3
|
||||
MAN3+= Module::Pluggable::Object.3
|
||||
MAN3+= NDBM_File.3
|
||||
MAN3+= NEXT.3
|
||||
MAN3+= Net::Cmd.3
|
||||
MAN3+= Net::Config.3
|
||||
MAN3+= Net::Domain.3
|
||||
MAN3+= Net::FTP.3
|
||||
MAN3+= Net::NNTP.3
|
||||
MAN3+= Net::Netrc.3
|
||||
MAN3+= Net::POP3.3
|
||||
MAN3+= Net::Ping.3
|
||||
MAN3+= Net::SMTP.3
|
||||
MAN3+= Net::Time.3
|
||||
MAN3+= Net::hostent.3
|
||||
MAN3+= Net::libnetFAQ.3
|
||||
MAN3+= Net::netent.3
|
||||
MAN3+= Net::protoent.3
|
||||
MAN3+= Net::servent.3
|
||||
MAN3+= O.3
|
||||
MAN3+= Object::Accessor.3
|
||||
MAN3+= Opcode.3
|
||||
MAN3+= POSIX.3
|
||||
MAN3+= Package::Constants.3
|
||||
MAN3+= Params::Check.3
|
||||
MAN3+= Parse::CPAN::Meta.3
|
||||
MAN3+= PerlIO.3
|
||||
MAN3+= PerlIO::encoding.3
|
||||
MAN3+= PerlIO::scalar.3
|
||||
MAN3+= PerlIO::via.3
|
||||
MAN3+= PerlIO::via::QuotedPrint.3
|
||||
MAN3+= Pod::Checker.3
|
||||
MAN3+= Pod::Escapes.3
|
||||
MAN3+= Pod::Find.3
|
||||
MAN3+= Pod::Html.3
|
||||
MAN3+= Pod::InputObjects.3
|
||||
MAN3+= Pod::LaTeX.3
|
||||
MAN3+= Pod::Man.3
|
||||
MAN3+= Pod::ParseLink.3
|
||||
MAN3+= Pod::ParseUtils.3
|
||||
MAN3+= Pod::Parser.3
|
||||
MAN3+= Pod::Perldoc::ToChecker.3
|
||||
MAN3+= Pod::Perldoc::ToMan.3
|
||||
MAN3+= Pod::Perldoc::ToNroff.3
|
||||
MAN3+= Pod::Perldoc::ToPod.3
|
||||
MAN3+= Pod::Perldoc::ToRtf.3
|
||||
MAN3+= Pod::Perldoc::ToText.3
|
||||
MAN3+= Pod::Perldoc::ToTk.3
|
||||
MAN3+= Pod::Perldoc::ToXml.3
|
||||
MAN3+= Pod::PlainText.3
|
||||
MAN3+= Pod::Plainer.3
|
||||
MAN3+= Pod::Select.3
|
||||
MAN3+= Pod::Simple.3
|
||||
MAN3+= Pod::Simple::Checker.3
|
||||
MAN3+= Pod::Simple::Debug.3
|
||||
MAN3+= Pod::Simple::DumpAsText.3
|
||||
MAN3+= Pod::Simple::DumpAsXML.3
|
||||
MAN3+= Pod::Simple::HTML.3
|
||||
MAN3+= Pod::Simple::HTMLBatch.3
|
||||
MAN3+= Pod::Simple::LinkSection.3
|
||||
MAN3+= Pod::Simple::Methody.3
|
||||
MAN3+= Pod::Simple::PullParser.3
|
||||
MAN3+= Pod::Simple::PullParserEndToken.3
|
||||
MAN3+= Pod::Simple::PullParserStartToken.3
|
||||
MAN3+= Pod::Simple::PullParserTextToken.3
|
||||
MAN3+= Pod::Simple::PullParserToken.3
|
||||
MAN3+= Pod::Simple::RTF.3
|
||||
MAN3+= Pod::Simple::Search.3
|
||||
MAN3+= Pod::Simple::SimpleTree.3
|
||||
MAN3+= Pod::Simple::Subclassing.3
|
||||
MAN3+= Pod::Simple::Text.3
|
||||
MAN3+= Pod::Simple::TextContent.3
|
||||
MAN3+= Pod::Simple::XHTML.3
|
||||
MAN3+= Pod::Simple::XMLOutStream.3
|
||||
MAN3+= Pod::Text.3
|
||||
MAN3+= Pod::Text::Color.3
|
||||
MAN3+= Pod::Text::Overstrike.3
|
||||
MAN3+= Pod::Text::Termcap.3
|
||||
MAN3+= Pod::Usage.3
|
||||
MAN3+= SDBM_File.3
|
||||
MAN3+= Safe.3
|
||||
MAN3+= Scalar::Util.3
|
||||
MAN3+= Search::Dict.3
|
||||
MAN3+= SelectSaver.3
|
||||
MAN3+= SelfLoader.3
|
||||
MAN3+= Shell.3
|
||||
MAN3+= Socket.3
|
||||
MAN3+= Storable.3
|
||||
MAN3+= Switch.3
|
||||
MAN3+= Symbol.3
|
||||
MAN3+= Sys::Hostname.3
|
||||
MAN3+= Sys::Syslog.3
|
||||
MAN3+= TAP::Base.3
|
||||
MAN3+= TAP::Formatter::Base.3
|
||||
MAN3+= TAP::Formatter::Color.3
|
||||
MAN3+= TAP::Formatter::Console.3
|
||||
MAN3+= TAP::Formatter::Console::ParallelSession.3
|
||||
MAN3+= TAP::Formatter::Console::Session.3
|
||||
MAN3+= TAP::Formatter::File.3
|
||||
MAN3+= TAP::Formatter::File::Session.3
|
||||
MAN3+= TAP::Formatter::Session.3
|
||||
MAN3+= TAP::Harness.3
|
||||
MAN3+= TAP::Object.3
|
||||
MAN3+= TAP::Parser.3
|
||||
MAN3+= TAP::Parser::Aggregator.3
|
||||
MAN3+= TAP::Parser::Grammar.3
|
||||
MAN3+= TAP::Parser::Iterator.3
|
||||
MAN3+= TAP::Parser::Iterator::Array.3
|
||||
MAN3+= TAP::Parser::Iterator::Process.3
|
||||
MAN3+= TAP::Parser::Iterator::Stream.3
|
||||
MAN3+= TAP::Parser::IteratorFactory.3
|
||||
MAN3+= TAP::Parser::Multiplexer.3
|
||||
MAN3+= TAP::Parser::Result.3
|
||||
MAN3+= TAP::Parser::Result::Bailout.3
|
||||
MAN3+= TAP::Parser::Result::Comment.3
|
||||
MAN3+= TAP::Parser::Result::Plan.3
|
||||
MAN3+= TAP::Parser::Result::Pragma.3
|
||||
MAN3+= TAP::Parser::Result::Test.3
|
||||
MAN3+= TAP::Parser::Result::Unknown.3
|
||||
MAN3+= TAP::Parser::Result::Version.3
|
||||
MAN3+= TAP::Parser::Result::YAML.3
|
||||
MAN3+= TAP::Parser::ResultFactory.3
|
||||
MAN3+= TAP::Parser::Scheduler.3
|
||||
MAN3+= TAP::Parser::Scheduler::Job.3
|
||||
MAN3+= TAP::Parser::Scheduler::Spinner.3
|
||||
MAN3+= TAP::Parser::Source.3
|
||||
MAN3+= TAP::Parser::Source::Perl.3
|
||||
MAN3+= TAP::Parser::Utils.3
|
||||
MAN3+= TAP::Parser::YAMLish::Reader.3
|
||||
MAN3+= TAP::Parser::YAMLish::Writer.3
|
||||
MAN3+= Term::ANSIColor.3
|
||||
MAN3+= Term::Cap.3
|
||||
MAN3+= Term::Complete.3
|
||||
MAN3+= Term::ReadLine.3
|
||||
MAN3+= Term::UI.3
|
||||
MAN3+= Term::UI::History.3
|
||||
MAN3+= Test.3
|
||||
MAN3+= Test::Builder.3
|
||||
MAN3+= Test::Builder::Module.3
|
||||
MAN3+= Test::Builder::Tester.3
|
||||
MAN3+= Test::Builder::Tester::Color.3
|
||||
MAN3+= Test::Harness.3
|
||||
MAN3+= Test::More.3
|
||||
MAN3+= Test::Simple.3
|
||||
MAN3+= Test::Tutorial.3
|
||||
MAN3+= Text::Abbrev.3
|
||||
MAN3+= Text::Balanced.3
|
||||
MAN3+= Text::ParseWords.3
|
||||
MAN3+= Text::Soundex.3
|
||||
MAN3+= Text::Tabs.3
|
||||
MAN3+= Text::Wrap.3
|
||||
MAN3+= Thread.3
|
||||
MAN3+= Thread::Queue.3
|
||||
MAN3+= Thread::Semaphore.3
|
||||
MAN3+= Tie::Array.3
|
||||
MAN3+= Tie::File.3
|
||||
MAN3+= Tie::Handle.3
|
||||
MAN3+= Tie::Hash.3
|
||||
MAN3+= Tie::Hash::NamedCapture.3
|
||||
MAN3+= Tie::Memoize.3
|
||||
MAN3+= Tie::RefHash.3
|
||||
MAN3+= Tie::Scalar.3
|
||||
MAN3+= Tie::StdHandle.3
|
||||
MAN3+= Tie::SubstrHash.3
|
||||
MAN3+= Time::HiRes.3
|
||||
MAN3+= Time::Local.3
|
||||
MAN3+= Time::Piece.3
|
||||
MAN3+= Time::Seconds.3
|
||||
MAN3+= Time::gmtime.3
|
||||
MAN3+= Time::localtime.3
|
||||
MAN3+= Time::tm.3
|
||||
MAN3+= UNIVERSAL.3
|
||||
MAN3+= Unicode::Collate.3
|
||||
MAN3+= Unicode::Normalize.3
|
||||
MAN3+= Unicode::UCD.3
|
||||
MAN3+= User::grent.3
|
||||
MAN3+= User::pwent.3
|
||||
MAN3+= XS::APItest.3
|
||||
MAN3+= XS::Typemap.3
|
||||
MAN3+= XSLoader.3
|
||||
MAN3+= attributes.3
|
||||
MAN3+= attrs.3
|
||||
MAN3+= autodie.3
|
||||
MAN3+= autodie::exception.3
|
||||
MAN3+= autodie::exception::system.3
|
||||
MAN3+= autodie::hints.3
|
||||
MAN3+= autouse.3
|
||||
MAN3+= base.3
|
||||
MAN3+= bigint.3
|
||||
MAN3+= bignum.3
|
||||
MAN3+= bigrat.3
|
||||
MAN3+= blib.3
|
||||
MAN3+= bytes.3
|
||||
MAN3+= charnames.3
|
||||
MAN3+= constant.3
|
||||
MAN3+= diagnostics.3
|
||||
MAN3+= encoding.3
|
||||
MAN3+= encoding::warnings.3
|
||||
MAN3+= feature.3
|
||||
MAN3+= fields.3
|
||||
MAN3+= filetest.3
|
||||
MAN3+= if.3
|
||||
MAN3+= integer.3
|
||||
MAN3+= less.3
|
||||
MAN3+= lib.3
|
||||
MAN3+= locale.3
|
||||
MAN3+= mro.3
|
||||
MAN3+= open.3
|
||||
MAN3+= ops.3
|
||||
MAN3+= overload.3
|
||||
MAN3+= overloading.3
|
||||
MAN3+= parent.3
|
||||
MAN3+= re.3
|
||||
MAN3+= sigtrap.3
|
||||
MAN3+= sort.3
|
||||
MAN3+= strict.3
|
||||
MAN3+= subs.3
|
||||
MAN3+= threads.3
|
||||
MAN3+= threads::shared.3
|
||||
MAN3+= utf8.3
|
||||
MAN3+= vars.3
|
||||
MAN3+= version.3
|
||||
MAN3+= version::Internals.3
|
||||
MAN3+= vmsish.3
|
||||
MAN3+= warnings.3
|
||||
MAN3+= warnings::register.3
|
||||
|
@ -1,4 +0,0 @@
|
||||
SHA256 (perl/perl-5.10.1.tar.bz2) = 9385f2c8c2ca8b1dc4a7c31903f1f8dc8f2ba867dc2a9e5c93012ed6b564e826
|
||||
SIZE (perl/perl-5.10.1.tar.bz2) = 11608061
|
||||
SHA256 (perl/BSDPAN-20111107.tar.bz2) = 2f03218a592dc65ebfdc3c6b9394d91dcf4c53aa5290a08458b837baad5a21f9
|
||||
SIZE (perl/BSDPAN-20111107.tar.bz2) = 8448
|
@ -1,21 +0,0 @@
|
||||
--- Configure.orig 2010-07-14 15:28:45.000000000 +0000
|
||||
+++ Configure 2010-07-14 15:29:23.000000000 +0000
|
||||
@@ -4798,7 +4798,7 @@
|
||||
libpth=''
|
||||
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";;
|
||||
@@ -9125,8 +9125,7 @@
|
||||
|
||||
: 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~+
|
@ -1,20 +0,0 @@
|
||||
--- lib/ExtUtils/t/INST_PREFIX.t.orig Wed Feb 15 12:46:31 2006
|
||||
+++ lib/ExtUtils/t/INST_PREFIX.t Wed Feb 15 12:46:52 2006
|
||||
@@ -16,7 +16,7 @@ BEGIN {
|
||||
}
|
||||
|
||||
use strict;
|
||||
-use Test::More tests => 52;
|
||||
+use Test::More tests => 51;
|
||||
use MakeMaker::Test::Utils;
|
||||
use MakeMaker::Test::Setup::BFD;
|
||||
use ExtUtils::MakeMaker;
|
||||
@@ -62,7 +62,7 @@ like( $stdout->read, qr{
|
||||
Writing\ $Makefile\ for\ Big::Dummy\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' );
|
||||
|
@ -1,18 +0,0 @@
|
||||
--- lib/ExtUtils/MM_Any.pm.orig Wed Feb 15 12:20:43 2006
|
||||
+++ lib/ExtUtils/MM_Any.pm Wed Feb 15 12:22:29 2006
|
||||
@@ -1069,13 +1069,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};
|
@ -1,95 +0,0 @@
|
||||
# http://rt.perl.org/rt3//Public/Bug/Display.html?id=69973
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff_plain/0abd0d78a73da1c4d13b1c700526b7e5d03b32d4?hp=fe88edf0c4ada4230b84bdb5417029b8f766694a
|
||||
diff --git a/ext/re/t/regop.t b/ext/re/t/regop.t
|
||||
index 9118bf6..46e6ec0 100644
|
||||
--- ext/re/t/regop.t
|
||||
+++ ext/re/t/regop.t
|
||||
@@ -231,12 +231,12 @@ anchored "ABC" at 0
|
||||
#Freeing REx: "(\\.COM|\\.EXE|\\.BAT|\\.CMD|\\.VBS|\\.VBE|\\.JS|\\.JSE|\\."......
|
||||
%MATCHED%
|
||||
floating ""$ at 3..4 (checking floating)
|
||||
-1:1[1] 3:2[1] 5:2[64] 45:83[1] 47:84[1] 48:85[0]
|
||||
-stclass EXACTF <.> minlen 3
|
||||
-Found floating substr ""$ at offset 30...
|
||||
-Does not contradict STCLASS...
|
||||
-Guessed: match at offset 26
|
||||
-Matching stclass EXACTF <.> against ".exe"
|
||||
+#1:1[1] 3:2[1] 5:2[64] 45:83[1] 47:84[1] 48:85[0]
|
||||
+#stclass EXACTF <.> minlen 3
|
||||
+#Found floating substr ""$ at offset 30...
|
||||
+#Does not contradict STCLASS...
|
||||
+#Guessed: match at offset 26
|
||||
+#Matching stclass EXACTF <.> against ".exe"
|
||||
---
|
||||
#Compiling REx "[q]"
|
||||
#size 12 nodes Got 100 bytes for offset annotations.
|
||||
diff --git a/regcomp.c b/regcomp.c
|
||||
index 6e9fa26..eb5f12f 100644
|
||||
--- regcomp.c
|
||||
+++ regcomp.c
|
||||
@@ -2833,13 +2833,18 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp,
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
- Currently we assume that the trie can handle unicode and ascii
|
||||
- matches fold cased matches. If this proves true then the following
|
||||
- define will prevent tries in this situation.
|
||||
-
|
||||
- #define TRIE_TYPE_IS_SAFE (UTF || optype==EXACT)
|
||||
-*/
|
||||
+ Currently we do not believe that the trie logic can
|
||||
+ handle case insensitive matching properly when the
|
||||
+ pattern is not unicode (thus forcing unicode semantics).
|
||||
+
|
||||
+ If/when this is fixed the following define can be swapped
|
||||
+ in below to fully enable trie logic.
|
||||
+
|
||||
#define TRIE_TYPE_IS_SAFE 1
|
||||
+
|
||||
+*/
|
||||
+#define TRIE_TYPE_IS_SAFE (UTF || optype==EXACT)
|
||||
+
|
||||
if ( last && TRIE_TYPE_IS_SAFE ) {
|
||||
make_trie( pRExC_state,
|
||||
startbranch, first, cur, tail, count,
|
||||
diff --git a/regexec.c b/regexec.c
|
||||
index 402ede3..ec09c28 100644
|
||||
--- regexec.c
|
||||
+++ regexec.c
|
||||
@@ -1105,16 +1105,15 @@ Perl_re_intuit_start(pTHX_ REGEXP * const rx, SV *sv, char *strpos,
|
||||
|
||||
#define REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, uscan, len, \
|
||||
uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
|
||||
- UV uvc_unfolded = 0; \
|
||||
switch (trie_type) { \
|
||||
case trie_utf8_fold: \
|
||||
if ( foldlen>0 ) { \
|
||||
- uvc_unfolded = uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags ); \
|
||||
+ uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags ); \
|
||||
foldlen -= len; \
|
||||
uscan += len; \
|
||||
len=0; \
|
||||
} else { \
|
||||
- uvc_unfolded = uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags ); \
|
||||
+ uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags ); \
|
||||
uvc = to_uni_fold( uvc, foldbuf, &foldlen ); \
|
||||
foldlen -= UNISKIP( uvc ); \
|
||||
uscan = foldbuf + UNISKIP( uvc ); \
|
||||
@@ -1140,7 +1139,6 @@ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
|
||||
uvc = (UV)*uc; \
|
||||
len = 1; \
|
||||
} \
|
||||
- \
|
||||
if (uvc < 256) { \
|
||||
charid = trie->charmap[ uvc ]; \
|
||||
} \
|
||||
@@ -1153,9 +1151,6 @@ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
|
||||
charid = (U16)SvIV(*svpp); \
|
||||
} \
|
||||
} \
|
||||
- if (!charid && trie_type == trie_utf8_fold && !UTF) { \
|
||||
- charid = trie->charmap[uvc_unfolded]; \
|
||||
- } \
|
||||
} STMT_END
|
||||
|
||||
#define REXEC_FBC_EXACTISH_CHECK(CoNd) \
|
@ -1,46 +0,0 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=71952
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff_plain/1f15e670edb515b744e9021b4a42a7955da83093?hp=1f730e6c11736bad913e605b064200a67117e898
|
||||
diff --git a/sv.c b/sv.c
|
||||
index 4e80e18..a3eb187 100644
|
||||
--- sv.c
|
||||
+++ sv.c
|
||||
@@ -5664,7 +5664,8 @@ Perl_sv_clear(pTHX_ register SV *const sv)
|
||||
&& !CvCONST(destructor)
|
||||
/* Don't bother calling an empty destructor */
|
||||
&& (CvISXSUB(destructor)
|
||||
- || CvSTART(destructor)->op_next->op_type != OP_LEAVESUB))
|
||||
+ || (CvSTART(destructor)
|
||||
+ && (CvSTART(destructor)->op_next->op_type != OP_LEAVESUB))))
|
||||
{
|
||||
SV* const tmpref = newRV(sv);
|
||||
SvREADONLY_on(tmpref); /* DESTROY() could be naughty */
|
||||
diff --git a/t/op/method.t b/t/op/method.t
|
||||
index afa8cfb..b602ca2 100644
|
||||
--- t/op/method.t
|
||||
+++ t/op/method.t
|
||||
@@ -10,7 +10,7 @@ BEGIN {
|
||||
require "test.pl";
|
||||
}
|
||||
|
||||
-print "1..78\n";
|
||||
+print "1..79\n";
|
||||
|
||||
@A::ISA = 'B';
|
||||
@B::ISA = 'C';
|
||||
@@ -292,3 +292,16 @@ EOT
|
||||
"check if UNIVERSAL::AUTOLOAD works",
|
||||
);
|
||||
}
|
||||
+
|
||||
+# Test for #71952: crash when looking for a nonexistent destructor
|
||||
+# Regression introduced by fbb3ee5af3d4
|
||||
+{
|
||||
+ fresh_perl_is(<<'EOT',
|
||||
+sub M::DESTROY; bless {}, "M" ; print "survived\n";
|
||||
+EOT
|
||||
+ "survived",
|
||||
+ {},
|
||||
+ "no crash with a declared but missing DESTROY method"
|
||||
+ );
|
||||
+}
|
||||
+
|
@ -1,51 +0,0 @@
|
||||
--- hints/freebsd.sh
|
||||
+++ hints/freebsd.sh
|
||||
@@ -88,6 +88,8 @@
|
||||
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 @@
|
||||
;;
|
||||
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
|
||||
|
||||
@@ -125,7 +131,7 @@
|
||||
else
|
||||
libpth="/usr/lib /usr/local/lib"
|
||||
glibpth="/usr/lib /usr/local/lib"
|
||||
- ldflags="-Wl,-E "
|
||||
+ ldflags="%%PTHREAD_LIBS%% -Wl,-E "
|
||||
lddlflags="-shared "
|
||||
fi
|
||||
cccdlflags='-DPIC -fPIC'
|
||||
@@ -136,7 +142,7 @@
|
||||
0*|1*|2*|3*) ;;
|
||||
|
||||
*)
|
||||
- ccflags="${ccflags} -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H"
|
||||
+ ccflags="${ccflags} %%PTHREAD_CFLAGS%% -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H"
|
||||
if /usr/bin/file -L /usr/lib/libc.so | /usr/bin/grep -vq "not stripped" ; then
|
||||
usenm=false
|
||||
fi
|
||||
@@ -183,7 +189,9 @@
|
||||
|
||||
# This script UU/usethreads.cbu will get 'called-back' by Configure
|
||||
# after it has prompted the user for whether to use threads.
|
||||
-cat > UU/usethreads.cbu <<'EOCBU'
|
||||
+## not quite - modern FreeBSD perl port is supposed to take care of that
|
||||
+## we just add extra libraries and cflags nowadays
|
||||
+cat > /dev/null <<'EOCBU'
|
||||
case "$usethreads" in
|
||||
$define|true|[yY]*)
|
||||
lc_r=`/sbin/ldconfig -r|grep ':-lc_r'|awk '{print $NF}'|sed -n '$p'`
|
@ -1,30 +0,0 @@
|
||||
--- hints/freebsd.sh.orig2 2011-10-09 13:30:37.000000000 +0000
|
||||
+++ hints/freebsd.sh 2011-10-09 14:12:48.000000000 +0000
|
||||
@@ -116,7 +116,8 @@
|
||||
case "$osvers" in
|
||||
0.*|1.0*) ;;
|
||||
|
||||
-1*|2*) cccdlflags='-DPIC -fpic'
|
||||
+1.*|2.*)
|
||||
+ cccdlflags='-DPIC -fpic'
|
||||
lddlflags="-Bshareable $lddlflags"
|
||||
;;
|
||||
|
||||
@@ -139,7 +140,7 @@
|
||||
esac
|
||||
|
||||
case "$osvers" in
|
||||
-0*|1*|2*|3*) ;;
|
||||
+0.*|1.*|2.*|3.*) ;;
|
||||
|
||||
*)
|
||||
ccflags="${ccflags} -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H"
|
||||
@@ -196,7 +197,7 @@
|
||||
$define|true|[yY]*)
|
||||
lc_r=`/sbin/ldconfig -r|grep ':-lc_r'|awk '{print $NF}'|sed -n '$p'`
|
||||
case "$osvers" in
|
||||
- 0*|1*|2.0*|2.1*) cat <<EOM >&4
|
||||
+ 0.*|1.*|2.0*|2.1*) cat <<EOM >&4
|
||||
I did not know that FreeBSD $osvers supports POSIX threads.
|
||||
|
||||
Feel free to tell perlbug@perl.org otherwise.
|
@ -1,61 +0,0 @@
|
||||
--- perl.c
|
||||
+++ perl.c
|
||||
#else /* IAMSUID */
|
||||
@@ -4882,6 +4882,28 @@
|
||||
incpush(APPLLIB_EXP, TRUE, 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, TRUE);
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
+#ifdef SITELIB_EXP
|
||||
+# if defined(WIN32)
|
||||
+ /* this picks up sitearch as well */
|
||||
+ incpush(SITELIB_EXP, TRUE, FALSE, TRUE, TRUE);
|
||||
+# else
|
||||
+ incpush(SITELIB_EXP, FALSE, FALSE, TRUE, TRUE);
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
+#if defined(SITELIB_STEM) && defined(PERL_INC_VERSION_LIST)
|
||||
+ /* Search for version-specific dirs below here */
|
||||
+ incpush(SITELIB_STEM, FALSE, TRUE, TRUE, TRUE);
|
||||
+#endif
|
||||
+
|
||||
#ifdef ARCHLIB_EXP
|
||||
incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE);
|
||||
#endif
|
||||
@@ -4915,28 +4937,6 @@
|
||||
incpush(PRIVLIB_EXP, FALSE, FALSE, 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, TRUE);
|
||||
-# endif
|
||||
-#endif
|
||||
-
|
||||
-#ifdef SITELIB_EXP
|
||||
-# if defined(WIN32)
|
||||
- /* this picks up sitearch as well */
|
||||
- incpush(SITELIB_EXP, TRUE, FALSE, TRUE, TRUE);
|
||||
-# else
|
||||
- incpush(SITELIB_EXP, FALSE, FALSE, TRUE, TRUE);
|
||||
-# endif
|
||||
-#endif
|
||||
-
|
||||
-#if defined(SITELIB_STEM) && defined(PERL_INC_VERSION_LIST)
|
||||
- /* Search for version-specific dirs below here */
|
||||
- incpush(SITELIB_STEM, FALSE, TRUE, TRUE, TRUE);
|
||||
-#endif
|
||||
-
|
||||
#ifdef PERL_VENDORARCH_EXP
|
||||
/* vendorarch is always relative to vendorlib on Windows for
|
||||
* DLL-based path intuition to work correctly */
|
@ -1,603 +0,0 @@
|
||||
#! %%PERL%% -w
|
||||
# ----------------------------------------------------------------------------
|
||||
# "THE BEER-WARE LICENSE" (Revision 42)
|
||||
# <tobez@FreeBSD.org> wrote this file. As long as you retain this notice you
|
||||
# can do whatever you want with this stuff. If we meet some day, and you think
|
||||
# this stuff is worth it, you can buy me a beer in return. Anton Berezin
|
||||
# ----------------------------------------------------------------------------
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $Id: perl-after-upgrade,v 1.11 2005/06/23 19:39:00 tobez Exp $
|
||||
#
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
perl-after-upgrade -- fixup FreeBSD packages that depend on perl
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
perl-after-upgrade
|
||||
perl-after-upgrade -f [-d] [-q]
|
||||
perl-after-upgrade -v
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The standard procedure after a perl port (lang/perl5.X) upgrade is to
|
||||
basically reinstall all other packages that depend on perl.
|
||||
This is always a painful exercise. The perl-after-upgrade utility makes
|
||||
this process mostly unnecessary.
|
||||
|
||||
The tool goes through the list of installed packages, looks for those
|
||||
that depend on perl, moves files around, modifies shebang lines in those
|
||||
scripts in which it is necessary to do so, tries its best to adjust
|
||||
dynamically linked binaries that link with libperl.so in the old path,
|
||||
and updates the package database.
|
||||
|
||||
After installation of the new perl is complete, either by hand from the
|
||||
ports collection, or from a package, or via portupgrade, do the
|
||||
following:
|
||||
|
||||
=over 4
|
||||
|
||||
=item o go root;
|
||||
|
||||
=item o run perl-after-upgrade utility.
|
||||
|
||||
Do not specify any arguments at first, so it does nothing destructive.
|
||||
Pay attention to the produced output and especially to errorlist at the
|
||||
end, if any;
|
||||
|
||||
=item o run the utility again, with B<-f> command line option.
|
||||
|
||||
This will actually do the work. Again, pay attention to the output
|
||||
produced;
|
||||
|
||||
=item o fix any reported errors;
|
||||
|
||||
=item o reinstall required packages:
|
||||
|
||||
The utility will tell you what packages that depend on perl it could not
|
||||
handle. It will also tell you why it happened (for example, they were
|
||||
compiled against a binary incompatible perl). If you want such packages
|
||||
to remain operational, you will have to reinstall then by hand or via
|
||||
portupgrade.
|
||||
|
||||
=item o review the files left in the older perl installation.
|
||||
|
||||
This is typically /usr/local/lib/perl5/site_perl/5.X.Y/. There should
|
||||
be very little, if any, files in that directory and its subdirectories,
|
||||
excepting a number of .ph files;
|
||||
|
||||
=item o check that things work as they should;
|
||||
|
||||
=item o remove backup files from the package database.
|
||||
|
||||
Those will be /var/db/pkg/*/+CONTENTS.bak;
|
||||
|
||||
=item o that's all.
|
||||
|
||||
=back
|
||||
|
||||
=head1 COPYRIGHT AND LICENSE
|
||||
|
||||
Copyright 2005 by Anton Berezin
|
||||
|
||||
"THE BEER-WARE LICENSE" (Revision 42)
|
||||
<tobez@FreeBSD.org> wrote this module. As long as you retain this
|
||||
notice you can do whatever you want with this stuff. If we meet some
|
||||
day, and you think this stuff is worth it, you can buy me a beer in
|
||||
return.
|
||||
|
||||
Anton Berezin
|
||||
|
||||
NO WARRANTY OF ANY KIND, USE AT YOUR OWN RISK.
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
The first version of this utility was not bundled with perl package on
|
||||
FreeBSD. It was dumber than the current version in several important
|
||||
areas. It was faster.
|
||||
|
||||
=head1 CREDITS
|
||||
|
||||
Thanks to Mathieu Arnold for discussion.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
perl(1).
|
||||
|
||||
=cut
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use 5.0100;
|
||||
|
||||
our $debug = 0;
|
||||
|
||||
# |/-\
|
||||
my $pchar = "|";
|
||||
my $do_progress = -t *STDOUT;
|
||||
sub progress
|
||||
{
|
||||
if ($do_progress) {
|
||||
print STDERR "$pchar";
|
||||
$pchar =~ tr<|/\\-><-|/\\>;
|
||||
}
|
||||
}
|
||||
|
||||
package FreeBSD::Package;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use IO::File;
|
||||
use File::Copy;
|
||||
|
||||
sub new
|
||||
{
|
||||
my ($pkg, %p) = @_;
|
||||
my $pkgdir = $p{pkgdir} || return undef;
|
||||
my $name = $pkgdir;
|
||||
$name =~ s|.*/||;
|
||||
main::progress();
|
||||
my $c = IO::File->new("< $pkgdir/+CONTENTS");
|
||||
return undef unless $c;
|
||||
my @lines;
|
||||
while (<$c>) {
|
||||
chomp;
|
||||
push @lines, $_;
|
||||
}
|
||||
my $me = bless {
|
||||
pkgdir => $pkgdir,
|
||||
lines => \@lines,
|
||||
name => $name,
|
||||
}, $pkg;
|
||||
return $me;
|
||||
}
|
||||
|
||||
sub name
|
||||
{
|
||||
return $_[0]->{name};
|
||||
}
|
||||
|
||||
sub lines
|
||||
{
|
||||
my $me = shift;
|
||||
if (@_ && @_ == 1 && ref(@_) eq 'ARRAY') {
|
||||
$me->{lines} = [@{$_[0]}];
|
||||
$me->{changed} = 1;
|
||||
} elsif (@_) {
|
||||
$me->{lines} = [@_];
|
||||
$me->{changed} = 1;
|
||||
} else {
|
||||
return @{$me->{lines}};
|
||||
}
|
||||
}
|
||||
|
||||
sub write_back
|
||||
{
|
||||
my ($me) = @_;
|
||||
|
||||
return unless $me->{changed};
|
||||
main::progress();
|
||||
my $file = "$me->{pkgdir}/+CONTENTS";
|
||||
copy($file, "$file.bak");
|
||||
my $c = IO::File->new("> $file");
|
||||
return unless $c;
|
||||
for (@{$me->{lines}}) {
|
||||
print $c "$_\n";
|
||||
}
|
||||
}
|
||||
|
||||
package FreeBSD::Package::DB;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub new
|
||||
{
|
||||
my ($pkg, %p) = @_;
|
||||
my $me = bless {
|
||||
dbdir => $p{dbdir} || $ENV{PKG_DBDIR} || "/var/db/pkg",
|
||||
}, $pkg;
|
||||
$me->{packages} = [ grep { -d } glob "$me->{dbdir}/*" ];
|
||||
$me->reset;
|
||||
return $me;
|
||||
}
|
||||
|
||||
sub next
|
||||
{
|
||||
my ($me) = @_;
|
||||
while (1) {
|
||||
$me->{current}++;
|
||||
if ($me->{current} >= @{$me->{packages}}) {
|
||||
$me->reset;
|
||||
return undef;
|
||||
}
|
||||
my $pkg = FreeBSD::Package->new(pkgdir => $me->{packages}->[$me->{current}]);
|
||||
return $pkg if $pkg;
|
||||
}
|
||||
}
|
||||
|
||||
sub reset
|
||||
{
|
||||
my ($me) = @_;
|
||||
$me->{current} = -1;
|
||||
}
|
||||
|
||||
package main;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use File::Temp qw/tempfile/;
|
||||
use File::Copy;
|
||||
|
||||
our $dry_run = 1;
|
||||
our $quiet = 0;
|
||||
my @tmpl;
|
||||
our $VERSION = "1.4";
|
||||
|
||||
while (@ARGV) {
|
||||
my $opt = shift;
|
||||
if ($opt eq "-f") {
|
||||
$dry_run = 0;
|
||||
} elsif ($opt eq "-d") {
|
||||
$debug = 1;
|
||||
} elsif ($opt eq "-q") {
|
||||
$quiet = 1;
|
||||
} elsif ($opt eq "-v") {
|
||||
$_ = $0;
|
||||
s|.*/||;
|
||||
print "$_ version $VERSION\n";
|
||||
exit 0;
|
||||
} elsif ($opt =~ /^-/) {
|
||||
$_ = $0;
|
||||
s|.*/||;
|
||||
print "Unknown option `$opt'\n";
|
||||
print "Usage:\n";
|
||||
print "\t$_\n\t$_ -v\n\t$_ -f\n";
|
||||
exit 1;
|
||||
} else {
|
||||
push @tmpl, $opt;
|
||||
}
|
||||
}
|
||||
|
||||
our $PERL_VERSION = '%%PERL_VERSION%%';
|
||||
our $PERL_PKGNAME = '%%PKGNAME%%';
|
||||
|
||||
our $PERL_VERSION_REGEX = qr/5\.10\.\d+/;
|
||||
print STDERR "- Fuzzy source re: <$PERL_VERSION_REGEX>\n" if $debug;
|
||||
|
||||
our @errors;
|
||||
our @notes;
|
||||
|
||||
sub fix_script
|
||||
{
|
||||
my ($file) = @_;
|
||||
|
||||
main::progress();
|
||||
return 1 if $dry_run;
|
||||
my $sf = IO::File->new("< $file");
|
||||
return "" unless $sf;
|
||||
my $line = <$sf>;
|
||||
my $md5 = "";
|
||||
if ($line && $line =~ s|^(\s*#!\s*[\w/]+perl)$PERL_VERSION_REGEX\b|$1$PERL_VERSION|) {
|
||||
my $dir = $file;
|
||||
$dir =~ s|/[^/]+$||;
|
||||
my ($fh, $fn) = tempfile(DIR=> $dir);
|
||||
if ($fh) {
|
||||
print $fh $line;
|
||||
while (<$sf>) {
|
||||
print $fh $_;
|
||||
}
|
||||
close $fh;
|
||||
$md5 = `/sbin/md5 -q $fn`;
|
||||
chomp $md5;
|
||||
my $mode = (stat($file))[2] & 07777;
|
||||
unlink $file or do {
|
||||
push @errors, "Failed to unlink $file: $!";
|
||||
unlink $fn;
|
||||
return "";
|
||||
};
|
||||
rename $fn, $file or do {
|
||||
push @errors, "Failed to rename $fn to $file: $!";
|
||||
return "";
|
||||
};
|
||||
chmod $mode, $file;
|
||||
} else {
|
||||
push @errors, "Failed to modify $file: $!";
|
||||
}
|
||||
}
|
||||
return $md5;
|
||||
}
|
||||
|
||||
sub fix_binary
|
||||
{
|
||||
my ($file) = @_;
|
||||
|
||||
main::progress();
|
||||
my $sf = IO::File->new("< $file");
|
||||
return "" unless $sf;
|
||||
my $was = $dry_run ? "would be" : "was";
|
||||
push @notes, "The $file binary $was modified, make sure it works";
|
||||
return 1 if $dry_run;
|
||||
my $md5 = "";
|
||||
|
||||
my $dir = $file;
|
||||
$dir =~ s|/[^/]+$||;
|
||||
my ($fh, $fn) = tempfile(DIR=> $dir);
|
||||
unless ($fn) {
|
||||
push @errors, "Failed to modify $file: $!";
|
||||
return "";
|
||||
}
|
||||
|
||||
while (<$sf>) {
|
||||
s|/lib/perl5/$PERL_VERSION_REGEX/mach/CORE|/lib/perl5/$PERL_VERSION/mach/CORE|g;
|
||||
print $fh $_;
|
||||
}
|
||||
close $fh;
|
||||
$md5 = `/sbin/md5 -q $fn`;
|
||||
chomp $md5;
|
||||
my $mode = (stat($file))[2] & 07777;
|
||||
unlink $file or do {
|
||||
push @errors, "Failed to unlink $file: $!";
|
||||
unlink $fn;
|
||||
return "";
|
||||
};
|
||||
rename $fn, $file or do {
|
||||
push @errors, "Failed to rename $fn to $file: $!";
|
||||
return "";
|
||||
};
|
||||
chmod $mode, $file;
|
||||
return $md5;
|
||||
}
|
||||
|
||||
sub mkdir_recur
|
||||
{
|
||||
my ($dir) = @_;
|
||||
|
||||
main::progress();
|
||||
$dir =~ s|/+$||;
|
||||
my $orig = $dir;
|
||||
if ($dir =~ m|^$|) {
|
||||
return 1;
|
||||
} else {
|
||||
$dir =~ s|/[^/]+$||;
|
||||
my $r = mkdir_recur($dir);
|
||||
return $r unless $r;
|
||||
mkdir $orig, 0777;
|
||||
my $e = $!;
|
||||
unless (-d $orig) {
|
||||
push @errors, "Could not create directory $orig: $e";
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
sub might_need_to_fix
|
||||
{
|
||||
my ($pkg) = @_;
|
||||
my $pkg_name = $pkg->name;
|
||||
|
||||
main::progress();
|
||||
if ($pkg_name =~ /^bsdpan-/) {
|
||||
return 1;
|
||||
}
|
||||
for ($pkg->lines) {
|
||||
if (/^\@pkgdep\s+perl-(threaded-)?($PERL_VERSION_REGEX)\S*\s*$/) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub fixable_binary
|
||||
{
|
||||
my ($file, $name) = @_;
|
||||
|
||||
main::progress();
|
||||
my $fixable = 0;
|
||||
for (`/usr/bin/ldd $file 2>&1`) {
|
||||
if (/^\s+libperl\.so\s+=>/) {
|
||||
my $found;
|
||||
for (`strings $file`) {
|
||||
if (m</lib/perl5/($PERL_VERSION_REGEX)/mach/CORE>) {
|
||||
$found++;
|
||||
if (length($1) != length($PERL_VERSION)) {
|
||||
push @notes, "$name cannot be fixed up (and has to be reinstalled): cannot patch $file due to length difference";
|
||||
print STDERR "- Skipping $name: cannot patch $file due to length difference\n" if $debug;
|
||||
return undef;
|
||||
}
|
||||
print STDERR "- $name: fixable binary $file\n" if $debug && $found < 2;
|
||||
$fixable = 1 if $1 ne $PERL_VERSION;
|
||||
}
|
||||
}
|
||||
if (!$found) {
|
||||
push @notes, "$name cannot be fixed up (and has to be reinstalled): $file is using unknown libperl";
|
||||
print STDERR "- Skipping $name: $file is using unknown libperl\n" if $debug;
|
||||
return undef;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $fixable;
|
||||
}
|
||||
|
||||
sub fixable_shared_lib
|
||||
{
|
||||
my ($file, $name) = @_;
|
||||
|
||||
main::progress();
|
||||
my ($old);
|
||||
for (`strings $file`) {
|
||||
if (/^perl_get_sv$/) {
|
||||
push @notes, "$name cannot be fixed up (and has to be reinstalled): $file uses an old perl API";
|
||||
print STDERR "- Skipping $name: $file uses an old perl API\n" if $debug;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
sub cannot_be_fixed
|
||||
{
|
||||
my ($pkg, $binaries, $scripts) = @_;
|
||||
my $pkg_name = $pkg->name;
|
||||
my $prefix = "";
|
||||
|
||||
main::progress();
|
||||
|
||||
for ($pkg->lines) {
|
||||
if (/^\@cwd\s+(\S+)\s*$/) {
|
||||
$prefix = $1;
|
||||
next;
|
||||
}
|
||||
my $file = "$prefix/$_";
|
||||
next if -l $file;
|
||||
next if $file =~ /\.gz$/;
|
||||
next if $file =~ /\.bz2$/;
|
||||
my $sf = IO::File->new("< $file");
|
||||
next unless $sf;
|
||||
my $line;
|
||||
sysread $sf, $line, 256;
|
||||
|
||||
# binary executable
|
||||
if ($line && $line =~ /^\177ELF.\x01.\x09.{8}\x02\0/) {
|
||||
my $fixable = fixable_binary($file, $pkg_name);
|
||||
return 0 unless defined $fixable;
|
||||
push @$binaries, $file if $fixable;
|
||||
# shared library - can prevent us from being able to upgrade
|
||||
} elsif ($line && $line =~ /^\177ELF.\x01.\x09.{8}\x03\0/) {
|
||||
return 0 unless fixable_shared_lib($file, $pkg_name);
|
||||
} elsif ($line && $line =~ m<^\s*#!\s*[\w/]+perl($PERL_VERSION_REGEX)\b>) {
|
||||
print STDERR "- $pkg_name: fixable script $file\n" if $debug;
|
||||
push @$scripts, $file if $1 ne $PERL_VERSION;
|
||||
}
|
||||
main::progress();
|
||||
}
|
||||
}
|
||||
|
||||
#
|
||||
my $db = FreeBSD::Package::DB->new;
|
||||
my ($fixed, $skipped, $tot_moved, $tot_modified) = (0,0,0,0);
|
||||
while (my $pkg = $db->next) {
|
||||
my @lines;
|
||||
my $new_md5;
|
||||
my ($adjusted, $moved, $modified) = (0,0,0);
|
||||
|
||||
my $pkg_name = $pkg->name;
|
||||
if (@tmpl) {
|
||||
my $ok;
|
||||
for (@tmpl) {
|
||||
if ($pkg_name =~ /^$_/) {
|
||||
$ok = 1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
next unless $ok;
|
||||
}
|
||||
|
||||
unless (might_need_to_fix($pkg)) {
|
||||
$skipped++;
|
||||
print STDERR "- Skipping $pkg_name, it does not depend on perl\n" if $debug;
|
||||
next;
|
||||
}
|
||||
|
||||
my (@binaries_to_fix, @scripts_to_fix);
|
||||
if (cannot_be_fixed($pkg, \@binaries_to_fix, \@scripts_to_fix)) {
|
||||
$skipped++;
|
||||
next;
|
||||
}
|
||||
if ($debug) {
|
||||
print STDERR "- $pkg_name: ", scalar(@binaries_to_fix), " binaries to fix\n" if @binaries_to_fix;
|
||||
print STDERR "- $pkg_name: ", scalar(@scripts_to_fix), " scripts to fix\n" if @scripts_to_fix;
|
||||
}
|
||||
my %binaries = map { $_ => 1 } @binaries_to_fix;
|
||||
my %scripts = map { $_ => 1 } @scripts_to_fix;
|
||||
|
||||
my $prefix = "";
|
||||
my $pcnt = 0;
|
||||
for ($pkg->lines) {
|
||||
if (/^([^@]\S+)\s*$/) {
|
||||
my $from = "$prefix/$_";
|
||||
local $_; # we'll need it later
|
||||
$new_md5 = "";
|
||||
unless (-l $from) { # skip symlinks
|
||||
if ($binaries{$from}) {
|
||||
$new_md5 = fix_binary($from);
|
||||
} elsif ($scripts{$from}) {
|
||||
$new_md5 = fix_script($from);
|
||||
}
|
||||
$modified++ if $new_md5;
|
||||
}
|
||||
my $to = $from;
|
||||
if ($to =~ s|(/perl5/(?:site_perl/)?)$PERL_VERSION_REGEX|$1$PERL_VERSION|g) {
|
||||
if ($to ne $from) {
|
||||
my $dir = $to;
|
||||
$dir =~ s|/[^/]+$||;
|
||||
main::progress();
|
||||
unless ($dry_run) {
|
||||
if (mkdir_recur($dir)) {
|
||||
move($from, $to);
|
||||
} else {
|
||||
push @errors, " could not move $from to $to";
|
||||
}
|
||||
}
|
||||
$moved++;
|
||||
print STDERR "- move: $from => $to\n" if $debug;
|
||||
}
|
||||
}
|
||||
} elsif (/^\@comment\s+MD5:[\da-f]+\s*$/ && $new_md5) {
|
||||
s|MD5:(\S+)|MD5:$new_md5|;
|
||||
$new_md5 = "";
|
||||
} else {
|
||||
$new_md5 = "";
|
||||
}
|
||||
if (/^\@cwd\s+(\S+)\s*$/) {
|
||||
$prefix = $1;
|
||||
} elsif (/^\@pkgdep\s+perl-(threaded-)?($PERL_VERSION_REGEX)\S*\s*$/) {
|
||||
if ($PERL_VERSION ne $2) {
|
||||
my $perlver = $2;
|
||||
s|perl-(threaded-)?\Q$perlver\E\S*|$PERL_PKGNAME|;
|
||||
}
|
||||
}
|
||||
my $old = $_;
|
||||
if (s|(/perl5/(?:site_perl/)?)$PERL_VERSION_REGEX|$1$PERL_VERSION|g) {
|
||||
if ($old ne $_) {
|
||||
$adjusted++;
|
||||
print STDERR "- adjust: $_\n" if $debug;
|
||||
}
|
||||
}
|
||||
push @lines, $_;
|
||||
main::progress() if $pcnt++ % 250 == 0;
|
||||
}
|
||||
unless ($dry_run) {
|
||||
$pkg->lines(@lines);
|
||||
$pkg->write_back;
|
||||
}
|
||||
$fixed++ if $moved || $modified || $adjusted;
|
||||
$tot_modified += $modified;
|
||||
$tot_moved += $moved;
|
||||
say "$pkg_name: $moved moved, $modified modified, $adjusted adjusted"
|
||||
if !$quiet || ($moved || $modified || $adjusted);
|
||||
}
|
||||
print "\n---\n";
|
||||
print "Fixed $fixed packages ($tot_moved files moved, $tot_modified files modified)\n";
|
||||
print "Skipped $skipped packages\n";
|
||||
if (@errors) {
|
||||
print "\n**** The script has encountered following problems:\n";
|
||||
for (@errors) {
|
||||
print "$_\n";
|
||||
}
|
||||
print "\n--- Repeating summary:\n";
|
||||
print "Fixed $fixed packages ($tot_moved files moved, $tot_modified files modified)\n";
|
||||
print "Skipped $skipped packages\n";
|
||||
}
|
||||
if (@notes) {
|
||||
print "\n**** In addition, please pay attention to the following:\n";
|
||||
for (@notes) {
|
||||
print "$_\n";
|
||||
}
|
||||
print "\n--- Repeating summary:\n";
|
||||
print "Fixed $fixed packages ($tot_moved files moved, $tot_modified files modified)\n";
|
||||
print "Skipped $skipped packages\n";
|
||||
}
|
@ -1,2 +0,0 @@
|
||||
MANPATH %%PREFIX%%/lib/perl5/%%PERL_VERSION%%/man
|
||||
MANPATH %%PREFIX%%/lib/perl5/%%PERL_VERSION%%/perl/man
|
@ -1,157 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# $FreeBSD$
|
||||
|
||||
this=`echo -n $0 | /usr/bin/sed -e 's!^.*/!!'`
|
||||
PERL_VERSION="%%PERL_VERSION%%"
|
||||
MAKE_CONF=%%MAKE_CONF%%
|
||||
banner=`date +"%F %T"`
|
||||
banner="# added by use.perl $banner"
|
||||
if [ -z "${OSVERSION}" ]; then
|
||||
if [ -f /sbin/sysctl -a -x /sbin/sysctl ] ; then
|
||||
osreldate=`/sbin/sysctl -n kern.osreldate`
|
||||
else
|
||||
osreldate=`/usr/sbin/sysctl -n kern.osreldate`
|
||||
fi
|
||||
else
|
||||
osreldate=${OSVERSION}
|
||||
fi
|
||||
|
||||
if [ "$2" = "POST-INSTALL" ] ; then
|
||||
need_remove_links=%%LINK_USRBIN%%
|
||||
need_create_links=%%LINK_USRBIN%%
|
||||
need_cleanup_make_conf=yes
|
||||
need_spam_make_conf=yes
|
||||
need_post_install=yes
|
||||
if [ "${osreldate}" -lt 900022 ]; then
|
||||
need_cleanup_manpath=yes
|
||||
need_spam_manpath=yes
|
||||
fi
|
||||
elif [ "$2" = "POST-DEINSTALL" ] ; then
|
||||
need_remove_links=%%LINK_USRBIN%%
|
||||
need_cleanup_make_conf=yes
|
||||
if [ "${osreldate}" -lt 900022 ]; then
|
||||
need_cleanup_manpath=yes
|
||||
fi
|
||||
else
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
special_link_list="
|
||||
perl
|
||||
perl5"
|
||||
|
||||
do_remove_links()
|
||||
{
|
||||
echo "Removing stale symlinks from /usr/bin..."
|
||||
for binary in $special_link_list
|
||||
do
|
||||
if [ -L "/usr/bin/$binary" ] ; then
|
||||
echo " Removing /usr/bin/$binary"
|
||||
/bin/rm -f "/usr/bin/$binary"
|
||||
else
|
||||
echo " Skipping /usr/bin/$binary"
|
||||
fi
|
||||
done
|
||||
bins=`/bin/ls /usr/bin/*perl*5.* ${PKG_PREFIX}/bin/*perl*5.* 2>/dev/null`
|
||||
for binary in $bins
|
||||
do
|
||||
if [ -L "$binary" ] ; then
|
||||
echo " Removing $binary installed by an older perl port"
|
||||
/bin/rm -f "$binary"
|
||||
fi
|
||||
done
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
do_create_links()
|
||||
{
|
||||
echo "Creating various symlinks in /usr/bin..."
|
||||
for binary in $special_link_list
|
||||
do
|
||||
if [ -f "/usr/bin/$binary" ] ; then
|
||||
echo " Backing up /usr/bin/$binary as /usr/bin/$binary.freebsd"
|
||||
/bin/mv -f "/usr/bin/$binary" "/usr/bin/$binary.freebsd"
|
||||
fi
|
||||
bin=`echo $binary | /usr/bin/sed -e 's!perl5!perl!'`
|
||||
if [ -e "/usr/bin/$binary" ] ; then
|
||||
echo " *** /usr/bin/$binary is still there, which should not happen"
|
||||
elif [ -e "$PKG_PREFIX/bin/${bin}%%PERL_VERSION%%" ] ; then
|
||||
echo " Symlinking $PKG_PREFIX/bin/${bin}%%PERL_VERSION%% to /usr/bin/$binary"
|
||||
/bin/ln -sf "$PKG_PREFIX/bin/${bin}%%PERL_VERSION%%" "/usr/bin/$binary"
|
||||
else
|
||||
echo " *** $PKG_PREFIX/bin/${bin}%%PERL_VERSION%% is not there, a symlink won't do any good"
|
||||
fi
|
||||
done
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
do_post_install()
|
||||
{
|
||||
INCLUDEDIR=/usr/include
|
||||
install -d ${PKG_PREFIX}/lib/perl5/site_perl/%%PERL_VERSION%%/%%PERL_ARCH%%/auto
|
||||
install -d ${PKG_PREFIX}/lib/perl5/site_perl/%%PERL_VERSION%%/auto
|
||||
install -d ${PKG_PREFIX}/lib/perl5/%%PERL_VERSION%%/man/man3
|
||||
cd ${INCLUDEDIR} && ${PKG_PREFIX}/bin/h2ph *.h machine/*.h sys/*.h >/dev/null
|
||||
}
|
||||
|
||||
do_cleanup_make_conf()
|
||||
{
|
||||
echo -n "Cleaning up ${MAKE_CONF}..."
|
||||
if [ -f ${MAKE_CONF} ] ; then
|
||||
/usr/bin/awk 's=0;
|
||||
/^#.*use.perl/ { s=1; mode=1 }
|
||||
/^#/ { s=1; if (mode != 1) { mode=0 } }
|
||||
/.*PERL.*=/ { s=1; if (mode == 1) { mode=2 } }
|
||||
/^$/ { s=1; if (mode != 2) { mode = 0 } }
|
||||
{ if (s != 1) { mode = 0 } if (mode == 0) print }' ${MAKE_CONF} >${MAKE_CONF}.new
|
||||
/bin/mv ${MAKE_CONF} ${MAKE_CONF}.bak
|
||||
/bin/mv ${MAKE_CONF}.new ${MAKE_CONF}
|
||||
fi
|
||||
echo " Done."
|
||||
}
|
||||
|
||||
do_cleanup_manpath()
|
||||
{
|
||||
if [ -f /etc/manpath.config ] ; then
|
||||
echo -n "Cleaning up /etc/manpath.config..."
|
||||
/usr/bin/awk 's=0;
|
||||
/^#.*use.perl/ { s=1; mode=1 }
|
||||
/^#/ { s=1; if (mode != 1) { mode=0 } }
|
||||
/^OPTIONAL_MANPATH.*perl5/ { s=1; if (mode == 1) { mode=2 } }
|
||||
/^$/ { s=1; if (mode != 2) { mode = 0 } }
|
||||
{ if (s != 1) { mode = 0 } if (mode == 0) print }' /etc/manpath.config >/etc/manpath.config.new
|
||||
/bin/mv /etc/manpath.config /etc/manpath.config.bak
|
||||
/bin/mv /etc/manpath.config.new /etc/manpath.config
|
||||
echo " Done."
|
||||
fi
|
||||
}
|
||||
|
||||
do_spam_make_conf()
|
||||
{
|
||||
echo -n "Spamming ${MAKE_CONF}..."
|
||||
echo "$banner" >>${MAKE_CONF}
|
||||
echo "PERL_VERSION=%%PERL_VERSION%%" >>${MAKE_CONF}
|
||||
echo " Done."
|
||||
}
|
||||
|
||||
do_spam_manpath()
|
||||
{
|
||||
if [ -f /etc/manpath.config ] ; then
|
||||
echo -n "Spamming /etc/manpath.config..."
|
||||
echo "$banner" >>/etc/manpath.config
|
||||
echo "OPTIONAL_MANPATH ${PKG_PREFIX}/lib/perl5/%%PERL_VERSION%%/man" >>/etc/manpath.config
|
||||
echo "OPTIONAL_MANPATH ${PKG_PREFIX}/lib/perl5/%%PERL_VERSION%%/perl/man" >>/etc/manpath.config
|
||||
echo " Done."
|
||||
fi
|
||||
}
|
||||
|
||||
[ "$need_remove_links" = "yes" ] && do_remove_links
|
||||
[ "$need_create_links" = "yes" ] && do_create_links
|
||||
[ "$need_post_install" = "yes" ] && do_post_install
|
||||
[ "$need_cleanup_make_conf" = "yes" ] && do_cleanup_make_conf
|
||||
[ "$need_spam_make_conf" = "yes" ] && do_spam_make_conf
|
||||
[ "$need_cleanup_manpath" = "yes" ] && do_cleanup_manpath
|
||||
[ "$need_spam_manpath" = "yes" ] && do_spam_manpath
|
||||
|
||||
exit 0
|
@ -1,6 +0,0 @@
|
||||
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.
|
||||
|
||||
WWW: http://www.perl.org/
|
File diff suppressed because it is too large
Load Diff
@ -1,244 +0,0 @@
|
||||
# New ports collection makefile for: perl5
|
||||
# Date created: 16 April 1995
|
||||
# Whom: markm
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= perl
|
||||
PORTVERSION= ${PERL_VERSION}
|
||||
PORTREVISION= 7
|
||||
CATEGORIES= lang devel perl5
|
||||
MASTER_SITES= CPAN \
|
||||
${MASTER_SITE_LOCAL:S/$/:local/} \
|
||||
http://protey.ru/freebsd/distfiles/:local
|
||||
MASTER_SITE_SUBDIR= ../../src \
|
||||
skv/:local
|
||||
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
|
||||
BSDPAN-${BSDPAN_VERSION}${EXTRACT_SUFX}:local
|
||||
DIST_SUBDIR= perl
|
||||
|
||||
PATCH_SITES= ${MASTER_SITE_LOCAL:S!$!skv/!} \
|
||||
http://protey.ru/freebsd/distfiles/
|
||||
PATCHFILES= defined-or-${PERL_VERSION}.bz2
|
||||
|
||||
MAINTAINER= skv@FreeBSD.org
|
||||
COMMENT= Practical Extraction and Report Language
|
||||
|
||||
LICENSE= ART10 GPLv1
|
||||
LICENSE_COMB= dual
|
||||
|
||||
CONFLICTS= perl-5.6.* perl-5.10.* perl-threaded-5.10.* \
|
||||
perl-5.12.* perl-threaded-5.12.* \
|
||||
perl-5.14.* perl-threaded-5.14.*
|
||||
|
||||
OPTIONS= DEBUGGING "Build with debugging support" off \
|
||||
GDBM "Build GDBM_File extension" off \
|
||||
PERL_MALLOC "Use Perl malloc" on \
|
||||
PERL_64BITINT "Use 64 bit integers (on i386)" on \
|
||||
THREADS "Build threaded perl" off \
|
||||
PTHREAD "Build with -pthread" on \
|
||||
SUIDPERL "Build set-user-id suidperl binary" off \
|
||||
SITECUSTOMIZE "Run-time customization of @INC" off \
|
||||
USE_PERL "Rewrite links in /usr/bin" on
|
||||
|
||||
PORTSCOUT= limitw:1,even
|
||||
|
||||
PERL_VERSION= 5.8.9
|
||||
PERL_ARCH= mach
|
||||
SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VERSION}
|
||||
SITE_PERL?= ${LOCALBASE}/${SITE_PERL_REL}
|
||||
|
||||
USE_BZIP2= yes
|
||||
HAS_CONFIGURE= yes
|
||||
MAKE_JOBS_UNSAFE= yes
|
||||
CONFIGURE_SCRIPT=Configure
|
||||
CONFIGURE_ARGS= -sde -Dprefix=${PREFIX} \
|
||||
-Darchlib=${PREFIX}/lib/perl5/${PERL_VERSION}/${PERL_ARCH} \
|
||||
-Dprivlib=${PREFIX}/lib/perl5/${PERL_VERSION} \
|
||||
-Dman3dir=${PREFIX}/lib/perl5/${PERL_VERSION}/perl/man/man3 \
|
||||
-Dman1dir=${PREFIX}/man/man1 \
|
||||
-Dsitearch=${PREFIX}/${SITE_PERL_REL}/${PERL_ARCH} \
|
||||
-Dsitelib=${PREFIX}/${SITE_PERL_REL} -Dscriptdir=${PREFIX}/bin \
|
||||
-Dsiteman3dir=${PREFIX}/lib/perl5/${PERL_VERSION}/man/man3 \
|
||||
-Dsiteman1dir=${PREFIX}/man/man1 \
|
||||
-Ui_malloc -Ui_iconv -Uinstallusrbinperl \
|
||||
-Dcc="${CC}" -Duseshrplib -Dinc_version_list=none \
|
||||
-Dccflags=-DAPPLLIB_EXP=\"${BSDPAN_DEST}\"
|
||||
LOCALE_CLEANUP= LANG="" LC_ALL="" LC_COLLATE="" LC_CTYPE="" \
|
||||
LC_MESSAGES="" LC_MONETARY="" LC_NUMERIC="" \
|
||||
LC_TIME=""
|
||||
CONFIGURE_ENV+= ${LOCALE_CLEANUP} UNAME_v="$$(uname -v | sed 'y/=/ /')"
|
||||
MAKE_ENV+= ${LOCALE_CLEANUP}
|
||||
|
||||
.include "Makefile.man"
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if defined(PERL_VENDOR_PREFIX)
|
||||
CONFIGURE_ARGS+= \
|
||||
-Dvendorprefix=${PERL_VENDOR_PREFIX} \
|
||||
-Dvendorarch=${PERL_VENDOR_PREFIX}/lib/perl5/${PERL_VERSION}/${PERL_ARCH} \
|
||||
-Dvendorbin=${PERL_VENDOR_PREFIX}/bin \
|
||||
-Dvendorlib=${PERL_VENDOR_PREFIX}/lib/perl5/${PERL_VERSION} \
|
||||
-Dvendorman3dir=${PERL_VENDOR_PREFIX}/lib/perl5/${PERL_VERSION}/man/man3 \
|
||||
-Dvendorman1dir=${PERL_VENDOR_PREFIX}/man/man1
|
||||
.endif
|
||||
|
||||
PLIST_SUB+= PERL_VERSION=${PERL_VERSION} \
|
||||
PERL_VER=${PERL_VERSION} \
|
||||
PERL_ARCH=${PERL_ARCH} \
|
||||
SITE_PERL=${SITE_PERL:S|^${LOCALBASE}/||}
|
||||
|
||||
.if defined(WITH_DEBUGGING)
|
||||
CONFIGURE_ARGS+= -Doptimize="-g" -DDEBUGGING
|
||||
STRIP=
|
||||
STRIP_CMD= ${TRUE}
|
||||
.else
|
||||
CONFIGURE_ARGS+= -Doptimize="${CFLAGS}"
|
||||
.endif
|
||||
|
||||
.if defined(ENABLE_SUIDPERL) || defined(WITH_SUIDPERL)
|
||||
CONFIGURE_ARGS+= -Dd_dosuid=define
|
||||
PLIST_SUB+= SUIDPERL=""
|
||||
.else
|
||||
CONFIGURE_ARGS+= -Ud_dosuid
|
||||
PLIST_SUB+= SUIDPERL="@comment "
|
||||
.endif
|
||||
|
||||
.if defined(WITH_GDBM)
|
||||
CONFIGURE_ARGS+= -Di_gdbm
|
||||
LIB_DEPENDS+= gdbm.4:${PORTSDIR}/databases/gdbm
|
||||
PLIST_SUB+= GDBM=""
|
||||
.else
|
||||
CONFIGURE_ARGS+= -Ui_gdbm
|
||||
PLIST_SUB+= GDBM="@comment "
|
||||
.endif
|
||||
|
||||
.if ${OSVERSION} >= 900022
|
||||
PLIST_SUB+= MANCONF=""
|
||||
.else
|
||||
PLIST_SUB+= MANCONF="@comment "
|
||||
.endif
|
||||
|
||||
.if defined(WITHOUT_PERL_MALLOC)
|
||||
.undef WITH_PERL_MALLOC
|
||||
.else
|
||||
WITH_PERL_MALLOC= yes
|
||||
.endif
|
||||
|
||||
.if defined(WITH_THREADS)
|
||||
#XXX .if ${ARCH} == "amd64"
|
||||
#XXX IGNORE= Threaded perl does not pass tests on ${ARCH}
|
||||
#XXX .endif
|
||||
CONFIGURE_ARGS+= -Dusethreads=y
|
||||
PKGNAMESUFFIX= -threaded
|
||||
WITH_PTHREAD= yes
|
||||
# it seems perl malloc has problems with threaded perl on FreeBSD
|
||||
.undef WITH_PERL_MALLOC
|
||||
.else
|
||||
CONFIGURE_ARGS+= -Dusethreads=n
|
||||
.endif
|
||||
|
||||
.if defined(WITH_PERL_MALLOC)
|
||||
CONFIGURE_ARGS+= -Dusemymalloc=y
|
||||
.else
|
||||
CONFIGURE_ARGS+= -Dusemymalloc=n
|
||||
.endif
|
||||
|
||||
.if defined(WITH_PERL_64BITINT)
|
||||
CONFIGURE_ARGS+= -Duse64bitint
|
||||
.endif
|
||||
|
||||
.if defined(WITH_SITECUSTOMIZE)
|
||||
CONFIGURE_ARGS+= -Dusesitecustomize
|
||||
.endif
|
||||
|
||||
.if defined(WITH_USE_PERL)
|
||||
LINK_USRBIN= yes
|
||||
.else
|
||||
LINK_USRBIN= no
|
||||
.endif
|
||||
|
||||
NO_LATEST_LINK= yes
|
||||
|
||||
PLIST_SUB+= NEED_USE_PERL="@comment "
|
||||
|
||||
.if defined(WITH_GDBM)
|
||||
MAN3+= GDBM_File.3
|
||||
.endif
|
||||
MAN3PREFIX= ${PREFIX}/lib/perl5/${PERL_VERSION}/perl
|
||||
|
||||
BSDPAN_DEST= ${PREFIX}/lib/perl5/${PERL_VERSION}/BSDPAN
|
||||
BSDPAN_FILES= BSDPAN.pm BSDPAN/Override.pm Config.pm \
|
||||
ExtUtils/MM_Unix.pm \
|
||||
ExtUtils/MakeMaker.pm \
|
||||
ExtUtils/Packlist.pm
|
||||
BSDPAN_VERSION= ${PORTVERSION}_20090303
|
||||
BSDPAN_WRKSRC= ${WRKDIR}/BSDPAN-${BSDPAN_VERSION}
|
||||
|
||||
PKGINSTALL= ${WRKDIR}/pkg-install
|
||||
PKGDEINSTALL= ${WRKDIR}/pkg-deinstall
|
||||
|
||||
post-patch:
|
||||
${SED} -e 's|%%PREFIX%%|${PREFIX}|g;' \
|
||||
-e 's|%%PERL_VERSION%%|${PERL_VERSION}|g;' \
|
||||
-e 's|%%PERL_ARCH%%|${PERL_ARCH}|g;' \
|
||||
-e 's|%%MAKE_CONF%%|${__MAKE_CONF}|g;' \
|
||||
-e 's|%%LINK_USRBIN%%|${LINK_USRBIN}|g;' \
|
||||
${FILESDIR}/use.perl \
|
||||
> ${WRKDIR}/use.perl
|
||||
${SED} -e 's|%%PREFIX%%|${PREFIX}|g;' \
|
||||
-e 's|%%PERL_VERSION%%|${PERL_VERSION}|g;' \
|
||||
${FILESDIR}/perl-man.conf \
|
||||
> ${WRKDIR}/perl-man.conf
|
||||
${SED} -e 's|%%PERL%%|${PERL}|g; s|%%PERL_VERSION%%|${PERL_VERSION}|g; s|%%PKGNAME%%|${PKGNAME}|g' \
|
||||
${FILESDIR}/perl-after-upgrade \
|
||||
> ${WRKDIR}/perl-after-upgrade
|
||||
${CP} ${WRKDIR}/use.perl ${PKGINSTALL}
|
||||
${CP} ${WRKDIR}/use.perl ${PKGDEINSTALL}
|
||||
${SED} -i '' -e 's|%%PERL_PKGNAME%%|${PKGNAME}|g; s|%%PERL_VER%%|5.8|g;' \
|
||||
${BSDPAN_WRKSRC}/ExtUtils/*.pm
|
||||
${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
|
||||
${WRKSRC}/Configure ${WRKSRC}/hints/freebsd.sh
|
||||
.if defined(WITH_PTHREAD)
|
||||
${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g;' \
|
||||
-e 's|%%PTHREAD_CFLAGS%%|${PTHREAD_CFLAGS}|g;' \
|
||||
${WRKSRC}/hints/freebsd.sh
|
||||
.else
|
||||
${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%||g;' \
|
||||
-e 's|%%PTHREAD_CFLAGS%%||g;' \
|
||||
${WRKSRC}/hints/freebsd.sh
|
||||
.endif
|
||||
|
||||
pre-su-install:
|
||||
@${RM} -f ${PREFIX}/bin/perl${PERL_VERSION}
|
||||
@${RM} -f ${PREFIX}/bin/perl
|
||||
|
||||
post-install:
|
||||
@${STRIP_CMD} ${PREFIX}/bin/perl${PERL_VERSION}
|
||||
@${STRIP_CMD} ${PREFIX}/bin/perl
|
||||
@${PREFIX}/bin/pod2man ${WRKDIR}/perl-after-upgrade >${WRKDIR}/perl-after-upgrade.1
|
||||
@${INSTALL_SCRIPT} ${WRKDIR}/perl-after-upgrade ${PREFIX}/bin/perl-after-upgrade
|
||||
@${INSTALL_MAN} ${WRKDIR}/perl-after-upgrade.1 ${MAN1PREFIX}/man/man1/perl-after-upgrade.1
|
||||
@${LN} -sf ${PREFIX}/bin/perl${PERL_VERSION} ${PREFIX}/bin/perl5
|
||||
.if ${OSVERSION} >= 900022
|
||||
@${INSTALL_DATA} ${WRKDIR}/perl-man.conf ${PREFIX}/etc/man.d/perl${PERL_VERSION}.conf
|
||||
.endif
|
||||
.for files in ${BSDPAN_FILES}
|
||||
${MKDIR} ${BSDPAN_DEST}/${files:H}
|
||||
${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \
|
||||
${BSDPAN_WRKSRC}/${files} ${BSDPAN_DEST}/${files}
|
||||
.endfor
|
||||
PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
|
||||
|
||||
test: build
|
||||
@(cd ${WRKSRC}; make test)
|
||||
|
||||
regression-test: test
|
||||
|
||||
rebuild-xs:
|
||||
${LOCALBASE}/sbin/portupgrade -f `(${FIND} ${PKG_DBDIR}/p5*/+CONTENTS | \
|
||||
${XARGS} ${GREP} -El 'site_perl.*\.so' | \
|
||||
${SED} -e 's!/var/db/pkg/!!; s!/+CONTENTS!!;')`
|
||||
|
||||
.include <bsd.port.post.mk>
|
@ -1,556 +0,0 @@
|
||||
# $FreeBSD$
|
||||
|
||||
MAN1+= a2p.1
|
||||
MAN1+= c2ph.1
|
||||
MAN1+= corelist.1
|
||||
MAN1+= cpan.1
|
||||
MAN1+= dprofpp.1
|
||||
MAN1+= enc2xs.1
|
||||
MAN1+= find2perl.1
|
||||
MAN1+= h2ph.1
|
||||
MAN1+= h2xs.1
|
||||
MAN1+= instmodsh.1
|
||||
MAN1+= libnetcfg.1
|
||||
MAN1+= perl-after-upgrade.1
|
||||
MAN1+= perl.1
|
||||
MAN1+= perl5004delta.1
|
||||
MAN1+= perl5005delta.1
|
||||
MAN1+= perl561delta.1
|
||||
MAN1+= perl56delta.1
|
||||
MAN1+= perl570delta.1
|
||||
MAN1+= perl571delta.1
|
||||
MAN1+= perl572delta.1
|
||||
MAN1+= perl573delta.1
|
||||
MAN1+= perl581delta.1
|
||||
MAN1+= perl582delta.1
|
||||
MAN1+= perl583delta.1
|
||||
MAN1+= perl584delta.1
|
||||
MAN1+= perl585delta.1
|
||||
MAN1+= perl586delta.1
|
||||
MAN1+= perl587delta.1
|
||||
MAN1+= perl588delta.1
|
||||
MAN1+= perl589delta.1
|
||||
MAN1+= perl58delta.1
|
||||
MAN1+= perlaix.1
|
||||
MAN1+= perlamiga.1
|
||||
MAN1+= perlapi.1
|
||||
MAN1+= perlapio.1
|
||||
MAN1+= perlapollo.1
|
||||
MAN1+= perlartistic.1
|
||||
MAN1+= perlbeos.1
|
||||
MAN1+= perlbook.1
|
||||
MAN1+= perlboot.1
|
||||
MAN1+= perlbot.1
|
||||
MAN1+= perlbs2000.1
|
||||
MAN1+= perlbug.1
|
||||
MAN1+= perlcall.1
|
||||
MAN1+= perlcc.1
|
||||
MAN1+= perlce.1
|
||||
MAN1+= perlcheat.1
|
||||
MAN1+= perlclib.1
|
||||
MAN1+= perlcn.1
|
||||
MAN1+= perlcompile.1
|
||||
MAN1+= perlcommunity.1
|
||||
MAN1+= perlcygwin.1
|
||||
MAN1+= perldata.1
|
||||
MAN1+= perldbmfilter.1
|
||||
MAN1+= perldebguts.1
|
||||
MAN1+= perldebtut.1
|
||||
MAN1+= perldebug.1
|
||||
MAN1+= perldelta.1
|
||||
MAN1+= perldgux.1
|
||||
MAN1+= perldiag.1
|
||||
MAN1+= perldoc.1
|
||||
MAN1+= perldos.1
|
||||
MAN1+= perldsc.1
|
||||
MAN1+= perlebcdic.1
|
||||
MAN1+= perlembed.1
|
||||
MAN1+= perlepoc.1
|
||||
MAN1+= perlfaq.1
|
||||
MAN1+= perlfaq1.1
|
||||
MAN1+= perlfaq2.1
|
||||
MAN1+= perlfaq3.1
|
||||
MAN1+= perlfaq4.1
|
||||
MAN1+= perlfaq5.1
|
||||
MAN1+= perlfaq6.1
|
||||
MAN1+= perlfaq7.1
|
||||
MAN1+= perlfaq8.1
|
||||
MAN1+= perlfaq9.1
|
||||
MAN1+= perlfilter.1
|
||||
MAN1+= perlfork.1
|
||||
MAN1+= perlform.1
|
||||
MAN1+= perlfreebsd.1
|
||||
MAN1+= perlfunc.1
|
||||
MAN1+= perlglossary.1
|
||||
MAN1+= perlgpl.1
|
||||
MAN1+= perlguts.1
|
||||
MAN1+= perlhack.1
|
||||
MAN1+= perlhist.1
|
||||
MAN1+= perlhpux.1
|
||||
MAN1+= perlhurd.1
|
||||
MAN1+= perlintern.1
|
||||
MAN1+= perlintro.1
|
||||
MAN1+= perliol.1
|
||||
MAN1+= perlipc.1
|
||||
MAN1+= perlirix.1
|
||||
MAN1+= perlivp.1
|
||||
MAN1+= perljp.1
|
||||
MAN1+= perlko.1
|
||||
MAN1+= perllexwarn.1
|
||||
MAN1+= perllinux.1
|
||||
MAN1+= perllocale.1
|
||||
MAN1+= perllol.1
|
||||
MAN1+= perlmachten.1
|
||||
MAN1+= perlmacos.1
|
||||
MAN1+= perlmacosx.1
|
||||
MAN1+= perlmint.1
|
||||
MAN1+= perlmod.1
|
||||
MAN1+= perlmodinstall.1
|
||||
MAN1+= perlmodlib.1
|
||||
MAN1+= perlmodstyle.1
|
||||
MAN1+= perlmpeix.1
|
||||
MAN1+= perlnetware.1
|
||||
MAN1+= perlnewmod.1
|
||||
MAN1+= perlnumber.1
|
||||
MAN1+= perlobj.1
|
||||
MAN1+= perlop.1
|
||||
MAN1+= perlopenbsd.1
|
||||
MAN1+= perlopentut.1
|
||||
MAN1+= perlos2.1
|
||||
MAN1+= perlos390.1
|
||||
MAN1+= perlos400.1
|
||||
MAN1+= perlothrtut.1
|
||||
MAN1+= perlpacktut.1
|
||||
MAN1+= perlplan9.1
|
||||
MAN1+= perlpod.1
|
||||
MAN1+= perlpodspec.1
|
||||
MAN1+= perlport.1
|
||||
MAN1+= perlqnx.1
|
||||
MAN1+= perlre.1
|
||||
MAN1+= perlrebackslash.1
|
||||
MAN1+= perlrecharclass.1
|
||||
MAN1+= perlref.1
|
||||
MAN1+= perlreftut.1
|
||||
MAN1+= perlreguts.1
|
||||
MAN1+= perlrequick.1
|
||||
MAN1+= perlreref.1
|
||||
MAN1+= perlretut.1
|
||||
MAN1+= perlriscos.1
|
||||
MAN1+= perlrun.1
|
||||
MAN1+= perlsec.1
|
||||
MAN1+= perlsolaris.1
|
||||
MAN1+= perlstyle.1
|
||||
MAN1+= perlsub.1
|
||||
MAN1+= perlsyn.1
|
||||
MAN1+= perlthanks.1
|
||||
MAN1+= perlthrtut.1
|
||||
MAN1+= perltie.1
|
||||
MAN1+= perltoc.1
|
||||
MAN1+= perltodo.1
|
||||
MAN1+= perltooc.1
|
||||
MAN1+= perltoot.1
|
||||
MAN1+= perltrap.1
|
||||
MAN1+= perltru64.1
|
||||
MAN1+= perltw.1
|
||||
MAN1+= perlunicode.1
|
||||
MAN1+= perlunifaq.1
|
||||
MAN1+= perluniintro.1
|
||||
MAN1+= perlutil.1
|
||||
MAN1+= perlunitut.1
|
||||
MAN1+= perluts.1
|
||||
MAN1+= perlvar.1
|
||||
MAN1+= perlvmesa.1
|
||||
MAN1+= perlvms.1
|
||||
MAN1+= perlvos.1
|
||||
MAN1+= perlwin32.1
|
||||
MAN1+= perlxs.1
|
||||
MAN1+= perlxstut.1
|
||||
MAN1+= piconv.1
|
||||
MAN1+= pl2pm.1
|
||||
MAN1+= pod2html.1
|
||||
MAN1+= pod2latex.1
|
||||
MAN1+= pod2man.1
|
||||
MAN1+= pod2text.1
|
||||
MAN1+= pod2usage.1
|
||||
MAN1+= podchecker.1
|
||||
MAN1+= podselect.1
|
||||
MAN1+= prove.1
|
||||
MAN1+= psed.1
|
||||
MAN1+= pstruct.1
|
||||
MAN1+= s2p.1
|
||||
MAN1+= splain.1
|
||||
MAN1+= xsubpp.1
|
||||
|
||||
MAN3+= AnyDBM_File.3
|
||||
MAN3+= Attribute::Handlers.3
|
||||
MAN3+= AutoLoader.3
|
||||
MAN3+= AutoSplit.3
|
||||
MAN3+= B.3
|
||||
MAN3+= B::Asmdata.3
|
||||
MAN3+= B::Assembler.3
|
||||
MAN3+= B::Bblock.3
|
||||
MAN3+= B::Bytecode.3
|
||||
MAN3+= B::C.3
|
||||
MAN3+= B::CC.3
|
||||
MAN3+= B::Concise.3
|
||||
MAN3+= B::Debug.3
|
||||
MAN3+= B::Deparse.3
|
||||
MAN3+= B::Disassembler.3
|
||||
MAN3+= B::Lint.3
|
||||
MAN3+= B::Lint::Debug.3
|
||||
MAN3+= B::Showlex.3
|
||||
MAN3+= B::Stackobj.3
|
||||
MAN3+= B::Stash.3
|
||||
MAN3+= B::Terse.3
|
||||
MAN3+= B::Xref.3
|
||||
MAN3+= Benchmark.3
|
||||
MAN3+= ByteLoader.3
|
||||
MAN3+= CGI.3
|
||||
MAN3+= CGI::Apache.3
|
||||
MAN3+= CGI::Carp.3
|
||||
MAN3+= CGI::Cookie.3
|
||||
MAN3+= CGI::Fast.3
|
||||
MAN3+= CGI::Pretty.3
|
||||
MAN3+= CGI::Push.3
|
||||
MAN3+= CGI::Switch.3
|
||||
MAN3+= CGI::Util.3
|
||||
MAN3+= CORE.3
|
||||
MAN3+= CPAN.3
|
||||
MAN3+= CPAN::API::HOWTO.3
|
||||
MAN3+= CPAN::Debug.3
|
||||
MAN3+= CPAN::Distroprefs.3
|
||||
MAN3+= CPAN::FirstTime.3
|
||||
MAN3+= CPAN::HandleConfig.3
|
||||
MAN3+= CPAN::Kwalify.3
|
||||
MAN3+= CPAN::Nox.3
|
||||
MAN3+= CPAN::Queue.3
|
||||
MAN3+= CPAN::Tarzip.3
|
||||
MAN3+= CPAN::Version.3
|
||||
MAN3+= Carp.3
|
||||
MAN3+= Carp::Heavy.3
|
||||
MAN3+= Class::ISA.3
|
||||
MAN3+= Class::Struct.3
|
||||
MAN3+= Config.3
|
||||
MAN3+= Cwd.3
|
||||
MAN3+= DB.3
|
||||
MAN3+= DBM_Filter.3
|
||||
MAN3+= DBM_Filter::compress.3
|
||||
MAN3+= DBM_Filter::encode.3
|
||||
MAN3+= DBM_Filter::int32.3
|
||||
MAN3+= DBM_Filter::null.3
|
||||
MAN3+= DBM_Filter::utf8.3
|
||||
MAN3+= DB_File.3
|
||||
MAN3+= Data::Dumper.3
|
||||
MAN3+= Devel::DProf.3
|
||||
MAN3+= Devel::InnerPackage.3
|
||||
MAN3+= Devel::PPPort.3
|
||||
MAN3+= Devel::Peek.3
|
||||
MAN3+= Devel::SelfStubber.3
|
||||
MAN3+= Digest.3
|
||||
MAN3+= Digest::MD5.3
|
||||
MAN3+= Digest::base.3
|
||||
MAN3+= Digest::file.3
|
||||
MAN3+= DirHandle.3
|
||||
MAN3+= Dumpvalue.3
|
||||
MAN3+= DynaLoader.3
|
||||
MAN3+= Encode.3
|
||||
MAN3+= Encode::Alias.3
|
||||
MAN3+= Encode::Byte.3
|
||||
MAN3+= Encode::CJKConstants.3
|
||||
MAN3+= Encode::CN.3
|
||||
MAN3+= Encode::CN::HZ.3
|
||||
MAN3+= Encode::Config.3
|
||||
MAN3+= Encode::EBCDIC.3
|
||||
MAN3+= Encode::Encoder.3
|
||||
MAN3+= Encode::Encoding.3
|
||||
MAN3+= Encode::GSM0338.3
|
||||
MAN3+= Encode::Guess.3
|
||||
MAN3+= Encode::JP.3
|
||||
MAN3+= Encode::JP::H2Z.3
|
||||
MAN3+= Encode::JP::JIS7.3
|
||||
MAN3+= Encode::KR.3
|
||||
MAN3+= Encode::KR::2022_KR.3
|
||||
MAN3+= Encode::MIME::Header.3
|
||||
MAN3+= Encode::MIME::Name.3
|
||||
MAN3+= Encode::PerlIO.3
|
||||
MAN3+= Encode::Supported.3
|
||||
MAN3+= Encode::Symbol.3
|
||||
MAN3+= Encode::TW.3
|
||||
MAN3+= Encode::Unicode.3
|
||||
MAN3+= Encode::Unicode::UTF7.3
|
||||
MAN3+= English.3
|
||||
MAN3+= Env.3
|
||||
MAN3+= Errno.3
|
||||
MAN3+= Exporter.3
|
||||
MAN3+= Exporter::Heavy.3
|
||||
MAN3+= ExtUtils::Command.3
|
||||
MAN3+= ExtUtils::Command::MM.3
|
||||
MAN3+= ExtUtils::Constant.3
|
||||
MAN3+= ExtUtils::Constant::Base.3
|
||||
MAN3+= ExtUtils::Constant::Utils.3
|
||||
MAN3+= ExtUtils::Constant::XS.3
|
||||
MAN3+= ExtUtils::Embed.3
|
||||
MAN3+= ExtUtils::Install.3
|
||||
MAN3+= ExtUtils::Installed.3
|
||||
MAN3+= ExtUtils::Liblist.3
|
||||
MAN3+= ExtUtils::MM.3
|
||||
MAN3+= ExtUtils::MM_AIX.3
|
||||
MAN3+= ExtUtils::MM_Any.3
|
||||
MAN3+= ExtUtils::MM_BeOS.3
|
||||
MAN3+= ExtUtils::MM_Cygwin.3
|
||||
MAN3+= ExtUtils::MM_DOS.3
|
||||
MAN3+= ExtUtils::MM_Darwin.3
|
||||
MAN3+= ExtUtils::MM_MacOS.3
|
||||
MAN3+= ExtUtils::MM_NW5.3
|
||||
MAN3+= ExtUtils::MM_OS2.3
|
||||
MAN3+= ExtUtils::MM_QNX.3
|
||||
MAN3+= ExtUtils::MM_UWIN.3
|
||||
MAN3+= ExtUtils::MM_Unix.3
|
||||
MAN3+= ExtUtils::MM_VMS.3
|
||||
MAN3+= ExtUtils::MM_VOS.3
|
||||
MAN3+= ExtUtils::MM_Win32.3
|
||||
MAN3+= ExtUtils::MM_Win95.3
|
||||
MAN3+= ExtUtils::MY.3
|
||||
MAN3+= ExtUtils::MakeMaker.3
|
||||
MAN3+= ExtUtils::MakeMaker::Config.3
|
||||
MAN3+= ExtUtils::MakeMaker::FAQ.3
|
||||
MAN3+= ExtUtils::MakeMaker::Tutorial.3
|
||||
MAN3+= ExtUtils::MakeMaker::bytes.3
|
||||
MAN3+= ExtUtils::MakeMaker::vmsish.3
|
||||
MAN3+= ExtUtils::Manifest.3
|
||||
MAN3+= ExtUtils::Miniperl.3
|
||||
MAN3+= ExtUtils::Mkbootstrap.3
|
||||
MAN3+= ExtUtils::Mksymlists.3
|
||||
MAN3+= ExtUtils::Packlist.3
|
||||
MAN3+= ExtUtils::ParseXS.3
|
||||
MAN3+= ExtUtils::testlib.3
|
||||
MAN3+= Fatal.3
|
||||
MAN3+= Fcntl.3
|
||||
MAN3+= File::Basename.3
|
||||
MAN3+= File::CheckTree.3
|
||||
MAN3+= File::Compare.3
|
||||
MAN3+= File::Copy.3
|
||||
MAN3+= File::DosGlob.3
|
||||
MAN3+= File::Find.3
|
||||
MAN3+= File::Glob.3
|
||||
MAN3+= File::Path.3
|
||||
MAN3+= File::Spec.3
|
||||
MAN3+= File::Spec::Cygwin.3
|
||||
MAN3+= File::Spec::Epoc.3
|
||||
MAN3+= File::Spec::Functions.3
|
||||
MAN3+= File::Spec::Mac.3
|
||||
MAN3+= File::Spec::OS2.3
|
||||
MAN3+= File::Spec::Unix.3
|
||||
MAN3+= File::Spec::VMS.3
|
||||
MAN3+= File::Spec::Win32.3
|
||||
MAN3+= File::Temp.3
|
||||
MAN3+= File::stat.3
|
||||
MAN3+= FileCache.3
|
||||
MAN3+= FileHandle.3
|
||||
MAN3+= Filter::Simple.3
|
||||
MAN3+= Filter::Util::Call.3
|
||||
MAN3+= FindBin.3
|
||||
MAN3+= Getopt::Long.3
|
||||
MAN3+= Getopt::Std.3
|
||||
MAN3+= Hash::Util.3
|
||||
MAN3+= I18N::Collate.3
|
||||
MAN3+= I18N::LangTags.3
|
||||
MAN3+= I18N::LangTags::Detect.3
|
||||
MAN3+= I18N::LangTags::List.3
|
||||
MAN3+= I18N::Langinfo.3
|
||||
MAN3+= IO.3
|
||||
MAN3+= IO::Dir.3
|
||||
MAN3+= IO::File.3
|
||||
MAN3+= IO::Handle.3
|
||||
MAN3+= IO::Pipe.3
|
||||
MAN3+= IO::Poll.3
|
||||
MAN3+= IO::Seekable.3
|
||||
MAN3+= IO::Select.3
|
||||
MAN3+= IO::Socket.3
|
||||
MAN3+= IO::Socket::INET.3
|
||||
MAN3+= IO::Socket::UNIX.3
|
||||
MAN3+= IPC::Msg.3
|
||||
MAN3+= IPC::Open2.3
|
||||
MAN3+= IPC::Open3.3
|
||||
MAN3+= IPC::Semaphore.3
|
||||
MAN3+= IPC::SharedMem.3
|
||||
MAN3+= IPC::SysV.3
|
||||
MAN3+= List::Util.3
|
||||
MAN3+= Locale::Constants.3
|
||||
MAN3+= Locale::Country.3
|
||||
MAN3+= Locale::Currency.3
|
||||
MAN3+= Locale::Language.3
|
||||
MAN3+= Locale::Maketext.3
|
||||
MAN3+= Locale::Maketext::TPJ13.3
|
||||
MAN3+= Locale::Script.3
|
||||
MAN3+= MIME::Base64.3
|
||||
MAN3+= MIME::QuotedPrint.3
|
||||
MAN3+= Math::BigFloat.3
|
||||
MAN3+= Math::BigInt.3
|
||||
MAN3+= Math::BigInt::Calc.3
|
||||
MAN3+= Math::BigInt::CalcEmu.3
|
||||
MAN3+= Math::BigRat.3
|
||||
MAN3+= Math::Complex.3
|
||||
MAN3+= Math::Trig.3
|
||||
MAN3+= Memoize.3
|
||||
MAN3+= Memoize::AnyDBM_File.3
|
||||
MAN3+= Memoize::Expire.3
|
||||
MAN3+= Memoize::ExpireFile.3
|
||||
MAN3+= Memoize::ExpireTest.3
|
||||
MAN3+= Memoize::NDBM_File.3
|
||||
MAN3+= Memoize::SDBM_File.3
|
||||
MAN3+= Memoize::Storable.3
|
||||
MAN3+= Module::CoreList.3
|
||||
MAN3+= Module::Pluggable.3
|
||||
MAN3+= Module::Pluggable::Object.3
|
||||
MAN3+= NDBM_File.3
|
||||
MAN3+= NEXT.3
|
||||
MAN3+= Net::Cmd.3
|
||||
MAN3+= Net::Config.3
|
||||
MAN3+= Net::Domain.3
|
||||
MAN3+= Net::FTP.3
|
||||
MAN3+= Net::NNTP.3
|
||||
MAN3+= Net::Netrc.3
|
||||
MAN3+= Net::POP3.3
|
||||
MAN3+= Net::Ping.3
|
||||
MAN3+= Net::SMTP.3
|
||||
MAN3+= Net::Time.3
|
||||
MAN3+= Net::hostent.3
|
||||
MAN3+= Net::libnetFAQ.3
|
||||
MAN3+= Net::netent.3
|
||||
MAN3+= Net::protoent.3
|
||||
MAN3+= Net::servent.3
|
||||
MAN3+= O.3
|
||||
MAN3+= Opcode.3
|
||||
MAN3+= POSIX.3
|
||||
MAN3+= PerlIO.3
|
||||
MAN3+= PerlIO::encoding.3
|
||||
MAN3+= PerlIO::scalar.3
|
||||
MAN3+= PerlIO::via.3
|
||||
MAN3+= PerlIO::via::QuotedPrint.3
|
||||
MAN3+= Pod::Checker.3
|
||||
MAN3+= Pod::Find.3
|
||||
MAN3+= Pod::Html.3
|
||||
MAN3+= Pod::InputObjects.3
|
||||
MAN3+= Pod::LaTeX.3
|
||||
MAN3+= Pod::Man.3
|
||||
MAN3+= Pod::ParseLink.3
|
||||
MAN3+= Pod::ParseUtils.3
|
||||
MAN3+= Pod::Parser.3
|
||||
MAN3+= Pod::Perldoc::ToChecker.3
|
||||
MAN3+= Pod::Perldoc::ToMan.3
|
||||
MAN3+= Pod::Perldoc::ToNroff.3
|
||||
MAN3+= Pod::Perldoc::ToPod.3
|
||||
MAN3+= Pod::Perldoc::ToRtf.3
|
||||
MAN3+= Pod::Perldoc::ToText.3
|
||||
MAN3+= Pod::Perldoc::ToTk.3
|
||||
MAN3+= Pod::Perldoc::ToXml.3
|
||||
MAN3+= Pod::PlainText.3
|
||||
MAN3+= Pod::Plainer.3
|
||||
MAN3+= Pod::Select.3
|
||||
MAN3+= Pod::Text.3
|
||||
MAN3+= Pod::Text::Color.3
|
||||
MAN3+= Pod::Text::Overstrike.3
|
||||
MAN3+= Pod::Text::Termcap.3
|
||||
MAN3+= Pod::Usage.3
|
||||
MAN3+= SDBM_File.3
|
||||
MAN3+= Safe.3
|
||||
MAN3+= Scalar::Util.3
|
||||
MAN3+= Search::Dict.3
|
||||
MAN3+= SelectSaver.3
|
||||
MAN3+= SelfLoader.3
|
||||
MAN3+= Shell.3
|
||||
MAN3+= Socket.3
|
||||
MAN3+= Storable.3
|
||||
MAN3+= Switch.3
|
||||
MAN3+= Symbol.3
|
||||
MAN3+= Sys::Hostname.3
|
||||
MAN3+= Sys::Syslog.3
|
||||
MAN3+= Term::ANSIColor.3
|
||||
MAN3+= Term::Cap.3
|
||||
MAN3+= Term::Complete.3
|
||||
MAN3+= Term::ReadLine.3
|
||||
MAN3+= Test.3
|
||||
MAN3+= Test::Builder.3
|
||||
MAN3+= Test::Builder::Module.3
|
||||
MAN3+= Test::Builder::Tester.3
|
||||
MAN3+= Test::Builder::Tester::Color.3
|
||||
MAN3+= Test::Harness.3
|
||||
MAN3+= Test::Harness::Assert.3
|
||||
MAN3+= Test::Harness::Iterator.3
|
||||
MAN3+= Test::Harness::Point.3
|
||||
MAN3+= Test::Harness::Straps.3
|
||||
MAN3+= Test::Harness::Results.3
|
||||
MAN3+= Test::Harness::TAP.3
|
||||
MAN3+= Test::Harness::Util.3
|
||||
MAN3+= Test::More.3
|
||||
MAN3+= Test::Simple.3
|
||||
MAN3+= Test::Tutorial.3
|
||||
MAN3+= Text::Abbrev.3
|
||||
MAN3+= Text::Balanced.3
|
||||
MAN3+= Text::ParseWords.3
|
||||
MAN3+= Text::Soundex.3
|
||||
MAN3+= Text::Tabs.3
|
||||
MAN3+= Text::Wrap.3
|
||||
MAN3+= Thread.3
|
||||
MAN3+= Thread::Queue.3
|
||||
MAN3+= Thread::Semaphore.3
|
||||
MAN3+= Tie::Array.3
|
||||
MAN3+= Tie::File.3
|
||||
MAN3+= Tie::Handle.3
|
||||
MAN3+= Tie::Hash.3
|
||||
MAN3+= Tie::Memoize.3
|
||||
MAN3+= Tie::RefHash.3
|
||||
MAN3+= Tie::Scalar.3
|
||||
MAN3+= Tie::StdHandle.3
|
||||
MAN3+= Tie::SubstrHash.3
|
||||
MAN3+= Time::HiRes.3
|
||||
MAN3+= Time::Local.3
|
||||
MAN3+= Time::gmtime.3
|
||||
MAN3+= Time::localtime.3
|
||||
MAN3+= Time::tm.3
|
||||
MAN3+= UNIVERSAL.3
|
||||
MAN3+= Unicode::Collate.3
|
||||
MAN3+= Unicode::Normalize.3
|
||||
MAN3+= Unicode::UCD.3
|
||||
MAN3+= User::grent.3
|
||||
MAN3+= User::pwent.3
|
||||
MAN3+= XS::APItest.3
|
||||
MAN3+= XS::Typemap.3
|
||||
MAN3+= XSLoader.3
|
||||
MAN3+= attributes.3
|
||||
MAN3+= attrs.3
|
||||
MAN3+= autouse.3
|
||||
MAN3+= base.3
|
||||
MAN3+= bigint.3
|
||||
MAN3+= bignum.3
|
||||
MAN3+= bigrat.3
|
||||
MAN3+= blib.3
|
||||
MAN3+= bytes.3
|
||||
MAN3+= charnames.3
|
||||
MAN3+= constant.3
|
||||
MAN3+= diagnostics.3
|
||||
MAN3+= encoding.3
|
||||
MAN3+= fields.3
|
||||
MAN3+= filetest.3
|
||||
MAN3+= if.3
|
||||
MAN3+= integer.3
|
||||
MAN3+= less.3
|
||||
MAN3+= lib.3
|
||||
MAN3+= locale.3
|
||||
MAN3+= open.3
|
||||
MAN3+= ops.3
|
||||
MAN3+= overload.3
|
||||
MAN3+= re.3
|
||||
MAN3+= sigtrap.3
|
||||
MAN3+= sort.3
|
||||
MAN3+= strict.3
|
||||
MAN3+= subs.3
|
||||
MAN3+= threads.3
|
||||
MAN3+= threads::shared.3
|
||||
MAN3+= utf8.3
|
||||
MAN3+= vars.3
|
||||
MAN3+= vmsish.3
|
||||
MAN3+= warnings.3
|
||||
MAN3+= warnings::register.3
|
||||
|
@ -1,6 +0,0 @@
|
||||
SHA256 (perl/perl-5.8.9.tar.bz2) = 1097fbcd48ceccb2bc735d119c9db399a02a8ab9f7dc53e29e47e6a8d0d72e79
|
||||
SIZE (perl/perl-5.8.9.tar.bz2) = 11121414
|
||||
SHA256 (perl/BSDPAN-5.8.9_20090303.tar.bz2) = 3e16cb7e8e927e282b8f155f4b59e05d4efa4403ed1feb033cd22397d81596f2
|
||||
SIZE (perl/BSDPAN-5.8.9_20090303.tar.bz2) = 8157
|
||||
SHA256 (perl/defined-or-5.8.9.bz2) = 021b46afd429f5c56b76195565394f1e74770681c5ad98f98936ad2cab58bda4
|
||||
SIZE (perl/defined-or-5.8.9.bz2) = 36178
|
@ -1,12 +0,0 @@
|
||||
--- Configure.orig 2008-10-30 10:48:10.000000000 +0300
|
||||
+++ Configure 2011-08-03 18:35:13.000000000 +0400
|
||||
@@ -8899,8 +8899,7 @@
|
||||
|
||||
: 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~+
|
@ -1,20 +0,0 @@
|
||||
--- lib/ExtUtils/t/INST_PREFIX.t.orig Wed Feb 15 12:46:31 2006
|
||||
+++ lib/ExtUtils/t/INST_PREFIX.t Wed Feb 15 12:46:52 2006
|
||||
@@ -16,7 +16,7 @@ BEGIN {
|
||||
}
|
||||
|
||||
use strict;
|
||||
-use Test::More tests => 52;
|
||||
+use Test::More tests => 51;
|
||||
use MakeMaker::Test::Utils;
|
||||
use MakeMaker::Test::Setup::BFD;
|
||||
use ExtUtils::MakeMaker;
|
||||
@@ -62,7 +62,7 @@ like( $stdout->read, qr{
|
||||
Writing\ $Makefile\ for\ Big::Dummy\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' );
|
||||
|
@ -1,18 +0,0 @@
|
||||
--- lib/ExtUtils/MM_Any.pm.orig Wed Feb 15 12:20:43 2006
|
||||
+++ lib/ExtUtils/MM_Any.pm Wed Feb 15 12:22:29 2006
|
||||
@@ -1069,13 +1069,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};
|
@ -1,24 +0,0 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=64562
|
||||
# Adapted from:
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/ee6d2783b2d78accfac54397826acf5f6e1715e1?hp=5a8cf367090fb5d83d8e8e0ae381a3525a215928
|
||||
diff --git a/op.c b/op.c
|
||||
index 517f648..89ed522 100644
|
||||
--- op.c
|
||||
+++ op.c
|
||||
@@ -6166,9 +6166,13 @@ Perl_newFORM(pTHX_ I32 floor, OP *o, OP *block)
|
||||
const line_t oldline = CopLINE(PL_curcop);
|
||||
if (PL_copline != NOLINE)
|
||||
CopLINE_set(PL_curcop, PL_copline);
|
||||
- Perl_warner(aTHX_ packWARN(WARN_REDEFINE),
|
||||
- o ? "Format %"SVf" redefined"
|
||||
- : "Format STDOUT redefined", (void*)cSVOPo->op_sv);
|
||||
+ if (o) {
|
||||
+ Perl_warner(aTHX_ packWARN(WARN_REDEFINE),
|
||||
+ "Format %"SVf" redefined", (void*)cSVOPo->op_sv);
|
||||
+ } else {
|
||||
+ Perl_warner(aTHX_ packWARN(WARN_REDEFINE),
|
||||
+ "Format STDOUT redefined");
|
||||
+ }
|
||||
CopLINE_set(PL_curcop, oldline);
|
||||
}
|
||||
SvREFCNT_dec(cv);
|
@ -1,51 +0,0 @@
|
||||
--- hints/freebsd.sh
|
||||
+++ hints/freebsd.sh
|
||||
@@ -88,6 +88,8 @@
|
||||
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 @@
|
||||
;;
|
||||
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
|
||||
|
||||
@@ -125,7 +131,7 @@
|
||||
else
|
||||
libpth="/usr/lib /usr/local/lib"
|
||||
glibpth="/usr/lib /usr/local/lib"
|
||||
- ldflags="-Wl,-E "
|
||||
+ ldflags="%%PTHREAD_LIBS%% -Wl,-E "
|
||||
lddlflags="-shared "
|
||||
fi
|
||||
cccdlflags='-DPIC -fPIC'
|
||||
@@ -136,7 +142,7 @@
|
||||
0*|1*|2*|3*) ;;
|
||||
|
||||
*)
|
||||
- ccflags="${ccflags} -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H"
|
||||
+ ccflags="${ccflags} %%PTHREAD_CFLAGS%% -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H"
|
||||
if /usr/bin/file -L /usr/lib/libc.so | /usr/bin/grep -vq "not stripped" ; then
|
||||
usenm=false
|
||||
fi
|
||||
@@ -183,7 +189,9 @@
|
||||
|
||||
# This script UU/usethreads.cbu will get 'called-back' by Configure
|
||||
# after it has prompted the user for whether to use threads.
|
||||
-cat > UU/usethreads.cbu <<'EOCBU'
|
||||
+## not quite - modern FreeBSD perl port is supposed to take care of that
|
||||
+## we just add extra libraries and cflags nowadays
|
||||
+cat > /dev/null <<'EOCBU'
|
||||
case "$usethreads" in
|
||||
$define|true|[yY]*)
|
||||
lc_r=`/sbin/ldconfig -r|grep ':-lc_r'|awk '{print $NF}'|sed -n '$p'`
|
@ -1,30 +0,0 @@
|
||||
--- hints/freebsd.sh.orig2 2011-10-09 13:30:37.000000000 +0000
|
||||
+++ hints/freebsd.sh 2011-10-09 14:12:48.000000000 +0000
|
||||
@@ -116,7 +116,8 @@
|
||||
case "$osvers" in
|
||||
0.*|1.0*) ;;
|
||||
|
||||
-1*|2*) cccdlflags='-DPIC -fpic'
|
||||
+1.*|2.*)
|
||||
+ cccdlflags='-DPIC -fpic'
|
||||
lddlflags="-Bshareable $lddlflags"
|
||||
;;
|
||||
|
||||
@@ -139,7 +140,7 @@
|
||||
esac
|
||||
|
||||
case "$osvers" in
|
||||
-0*|1*|2*|3*) ;;
|
||||
+0.*|1.*|2.*|3.*) ;;
|
||||
|
||||
*)
|
||||
ccflags="${ccflags} -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H"
|
||||
@@ -196,7 +197,7 @@
|
||||
$define|true|[yY]*)
|
||||
lc_r=`/sbin/ldconfig -r|grep ':-lc_r'|awk '{print $NF}'|sed -n '$p'`
|
||||
case "$osvers" in
|
||||
- 0*|1*|2.0*|2.1*) cat <<EOM >&4
|
||||
+ 0.*|1.*|2.0*|2.1*) cat <<EOM >&4
|
||||
I did not know that FreeBSD $osvers supports POSIX threads.
|
||||
|
||||
Feel free to tell perlbug@perl.org otherwise.
|
@ -1,69 +0,0 @@
|
||||
--- perl.c
|
||||
+++ perl.c
|
||||
@@ -3724,7 +3724,7 @@
|
||||
* perl with that fd as it has always done.
|
||||
*/
|
||||
}
|
||||
- if (*suidscript) {
|
||||
+ if (*suidscript != TRUE) {
|
||||
Perl_croak(aTHX_ "suidperl needs (suid) fd script\n");
|
||||
}
|
||||
#else /* IAMSUID */
|
||||
@@ -4882,6 +4882,28 @@
|
||||
incpush(APPLLIB_EXP, TRUE, 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, TRUE);
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
+#ifdef SITELIB_EXP
|
||||
+# if defined(WIN32)
|
||||
+ /* this picks up sitearch as well */
|
||||
+ incpush(SITELIB_EXP, TRUE, FALSE, TRUE, TRUE);
|
||||
+# else
|
||||
+ incpush(SITELIB_EXP, FALSE, FALSE, TRUE, TRUE);
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
+#if defined(SITELIB_STEM) && defined(PERL_INC_VERSION_LIST)
|
||||
+ /* Search for version-specific dirs below here */
|
||||
+ incpush(SITELIB_STEM, FALSE, TRUE, TRUE, TRUE);
|
||||
+#endif
|
||||
+
|
||||
#ifdef ARCHLIB_EXP
|
||||
incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE);
|
||||
#endif
|
||||
@@ -4915,28 +4937,6 @@
|
||||
incpush(PRIVLIB_EXP, FALSE, FALSE, 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, TRUE);
|
||||
-# endif
|
||||
-#endif
|
||||
-
|
||||
-#ifdef SITELIB_EXP
|
||||
-# if defined(WIN32)
|
||||
- /* this picks up sitearch as well */
|
||||
- incpush(SITELIB_EXP, TRUE, FALSE, TRUE, TRUE);
|
||||
-# else
|
||||
- incpush(SITELIB_EXP, FALSE, FALSE, TRUE, TRUE);
|
||||
-# endif
|
||||
-#endif
|
||||
-
|
||||
-#if defined(SITELIB_STEM) && defined(PERL_INC_VERSION_LIST)
|
||||
- /* Search for version-specific dirs below here */
|
||||
- incpush(SITELIB_STEM, FALSE, TRUE, TRUE, TRUE);
|
||||
-#endif
|
||||
-
|
||||
#ifdef PERL_VENDORARCH_EXP
|
||||
/* vendorarch is always relative to vendorlib on Windows for
|
||||
* DLL-based path intuition to work correctly */
|
@ -1,21 +0,0 @@
|
||||
--- sv.c
|
||||
+++ sv.c
|
||||
@@ -9813,7 +9813,8 @@ Perl_sv_dup(pTHX_ SV *sstr, CLONE_PARAMS* param)
|
||||
IoBOTTOM_NAME(dstr) = SAVEPV(IoBOTTOM_NAME(dstr));
|
||||
break;
|
||||
case SVt_PVAV:
|
||||
- if (AvARRAY((AV*)sstr)) {
|
||||
+ /* avoid cloning an empty array */
|
||||
+ if (AvARRAY((AV*)sstr) && AvFILLp((AV*)sstr) >= 0) {
|
||||
SV **dst_ary, **src_ary;
|
||||
SSize_t items = AvFILLp((AV*)sstr) + 1;
|
||||
|
||||
@@ -9838,6 +9839,8 @@ Perl_sv_dup(pTHX_ SV *sstr, CLONE_PARAMS* param)
|
||||
else {
|
||||
SvPV_set(dstr, NULL);
|
||||
AvALLOC((AV*)dstr) = (SV**)NULL;
|
||||
+ AvMAX( (AV *)dstr) = -1;
|
||||
+ AvFILLp((AV *)dstr) = -1;
|
||||
}
|
||||
AvARYLEN((AV*)dstr) = sv_dup_inc(AvARYLEN((AV*)sstr), param);
|
||||
break;
|
@ -1,588 +0,0 @@
|
||||
#! %%PERL%% -w
|
||||
# ----------------------------------------------------------------------------
|
||||
# "THE BEER-WARE LICENSE" (Revision 42)
|
||||
# <tobez@FreeBSD.org> wrote this file. As long as you retain this notice you
|
||||
# can do whatever you want with this stuff. If we meet some day, and you think
|
||||
# this stuff is worth it, you can buy me a beer in return. Anton Berezin
|
||||
# ----------------------------------------------------------------------------
|
||||
#
|
||||
# $FreeBSD$
|
||||
# $Id: perl-after-upgrade,v 1.11 2005/06/23 19:39:00 tobez Exp $
|
||||
#
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
perl-after-upgrade -- fixup FreeBSD packages that depend on perl
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
perl-after-upgrade
|
||||
perl-after-upgrade -f
|
||||
perl-after-upgrade -v
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The standard procedure after a perl port (either lang/perl5.6 or
|
||||
lang/perl5.8) upgrade is to basically reinstall all other packages that
|
||||
depend on perl. This is always a painful exercise. The
|
||||
perl-after-upgrade utility makes this process mostly unnecessary.
|
||||
|
||||
The tool goes through the list of installed packages, looks for those
|
||||
that depend on perl, moves files around, modifies shebang lines in those
|
||||
scripts in which it is necessary to do so, tries its best to adjust
|
||||
dynamically linked binaries that link with libperl.so in the old path,
|
||||
and updates the package database.
|
||||
|
||||
After installation of the new perl is complete, either by hand from the
|
||||
ports collection, or from a package, or via portupgrade, do the
|
||||
following:
|
||||
|
||||
=over 4
|
||||
|
||||
=item o go root;
|
||||
|
||||
=item o run perl-after-upgrade utility.
|
||||
|
||||
Do not specify any arguments at first, so it does nothing destructive.
|
||||
Pay attention to the produced output and especially to errorlist at the
|
||||
end, if any;
|
||||
|
||||
=item o run the utility again, with B<-f> command line option.
|
||||
|
||||
This will actually do the work. Again, pay attention to the output
|
||||
produced;
|
||||
|
||||
=item o fix any reported errors;
|
||||
|
||||
=item o reinstall required packages:
|
||||
|
||||
The utility will tell you what packages that depend on perl it could not
|
||||
handle. It will also tell you why it happened (for example, they were
|
||||
compiled against a binary incompatible perl). If you want such packages
|
||||
to remain operational, you will have to reinstall then by hand or via
|
||||
portupgrade.
|
||||
|
||||
=item o review the files left in the older perl installation.
|
||||
|
||||
This is typically /usr/local/lib/perl5/site_perl/5.X.Y/. There should
|
||||
be very little, if any, files in that directory and its subdirectories,
|
||||
excepting a number of .ph files;
|
||||
|
||||
=item o check that things work as they should;
|
||||
|
||||
=item o remove backup files from the package database.
|
||||
|
||||
Those will be /var/db/pkg/*/+CONTENTS.bak;
|
||||
|
||||
=item o that's all.
|
||||
|
||||
=back
|
||||
|
||||
=head1 COPYRIGHT AND LICENSE
|
||||
|
||||
Copyright 2005 by Anton Berezin
|
||||
|
||||
"THE BEER-WARE LICENSE" (Revision 42)
|
||||
<tobez@FreeBSD.org> wrote this module. As long as you retain this
|
||||
notice you can do whatever you want with this stuff. If we meet some
|
||||
day, and you think this stuff is worth it, you can buy me a beer in
|
||||
return.
|
||||
|
||||
Anton Berezin
|
||||
|
||||
NO WARRANTY OF ANY KIND, USE AT YOUR OWN RISK.
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
The first version of this utility was not bundled with perl package on
|
||||
FreeBSD. It was dumber than the current version in several important
|
||||
areas. It was faster.
|
||||
|
||||
=head1 CREDITS
|
||||
|
||||
Thanks to Mathieu Arnold for discussion.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
perl(1).
|
||||
|
||||
=cut
|
||||
|
||||
my $debug = 0;
|
||||
|
||||
# |/-\
|
||||
my $pchar = "|";
|
||||
my $do_progress = -t *STDOUT;
|
||||
sub progress
|
||||
{
|
||||
if ($do_progress) {
|
||||
print STDERR "$pchar";
|
||||
$pchar =~ tr<|/\\-><-|/\\>;
|
||||
}
|
||||
}
|
||||
|
||||
package FreeBSD::Package;
|
||||
use IO::File;
|
||||
use File::Copy;
|
||||
|
||||
sub new
|
||||
{
|
||||
my ($pkg, %p) = @_;
|
||||
my $pkgdir = $p{pkgdir} || return undef;
|
||||
my $name = $pkgdir;
|
||||
$name =~ s|.*/||;
|
||||
main::progress();
|
||||
my $c = IO::File->new("< $pkgdir/+CONTENTS");
|
||||
return undef unless $c;
|
||||
my @lines;
|
||||
while (<$c>) {
|
||||
chomp;
|
||||
push @lines, $_;
|
||||
}
|
||||
my $me = bless {
|
||||
pkgdir => $pkgdir,
|
||||
lines => \@lines,
|
||||
name => $name,
|
||||
}, $pkg;
|
||||
return $me;
|
||||
}
|
||||
|
||||
sub name
|
||||
{
|
||||
return $_[0]->{name};
|
||||
}
|
||||
|
||||
sub lines
|
||||
{
|
||||
my $me = shift;
|
||||
if (@_ && @_ == 1 && ref(@_) eq 'ARRAY') {
|
||||
$me->{lines} = [@{$_[0]}];
|
||||
$me->{changed} = 1;
|
||||
} elsif (@_) {
|
||||
$me->{lines} = [@_];
|
||||
$me->{changed} = 1;
|
||||
} else {
|
||||
return @{$me->{lines}};
|
||||
}
|
||||
}
|
||||
|
||||
sub write_back
|
||||
{
|
||||
my ($me) = @_;
|
||||
|
||||
return unless $me->{changed};
|
||||
main::progress();
|
||||
my $file = "$me->{pkgdir}/+CONTENTS";
|
||||
copy($file, "$file.bak");
|
||||
my $c = IO::File->new("> $file");
|
||||
return unless $c;
|
||||
for (@{$me->{lines}}) {
|
||||
print $c "$_\n";
|
||||
}
|
||||
}
|
||||
|
||||
package FreeBSD::Package::DB;
|
||||
use strict;
|
||||
|
||||
sub new
|
||||
{
|
||||
my ($pkg, %p) = @_;
|
||||
my $me = bless {
|
||||
dbdir => $p{dbdir} || $ENV{PKG_DBDIR} || "/var/db/pkg",
|
||||
}, $pkg;
|
||||
$me->{packages} = [ grep { -d } glob "$me->{dbdir}/*" ];
|
||||
$me->reset;
|
||||
return $me;
|
||||
}
|
||||
|
||||
sub next
|
||||
{
|
||||
my ($me) = @_;
|
||||
while (1) {
|
||||
$me->{current}++;
|
||||
if ($me->{current} >= @{$me->{packages}}) {
|
||||
$me->reset;
|
||||
return undef;
|
||||
}
|
||||
my $pkg = FreeBSD::Package->new(pkgdir => $me->{packages}->[$me->{current}]);
|
||||
return $pkg if $pkg;
|
||||
}
|
||||
}
|
||||
|
||||
sub reset
|
||||
{
|
||||
my ($me) = @_;
|
||||
$me->{current} = -1;
|
||||
}
|
||||
|
||||
package main;
|
||||
use File::Temp qw/tempfile/;
|
||||
use File::Copy;
|
||||
|
||||
my $dry_run = 1;
|
||||
my @tmpl;
|
||||
my $VERSION = "1.2";
|
||||
|
||||
while (@ARGV) {
|
||||
my $opt = shift;
|
||||
if ($opt eq "-f") {
|
||||
$dry_run = 0;
|
||||
} elsif ($opt eq "-d") {
|
||||
$debug = 1;
|
||||
} elsif ($opt eq "-v") {
|
||||
$_ = $0;
|
||||
s|.*/||;
|
||||
print "$_ version $VERSION\n";
|
||||
exit 0;
|
||||
} elsif ($opt =~ /^-/) {
|
||||
$_ = $0;
|
||||
s|.*/||;
|
||||
print "Unknown option `$opt'\n";
|
||||
print "Usage:\n";
|
||||
print "\t$_\n\t$_ -v\n\t$_ -f\n";
|
||||
exit 1;
|
||||
} else {
|
||||
push @tmpl, $opt;
|
||||
}
|
||||
}
|
||||
|
||||
my $target = '%%PERL_VERSION%%';
|
||||
my $new_perl_pkgname = '%%PKGNAME%%';
|
||||
|
||||
my $fuzzy_source = "5\\.[\\d._]+";
|
||||
print STDERR "- Fuzzy source re: <$fuzzy_source>\n" if $debug;
|
||||
|
||||
my @errors;
|
||||
my @notes;
|
||||
|
||||
sub fix_script
|
||||
{
|
||||
my ($file, $target) = @_;
|
||||
|
||||
main::progress();
|
||||
return 1 if $dry_run;
|
||||
my $sf = IO::File->new("< $file");
|
||||
return "" unless $sf;
|
||||
my $line = <$sf>;
|
||||
my $md5 = "";
|
||||
if ($line && $line =~ s|^(\s*#!\s*[\w/]+perl)$fuzzy_source\b|$1$target|) {
|
||||
my $dir = $file;
|
||||
$dir =~ s|/[^/]+$||;
|
||||
my ($fh, $fn) = tempfile(DIR=> $dir);
|
||||
if ($fh) {
|
||||
print $fh $line;
|
||||
while (<$sf>) {
|
||||
print $fh $_;
|
||||
}
|
||||
close $fh;
|
||||
$md5 = `/sbin/md5 -q $fn`;
|
||||
chomp $md5;
|
||||
my $mode = (stat($file))[2] & 07777;
|
||||
unlink $file or do {
|
||||
push @errors, "Failed to unlink $file: $!";
|
||||
unlink $fn;
|
||||
return "";
|
||||
};
|
||||
rename $fn, $file or do {
|
||||
push @errors, "Failed to rename $fn to $file: $!";
|
||||
return "";
|
||||
};
|
||||
chmod $mode, $file;
|
||||
} else {
|
||||
push @errors, "Failed to modify $file: $!";
|
||||
}
|
||||
}
|
||||
return $md5;
|
||||
}
|
||||
|
||||
sub fix_binary
|
||||
{
|
||||
my ($file, $target) = @_;
|
||||
|
||||
main::progress();
|
||||
my $sf = IO::File->new("< $file");
|
||||
return "" unless $sf;
|
||||
my $was = $dry_run ? "would be" : "was";
|
||||
push @notes, "The $file binary $was modified, make sure it works";
|
||||
return 1 if $dry_run;
|
||||
my $md5 = "";
|
||||
|
||||
my $dir = $file;
|
||||
$dir =~ s|/[^/]+$||;
|
||||
my ($fh, $fn) = tempfile(DIR=> $dir);
|
||||
unless ($fn) {
|
||||
push @errors, "Failed to modify $file: $!";
|
||||
return "";
|
||||
}
|
||||
|
||||
while (<$sf>) {
|
||||
s|/lib/perl5/$fuzzy_source/mach/CORE|/lib/perl5/$target/mach/CORE|g;
|
||||
print $fh $_;
|
||||
}
|
||||
close $fh;
|
||||
$md5 = `/sbin/md5 -q $fn`;
|
||||
chomp $md5;
|
||||
my $mode = (stat($file))[2] & 07777;
|
||||
unlink $file or do {
|
||||
push @errors, "Failed to unlink $file: $!";
|
||||
unlink $fn;
|
||||
return "";
|
||||
};
|
||||
rename $fn, $file or do {
|
||||
push @errors, "Failed to rename $fn to $file: $!";
|
||||
return "";
|
||||
};
|
||||
chmod $mode, $file;
|
||||
return $md5;
|
||||
}
|
||||
|
||||
sub mkdir_recur
|
||||
{
|
||||
my ($dir) = @_;
|
||||
|
||||
main::progress();
|
||||
$dir =~ s|/+$||;
|
||||
my $orig = $dir;
|
||||
if ($dir =~ m|^$|) {
|
||||
return 1;
|
||||
} else {
|
||||
$dir =~ s|/[^/]+$||;
|
||||
my $r = mkdir_recur($dir);
|
||||
return $r unless $r;
|
||||
mkdir $orig, 0777;
|
||||
my $e = $!;
|
||||
unless (-d $orig) {
|
||||
push @errors, "Could not create directory $orig: $e";
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
sub might_need_to_fix
|
||||
{
|
||||
my ($pkg) = @_;
|
||||
my $pkg_name = $pkg->name;
|
||||
|
||||
main::progress();
|
||||
if ($pkg_name =~ /^bsdpan-/) {
|
||||
return 1;
|
||||
}
|
||||
for ($pkg->lines) {
|
||||
if (/^\@pkgdep\s+perl-(threaded-)?($fuzzy_source)\S*\s*$/) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub fixable_binary
|
||||
{
|
||||
my ($file, $name) = @_;
|
||||
|
||||
main::progress();
|
||||
my $fixable = 0;
|
||||
for (`/usr/bin/ldd $file 2>&1`) {
|
||||
if (/^\s+libperl\.so\s+=>/) {
|
||||
my $found;
|
||||
for (`strings $file`) {
|
||||
if (m</lib/perl5/($fuzzy_source)/mach/CORE>) {
|
||||
$found++;
|
||||
if (length($1) != length($target)) {
|
||||
push @notes, "$name cannot be fixed up (and has to be reinstalled): cannot patch $file due to length difference";
|
||||
print STDERR "- Skipping $name: cannot patch $file due to length difference\n" if $debug;
|
||||
return undef;
|
||||
}
|
||||
print STDERR "- $name: fixable binary $file\n" if $debug && $found < 2;
|
||||
$fixable = 1 if $1 ne $target;
|
||||
}
|
||||
}
|
||||
if (!$found) {
|
||||
push @notes, "$name cannot be fixed up (and has to be reinstalled): $file is using unknown libperl";
|
||||
print STDERR "- Skipping $name: $file is using unknown libperl\n" if $debug;
|
||||
return undef;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $fixable;
|
||||
}
|
||||
|
||||
sub fixable_shared_lib
|
||||
{
|
||||
my ($file, $name) = @_;
|
||||
|
||||
main::progress();
|
||||
my ($old);
|
||||
for (`strings $file`) {
|
||||
if (/^perl_get_sv$/) {
|
||||
push @notes, "$name cannot be fixed up (and has to be reinstalled): $file uses an old perl API";
|
||||
print STDERR "- Skipping $name: $file uses an old perl API\n" if $debug;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
sub cannot_be_fixed
|
||||
{
|
||||
my ($pkg, $binaries, $scripts) = @_;
|
||||
my $pkg_name = $pkg->name;
|
||||
my $prefix = "";
|
||||
|
||||
main::progress();
|
||||
|
||||
for ($pkg->lines) {
|
||||
if (/^\@cwd\s+(\S+)\s*$/) {
|
||||
$prefix = $1;
|
||||
next;
|
||||
}
|
||||
my $file = "$prefix/$_";
|
||||
next if -l $file;
|
||||
next if $file =~ /\.gz$/;
|
||||
next if $file =~ /\.bz2$/;
|
||||
my $sf = IO::File->new("< $file");
|
||||
next unless $sf;
|
||||
my $line;
|
||||
sysread $sf, $line, 256;
|
||||
|
||||
# binary executable
|
||||
if ($line && $line =~ /^\177ELF.\x01.\x09.{8}\x02\0/) {
|
||||
my $fixable = fixable_binary($file, $pkg_name);
|
||||
return 0 unless defined $fixable;
|
||||
push @$binaries, $file if $fixable;
|
||||
# shared library - can prevent us from being able to upgrade
|
||||
} elsif ($line && $line =~ /^\177ELF.\x01.\x09.{8}\x03\0/) {
|
||||
return 0 unless fixable_shared_lib($file, $pkg_name);
|
||||
} elsif ($line && $line =~ m<^\s*#!\s*[\w/]+perl($fuzzy_source)\b>) {
|
||||
print STDERR "- $pkg_name: fixable script $file\n" if $debug;
|
||||
push @$scripts, $file if $1 ne $target;
|
||||
}
|
||||
main::progress();
|
||||
}
|
||||
}
|
||||
|
||||
#
|
||||
my $db = FreeBSD::Package::DB->new;
|
||||
my ($fixed, $skipped, $tot_moved, $tot_modified) = (0,0,0,0);
|
||||
while (my $pkg = $db->next) {
|
||||
my @lines;
|
||||
my $new_md5;
|
||||
my ($adjusted, $moved, $modified) = (0,0,0);
|
||||
|
||||
my $pkg_name = $pkg->name;
|
||||
if (@tmpl) {
|
||||
my $ok;
|
||||
for (@tmpl) {
|
||||
if ($pkg_name =~ /^$_/) {
|
||||
$ok = 1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
next unless $ok;
|
||||
}
|
||||
|
||||
unless (might_need_to_fix($pkg)) {
|
||||
$skipped++;
|
||||
print STDERR "- Skipping $pkg_name, it does not depend on perl\n" if $debug;
|
||||
next;
|
||||
}
|
||||
|
||||
my (@binaries_to_fix, @scripts_to_fix);
|
||||
if (cannot_be_fixed($pkg, \@binaries_to_fix, \@scripts_to_fix)) {
|
||||
$skipped++;
|
||||
next;
|
||||
}
|
||||
if ($debug) {
|
||||
print STDERR "- $pkg_name: ", scalar(@binaries_to_fix), " binaries to fix\n" if @binaries_to_fix;
|
||||
print STDERR "- $pkg_name: ", scalar(@scripts_to_fix), " scripts to fix\n" if @scripts_to_fix;
|
||||
}
|
||||
my %binaries = map { $_ => 1 } @binaries_to_fix;
|
||||
my %scripts = map { $_ => 1 } @scripts_to_fix;
|
||||
|
||||
my $prefix = "";
|
||||
my $pcnt = 0;
|
||||
for ($pkg->lines) {
|
||||
if (/^([^@]\S+)\s*$/) {
|
||||
my $from = "$prefix/$_";
|
||||
local $_; # we'll need it later
|
||||
$new_md5 = "";
|
||||
unless (-l $from) { # skip symlinks
|
||||
if ($binaries{$from}) {
|
||||
$new_md5 = fix_binary($from, $target);
|
||||
} elsif ($scripts{$from}) {
|
||||
$new_md5 = fix_script($from, $target);
|
||||
}
|
||||
$modified++ if $new_md5;
|
||||
}
|
||||
my $to = $from;
|
||||
if ($to =~ s|/perl5/$fuzzy_source/|/perl5/$target/|g or $to =~ s|/perl5/site_perl/$fuzzy_source/|/perl5/site_perl/$target/|g) {
|
||||
if ($to ne $from) {
|
||||
my $dir = $to;
|
||||
$dir =~ s|/[^/]+$||;
|
||||
main::progress();
|
||||
unless ($dry_run) {
|
||||
if (mkdir_recur($dir)) {
|
||||
move($from, $to);
|
||||
} else {
|
||||
push @errors, " could not move $from to $to";
|
||||
}
|
||||
}
|
||||
$moved++;
|
||||
print STDERR "- move: $from => $to\n" if $debug;
|
||||
}
|
||||
}
|
||||
} elsif (/^\@comment\s+MD5:[\da-f]+\s*$/ && $new_md5) {
|
||||
s|MD5:(\S+)|MD5:$new_md5|;
|
||||
$new_md5 = "";
|
||||
} else {
|
||||
$new_md5 = "";
|
||||
}
|
||||
if (/^\@cwd\s+(\S+)\s*$/) {
|
||||
$prefix = $1;
|
||||
} elsif (/^\@pkgdep\s+perl-(threaded-)?($fuzzy_source)\S*\s*$/) {
|
||||
if ($target ne $2) {
|
||||
my $perlver = $2;
|
||||
s|perl-(threaded-)?\Q$perlver\E|$new_perl_pkgname|;
|
||||
}
|
||||
}
|
||||
my $old = $_;
|
||||
if (s|/perl5/$fuzzy_source/|/perl5/$target/|g || s|/perl5/site_perl/$fuzzy_source/|/perl5/site_perl/$target/|g) {
|
||||
if ($old ne $_) {
|
||||
$adjusted++;
|
||||
print STDERR "- adjust: $_\n" if $debug;
|
||||
}
|
||||
}
|
||||
push @lines, $_;
|
||||
main::progress() if $pcnt++ % 250 == 0;
|
||||
}
|
||||
unless ($dry_run) {
|
||||
$pkg->lines(@lines);
|
||||
$pkg->write_back;
|
||||
}
|
||||
$fixed++ if $moved || $modified || $adjusted;
|
||||
$tot_modified += $modified;
|
||||
$tot_moved += $moved;
|
||||
print "$pkg_name: $moved moved, $modified modified, $adjusted adjusted\n";
|
||||
}
|
||||
print "\n---\n";
|
||||
print "Fixed $fixed packages ($tot_moved files moved, $tot_modified files modified)\n";
|
||||
print "Skipped $skipped packages\n";
|
||||
if (@errors) {
|
||||
print "\n**** The script has encountered following problems:\n";
|
||||
for (@errors) {
|
||||
print "$_\n";
|
||||
}
|
||||
print "\n--- Repeating summary:\n";
|
||||
print "Fixed $fixed packages ($tot_moved files moved, $tot_modified files modified)\n";
|
||||
print "Skipped $skipped packages\n";
|
||||
}
|
||||
if (@notes) {
|
||||
print "\n**** In addition, please pay attention to the following:\n";
|
||||
for (@notes) {
|
||||
print "$_\n";
|
||||
}
|
||||
print "\n--- Repeating summary:\n";
|
||||
print "Fixed $fixed packages ($tot_moved files moved, $tot_modified files modified)\n";
|
||||
print "Skipped $skipped packages\n";
|
||||
}
|
@ -1,2 +0,0 @@
|
||||
MANPATH %%PREFIX%%/lib/perl5/%%PERL_VERSION%%/man
|
||||
MANPATH %%PREFIX%%/lib/perl5/%%PERL_VERSION%%/perl/man
|
@ -1,182 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# $FreeBSD$
|
||||
|
||||
this=`echo -n $0 | /usr/bin/sed -e 's!^.*/!!'`
|
||||
PERL_VERSION="%%PERL_VERSION%%"
|
||||
MAKE_CONF=%%MAKE_CONF%%
|
||||
banner=`date +"%F %T"`
|
||||
banner="# added by use.perl $banner"
|
||||
if [ -z "${OSVERSION}" ]; then
|
||||
if [ -f /sbin/sysctl -a -x /sbin/sysctl ] ; then
|
||||
osreldate=`/sbin/sysctl -n kern.osreldate`
|
||||
else
|
||||
osreldate=`/usr/sbin/sysctl -n kern.osreldate`
|
||||
fi
|
||||
else
|
||||
osreldate=${OSVERSION}
|
||||
fi
|
||||
|
||||
if [ "x$this" = "xuse.perl" ]; then
|
||||
PKG_PREFIX="%%PREFIX%%"
|
||||
if [ "$1" = "port" ] ; then
|
||||
need_remove_links=%%LINK_USRBIN%%
|
||||
need_create_links=%%LINK_USRBIN%%
|
||||
need_cleanup_make_conf=yes
|
||||
need_spam_make_conf=yes
|
||||
if [ "${osreldate}" -lt 900022 ]; then
|
||||
need_cleanup_manpath=yes
|
||||
need_spam_manpath=yes
|
||||
fi
|
||||
elif [ "$1" = "system" ] ; then
|
||||
need_remove_links=%%LINK_USRBIN%%
|
||||
need_cleanup_make_conf=yes
|
||||
if [ "${osreldate}" -lt 900022 ]; then
|
||||
need_cleanup_manpath=yes
|
||||
fi
|
||||
else
|
||||
echo "Usage:
|
||||
${0##*/} port -> /usr/bin/perl is the perl5 port
|
||||
${0##*/} system -> /usr/bin/perl is the system perl"
|
||||
exit 2;
|
||||
fi
|
||||
else
|
||||
if [ "$2" = "POST-INSTALL" ] ; then
|
||||
need_remove_links=yes
|
||||
need_create_links=yes
|
||||
need_cleanup_make_conf=yes
|
||||
need_spam_make_conf=yes
|
||||
need_post_install=yes
|
||||
if [ "${osreldate}" -lt 900022 ]; then
|
||||
need_cleanup_manpath=yes
|
||||
need_spam_manpath=yes
|
||||
fi
|
||||
elif [ "$2" = "POST-DEINSTALL" ] ; then
|
||||
need_remove_links=yes
|
||||
need_cleanup_make_conf=yes
|
||||
if [ "${osreldate}" -lt 900022 ]; then
|
||||
need_cleanup_manpath=yes
|
||||
fi
|
||||
else
|
||||
exit 0;
|
||||
fi
|
||||
fi
|
||||
|
||||
special_link_list="
|
||||
perl
|
||||
perl5"
|
||||
|
||||
do_remove_links()
|
||||
{
|
||||
echo "Removing stale symlinks from /usr/bin..."
|
||||
for binary in $special_link_list
|
||||
do
|
||||
if [ -L "/usr/bin/$binary" ] ; then
|
||||
echo " Removing /usr/bin/$binary"
|
||||
/bin/rm -f "/usr/bin/$binary"
|
||||
else
|
||||
echo " Skipping /usr/bin/$binary"
|
||||
fi
|
||||
done
|
||||
bins=`/bin/ls /usr/bin/*perl*5.* ${PKG_PREFIX}/bin/*perl*5.* 2>/dev/null`
|
||||
for binary in $bins
|
||||
do
|
||||
if [ -L "$binary" ] ; then
|
||||
echo " Removing $binary installed by an older perl port"
|
||||
/bin/rm -f "$binary"
|
||||
fi
|
||||
done
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
do_create_links()
|
||||
{
|
||||
echo "Creating various symlinks in /usr/bin..."
|
||||
for binary in $special_link_list
|
||||
do
|
||||
if [ -f "/usr/bin/$binary" ] ; then
|
||||
echo " Backing up /usr/bin/$binary as /usr/bin/$binary.freebsd"
|
||||
/bin/mv -f "/usr/bin/$binary" "/usr/bin/$binary.freebsd"
|
||||
fi
|
||||
bin=`echo $binary | /usr/bin/sed -e 's!perl5!perl!'`
|
||||
if [ -e "/usr/bin/$binary" ] ; then
|
||||
echo " *** /usr/bin/$binary is still there, which should not happen"
|
||||
elif [ -e "$PKG_PREFIX/bin/${bin}%%PERL_VERSION%%" ] ; then
|
||||
echo " Symlinking $PKG_PREFIX/bin/${bin}%%PERL_VERSION%% to /usr/bin/$binary"
|
||||
/bin/ln -sf "$PKG_PREFIX/bin/${bin}%%PERL_VERSION%%" "/usr/bin/$binary"
|
||||
else
|
||||
echo " *** $PKG_PREFIX/bin/${bin}%%PERL_VERSION%% is not there, a symlink won't do any good"
|
||||
fi
|
||||
done
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
do_post_install()
|
||||
{
|
||||
INCLUDEDIR=/usr/include
|
||||
install -d ${PKG_PREFIX}/lib/perl5/site_perl/%%PERL_VERSION%%/%%PERL_ARCH%%/auto
|
||||
install -d ${PKG_PREFIX}/lib/perl5/site_perl/%%PERL_VERSION%%/auto
|
||||
install -d ${PKG_PREFIX}/lib/perl5/%%PERL_VERSION%%/man/man3
|
||||
cd ${INCLUDEDIR} && ${PKG_PREFIX}/bin/h2ph *.h machine/*.h sys/*.h >/dev/null
|
||||
}
|
||||
|
||||
do_cleanup_make_conf()
|
||||
{
|
||||
echo -n "Cleaning up ${MAKE_CONF}..."
|
||||
if [ -f ${MAKE_CONF} ] ; then
|
||||
/usr/bin/awk 's=0;
|
||||
/^#.*use.perl/ { s=1; mode=1 }
|
||||
/^#/ { s=1; if (mode != 1) { mode=0 } }
|
||||
/.*PERL.*=/ { s=1; if (mode == 1) { mode=2 } }
|
||||
/^$/ { s=1; if (mode != 2) { mode = 0 } }
|
||||
{ if (s != 1) { mode = 0 } if (mode == 0) print }' ${MAKE_CONF} >${MAKE_CONF}.new
|
||||
/bin/mv ${MAKE_CONF} ${MAKE_CONF}.bak
|
||||
/bin/mv ${MAKE_CONF}.new ${MAKE_CONF}
|
||||
fi
|
||||
echo " Done."
|
||||
}
|
||||
|
||||
do_cleanup_manpath()
|
||||
{
|
||||
if [ -f /etc/manpath.config ] ; then
|
||||
echo -n "Cleaning up /etc/manpath.config..."
|
||||
/usr/bin/awk 's=0;
|
||||
/^#.*use.perl/ { s=1; mode=1 }
|
||||
/^#/ { s=1; if (mode != 1) { mode=0 } }
|
||||
/^OPTIONAL_MANPATH.*perl5/ { s=1; if (mode == 1) { mode=2 } }
|
||||
/^$/ { s=1; if (mode != 2) { mode = 0 } }
|
||||
{ if (s != 1) { mode = 0 } if (mode == 0) print }' /etc/manpath.config >/etc/manpath.config.new
|
||||
/bin/mv /etc/manpath.config /etc/manpath.config.bak
|
||||
/bin/mv /etc/manpath.config.new /etc/manpath.config
|
||||
echo " Done."
|
||||
fi
|
||||
}
|
||||
|
||||
do_spam_make_conf()
|
||||
{
|
||||
echo -n "Spamming ${MAKE_CONF}..."
|
||||
echo "$banner" >>${MAKE_CONF}
|
||||
echo "PERL_VERSION=%%PERL_VERSION%%" >>${MAKE_CONF}
|
||||
echo " Done."
|
||||
}
|
||||
|
||||
do_spam_manpath()
|
||||
{
|
||||
if [ -f /etc/manpath.config ] ; then
|
||||
echo -n "Spamming /etc/manpath.config..."
|
||||
echo "$banner" >>/etc/manpath.config
|
||||
echo "OPTIONAL_MANPATH ${PKG_PREFIX}/lib/perl5/%%PERL_VERSION%%/man" >>/etc/manpath.config
|
||||
echo "OPTIONAL_MANPATH ${PKG_PREFIX}/lib/perl5/%%PERL_VERSION%%/perl/man" >>/etc/manpath.config
|
||||
echo " Done."
|
||||
fi
|
||||
}
|
||||
|
||||
[ "$need_remove_links" = "yes" ] && do_remove_links
|
||||
[ "$need_create_links" = "yes" ] && do_create_links
|
||||
[ "$need_post_install" = "yes" ] && do_post_install
|
||||
[ "$need_cleanup_make_conf" = "yes" ] && do_cleanup_make_conf
|
||||
[ "$need_spam_make_conf" = "yes" ] && do_spam_make_conf
|
||||
[ "$need_cleanup_manpath" = "yes" ] && do_cleanup_manpath
|
||||
[ "$need_spam_manpath" = "yes" ] && do_spam_manpath
|
||||
|
||||
exit 0
|
@ -1,6 +0,0 @@
|
||||
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.
|
||||
|
||||
WWW: http://www.perl.org/
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user