diff options
author | Anton Berezin <tobez@FreeBSD.org> | 2005-06-24 09:17:06 +0000 |
---|---|---|
committer | Anton Berezin <tobez@FreeBSD.org> | 2005-06-24 09:17:06 +0000 |
commit | cb044765cac302a6d2f050170f3c803917d5eb06 (patch) | |
tree | e35a39ee6e0eb95d1d1d187baa9e89dd51f115fa /lang/perl5.10 | |
parent | a3b72b88565aea64e0c2c6dd5e2286024e95154a (diff) | |
download | ports-cb044765cac302a6d2f050170f3c803917d5eb06.tar.gz ports-cb044765cac302a6d2f050170f3c803917d5eb06.zip |
Upgrade to 5.8.7. In addition:
- add perl-after-upgrade utility to move around
dependent packages
- fix $0 expansion in use.perl [1]
- enable threaded perl on amd64 [2]
- always compile perl with -pthread [3]
- fix errno issue in SDBM_File [4]
- add support for // and err (defined-or) [5]
- add WITH_DEBUGGING option [6]
- fix suidperl symlink [7]
- fix several small bugs in use.perl
- print possible WITH_XXX flags (no OPTIONS support yet)
[1] Submitted by: erwin, Niƫl Dogger <niel@introweb.nl>
[2] Nudged by: Mike Schroll <FreeBSD@LogicX.us>
[3] Nudged by: skv
[4] perl bug #35938
[5] Obtained from: H.Merijn Brand <h.m.brand@xs4all.nl>
[6] PR: 78811, submitted by: skv
[7] PR: 80069, submitted by: Sergey N. Voronkov <serg@tmn.ru>
A different solution was actually implemented.
Notes
Notes:
svn path=/head/; revision=137960
Diffstat (limited to 'lang/perl5.10')
-rw-r--r-- | lang/perl5.10/Makefile | 47 | ||||
-rw-r--r-- | lang/perl5.10/Makefile.man | 10 | ||||
-rw-r--r-- | lang/perl5.10/distinfo | 10 | ||||
-rw-r--r-- | lang/perl5.10/files/patch-Path.pm | 30 | ||||
-rw-r--r-- | lang/perl5.10/files/patch-SDBM-errno-fix | 16 | ||||
-rw-r--r-- | lang/perl5.10/files/patch-patchlevel.h | 13 | ||||
-rw-r--r-- | lang/perl5.10/files/patch-perlio.c | 22 | ||||
-rw-r--r-- | lang/perl5.10/files/perl-after-upgrade | 629 | ||||
-rw-r--r-- | lang/perl5.10/files/use.perl | 22 | ||||
-rw-r--r-- | lang/perl5.10/pkg-plist | 61 |
10 files changed, 767 insertions, 93 deletions
diff --git a/lang/perl5.10/Makefile b/lang/perl5.10/Makefile index 61671171fd00..57c2e6255b23 100644 --- a/lang/perl5.10/Makefile +++ b/lang/perl5.10/Makefile @@ -7,7 +7,6 @@ PORTNAME= perl PORTVERSION= ${PERL_VER} -PORTREVISION= 2 CATEGORIES= lang devel perl5 MASTER_SITES= ${MASTER_SITE_PERL_CPAN} \ ${MASTER_SITE_LOCAL:S/$/:local/} \ @@ -17,10 +16,14 @@ MASTER_SITE_SUBDIR= ../../src \ DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ BSDPAN-${PERL_VER}${EXTRACT_SUFX}:local +PATCH_SITES= ${MASTER_SITE_LOCAL} \ + http://www.tobez.org/download/port-mirrors/lang/perl58/ +PATCHFILES= defined-or-5.8.7.bz2 + MAINTAINER= tobez@FreeBSD.org COMMENT= Practical Extraction and Report Language -PERL_VER= 5.8.6 +PERL_VER= 5.8.7 PERL_ARCH= mach PERL_VERSION= ${PERL_VER} @@ -37,7 +40,7 @@ CONFIGURE_ARGS= -sde -Dprefix=${PREFIX} \ -Dsiteman3dir=${PREFIX}/lib/perl5/${PERL_VER}/man/man3 \ -Dsiteman1dir=${PREFIX}/man/man1 \ -Ui_malloc -Ui_iconv -Uinstallusrbinperl \ - -Dcc="${CC}" -Doptimize="${CFLAGS}" -Duseshrplib \ + -Dcc="${CC}" -Duseshrplib \ -Dccflags=-DAPPLLIB_EXP=\"${BSDPAN_DEST}\" LOCALE_CLEANUP= LANG="" LC_ALL="" LC_COLLATE="" LC_CTYPE="" \ LC_MESSAGES="" LC_MONETARY="" LC_NUMERIC="" \ @@ -48,6 +51,12 @@ MAKE_ENV+= ${LOCALE_CLEANUP} .include "Makefile.man" .include <bsd.port.pre.mk> +.if defined(WITH_DEBUGGING) +CONFIGURE_ARGS+= -Doptimize="-g" -DDEBUGGING +.else +CONFIGURE_ARGS+= -Doptimize="${CFLAGS}" +.endif + .if defined(ENABLE_SUIDPERL) CONFIGURE_ARGS+= -Dd_dosuid=define PLIST_SUB+= ENABLE_SUIDPERL="" @@ -72,9 +81,9 @@ WITH_PERL_MALLOC= yes .endif .if defined(WITH_THREADS) -.if ${ARCH} == "amd64" -IGNORE= Threaded perl does not pass tests on ${ARCH} -.endif +#XXX .if ${ARCH} == "amd64" +#XXX IGNORE= Threaded perl does not pass tests on ${ARCH} +#XXX .endif CONFIGURE_ARGS+= -Dusethreads=y PKGNAMESUFFIX= -threaded # it seems perl malloc has problems with threaded perl on FreeBSD @@ -124,6 +133,20 @@ PKGINSTALL= ${WRKDIR}/pkg-install PKGDEINSTALL= ${WRKDIR}/pkg-deinstall USE_REINPLACE= yes +pre-fetch: + @${ECHO} "" + @${ECHO} "You may use the following build options:" + @${ECHO} "" + @${ECHO} " WITH_DEBUGGING=yes Build perl with debugging support." + @${ECHO} " WITH_GDBM=yes Build GDBM_File extension." + @${ECHO} " WITHOUT_PERL_MALLOC=yes Use FreeBSD system malloc" + @${ECHO} " (uses less memory, but slower)." + @${ECHO} " WITHOUT_PERL_64BITINT=yes Disable 64 bit integers" + @${ECHO} " (affects only 32-bit platforms)." + @${ECHO} " WITH_THREADS=yes Build threaded perl." + @${ECHO} " ENABLE_SUIDPERL=yes Also build set-user-id suidperl binary." + @${ECHO} "" + post-patch: ${SED} -e 's|%%PREFIX%%|${PREFIX}|g;' \ -e 's|%%PERL_VER%%|${PERL_VER}|g;' \ @@ -132,17 +155,14 @@ post-patch: -e 's|%%MAKE_CONF%%|${__MAKE_CONF}|g;' \ ${FILESDIR}/use.perl \ > ${WRKDIR}/use.perl + ${SED} -e 's|%%PERL%%|${PERL}|g;' \ + ${FILESDIR}/perl-after-upgrade \ + > ${WRKDIR}/perl-after-upgrade ${CP} ${WRKDIR}/use.perl ${PKGINSTALL} ${CP} ${WRKDIR}/use.perl ${PKGDEINSTALL} -.if defined(WITH_THREADS) ${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-install: @${RM} -f ${PREFIX}/bin/perl${PERL_VER} @@ -151,6 +171,9 @@ pre-install: post-install: @${STRIP_CMD} ${PREFIX}/bin/perl${PERL_VER} @${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_VER} ${PREFIX}/bin/perl5 .for files in ${BSDPAN_FILES} ${MKDIR} ${BSDPAN_DEST}/${files:H} diff --git a/lang/perl5.10/Makefile.man b/lang/perl5.10/Makefile.man index 5d09d5ca3c38..0cc1e9b29882 100644 --- a/lang/perl5.10/Makefile.man +++ b/lang/perl5.10/Makefile.man @@ -24,7 +24,9 @@ MAN1+= perl583delta.1 MAN1+= perl584delta.1 MAN1+= perl585delta.1 MAN1+= perl586delta.1 +MAN1+= perl587delta.1 MAN1+= perl58delta.1 +MAN1+= perl-after-upgrade.1 MAN1+= perlaix.1 MAN1+= perlamiga.1 MAN1+= perlapi.1 @@ -105,6 +107,7 @@ MAN1+= perlnewmod.1 MAN1+= perlnumber.1 MAN1+= perlobj.1 MAN1+= perlop.1 +MAN1+= perlopenbsd.1 MAN1+= perlopentut.1 MAN1+= perlos2.1 MAN1+= perlos390.1 @@ -221,6 +224,7 @@ 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 @@ -255,6 +259,9 @@ 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 @@ -431,7 +438,9 @@ MAN3+= Test::Builder.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::TAP.3 MAN3+= Test::More.3 MAN3+= Test::Simple.3 MAN3+= Test::Tutorial.3 @@ -501,3 +510,4 @@ MAN3+= vars.3 MAN3+= vmsish.3 MAN3+= warnings.3 MAN3+= warnings::register.3 + diff --git a/lang/perl5.10/distinfo b/lang/perl5.10/distinfo index 7ea175187bca..30cb2a31b599 100644 --- a/lang/perl5.10/distinfo +++ b/lang/perl5.10/distinfo @@ -1,4 +1,6 @@ -MD5 (perl-5.8.6.tar.bz2) = 3d030b6ff2a433840edb1a407d18dc0a -SIZE (perl-5.8.6.tar.bz2) = 9693085 -MD5 (BSDPAN-5.8.6.tar.bz2) = e2be13e3698b3d95de3368a58be8a540 -SIZE (BSDPAN-5.8.6.tar.bz2) = 8217 +MD5 (perl-5.8.7.tar.bz2) = 9a175d6ccbb5d9b41ffac5073ff9cc3c +SIZE (perl-5.8.7.tar.bz2) = 9839086 +MD5 (BSDPAN-5.8.7.tar.bz2) = 9d60dba8afc17a2510a294190b751d9d +SIZE (BSDPAN-5.8.7.tar.bz2) = 8233 +MD5 (defined-or-5.8.7.bz2) = 06ae4b68bcce9443613a79151b3ba57b +SIZE (defined-or-5.8.7.bz2) = 36107 diff --git a/lang/perl5.10/files/patch-Path.pm b/lang/perl5.10/files/patch-Path.pm deleted file mode 100644 index 2735b0f6a648..000000000000 --- a/lang/perl5.10/files/patch-Path.pm +++ /dev/null @@ -1,30 +0,0 @@ -$FreeBSD$ ---- lib/File/Path.pm.orig Sat Jan 29 20:23:40 2005 -+++ lib/File/Path.pm Sat Jan 29 20:24:56 2005 -@@ -196,7 +196,7 @@ sub rmtree { - # it's also intended to change it to writable in case we have - # to recurse in which case we are better than rm -rf for - # subtrees with strange permissions -- chmod(0777, ($Is_VMS ? VMS::Filespec::fileify($root) : $root)) -+ chmod(0700, ($Is_VMS ? VMS::Filespec::fileify($root) : $root)) - or carp "Can't make directory $root read+writeable: $!" - unless $safe; - -@@ -230,7 +230,7 @@ sub rmtree { - print "skipped $root\n" if $verbose; - next; - } -- chmod 0777, $root -+ chmod 0700, $root - or carp "Can't make directory $root writeable: $!" - if $force_writeable; - print "rmdir $root\n" if $verbose; -@@ -252,7 +252,7 @@ sub rmtree { - print "skipped $root\n" if $verbose; - next; - } -- chmod 0666, $root -+ chmod 0600, $root - or carp "Can't make file $root writeable: $!" - if $force_writeable; - print "unlink $root\n" if $verbose; diff --git a/lang/perl5.10/files/patch-SDBM-errno-fix b/lang/perl5.10/files/patch-SDBM-errno-fix new file mode 100644 index 000000000000..2dcf809d92d3 --- /dev/null +++ b/lang/perl5.10/files/patch-SDBM-errno-fix @@ -0,0 +1,16 @@ +--- ext/SDBM_File/sdbm/sdbm.c.orig Thu Jun 23 08:06:21 2005 ++++ ext/SDBM_File/sdbm/sdbm.c Thu Jun 23 08:06:57 2005 +@@ -34,11 +34,8 @@ + /* + * externals + */ +-#ifndef WIN32 +-#ifndef sun +-extern int errno; +-#endif +-#endif ++ ++#include <errno.h> + + extern Malloc_t malloc proto((MEM_SIZE)); + extern Free_t free proto((Malloc_t)); diff --git a/lang/perl5.10/files/patch-patchlevel.h b/lang/perl5.10/files/patch-patchlevel.h deleted file mode 100644 index c24961cf5dbc..000000000000 --- a/lang/perl5.10/files/patch-patchlevel.h +++ /dev/null @@ -1,13 +0,0 @@ -$FreeBSD$ - ---- patchlevel.h.orig Wed Feb 2 16:45:30 2005 -+++ patchlevel.h Wed Feb 2 16:45:34 2005 -@@ -120,6 +120,8 @@ hunk. - #if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT) - static char *local_patches[] = { - NULL -+ ,"SUIDPERLIO0 - fix PERLIO_DEBUG local root exploit (CAN-2005-0155)" -+ ,"SUIDPERLIO1 - fix PERLIO_DEBUG buffer overflow (CAN-2005-0156)" - ,NULL - }; - diff --git a/lang/perl5.10/files/patch-perlio.c b/lang/perl5.10/files/patch-perlio.c deleted file mode 100644 index c680381d2123..000000000000 --- a/lang/perl5.10/files/patch-perlio.c +++ /dev/null @@ -1,22 +0,0 @@ -$FreeBSD$ - ---- perlio.c.orig Wed Feb 2 16:45:24 2005 -+++ perlio.c Wed Feb 2 16:45:34 2005 -@@ -454,7 +454,7 @@ PerlIO_debug(const char *fmt, ...) - va_list ap; - dSYS; - va_start(ap, fmt); -- if (!dbg) { -+ if (!dbg && !PL_tainting && PL_uid == PL_euid && PL_gid == PL_egid) { - char *s = PerlEnv_getenv("PERLIO_DEBUG"); - if (s && *s) - dbg = PerlLIO_open3(s, O_WRONLY | O_CREAT | O_APPEND, 0666); -@@ -471,7 +471,7 @@ PerlIO_debug(const char *fmt, ...) - s = CopFILE(PL_curcop); - if (!s) - s = "(none)"; -- sprintf(buffer, "%s:%" IVdf " ", s, (IV) CopLINE(PL_curcop)); -+ sprintf(buffer, "%.40s:%" IVdf " ", s, (IV) CopLINE(PL_curcop)); - len = strlen(buffer); - vsprintf(buffer+len, fmt, ap); - PerlLIO_write(dbg, buffer, strlen(buffer)); diff --git a/lang/perl5.10/files/perl-after-upgrade b/lang/perl5.10/files/perl-after-upgrade new file mode 100644 index 000000000000..a60cd8e93ecb --- /dev/null +++ b/lang/perl5.10/files/perl-after-upgrade @@ -0,0 +1,629 @@ +#! %%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 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 Config; +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 = + $Config::Config{PERL_REVISION} . "." . + $Config::Config{PERL_VERSION} . "." . + $Config::Config{PERL_SUBVERSION}; +my $source = ""; +my $api_revision = $Config::Config{api_revision} || 0; +my $api_version = $Config::Config{api_version} || 0; +my $api_subversion = $Config::Config{api_subversion} || 0; +if ($api_revision < $Config::Config{PERL_REVISION}) { + $source = ".["; + for ($api_revision .. $Config::Config{PERL_REVISION}) { + $source .= $_; + } + $source .= "]\\.\\d+\\.\\d+"; +} elsif ($api_revision > $Config::Config{PERL_REVISION}) { + die "internal error, this perl is too old\n"; +} else { + $source .= "$Config::Config{PERL_REVISION}\\."; + if ($api_version < $Config::Config{PERL_VERSION}) { + $source .= "["; + for ($api_version .. $Config::Config{PERL_VERSION}) { + $source .= $_; + } + $source .= "]\\.\\d+"; + } elsif ($api_version > $Config::Config{PERL_VERSION}) { + die "internal error, this perl is too old\n"; + } else { + $source .= "$Config::Config{PERL_VERSION}\\."; + if ($api_subversion < $Config::Config{PERL_SUBVERSION}) { + $source .= "["; + for ($api_subversion .. $Config::Config{PERL_SUBVERSION}) { + $source .= $_; + } + $source .= "]"; + } elsif ($api_subversion > $Config::Config{PERL_SUBVERSION}) { + die "internal error, this perl is too old\n"; + } else { + $source .= "$Config::Config{PERL_SUBVERSION}\\."; + } + } +} +print STDERR "- Source re: <$source>\n" if $debug; + +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-($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-($fuzzy_source)\S*\s*$/) { + if ($target ne $1) { + my $perlver = $1; + s|perl-\Q$perlver\E|perl-$target|; + } + } + 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"; +} diff --git a/lang/perl5.10/files/use.perl b/lang/perl5.10/files/use.perl index 57e1acde0bc8..eca7811f3a85 100644 --- a/lang/perl5.10/files/use.perl +++ b/lang/perl5.10/files/use.perl @@ -34,9 +34,9 @@ if [ "x$this" = "xuse.perl" ]; then need_cleanup_make_conf=yes need_cleanup_manpath=yes else - echo 'Usage: - $0 port -> /usr/bin/perl is the perl5 port - $0 system -> /usr/bin/perl is the system perl' + echo "Usage: + ${0##*/} port -> /usr/bin/perl is the perl5 port + ${0##*/} system -> /usr/bin/perl is the system perl" exit 2; fi else @@ -77,14 +77,14 @@ link_list=" pod2man pod2text s2p - splain" + splain + suidperl" if [ $osreldate -ge 500036 ] ; then link_list="" fi special_link_list=" perl - perl5 - suidperl" + perl5" do_remove_links() { @@ -130,11 +130,11 @@ do_create_links() for binary in $special_link_list do if [ -f "/usr/bin/$binary" ] ; then - echo " Removing /usr/bin/$binary" + 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!'` - bin=`echo $bin | /usr/bin/sed -e 's!suidperl!sperl!'` - if [ -e "/usr/bin/$binary.XXX" ] ; then + 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" @@ -185,6 +185,10 @@ do_base_system_perl() else echo " *** $bin is NOT there, nothing to restore" fi + if [ -f "/usr/bin/$binary.freebsd" ] ; then + echo " Removing backup copy /usr/bin/$binary.freebsd" + rm -f "/usr/bin/$binary.freebsd" + fi fi done echo "Done." diff --git a/lang/perl5.10/pkg-plist b/lang/perl5.10/pkg-plist index fd3225420c46..a02b3fa3191a 100644 --- a/lang/perl5.10/pkg-plist +++ b/lang/perl5.10/pkg-plist @@ -12,6 +12,7 @@ bin/perl bin/perl%%PERL_VER%% @exec ln -fs %D/%F %B/perl5 @unexec rm -f %B/perl5 2>&1 >/dev/null || true +bin/perl-after-upgrade bin/perlbug bin/perlcc bin/perldoc @@ -68,6 +69,7 @@ lib/perl5/%%PERL_VER%%/Benchmark.pm lib/perl5/%%PERL_VER%%/CGI.pm lib/perl5/%%PERL_VER%%/CGI/Apache.pm lib/perl5/%%PERL_VER%%/CGI/Carp.pm +lib/perl5/%%PERL_VER%%/CGI/Changes lib/perl5/%%PERL_VER%%/CGI/Cookie.pm lib/perl5/%%PERL_VER%%/CGI/Fast.pm lib/perl5/%%PERL_VER%%/CGI/Pretty.pm @@ -105,10 +107,10 @@ lib/perl5/%%PERL_VER%%/CPAN/SIGNATURE lib/perl5/%%PERL_VER%%/Carp.pm lib/perl5/%%PERL_VER%%/Carp/Heavy.pm lib/perl5/%%PERL_VER%%/Class/ISA.pm +lib/perl5/%%PERL_VER%%/Class/ISA/ChangeLog lib/perl5/%%PERL_VER%%/Class/Struct.pm lib/perl5/%%PERL_VER%%/DB.pm lib/perl5/%%PERL_VER%%/DBM_Filter.pm -lib/perl5/%%PERL_VER%%/dbm_filter_util.pl lib/perl5/%%PERL_VER%%/DBM_Filter/Changes lib/perl5/%%PERL_VER%%/DBM_Filter/compress.pm lib/perl5/%%PERL_VER%%/DBM_Filter/encode.pm @@ -117,7 +119,9 @@ lib/perl5/%%PERL_VER%%/DBM_Filter/null.pm lib/perl5/%%PERL_VER%%/DBM_Filter/utf8.pm lib/perl5/%%PERL_VER%%/Devel/SelfStubber.pm lib/perl5/%%PERL_VER%%/Digest.pm +lib/perl5/%%PERL_VER%%/Digest/Changes lib/perl5/%%PERL_VER%%/Digest/base.pm +lib/perl5/%%PERL_VER%%/Digest/file.pm lib/perl5/%%PERL_VER%%/DirHandle.pm lib/perl5/%%PERL_VER%%/Dumpvalue.pm lib/perl5/%%PERL_VER%%/Encode/CN/HZ.pm @@ -143,6 +147,9 @@ lib/perl5/%%PERL_VER%%/ExtUtils/Changes lib/perl5/%%PERL_VER%%/ExtUtils/Command.pm lib/perl5/%%PERL_VER%%/ExtUtils/Command/MM.pm lib/perl5/%%PERL_VER%%/ExtUtils/Constant.pm +lib/perl5/%%PERL_VER%%/ExtUtils/Constant/Base.pm +lib/perl5/%%PERL_VER%%/ExtUtils/Constant/Utils.pm +lib/perl5/%%PERL_VER%%/ExtUtils/Constant/XS.pm lib/perl5/%%PERL_VER%%/ExtUtils/Embed.pm lib/perl5/%%PERL_VER%%/ExtUtils/Install.pm lib/perl5/%%PERL_VER%%/ExtUtils/Installed.pm @@ -263,8 +270,8 @@ lib/perl5/%%PERL_VER%%/Memoize/TODO lib/perl5/%%PERL_VER%%/NEXT.pm lib/perl5/%%PERL_VER%%/NEXT/Changes lib/perl5/%%PERL_VER%%/NEXT/README -lib/perl5/%%PERL_VER%%/Net/Cmd.pm lib/perl5/%%PERL_VER%%/Net/Changes.libnet +lib/perl5/%%PERL_VER%%/Net/Cmd.pm lib/perl5/%%PERL_VER%%/Net/Config.eg lib/perl5/%%PERL_VER%%/Net/Config.pm lib/perl5/%%PERL_VER%%/Net/Domain.pm @@ -347,11 +354,14 @@ lib/perl5/%%PERL_VER%%/Test/Harness.pm lib/perl5/%%PERL_VER%%/Test/Harness/Assert.pm lib/perl5/%%PERL_VER%%/Test/Harness/Changes lib/perl5/%%PERL_VER%%/Test/Harness/Iterator.pm +lib/perl5/%%PERL_VER%%/Test/Harness/Point.pm lib/perl5/%%PERL_VER%%/Test/Harness/Straps.pm +lib/perl5/%%PERL_VER%%/Test/Harness/TAP.pod lib/perl5/%%PERL_VER%%/Test/More.pm lib/perl5/%%PERL_VER%%/Test/Simple.pm lib/perl5/%%PERL_VER%%/Test/Simple/Changes lib/perl5/%%PERL_VER%%/Test/Simple/README +lib/perl5/%%PERL_VER%%/Test/Simple/TODO lib/perl5/%%PERL_VER%%/Test/Tutorial.pod lib/perl5/%%PERL_VER%%/Text/Abbrev.pm lib/perl5/%%PERL_VER%%/Text/Balanced.pm @@ -409,6 +419,7 @@ lib/perl5/%%PERL_VER%%/charnames.pm lib/perl5/%%PERL_VER%%/complete.pl lib/perl5/%%PERL_VER%%/constant.pm lib/perl5/%%PERL_VER%%/ctime.pl +lib/perl5/%%PERL_VER%%/dbm_filter_util.pl lib/perl5/%%PERL_VER%%/diagnostics.pm lib/perl5/%%PERL_VER%%/dotsh.pl lib/perl5/%%PERL_VER%%/dumpvar.pl @@ -448,6 +459,7 @@ lib/perl5/%%PERL_VER%%/%%PERL_ARCH%%/B/Stash.pm lib/perl5/%%PERL_VER%%/%%PERL_ARCH%%/B/Terse.pm lib/perl5/%%PERL_VER%%/%%PERL_ARCH%%/B/Xref.pm lib/perl5/%%PERL_VER%%/%%PERL_ARCH%%/ByteLoader.pm +lib/perl5/%%PERL_VER%%/%%PERL_ARCH%%/Config_heavy.pl lib/perl5/%%PERL_VER%%/%%PERL_ARCH%%/CORE/EXTERN.h lib/perl5/%%PERL_VER%%/%%PERL_ARCH%%/CORE/INTERN.h lib/perl5/%%PERL_VER%%/%%PERL_ARCH%%/CORE/XSUB.h @@ -871,6 +883,7 @@ lib/perl5/%%PERL_VER%%/pod/perl583delta.pod lib/perl5/%%PERL_VER%%/pod/perl584delta.pod lib/perl5/%%PERL_VER%%/pod/perl585delta.pod lib/perl5/%%PERL_VER%%/pod/perl586delta.pod +lib/perl5/%%PERL_VER%%/pod/perl587delta.pod lib/perl5/%%PERL_VER%%/pod/perl58delta.pod lib/perl5/%%PERL_VER%%/pod/perlaix.pod lib/perl5/%%PERL_VER%%/pod/perlamiga.pod @@ -949,6 +962,7 @@ lib/perl5/%%PERL_VER%%/pod/perlnewmod.pod lib/perl5/%%PERL_VER%%/pod/perlnumber.pod lib/perl5/%%PERL_VER%%/pod/perlobj.pod lib/perl5/%%PERL_VER%%/pod/perlop.pod +lib/perl5/%%PERL_VER%%/pod/perlopenbsd.pod lib/perl5/%%PERL_VER%%/pod/perlopentut.pod lib/perl5/%%PERL_VER%%/pod/perlos2.pod lib/perl5/%%PERL_VER%%/pod/perlos390.pod @@ -1018,6 +1032,7 @@ lib/perl5/%%PERL_VER%%/unicore/Index.txt lib/perl5/%%PERL_VER%%/unicore/Jamo.txt lib/perl5/%%PERL_VER%%/unicore/LineBreak.txt lib/perl5/%%PERL_VER%%/unicore/Name.pl +lib/perl5/%%PERL_VER%%/unicore/NamedSequences.txt lib/perl5/%%PERL_VER%%/unicore/NamesList.txt lib/perl5/%%PERL_VER%%/unicore/NormalizationCorrections.txt lib/perl5/%%PERL_VER%%/unicore/PVA.pl @@ -1113,6 +1128,7 @@ lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/BidiCont.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Blank.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Bopo.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Brai.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Bugi.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Buhd.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/C.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Canadian.pl @@ -1122,6 +1138,7 @@ lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Cher.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Cn.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Cntrl.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Co.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Copt.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Cprt.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Cs.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Cyrl.pl @@ -1138,6 +1155,7 @@ lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Ethi.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Ext.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Extender.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Geor.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Glag.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Goth.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/GrLink.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Graph.pl @@ -1164,8 +1182,11 @@ lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/IdsBinar.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/IdsTrina.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InAegean.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InAlphab.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InAncie2.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InAncien.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InArabi2.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InArabi3.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InArabi4.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InArabic.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InArmeni.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InArrows.pl @@ -1176,6 +1197,7 @@ lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InBopom2.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InBopomo.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InBoxDra.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InBraill.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InBugine.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InBuhid.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InByzant.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCherok.pl @@ -1184,14 +1206,17 @@ lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCjkCo3.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCjkCo4.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCjkCom.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCjkRad.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCjkStr.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCjkSym.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCjkUn2.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCjkUn3.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCjkUni.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCombi2.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCombi3.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCombi4.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCombin.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InContro.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCoptic.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCurren.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCyprio.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InCyril2.pl @@ -1201,10 +1226,14 @@ lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InDevana.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InDingba.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InEnclo2.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InEnclos.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InEthio2.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InEthio3.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InEthiop.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InGenera.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InGeomet.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InGeorg2.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InGeorgi.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InGlagol.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InGothic.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InGreekA.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InGreekE.pl @@ -1226,6 +1255,7 @@ lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InKangxi.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InKannad.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InKatak2.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InKataka.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InKharos.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InKhmer.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InKhmerS.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InLao.pl @@ -1246,15 +1276,19 @@ lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InMisce3.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InMisce4.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InMisce5.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InMiscel.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InModifi.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InMongol.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InMusica.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InMyanma.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InNewTai.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InNumber.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InOgham.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InOldIta.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InOldPer.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InOptica.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InOriya.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InOsmany.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InPhone2.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InPhonet.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InPrivat.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InRunic.pl @@ -1268,7 +1302,9 @@ lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InSuppl2.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InSuppl3.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InSuppl4.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InSuppl5.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InSuppl6.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InSupple.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InSyloti.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InSyriac.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InTagalo.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InTagban.pl @@ -1280,17 +1316,19 @@ lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InTelugu.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InThaana.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InThai.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InTibeta.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InTifina.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InUgarit.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InUnifie.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InVaria2.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InVariat.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InVertic.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InYiRadi.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InYiSyll.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/InYijing.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/JoinC.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/JoinCont.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Kana.pl -lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Katakana.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Khar.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Khmr.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Knda.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/L.pl @@ -1319,28 +1357,36 @@ lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Mymr.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/N.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/NChar.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Nd.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/NewTaiLu.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Nl.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/No.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Nonchara.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OAlpha.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/ODI.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OGrExt.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OIDC.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OIDS.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OLower.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OMath.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OUpper.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Ogam.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OldItali.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OldPersi.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Orya.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Osma.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OtherAlp.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OtherDef.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OtherGra.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OtherIdC.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OtherIdS.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OtherLow.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OtherMat.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/OtherUpp.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/P.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/PatSyn.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/PatWS.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/PatternS.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/PatternW.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Pc.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Pd.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Pe.pl @@ -1369,6 +1415,7 @@ lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/SoftDott.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Space.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/SpacePer.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Sterm2.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/SylotiNa.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Syrc.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Tagb.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/TaiLe.pl @@ -1376,6 +1423,7 @@ lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Taml.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Telu.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Term.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Terminal.pl +lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Tfng.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Tglg.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Thaa.pl lib/perl5/%%PERL_VER%%/unicore/lib/gc_sc/Thai.pl @@ -1422,10 +1470,15 @@ lib/perl5/%%PERL_VER%%/unicore/lib/lb/CM.pl lib/perl5/%%PERL_VER%%/unicore/lib/lb/CR.pl lib/perl5/%%PERL_VER%%/unicore/lib/lb/EX.pl lib/perl5/%%PERL_VER%%/unicore/lib/lb/GL.pl +lib/perl5/%%PERL_VER%%/unicore/lib/lb/H2.pl +lib/perl5/%%PERL_VER%%/unicore/lib/lb/H3.pl lib/perl5/%%PERL_VER%%/unicore/lib/lb/HY.pl lib/perl5/%%PERL_VER%%/unicore/lib/lb/ID.pl lib/perl5/%%PERL_VER%%/unicore/lib/lb/IN.pl lib/perl5/%%PERL_VER%%/unicore/lib/lb/IS.pl +lib/perl5/%%PERL_VER%%/unicore/lib/lb/JL.pl +lib/perl5/%%PERL_VER%%/unicore/lib/lb/JT.pl +lib/perl5/%%PERL_VER%%/unicore/lib/lb/JV.pl lib/perl5/%%PERL_VER%%/unicore/lib/lb/LF.pl lib/perl5/%%PERL_VER%%/unicore/lib/lb/NL.pl lib/perl5/%%PERL_VER%%/unicore/lib/lb/NS.pl @@ -1445,6 +1498,7 @@ lib/perl5/%%PERL_VER%%/unicore/lib/nt/De.pl lib/perl5/%%PERL_VER%%/unicore/lib/nt/Di.pl lib/perl5/%%PERL_VER%%/unicore/lib/nt/Nu.pl lib/perl5/%%PERL_VER%%/unicore/mktables +lib/perl5/%%PERL_VER%%/unicore/mktables.lst lib/perl5/%%PERL_VER%%/unicore/version lib/perl5/%%PERL_VER%%/utf8.pm lib/perl5/%%PERL_VER%%/utf8_heavy.pl @@ -1621,6 +1675,7 @@ lib/perl5/%%PERL_VER%%/warnings/register.pm @unexec rmdir %D/lib/perl5/%%PERL_VER%%/Encode/Unicode 2>/dev/null || true @unexec rmdir %D/lib/perl5/%%PERL_VER%%/Encode 2>/dev/null || true @unexec rmdir %D/lib/perl5/%%PERL_VER%%/ExtUtils/Command 2>/dev/null || true +@unexec rmdir %D/lib/perl5/%%PERL_VER%%/ExtUtils/Constant 2>/dev/null || true @unexec rmdir %D/lib/perl5/%%PERL_VER%%/ExtUtils/Liblist 2>/dev/null || true @unexec rmdir %D/lib/perl5/%%PERL_VER%%/ExtUtils/MakeMaker 2>/dev/null || true @unexec rmdir %D/lib/perl5/%%PERL_VER%%/ExtUtils 2>/dev/null || true |