This patch describes the changes made in ActivePerl build 1000 over the official perl-current@32448 sources from CPAN. Summary of changes in build 1000: * Make "perl -V" output reflect ActiveState build. * Add Win32::BuildNumber() for compatibility. * Add resources to perl.exe and perl510.dll. The ActivePerl Release Notes contain an informal summary of these changes. These can be viewed at: http://www.ActiveState.com/ActivePerl/docs/CHANGES.html The included patch may be applied to perl-current@32448 sources using the GNU patch utility. e.g: % cd perl-current % patch -lNp1 < this_file --------------------------------------------------------------------------- diff -ruN perl-current/.patch AP1000_source/.patch --- perl-current/.patch 2007-11-22 02:34:08.000000000 -0800 +++ AP1000_source/.patch 1969-12-31 16:00:00.000000000 -0800 @@ -1 +0,0 @@ -32448 diff -ruN perl-current/BuildInfo.h AP1000_source/BuildInfo.h --- perl-current/BuildInfo.h 1969-12-31 16:00:00.000000000 -0800 +++ AP1000_source/BuildInfo.h 2007-11-23 11:46:24.736159396 -0800 @@ -0,0 +1,38 @@ +/* BuildInfo.h + * + * Copyright (C) 1998-2007 ActiveState Corp. All rights reserved. + * + */ + +#ifndef ___BuildInfo__h___ +#define ___BuildInfo__h___ + +#define ACTIVEPERL_PRODUCT "ActivePerl" +#define ACTIVEPERL_VERSION 1000 +#define ACTIVEPERL_SUBVERSION 0 +#define ACTIVEPERL_CHANGELIST "" +#define ACTIVEPERL_RELEASE_TYPE " Beta" +#define PERL_VENDORLIB_NAME "ActiveState" + +#ifndef STRINGIFY +# include "config.h" +#endif + +/* Derived values and legacy */ +#if ACTIVEPERL_SUBVERSION > 0 +# define PRODUCT_BUILD_NUMBER STRINGIFY(ACTIVEPERL_VERSION) "." STRINGIFY(ACTIVEPERL_SUBVERSION) +#else +# define PRODUCT_BUILD_NUMBER STRINGIFY(ACTIVEPERL_VERSION) +#endif +#define PERLFILEVERSION "5,10,0," STRINGIFY(ACTIVEPERL_VERSION) "\0" +#define PERLRC_VERSION 5,10,0,ACTIVEPERL_VERSION +#define PERLPRODUCTVERSION "Build " PRODUCT_BUILD_NUMBER ACTIVEPERL_CHANGELIST "\0" +#define PERLPRODUCTNAME ACTIVEPERL_PRODUCT "\0" +#define ACTIVEPERL_LOCAL_PATCHES_ENTRY ACTIVEPERL_PRODUCT " Build " PRODUCT_BUILD_NUMBER ACTIVEPERL_CHANGELIST ACTIVEPERL_RELEASE_TYPE +#ifdef BUILT_BY_ACTIVESTATE +#define BINARY_BUILD_NOTICE PerlIO_printf(PerlIO_stdout(), "\n\ +Binary build " PRODUCT_BUILD_NUMBER ACTIVEPERL_CHANGELIST ACTIVEPERL_RELEASE_TYPE " provided by ActiveState http://www.ActiveState.com\n\ +Built " __DATE__ " " __TIME__ "\n"); +#endif + +#endif /* ___BuildInfo__h___ */ diff -ruN perl-current/Configure AP1000_source/Configure --- perl-current/Configure 2007-10-08 01:25:53.000000000 -0700 +++ AP1000_source/Configure 2007-11-23 11:46:25.732980794 -0800 @@ -208,6 +208,7 @@ to='' usecrosscompile='' mistrustnm='' +config_heavy='' perllibs='' dynamic_ext='' extensions='' @@ -4012,6 +4013,11 @@ esac EOSC +: default Config_heavy.pl +case "$config_heavy" in +'') config_heavy=Config_heavy.pl;; +esac + : function used to set $1 to $val setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef; case "$val$was" in @@ -6954,6 +6960,11 @@ esac prefixvar=vendorarch . ./installprefix +if $test X"$vendorarch" = X"$vendorlib"; then + d_vendorarch="$undef" +else + d_vendorarch="$define" +fi : Final catch-all directories to search $cat < 0 + Perl_sv_setpvf(aTHX_ version_sv, "%d.%02d", ACTIVEPERL_VERSION, ACTIVEPERL_SUBVERSION); +#else + sv_setiv(version_sv, ACTIVEPERL_VERSION); +#endif + newXS("ActivePerl::PRODUCT", ActivePerl_PRODUCT, file); + newXS("ActivePerl::BUILD", ActivePerl_BUILD, file); + newXS("ActivePerl::CHANGELIST", ActivePerl_CHANGELIST, file); +#ifdef CONFIG_HEAVY + newXS("ActivePerl::_CONFIG_HEAVY", ActivePerl_CONFIG_HEAVY, file); +#endif +} diff -ruN perl-current/cflags.SH AP1000_source/cflags.SH --- perl-current/cflags.SH 2007-10-23 06:34:21.000000000 -0700 +++ AP1000_source/cflags.SH 2007-11-23 11:46:25.937944070 -0800 @@ -276,6 +276,9 @@ ODBM_File) ;; POSIX) ;; SDBM_File) ;; + activeperl) + ccflags="$ccflags -DCONFIG_HEAVY=$config_heavy" + ;; av) ;; byterun) ;; deb) ;; diff -ruN perl-current/configpm AP1000_source/configpm --- perl-current/configpm 2007-06-12 01:33:07.000000000 -0700 +++ AP1000_source/configpm 2007-11-23 11:46:25.944942816 -0800 @@ -44,9 +44,9 @@ # commonly used names to precache (and hence lookup fastest) my %Common; -while ($how_many_common--) { - $_ = ; - chomp; +while () { + next if /^\s*#/; + last unless $how_many_common--; /^(\S+):\s*(\d+)$/ or die "Malformed line '$_'"; $Common{$1} = $1; } @@ -60,6 +60,7 @@ 'cross' => '', # --cross=PLATFORM - crosscompiling for PLATFORM 'glossary' => 1, # --no-glossary - no glossary file inclusion, # for compactness + 'heavy' => '', # explicitly specify name of Config_heavy.pl ); sub opts { @@ -101,7 +102,9 @@ $Config_POD = "lib/Config.pod"; $Config_SH = "config.sh"; } -($Config_heavy = $Config_PM) =~ s/\.pm$/_heavy.pl/; + +$Config_heavy = $Opts{heavy} || $Config_PM; +$Config_heavy =~ s/\.pm$/_heavy.pl/; die "Can't automatically determine name for Config_heavy.pl from '$Config_PM'" if $Config_heavy eq $Config_PM; @@ -116,6 +119,14 @@ use strict; # use warnings; Pulls in Carp # use vars pulls in Carp +BEGIN { + unless ($ENV{ACTIVEPERL_CONFIG_DISABLE}) { + eval { + require ActivePerl::Config; + }; + die $@ if $@ && $@ !~ /^Can't locate ActivePerl\/Config\.pm/; + } +} ENDOFBEG my $myver = sprintf "%vd", $^V; @@ -237,6 +248,16 @@ # Search for it in the big string sub fetch_string { my($self, $key) = @_; + # Let ActivePerl::Config override if it wants + my $value; + $value = _fetch_string(@_) + unless defined(&ActivePerl::Config::override) && + ActivePerl::Config::override($key, $value); + return $self->{$key} = $value; # cache it +} + +sub _fetch_string { + my($self, $key) = @_; EOT @@ -295,7 +316,7 @@ $fetch_string .= <<'EOT'; # So we can say "if $Config{'foo'}". $value = undef if $value eq 'undef'; - $self->{$key} = $value; # cache it + return $value; } EOT @@ -699,16 +720,26 @@ # Sanity check needed to stop an infite loop if Config_heavy.pl fails to define # &launcher for some reason (eg it got truncated) -$config_txt .= sprintf <<'ENDOFTIE', $fast_config; +$Config_heavy =~ m,([^/\\]+)$,; # basename +$config_txt .= sprintf <<'ENDOFTIE', $1, $1, $fast_config; sub DESTROY { } sub AUTOLOAD { - require 'Config_heavy.pl'; + my $config_heavy = '%s'; + if (defined &ActivePerl::_CONFIG_HEAVY) { + $config_heavy = ActivePerl::_CONFIG_HEAVY(); + } + require $config_heavy; goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/; die "&Config::AUTOLOAD failed on $Config::AUTOLOAD"; } +sub __unused { + # XXX Keep PerlApp happy + require '%s'; +} + # tie returns the object, so the value returned to require will be true. tie %%Config, 'Config', { %s}; @@ -1000,7 +1031,7 @@ sitelibexp: 4305 privlibexp: 4163 ldlibpthname: 4041 -libpth: 2134 +#libpth: 2134 archname: 1591 exe_ext: 1256 scriptdir: 1155 @@ -1013,18 +1044,18 @@ intsize: 759 usevendorprefix: 642 dlsrc: 624 -cc: 541 -lib_ext: 520 +#cc: 541 +#lib_ext: 520 so: 512 -ld: 501 -ccdlflags: 500 -ldflags: 495 -obj_ext: 495 -cccdlflags: 493 -lddlflags: 493 -ar: 492 +#ld: 501 +#ccdlflags: 500 +#ldflags: 495 +#obj_ext: 495 +#cccdlflags: 493 +#lddlflags: 493 +#ar: 492 dlext: 492 -libc: 492 +#libc: 492 ranlib: 492 full_ar: 491 vendorarchexp: 491 @@ -1056,20 +1087,20 @@ siteprefixexp: 336 installbin: 335 usedl: 332 -ccflags: 285 +#ccflags: 285 startperl: 232 -optimize: 231 +#optimize: 231 usemymalloc: 229 -cpprun: 228 +#cpprun: 228 sharpbang: 228 -perllibs: 225 +#perllibs: 225 usesfio: 224 usethreads: 220 perlpath: 218 extensions: 217 usesocks: 208 shellflags: 198 -make: 191 +#make: 191 d_pwage: 189 d_pwchange: 189 d_pwclass: 189 @@ -1078,10 +1109,10 @@ d_pwgecos: 189 d_pwpasswd: 189 d_pwquota: 189 -gccversion: 189 -libs: 186 +#gccversion: 189 +#libs: 186 useshrplib: 186 -cppflags: 185 +#cppflags: 185 ptrsize: 185 shrpenv: 185 static_ext: 185 @@ -1089,6 +1120,6 @@ uselargefiles: 185 alignbytes: 184 byteorder: 184 -ccversion: 184 +#ccversion: 184 config_args: 184 -cppminus: 184 +#cppminus: 184 diff -ruN perl-current/embed.fnc AP1000_source/embed.fnc --- perl-current/embed.fnc 2007-11-08 02:36:30.000000000 -0800 +++ AP1000_source/embed.fnc 2007-11-23 11:46:26.029927589 -0800 @@ -120,6 +120,7 @@ ApR |I32 |block_gimme pR |int |block_start |int full p |void |boot_core_UNIVERSAL +p |void |boot_core_ActivePerl p |void |boot_core_PerlIO Ap |void |call_list |I32 oldscope|NN AV* av_list pR |bool |cando |Mode_t mode|bool effective|NN const Stat_t* statbufp diff -ruN perl-current/embed.h AP1000_source/embed.h --- perl-current/embed.h 2007-11-08 02:36:30.000000000 -0800 +++ AP1000_source/embed.h 2007-11-23 11:46:26.044924902 -0800 @@ -79,6 +79,7 @@ #ifdef PERL_CORE #define block_start Perl_block_start #define boot_core_UNIVERSAL Perl_boot_core_UNIVERSAL +#define boot_core_ActivePerl Perl_boot_core_ActivePerl #define boot_core_PerlIO Perl_boot_core_PerlIO #endif #define call_list Perl_call_list @@ -2374,6 +2375,7 @@ #ifdef PERL_CORE #define block_start(a) Perl_block_start(aTHX_ a) #define boot_core_UNIVERSAL() Perl_boot_core_UNIVERSAL(aTHX) +#define boot_core_ActivePerl() Perl_boot_core_ActivePerl(aTHX) #define boot_core_PerlIO() Perl_boot_core_PerlIO(aTHX) #endif #define call_list(a,b) Perl_call_list(aTHX_ a,b) diff -ruN perl-current/ext/DynaLoader/DynaLoader_pm.PL AP1000_source/ext/DynaLoader/DynaLoader_pm.PL --- perl-current/ext/DynaLoader/DynaLoader_pm.PL 2007-06-01 00:35:19.000000000 -0700 +++ AP1000_source/ext/DynaLoader/DynaLoader_pm.PL 2007-11-23 11:46:26.334872952 -0800 @@ -85,7 +85,7 @@ # Tim.Bunce@ig.co.uk, August 1994 BEGIN { - $VERSION = '1.08'; + $VERSION = '1.0801'; } require AutoLoader; @@ -499,6 +499,12 @@ push(@names,"$_.<<=$dl_dlext>>") unless m/\.<<=$dl_dlext>>$/o; push(@names,"$_.<<=$dl_so>>") unless m/\.<<=$dl_so>>$/o; push(@names,"lib$_.<<=$dl_so>>") unless m:/:; + <<$^O-eq-aix>> + # The AIX linker will look for shared objects in both .so and .a files + # if the program has been linked with the -brtl option. + push(@names,"$_.a") unless m/\.a$/o; + push(@names,"lib$_.a") unless m:/:; + <> push(@names,"$_.a") if !m/\.a$/ and $dlsrc eq "dl_dld.xs"; push(@names, $_); } diff -ruN perl-current/ext/POSIX/POSIX.xs AP1000_source/ext/POSIX/POSIX.xs --- perl-current/ext/POSIX/POSIX.xs 2007-06-27 10:08:12.000000000 -0700 +++ AP1000_source/ext/POSIX/POSIX.xs 2007-11-23 11:46:27.466670167 -0800 @@ -17,6 +17,11 @@ #define PERLIO_NOT_STDIO 1 #include "perl.h" #include "XSUB.h" + +#ifdef __hpux +# include "hpux_portable_uname.h" +#endif + #if defined(PERL_IMPLICIT_SYS) # undef signal # undef open diff -ruN perl-current/ext/POSIX/hpux_portable_uname.h AP1000_source/ext/POSIX/hpux_portable_uname.h --- perl-current/ext/POSIX/hpux_portable_uname.h 1969-12-31 16:00:00.000000000 -0800 +++ AP1000_source/ext/POSIX/hpux_portable_uname.h 2007-11-23 11:46:27.475668555 -0800 @@ -0,0 +1,60 @@ +#include +#include +#include + + +#define UNAME_V1 "uname" +#define UNAME_V2 "uname{20040821}" +#define SNLEN_V1 15 +#define SNLEN_V2 257 +#define UTSLEN_V1 9 +#define UTSLEN_V2 257 + +typedef struct portable_utsname +{ + char *sysname; + char *nodename; + char *release; + char *version; + char *machine; + char *idnumber; + int utslen; + int snlen; + char infop[UTSLEN_V2 * 7 + UTSLEN_V2]; +} portable_utsname; + +typedef int (*uname_ptr) (void *); + +static int portable_uname(portable_utsname * info) +{ + Dl_info dlinfo; + uname_ptr thisuname; + char **infoc = NULL; + char *c; + int i; + + dladdr((void *) &malloc, &dlinfo); + + if (thisuname = (uname_ptr) dlsym(dlinfo.dli_fbase, UNAME_V2)) { + info->snlen = SNLEN_V2; + info->utslen = UTSLEN_V2; + } + else { + thisuname = (uname_ptr)&uname; + info->snlen = SNLEN_V1; + info->utslen = UTSLEN_V1; + } + + thisuname(info->infop); + + infoc = (char **) info; + c = info->infop; + for (i = 0; i < 6; i++) { + infoc[i] = c; + c += info->utslen; + } + +} + +#define uname portable_uname +#define utsname portable_utsname diff -ruN perl-current/ext/Sys/Hostname/Hostname.pm AP1000_source/ext/Sys/Hostname/Hostname.pm --- perl-current/ext/Sys/Hostname/Hostname.pm 2006-06-13 12:29:10.000000000 -0700 +++ AP1000_source/ext/Sys/Hostname/Hostname.pm 2007-11-23 11:46:27.559653507 -0800 @@ -15,7 +15,7 @@ our $host; BEGIN { - $VERSION = '1.11'; + $VERSION = '1.1101'; { local $SIG{__DIE__}; eval { diff -ruN perl-current/ext/Sys/Hostname/Hostname.xs AP1000_source/ext/Sys/Hostname/Hostname.xs --- perl-current/ext/Sys/Hostname/Hostname.xs 2006-06-13 12:29:10.000000000 -0700 +++ AP1000_source/ext/Sys/Hostname/Hostname.xs 2007-11-23 11:46:27.559653507 -0800 @@ -6,6 +6,15 @@ # include #endif +/* On HP-UX, there are 2 versions of MAXHOSTNAMELEN (64/256) + * depending on large-hostname support or not. Pick the larger + * one so we can work on either one. Bug 52118 + */ +#if defined(__hpux) +# undef MAXHOSTNAMELEN +# define MAXHOSTNAMELEN 256 +#endif + /* a reasonable default */ #ifndef MAXHOSTNAMELEN # define MAXHOSTNAMELEN 256 diff -ruN perl-current/ext/Sys/Syslog/Syslog.pm AP1000_source/ext/Sys/Syslog/Syslog.pm --- perl-current/ext/Sys/Syslog/Syslog.pm 2007-11-12 08:58:23.000000000 -0800 +++ AP1000_source/ext/Sys/Syslog/Syslog.pm 2007-11-23 11:46:27.564652612 -0800 @@ -221,7 +221,7 @@ } elsif (lc $setsock eq 'pipe') { for my $path ($syslog_path, &_PATH_LOG, "/dev/log") { - next unless defined $path and length $path and -w $path; + next unless defined $path and length $path and -p $path and -w _; $syslog_path = $path; last } diff -ruN perl-current/hints/aix.sh AP1000_source/hints/aix.sh --- perl-current/hints/aix.sh 2007-06-22 07:56:42.000000000 -0700 +++ AP1000_source/hints/aix.sh 2007-11-23 11:46:27.684631115 -0800 @@ -51,7 +51,9 @@ '') usenativedlopen='true' ;; esac -so="a" +# Use "so" for shared library so that we can store both a static and a +# shared libperl in the same CORE directory. +so="so" # AIX itself uses .o (libc.o) but we prefer compatibility # with the rest of the world and with rest of the scripting # languages (Tcl, Python) and related systems (SWIG). diff -ruN perl-current/hints/solaris_2.sh AP1000_source/hints/solaris_2.sh --- perl-current/hints/solaris_2.sh 2007-11-20 23:17:41.000000000 -0800 +++ AP1000_source/hints/solaris_2.sh 2007-11-23 11:46:27.713625920 -0800 @@ -76,6 +76,14 @@ ;; esac +case "$archname" in +"i86pc-${osname}") + # x86 looks so much better and is how this platform + # is usually denoted + archname="x86-${osname}" + ;; +esac + # # This extracts the library directories that will be searched by the Sun # Workshop compiler, given the command-line supplied in $tryworkshopcc. diff -ruN perl-current/installperl AP1000_source/installperl --- perl-current/installperl 2007-11-20 00:17:34.000000000 -0800 +++ AP1000_source/installperl 2007-11-23 11:46:27.732622516 -0800 @@ -830,7 +830,7 @@ if ($dir =~ /^auto/ || ($name =~ /^(.*)\.(?:pm|pod)$/ && $archpms{$1}) || ($name =~ /^(.*)\.(?:h|lib)$/i && ($Is_W32 || $Is_NetWare)) || - $name eq 'Config_heavy.pl' + $name eq $Config{config_heavy} ) { $installlib = $installarchlib; return unless $do_installarchlib; diff -ruN perl-current/lib/ActivePerl.pm AP1000_source/lib/ActivePerl.pm --- perl-current/lib/ActivePerl.pm 1969-12-31 16:00:00.000000000 -0800 +++ AP1000_source/lib/ActivePerl.pm 2007-11-23 11:46:27.739621262 -0800 @@ -0,0 +1,122 @@ +package ActivePerl; + +sub perl_version { + return sprintf("%vd.%s", $^V, BUILD()); +} + +1; + +__END__ + +=head1 NAME + +ActivePerl - ActiveState's quality-assured binary build of Perl + +=head1 SYNOPSIS + + use ActivePerl; + print "$ActivePerl::VERSION\n"; + +=head1 DESCRIPTION + +ActivePerl is ActiveState's quality-assured binary build of Perl, +available for AIX, HP-UX, Linux, Mac OS X, Solaris and +Windows. ActivePerl includes: + +=over + +=item * + +The binary core distribution of perl. See L for details. + +=item * + +A set of useful additional CPAN modules "out of +the box". + +=item * + +The Perl Package Manager, for quick and easy install of additional +Perl extension modules. See L for details. + +=item * + +Complete documentation in HTML format. This is found in the F +sub directory where ActivePerl was installed. + +=back + +The release notes for this version of ActivePerl is available in +L. A list of changes beween builds of ActivePerl +is found in L. + +=head2 The ActivePerl:: module + +The C module provide version information about ActivePerl. +The module is built in so most of its variables and functions are +available without having to C the module. The module was +introduced in ActivePerl 813.1. + +The following functions are available: + +=over + +=item ActivePerl->VERSION + +=item ActivePerl->VERSION( $VERSION ) + +This method returns the current version of ActivePerl. It is a number +like C<813.01> or C<815>. With argument croak if the current version +is less than the given number. + +This method is inherited from Perl's C class, and will +usually be invoked indirectly by C, for instance: + + use ActivePerl 815; + +This statement ensures that the scripts runs under ActivePerl 815 or +better. If this perl is not ActivePerl or is older than 815 then this +statement would croak. + +The version number returned is picked up from the $ActivePerl::VERSION +variable. For conditional code it is usually better to test against +this variable directly: + + if (($ActivePerl::VERSION || 0) >= 815) { + ... + } + +The C<|| 0> ensures that this code does not produce a warning if +running on ActivePerl 813 or older, or running on standard perl. + +=item ActivePerl::PRODUCT + +This constant function returns "ActivePerl" for the free version and +"ActivePerl Enterprise" for the Enterprise product. Earlier ActivePerl +Enterprise versions up to builds 638.8 and 817.4 returned "ActivePerlEE". + +=item ActivePerl::BUILD + +The value returned is the same as found in $ActivePerl::VERSION, but +the subversion number will not be padded with 0. It means that this +value is suitable for printing, but unsafe for numeric comparisons. + +This returns the same value as Win32::BuildNumber(), but this function +is only avalable on the Windows builds of ActivePerl. + +=item ActivePerl::perl_version + +Returns a full version number that also include the version of perl +this ActivePerl release is based on. It returns a string like +"5.8.7.815" or "5.8.7.813.1". + +This function is not directly built in and will only be avalable after +'require ActivePerl' has executed. + +=back + +=head1 SEE ALSO + +L, L, L + +=cut diff -ruN perl-current/lib/CGI/Carp.pm AP1000_source/lib/CGI/Carp.pm --- perl-current/lib/CGI/Carp.pm 2007-03-06 05:53:13.000000000 -0800 +++ AP1000_source/lib/CGI/Carp.pm 2007-11-23 11:46:27.800610335 -0800 @@ -410,11 +410,15 @@ # The mod_perl package Apache::Registry loads CGI programs by calling -# eval. These evals don't count when looking at the stack backtrace. +# eval, as does PerlEx. These evals don't count when looking at the +# stack backtrace. sub _longmess { my $message = Carp::longmess(); - $message =~ s,eval[^\n]+(ModPerl|Apache)/(?:Registry|Dispatch)\w*\.pm.*,,s - if exists $ENV{MOD_PERL}; + my $mod_perl = exists $ENV{MOD_PERL}; + my $plex = exists($ENV{'GATEWAY_INTERFACE'}) + && $ENV{'GATEWAY_INTERFACE'} =~ /^CGI-PerlEx/; + $message =~ s,eval[^\n]+((ModPerl|Apache)/Registry\w*\.pm|\s*PerlEx::Precompiler).*,,s + if $mod_perl or $plex; return $message; } @@ -519,11 +523,13 @@ END ; my $mod_perl = exists $ENV{MOD_PERL}; + my $plex = exists($ENV{'GATEWAY_INTERFACE'}) + && $ENV{'GATEWAY_INTERFACE'} =~ /^CGI-PerlEx/; if ($CUSTOM_MSG) { if (ref($CUSTOM_MSG) eq 'CODE') { print STDOUT "Content-type: text/html\n\n" - unless $mod_perl; + unless $mod_perl || $plex; &$CUSTOM_MSG($msg); # nicer to perl 5.003 users return; } else { diff -ruN perl-current/lib/CPAN/Config.pm AP1000_source/lib/CPAN/Config.pm --- perl-current/lib/CPAN/Config.pm 1969-12-31 16:00:00.000000000 -0800 +++ AP1000_source/lib/CPAN/Config.pm 2007-11-23 11:46:27.858599945 -0800 @@ -0,0 +1,53 @@ +# This is CPAN.pm's systemwide configuration file provided for +# ActivePerl. This file provides defaults for users, and the values +# can be changed in a per-user configuration file. The user-config +# file is being looked for as ~/.cpan/CPAN/MyConfig.pm. + +my $CPAN_HOME = "$ENV{HOME}/.cpan"; +$CPAN_HOME = do {require Config; "$Config::Config{prefix}/cpan"} + if $^O eq "MSWin32"; + +my $SHELL = $ENV{SHELL}; +$SHELL ||= $ENV{COMSPEC} if $^O eq "MSWin32"; + +my $PAGER = $ENV{PAGER} || "more"; + +$CPAN::Config = { + 'auto_commit' => 0, + 'build_cache' => "10", + 'build_dir' => "$CPAN_HOME/build", + 'cache_metadata' => 1, + 'cpan_home' => $CPAN_HOME, + 'ftp' => '', + 'ftp_proxy' => '', + 'getcwd' => '', + 'gpg' => '', + 'gzip' => '', + 'histfile' => "$CPAN_HOME/histfile", + 'histsize' => 100, + 'http_proxy' => '', + 'inactivity_timeout' => 0, + 'index_expire' => 1, + 'inhibit_startup_message' => 0, + 'keep_source_where' => "$CPAN_HOME/sources", + 'lynx' => '', + 'make' => '', + 'make_arg' => '', + 'make_install_arg' => '', + 'makepl_arg' => '', + 'mbuild_arg' => '', + 'mbuild_install_arg' => '', + 'mbuildpl_arg' => '', + 'no_proxy' => '', + 'pager' => $PAGER, + 'prerequisites_policy' => 'ask', + 'scan_cache' => 'atstart', + 'shell' => $SHELL, + 'tar' => '', + 'term_is_latin' => 1, + 'unzip' => '', + 'urllist' => ['http://ppm.activestate.com/CPAN', 'http://cpan.perl.org'], + 'wget' => '', +}; + +1; diff -ruN perl-current/lib/ExtUtils/Embed.pm AP1000_source/lib/ExtUtils/Embed.pm --- perl-current/lib/ExtUtils/Embed.pm 2007-11-15 03:57:15.000000000 -0800 +++ AP1000_source/lib/ExtUtils/Embed.pm 2007-11-23 11:46:27.992575940 -0800 @@ -19,7 +19,7 @@ use strict; # This is not a dual-life module, so no need for development version numbers -$VERSION = '1.27'; +$VERSION = '1.27_01'; @ISA = qw(Exporter); @EXPORT = qw(&xsinit &ldopts @@ -224,9 +224,11 @@ } #print STDERR "\@potential_libs = @potential_libs\n"; + my $lpath = File::Spec->catdir($Config{archlibexp}, 'CORE'); my $libperl; if ($^O eq 'MSWin32') { $libperl = $Config{libperl}; + $lpath = qq["$lpath"]; } elsif ($^O eq 'os390' && $Config{usedl}) { # Nothing for OS/390 (z/OS) dynamic. @@ -234,13 +236,17 @@ $libperl = (grep(/^-l\w*perl\w*$/, @link_args))[0] || ($Config{libperl} =~ /^lib(\w+)(\Q$lib_ext\E|\.\Q$Config{dlext}\E)$/ ? "-l$1" : '') - || "-lperl"; + || "-lperl"; + if ($libperl eq "-lperl" && $Config{libperl} eq "libperl.a" && + -f File::Spec->catfile($lpath, "libperl.so")) + { + $libperl = File::Spec->catfile($lpath, $Config{libperl}); + $lpath = undef; + } } - my $lpath = File::Spec->catdir($Config{archlibexp}, 'CORE'); - $lpath = qq["$lpath"] if $^O eq 'MSWin32'; my($extralibs, $bsloadlibs, $ldloadlibs, $ld_run_path) = - MM->ext(join ' ', "-L$lpath", $libperl, @potential_libs); + MM->ext(join ' ', ($lpath ? "-L$lpath" : ()), $libperl, @potential_libs); my $ld_or_bs = $bsloadlibs || $ldloadlibs; print STDERR "bs: $bsloadlibs ** ld: $ldloadlibs" if $Verbose; diff -ruN perl-current/lib/ExtUtils/Install.pm AP1000_source/lib/ExtUtils/Install.pm --- perl-current/lib/ExtUtils/Install.pm 2007-09-10 01:37:51.000000000 -0700 +++ AP1000_source/lib/ExtUtils/Install.pm 2007-11-23 11:46:27.995575403 -0800 @@ -3,7 +3,7 @@ use strict; use vars qw(@ISA @EXPORT $VERSION $MUST_REBOOT %Config); -$VERSION = '1.44'; +$VERSION = '1.44_01'; $VERSION = eval $VERSION; use AutoSplit; @@ -687,7 +687,7 @@ if ($pack{'write'}) { $dir = install_rooted_dir(dirname($pack{'write'})); _mkpath( $dir, 0, 0755, $verbose, $nonono ); - print "Writing $pack{'write'}\n"; + print "Writing $pack{'write'}\n" if $verbose; $packlist->write(install_rooted_file($pack{'write'})) unless $nonono; } @@ -826,6 +826,13 @@ my $INST_SCRIPT = File::Spec->catdir($Curdir,'blib','script'); my $INST_MAN1DIR = File::Spec->catdir($Curdir,'blib','man1'); my $INST_MAN3DIR = File::Spec->catdir($Curdir,'blib','man3'); + + my @INST_HTML; + if($Config{installhtmldir}) { + my $INST_HTMLDIR = File::Spec->catdir($Curdir,'blib','html'); + @INST_HTML = ($INST_HTMLDIR => $Config{installhtmldir}); + } + install({ read => "$Config{sitearchexp}/auto/$FULLEXT/.packlist", write => "$Config{installsitearch}/auto/$FULLEXT/.packlist", @@ -837,6 +844,7 @@ $INST_SCRIPT => $Config{installscript}, $INST_MAN1DIR => $Config{installman1dir}, $INST_MAN3DIR => $Config{installman3dir}, + @INST_HTML, },1,0,0); } diff -ruN perl-current/lib/ExtUtils/Liblist/Kid.pm AP1000_source/lib/ExtUtils/Liblist/Kid.pm --- perl-current/lib/ExtUtils/Liblist/Kid.pm 2007-07-02 08:44:47.000000000 -0700 +++ AP1000_source/lib/ExtUtils/Liblist/Kid.pm 2007-11-23 11:46:27.999574686 -0800 @@ -10,7 +10,7 @@ use strict; use vars qw($VERSION); -$VERSION = 1.33; +$VERSION = 1.3301; use Config; use Cwd 'cwd'; @@ -82,6 +82,12 @@ next; } + if ($Config_libext && $thislib =~ /\Q$Config_libext\E$/) { + push @libs, $thislib unless $libs_seen{$thislib}++; + push(@ldloadlibs, $thislib); + next; + } + # Handle possible library arguments. unless ($thislib =~ s/^-l//){ warn "Unrecognized argument in LIBS ignored: '$thislib'\n"; @@ -267,6 +273,9 @@ if ($VC and exists $ENV{LIB} and $ENV{LIB}) { push @libpath, split /;/, $ENV{LIB}; } + if ($GC and exists $ENV{ACTIVEPERL_MINGW} and $ENV{ACTIVEPERL_MINGW}) { + push @libpath, "$ENV{ACTIVEPERL_MINGW}/lib"; + } foreach (Text::ParseWords::quotewords('\s+', 0, $potential_libs)){ @@ -309,7 +318,7 @@ if (s/^-l// and $GC and !/^lib/i) { $_ = "lib$_"; } - $_ .= $libext if !/\Q$libext\E$/i; + $_ .= $libext if !/\Q$libext\E$/i && !/\.lib$/i; my $secondpass = 0; LOOKAGAIN: diff -ruN perl-current/lib/ExtUtils/MM_Any.pm AP1000_source/lib/ExtUtils/MM_Any.pm --- perl-current/lib/ExtUtils/MM_Any.pm 2007-02-22 06:39:26.000000000 -0800 +++ AP1000_source/lib/ExtUtils/MM_Any.pm 2007-11-23 11:46:28.003573970 -0800 @@ -2,7 +2,7 @@ use strict; use vars qw($VERSION @ISA); -$VERSION = '0.15'; +$VERSION = '0.1501'; use Carp; use File::Spec; @@ -364,7 +364,7 @@ my $self = shift; return <<'MAKE_EXT'; -all :: pure_all +all :: pure_all htmlifypods $(NOECHO) $(NOOP) MAKE_EXT @@ -635,6 +635,59 @@ } +=head3 htmlifypods + +Defines targets and routines to translate the pods into html and +put them into the INST_* directories. + +=cut + +sub htmlifypods { + my $self = shift; + + my $POD2HTML_macro = $self->POD2HTML_macro(); + my $htmlifypods_target = $self->htmlifypods_target(); + + return <htmlifypods_target; + +Generates the htmlifypods target. This target generates html pages from +all POD files in MAN1PODS and MAN3PODS. + +=cut + +sub htmlifypods_target { + my($self) = shift; + + my $dependencies = ''; + + # populate dependencies: + foreach my $name (keys %{$self->{MAN1PODS}}, keys %{$self->{MAN3PODS}}) { + $dependencies .= " \\\n\t$name"; + } + + my $htmlify = <makemakerdflt_target @@ -1042,6 +1095,7 @@ $self->{INST_MAN1DIR} ||= $self->catdir($Curdir,'blib','man1'); $self->{INST_MAN3DIR} ||= $self->catdir($Curdir,'blib','man3'); + $self->{INST_HTMLDIR} ||= $self->catdir($Curdir,'blib','html'); return 1; } @@ -1214,6 +1268,19 @@ style => $manstyle, }, ); + my %html_layouts = + ( + htmldir => { s => $iprefix, + t =>'perl', + d => 'html', }, + sitehtmldir => { s => $sprefix, + t => 'site', + d => 'html', }, + vendorhtmldir => { s => $vprefix, + t => 'vendor', + d => 'html', }, + ); + my %lib_layouts = ( privlib => { s => $iprefix, @@ -1264,7 +1331,7 @@ vendor => 'VENDORPREFIX' ); - my %layouts = (%bin_layouts, %man_layouts, %lib_layouts); + my %layouts = (%bin_layouts, %man_layouts, %html_layouts, %lib_layouts); while( my($var, $layout) = each(%layouts) ) { my($s, $t, $d, $style) = @{$layout}{qw(s t d style)}; my $r = '$('.$type2prefix{$t}.')'; @@ -1548,6 +1615,37 @@ } +=head3 POD2HTML_macro + + my $pod2html_macro = $self->POD2HTML_macro + +Returns a definition for the POD2HTML macro. This is a program +which emulates the pod2html utility. You can add more switches to the +command by simply appending them on the macro. + +Typical usage: + + $(POD2HTML) podfile1 html_page1 ... + +=cut + +sub POD2HTML_macro { + my $self = shift; + + my $pod2html_exe; + if (eval "require ActivePerl::DocTools; 1;") { + $pod2html_exe = '$(PERLRUN) "-MActivePerl::DocTools" -e "UpdateHTML_blib(installdirs => "$(INSTALLDIRS)")"'; + } + else { + $pod2html_exe = '$(NOOP)'; + } + return <<"END_OF_DEF"; +POD2HTML_EXE = $pod2html_exe +POD2HTML = \$(POD2HTML_EXE) +END_OF_DEF +} + + =head3 POD2MAN_macro my $pod2man_macro = $self->POD2MAN_macro @@ -1711,6 +1809,7 @@ SCRIPT SITESCRIPT VENDORSCRIPT MAN1DIR SITEMAN1DIR VENDORMAN1DIR MAN3DIR SITEMAN3DIR VENDORMAN3DIR + HTMLDIR SITEHTMLDIR VENDORHTMLDIR ); } diff -ruN perl-current/lib/ExtUtils/MM_Unix.pm AP1000_source/lib/ExtUtils/MM_Unix.pm --- perl-current/lib/ExtUtils/MM_Unix.pm 2007-09-25 07:35:53.000000000 -0700 +++ AP1000_source/lib/ExtUtils/MM_Unix.pm 2007-11-23 11:46:28.014571999 -0800 @@ -369,7 +369,7 @@ VERSION VERSION_MACRO VERSION_SYM DEFINE_VERSION XS_VERSION XS_VERSION_MACRO XS_DEFINE_VERSION INST_ARCHLIB INST_SCRIPT INST_BIN INST_LIB - INST_MAN1DIR INST_MAN3DIR + INST_MAN1DIR INST_MAN3DIR INST_HTMLDIR MAN1EXT MAN3EXT INSTALLDIRS INSTALL_BASE DESTDIR PREFIX PERLPREFIX SITEPREFIX VENDORPREFIX @@ -1542,6 +1542,14 @@ sub init_main { my($self) = @_; + unless ( $Config{installsitehtmldir} ) { + $Config_Override{installsitehtmldir} = $Config{installhtmldir}; + } + + unless ( $Config{installvendorhtmldir} ) { + $Config_Override{installvendorhtmldir} = $Config{installhtmldir}; + } + # --- Initialize Module Name and Paths # NAME = Foo::Bar::Oracle @@ -2080,8 +2088,14 @@ my($self, %attribs) = @_; my(@m); + my $doc_update = '$(NOOP)'; + if (eval { require ActivePerl::DocTools; 1; }) { + $doc_update = '$(NOECHO) $(PERLRUN) "-MActivePerl::DocTools" -e '. + 'ActivePerl::DocTools::WriteTOC'; + } + push @m, q{ -install :: all pure_install doc_install +install :: all pure_install doc_install doc_update $(NOECHO) $(NOOP) install_perl :: all pure_perl_install doc_perl_install @@ -2099,6 +2113,9 @@ doc_install :: doc_$(INSTALLDIRS)_install $(NOECHO) $(NOOP) +doc_update :: + }.$doc_update.q{ + pure__install : pure_site_install $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site @@ -2114,7 +2131,8 @@ $(INST_BIN) $(DESTINSTALLBIN) \ $(INST_SCRIPT) $(DESTINSTALLSCRIPT) \ $(INST_MAN1DIR) $(DESTINSTALLMAN1DIR) \ - $(INST_MAN3DIR) $(DESTINSTALLMAN3DIR) + $(INST_MAN3DIR) $(DESTINSTALLMAN3DIR) \ + $(INST_HTMLDIR) $(DESTINSTALLHTMLDIR) $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ }.$self->catdir('$(SITEARCHEXP)','auto','$(FULLEXT)').q{ @@ -2128,7 +2146,8 @@ $(INST_BIN) $(DESTINSTALLSITEBIN) \ $(INST_SCRIPT) $(DESTINSTALLSITESCRIPT) \ $(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \ - $(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR) + $(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR) \ + $(INST_HTMLDIR) $(DESTINSTALLSITEHTMLDIR) $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ }.$self->catdir('$(PERL_ARCHLIB)','auto','$(FULLEXT)').q{ @@ -2141,7 +2160,8 @@ $(INST_BIN) $(DESTINSTALLVENDORBIN) \ $(INST_SCRIPT) $(DESTINSTALLVENDORSCRIPT) \ $(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \ - $(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR) + $(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR) \ + $(INST_HTMLDIR) $(DESTINSTALLVENDORHTMLDIR) doc_perl_install :: $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod @@ -2179,7 +2199,7 @@ }; push @m, q{ -uninstall :: uninstall_from_$(INSTALLDIRS)dirs +uninstall :: uninstall_from_$(INSTALLDIRS)dirs doc_update $(NOECHO) $(NOOP) uninstall_from_perldirs :: @@ -3622,7 +3642,7 @@ my $self = shift; return <<'MAKE_EXT'; -all :: pure_all manifypods +all :: pure_all htmlifypods manifypods $(NOECHO) $(NOOP) MAKE_EXT } diff -ruN perl-current/lib/ExtUtils/MakeMaker.pm AP1000_source/lib/ExtUtils/MakeMaker.pm --- perl-current/lib/ExtUtils/MakeMaker.pm 2007-08-30 09:13:47.000000000 -0700 +++ AP1000_source/lib/ExtUtils/MakeMaker.pm 2007-11-23 11:46:28.028569491 -0800 @@ -21,7 +21,7 @@ use vars qw($Revision); use strict; -$VERSION = '6.36_01'; +$VERSION = '6.36_02'; ($Revision) = q$Revision: 32261 $ =~ /Revision:\s+(\S+)/; @ISA = qw(Exporter); @@ -224,16 +224,16 @@ FULLPERL FULLPERLRUN FULLPERLRUNINST FUNCLIST H IMPORTS - INST_ARCHLIB INST_SCRIPT INST_BIN INST_LIB INST_MAN1DIR INST_MAN3DIR + INST_ARCHLIB INST_SCRIPT INST_BIN INST_LIB INST_MAN1DIR INST_MAN3DIR INST_HTMLDIR INSTALLDIRS DESTDIR PREFIX INSTALL_BASE PERLPREFIX SITEPREFIX VENDORPREFIX INSTALLPRIVLIB INSTALLSITELIB INSTALLVENDORLIB INSTALLARCHLIB INSTALLSITEARCH INSTALLVENDORARCH INSTALLBIN INSTALLSITEBIN INSTALLVENDORBIN - INSTALLMAN1DIR INSTALLMAN3DIR - INSTALLSITEMAN1DIR INSTALLSITEMAN3DIR - INSTALLVENDORMAN1DIR INSTALLVENDORMAN3DIR + INSTALLMAN1DIR INSTALLMAN3DIR INSTALLHTMLDIR + INSTALLSITEMAN1DIR INSTALLSITEMAN3DIR INSTALLSITEHTMLDIR + INSTALLVENDORMAN1DIR INSTALLVENDORMAN3DIR INSTALLVENDORHTMLDIR INSTALLSCRIPT INSTALLSITESCRIPT INSTALLVENDORSCRIPT PERL_LIB PERL_ARCHLIB SITELIBEXP SITEARCHEXP @@ -280,7 +280,7 @@ special_targets c_o xs_c xs_o top_targets blibdirs linkext dlsyms dynamic dynamic_bs - dynamic_lib static static_lib manifypods processPL + dynamic_lib static static_lib manifypods htmlifypods processPL installbin subdirs clean_subdirs clean realclean_subdirs realclean metafile signature @@ -339,7 +339,7 @@ # @Prepend_parent = qw( INST_BIN INST_LIB INST_ARCHLIB INST_SCRIPT - MAP_TARGET INST_MAN1DIR INST_MAN3DIR PERL_SRC + MAP_TARGET INST_MAN1DIR INST_MAN3DIR INST_HTMLDIR PERL_SRC PERL FULLPERL ); } @@ -1091,8 +1091,8 @@ =head2 make install make alone puts all relevant files into directories that are named by -the macros INST_LIB, INST_ARCHLIB, INST_SCRIPT, INST_MAN1DIR and -INST_MAN3DIR. All these default to something below ./blib if you are +the macros INST_LIB, INST_ARCHLIB, INST_SCRIPT, INST_MAN1DIR, INST_MAN3DIR +INST_HTMLDIR. All these default to something below ./blib if you are I building below the perl source directory. If you I building below the perl source, INST_LIB and INST_ARCHLIB default to ../../lib, and INST_SCRIPT is not defined. @@ -1112,6 +1112,7 @@ INST_SCRIPT INSTALLSCRIPT INSTALLSITESCRIPT INSTALLVENDORSCRIPT INST_MAN1DIR INSTALLMAN1DIR INSTALLSITEMAN1DIR INSTALLVENDORMAN1DIR INST_MAN3DIR INSTALLMAN3DIR INSTALLSITEMAN3DIR INSTALLVENDORMAN3DIR + INST_HTMLDIR INSTALLHTMLDIR INSTALLSITEHTMLDIR INSTALLVENDORHTMLDIR The INSTALL... macros in turn default to their %Config ($Config{installprivlib}, $Config{installarchlib}, etc.) counterparts. @@ -1686,6 +1687,10 @@ Directory to hold the man pages at 'make' time +=item INST_HTMLDIR + +Directory to hold the html documentation at 'make' time + =item INST_SCRIPT Directory, where executable files should be installed during diff -ruN perl-current/lib/ExtUtils/t/INSTALL_BASE.t AP1000_source/lib/ExtUtils/t/INSTALL_BASE.t --- perl-current/lib/ExtUtils/t/INSTALL_BASE.t 2006-06-13 12:29:14.000000000 -0700 +++ AP1000_source/lib/ExtUtils/t/INSTALL_BASE.t 2007-11-23 11:46:28.045566446 -0800 @@ -48,7 +48,7 @@ my $make = make_run(); run("$make"); # this is necessary due to a dmake bug. -my $install_out = run("$make install"); +my $install_out = run("$make install VERBINST=1"); is( $?, 0, ' make install exited normally' ) || diag $install_out; like( $install_out, qr/^Installing /m ); like( $install_out, qr/^Writing /m ); diff -ruN perl-current/lib/ExtUtils/t/MM_Unix.t AP1000_source/lib/ExtUtils/t/MM_Unix.t --- perl-current/lib/ExtUtils/t/MM_Unix.t 2007-05-03 06:36:20.000000000 -0700 +++ AP1000_source/lib/ExtUtils/t/MM_Unix.t 2007-11-23 11:46:28.049565730 -0800 @@ -18,7 +18,7 @@ plan skip_all => 'Non-Unix platform'; } else { - plan tests => 110; + plan tests => 111; } } @@ -100,6 +100,7 @@ makeaperl makefile manifypods + htmlifypods needs_linking pasthru perldepend diff -ruN perl-current/lib/ExtUtils/t/basic.t AP1000_source/lib/ExtUtils/t/basic.t --- perl-current/lib/ExtUtils/t/basic.t 2007-07-02 08:44:48.000000000 -0700 +++ AP1000_source/lib/ExtUtils/t/basic.t 2007-11-23 11:46:28.053565013 -0800 @@ -129,7 +129,7 @@ diag $test_out; -my $install_out = run("$make install"); +my $install_out = run("$make install VERBINST=1"); is( $?, 0, 'install' ) || diag $install_out; like( $install_out, qr/^Installing /m ); like( $install_out, qr/^Writing /m ); @@ -155,7 +155,7 @@ SKIP: { skip 'VMS install targets do not preserve $(PREFIX)', 9 if $Is_VMS; - $install_out = run("$make install PREFIX=elsewhere"); + $install_out = run("$make install VERBINST=1 PREFIX=elsewhere"); is( $?, 0, 'install with PREFIX override' ) || diag $install_out; like( $install_out, qr/^Installing /m ); like( $install_out, qr/^Writing /m ); @@ -175,7 +175,7 @@ SKIP: { skip 'VMS install targets do not preserve $(DESTDIR)', 11 if $Is_VMS; - $install_out = run("$make install PREFIX= DESTDIR=other"); + $install_out = run("$make install VERBINST=1 PREFIX= DESTDIR=other"); is( $?, 0, 'install with DESTDIR' ) || diag $install_out; like( $install_out, qr/^Installing /m ); @@ -216,7 +216,7 @@ SKIP: { skip 'VMS install targets do not preserve $(PREFIX)', 10 if $Is_VMS; - $install_out = run("$make install PREFIX=elsewhere DESTDIR=other/"); + $install_out = run("$make install VERBINST=1 PREFIX=elsewhere DESTDIR=other/"); is( $?, 0, 'install with PREFIX override and DESTDIR' ) || diag $install_out; like( $install_out, qr/^Installing /m ); diff -ruN perl-current/lib/Pod/Find.pm AP1000_source/lib/Pod/Find.pm --- perl-current/lib/Pod/Find.pm 2006-06-13 12:29:17.000000000 -0700 +++ AP1000_source/lib/Pod/Find.pm 2007-11-23 11:46:28.509483326 -0800 @@ -13,7 +13,7 @@ package Pod::Find; use vars qw($VERSION); -$VERSION = 1.34; ## Current version of this package +$VERSION = 1.3401; ## Current version of this package require 5.005; ## requires this Perl version or later use Carp; @@ -196,7 +196,7 @@ my $name; if(-f $try) { if($name = _check_and_extract_name($try, $opts{-verbose})) { - _check_for_duplicates($try, $name, \%names, \%pods); + _check_for_duplicates($try, $name, \%names, \%pods, $opts{-verbose}); } next; } @@ -225,7 +225,7 @@ return; } if($name = _check_and_extract_name($item, $opts{-verbose}, $root_rx)) { - _check_for_duplicates($item, $name, \%names, \%pods); + _check_for_duplicates($item, $name, \%names, \%pods, $opts{-verbose}); } }, $try); # end of File::Find::find } @@ -234,11 +234,12 @@ } sub _check_for_duplicates { - my ($file, $name, $names_ref, $pods_ref) = @_; - if($$names_ref{$name}) { - warn "Duplicate POD found (shadowing?): $name ($file)\n"; - warn " Already seen in ", - join(' ', grep($$pods_ref{$_} eq $name, keys %$pods_ref)),"\n"; + my ($file, $name, $names_ref, $pods_ref, $verbose) = @_; + if ($$names_ref{$name}) { + warn "Duplicate POD found (shadowing?): $name ($file)\n", + " Already seen in ", + join(' ', grep($$pods_ref{$_} eq $name, keys %$pods_ref)),"\n" + if $verbose; } else { $$names_ref{$name} = 1; diff -ruN perl-current/lib/Pod/Html.pm AP1000_source/lib/Pod/Html.pm --- perl-current/lib/Pod/Html.pm 2007-10-09 05:29:51.000000000 -0700 +++ AP1000_source/lib/Pod/Html.pm 2007-11-23 11:46:28.511482968 -0800 @@ -3,7 +3,7 @@ require Exporter; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); -$VERSION = 1.08; +$VERSION = 1.0801; @ISA = qw(Exporter); @EXPORT = qw(pod2html htmlify); @EXPORT_OK = qw(anchorify); @@ -704,7 +704,7 @@ usage("-") if defined $opt_help; # see if the user asked for help $opt_help = ""; # just to make -w shut-up. - @Podpath = split(":", $opt_podpath) if defined $opt_podpath; + @Podpath = map { s/\|/:/g; $_ } split(":", $opt_podpath) if defined $opt_podpath; @Libpods = split(":", $opt_libpods) if defined $opt_libpods; $Backlink = $opt_backlink if defined $opt_backlink; @@ -1324,6 +1324,34 @@ $line; #eg; + my @line = split /\n/, $rest; + my $comments = !grep !/^\s*(#.*)?$/, @line; + + # Try to colorize the block as Perl sample code + if (($comments || $rest =~ /[;{]/) && + eval {require ActiveState::Scineplex}) + { + my $prefix; + my $input = $rest; # Don't modify $rest in case the colorizer fails + if ($input =~ /^( +)/) { + $prefix = $1; + s/^$prefix// for @line; + $input = join("\n", @line, ""); + } + my $styled = eval { ActiveState::Scineplex::Annotate($input, 'perl', outputFormat => 'html') }; + if ($styled) { + # If this really looks like code, then we don't want + # to add hyperlinks to URLs embedded in strings etc. + if ($prefix) { + $$text = $prefix . join("\n$prefix", split("\n", $styled)) . "\n"; + } + else { + $$text = $styled; + } + return; + } + } + # convert some special chars to HTML escapes $rest = html_escape($rest); diff -ruN perl-current/makedef.pl AP1000_source/makedef.pl --- perl-current/makedef.pl 2007-11-20 00:17:34.000000000 -0800 +++ AP1000_source/makedef.pl 2007-11-23 11:46:29.351332493 -0800 @@ -404,6 +404,10 @@ PL_statusvalue_vms PL_sys_intern )]); + emit_symbols([qw( + boot_DynaLoader + Perl_boot_core_ActivePerl + )]); } elsif ($PLATFORM eq 'os2') { emit_symbols([qw( @@ -1215,6 +1219,7 @@ setuid setgid boot_DynaLoader + Perl_boot_core_ActivePerl Perl_init_os_extras Perl_thread_create Perl_win32_init diff -ruN perl-current/patchlevel.h AP1000_source/patchlevel.h --- perl-current/patchlevel.h 2007-11-16 10:57:50.000000000 -0800 +++ AP1000_source/patchlevel.h 2007-11-23 11:46:29.462312609 -0800 @@ -10,6 +10,8 @@ #ifndef __PATCHLEVEL_H_INCLUDED__ +#include "BuildInfo.h" + /* do not adjust the whitespace! Configure expects the numbers to be * exactly on the third column */ @@ -118,7 +120,8 @@ #if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT) static const char * const local_patches[] = { NULL - ,"RC1" + ,ACTIVEPERL_LOCAL_PATCHES_ENTRY + ,"perl-current@32448" ,NULL }; diff -ruN perl-current/perl.c AP1000_source/perl.c --- perl-current/perl.c 2007-11-03 05:29:57.000000000 -0700 +++ AP1000_source/perl.c 2007-11-23 11:46:29.474310459 -0800 @@ -2100,6 +2100,7 @@ boot_core_UNIVERSAL(); boot_core_xsutils(); boot_core_mro(); + boot_core_ActivePerl(); if (xsinit) (*xsinit)(aTHX); /* in case linked C routines want magical variables */ @@ -4753,9 +4754,11 @@ incpush(APPLLIB_EXP, TRUE, TRUE, TRUE, TRUE); #endif +#ifndef PRIVLIB_LAST_IN_INC #ifdef ARCHLIB_EXP incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE); #endif +#endif #ifdef MACOS_TRADITIONAL { Stat_t tmpstatbuf; @@ -4777,6 +4780,7 @@ if (!PL_tainting) incpush(":", FALSE, FALSE, TRUE, FALSE); #else +#ifndef PRIVLIB_LAST_IN_INC #ifndef PRIVLIB_EXP # define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl" #endif @@ -4785,6 +4789,7 @@ #else incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE, TRUE); #endif +#endif /* !defined(PRIVLIB_LAST_IN_INC) */ #ifdef SITEARCH_EXP /* sitearch is always relative to sitelib on Windows for @@ -4824,10 +4829,25 @@ # endif #endif -#ifdef PERL_VENDORLIB_STEM /* Search for version-specific dirs below here */ +#if defined(PERL_VENDORLIB_STEM) && defined(PERL_INC_VERSION_LIST) + /* Search for version-specific dirs below here */ incpush(PERL_VENDORLIB_STEM, FALSE, TRUE, TRUE, TRUE); #endif +#ifdef PRIVLIB_LAST_IN_INC +#ifdef ARCHLIB_EXP + incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE); +#endif +#ifndef PRIVLIB_EXP +# define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl" +#endif +#if defined(WIN32) + incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE, TRUE); +#else + incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE, TRUE); +#endif +#endif /* PRIVLIB_LAST_IN_INC */ + #ifdef PERL_OTHERLIBDIRS incpush(PERL_OTHERLIBDIRS, TRUE, TRUE, TRUE, TRUE); #endif diff -ruN perl-current/perlio.c AP1000_source/perlio.c --- perl-current/perlio.c 2007-11-07 04:14:06.000000000 -0800 +++ AP1000_source/perlio.c 2007-11-23 11:46:29.502305444 -0800 @@ -68,6 +68,13 @@ int mkstemp(char*); #endif +/* mkstemp is defined to be mkstemp64 at some patchlevel on AIX5 and that's not + * binary compatible with older versions of the OS (http://bugs.activestate.com/show_bug.cgi?id=44902) + */ +#if defined(_AIX) +# undef mkstemp +#endif + /* Call the callback or PerlIOBase, and return failure. */ #define Perl_PerlIO_or_Base(f, callback, base, failure, args) \ if (PerlIOValid(f)) { \ diff -ruN perl-current/pod/perl.pod AP1000_source/pod/perl.pod --- perl-current/pod/perl.pod 2007-10-09 06:08:17.000000000 -0700 +++ AP1000_source/pod/perl.pod 2007-11-23 11:46:29.555295949 -0800 @@ -28,6 +28,8 @@ perlintro Perl introduction for beginners perltoc Perl documentation table of contents + ActivePerl ActivePerl overview + =head2 Tutorials perlreftut Perl references short introduction @@ -170,6 +172,9 @@ perl5005delta Perl changes in version 5.005 perl5004delta Perl changes in version 5.004 + activeperl-release Release notes for ActivePerl + activeperl-changes ActivePerl revision history + perlartistic Perl Artistic License perlgpl GNU General Public License diff -ruN perl-current/proto.h AP1000_source/proto.h --- perl-current/proto.h 2007-11-08 02:36:30.000000000 -0800 +++ AP1000_source/proto.h 2007-11-23 11:46:30.077202440 -0800 @@ -204,6 +204,7 @@ __attribute__warn_unused_result__; PERL_CALLCONV void Perl_boot_core_UNIVERSAL(pTHX); +PERL_CALLCONV void Perl_boot_core_ActivePerl(pTHX); PERL_CALLCONV void Perl_boot_core_PerlIO(pTHX); PERL_CALLCONV void Perl_call_list(pTHX_ I32 oldscope, AV* av_list) __attribute__nonnull__(pTHX_2); diff -ruN perl-current/t/op/readline.t AP1000_source/t/op/readline.t --- perl-current/t/op/readline.t 2007-03-24 14:19:09.000000000 -0700 +++ AP1000_source/t/op/readline.t 2007-11-23 11:46:30.461133652 -0800 @@ -79,14 +79,6 @@ } } -fresh_perl_is('BEGIN{<>}', '', - { switches => ['-w'], stdin => '', stderr => 1 }, - 'No ARGVOUT used only once warning'); - -fresh_perl_is('print readline', 'foo', - { switches => ['-w'], stdin => 'foo', stderr => 1 }, - 'readline() defaults to *ARGV'); - my $obj = bless []; $obj .= ; like($obj, qr/main=ARRAY.*world/, 'rcatline and refs'); @@ -101,6 +93,14 @@ is( $one, "A: One\n", "rcatline works with tied scalars" ); is( $two, "B: Two\n", "rcatline works with tied scalars" ); +fresh_perl_is('BEGIN{<>}', '', + { switches => ['-w'], stdin => '', stderr => 1 }, + 'No ARGVOUT used only once warning'); + +fresh_perl_is('print readline', 'foo', + { switches => ['-w'], stdin => 'foo', stderr => 1 }, + 'readline() defaults to *ARGV'); + __DATA__ moo moo diff -ruN perl-current/t/op/sig.t AP1000_source/t/op/sig.t --- perl-current/t/op/sig.t 1969-12-31 16:00:00.000000000 -0800 +++ AP1000_source/t/op/sig.t 2007-11-23 11:46:30.473131503 -0800 @@ -0,0 +1,56 @@ +#!perl -w + +BEGIN { + chdir 't' if -d 't'; + @INC = '../lib'; + eval { + require POSIX; + POSIX::->import(qw(WNOHANG SIGINT SIGTERM)); + }; + if ($@ or !$Config{d_fork}) { + print "# $@\n"; + print "1..0 # skipped, not posix compatible\n"; + exit 0; + } +} + +use strict; + +my $done = 0; +sub reaper { + print "# got sig\n"; + $done = 1; +} + +sub start_child { + my $pid = fork(); + + defined $pid or die "fork() failed: $!"; + unless ($pid) { + # child + $SIG{INT} = $SIG{TERM} = \&reaper; + while () { + last if $done; + sleep(30); + } + exit; + } + sleep 1; + return $pid; +} + +my $test = 1; +my @signals = (SIGINT, SIGTERM); +print "1.." . (@signals * 3) . "\n"; + +# SIGINT/SIGTERM should not restart sleep() +for my $sig (@signals) { + my $pid = start_child(); + print "not " unless kill(SIGINT, $pid) == 1; + print "ok $test\n"; ++$test; + sleep 1; + print "not " unless waitpid($pid, WNOHANG) == $pid; + print "ok $test\n"; ++$test; + print "# [$?]\nnot " unless 0 == ($? >> 8); + print "ok $test\n"; ++$test; +} diff -ruN perl-current/t/run/cloexec.t AP1000_source/t/run/cloexec.t --- perl-current/t/run/cloexec.t 2007-06-21 01:29:16.000000000 -0700 +++ AP1000_source/t/run/cloexec.t 2007-11-23 11:46:30.522122725 -0800 @@ -56,6 +56,10 @@ skip_all("VMS") if $Is_VMS; skip_all("Win32") if $Is_Win32; +# HP-UX 11.22 seems to use up one additional file descriptor on top +# of all inherited files. This has been fixed/changed in 11.23. +skip_all("HP-UX 11.22") if $^O eq "hpux" && $Config{osvers} eq "11.22"; + sub make_tmp_file { my ($fname, $fcontents) = @_; local *FHTMP; diff -ruN perl-current/util.c AP1000_source/util.c --- perl-current/util.c 2007-11-08 02:36:30.000000000 -0800 +++ AP1000_source/util.c 2007-11-23 11:46:30.609107140 -0800 @@ -2672,6 +2672,9 @@ act.sa_flags = 0; #ifdef SA_RESTART if (PL_signals & PERL_SIGNALS_UNSAFE_FLAG) +# if defined(__hpux) && !(defined(__ux_version) && __ux_version <= 1020) + if (signo != SIGTERM && signo != SIGINT) +# endif act.sa_flags |= SA_RESTART; /* SVR4, 4.3+BSD */ #endif #if defined(SA_NOCLDWAIT) && !defined(BSDish) /* See [perl #18849] */ diff -ruN perl-current/utils/perlbug.PL AP1000_source/utils/perlbug.PL --- perl-current/utils/perlbug.PL 2007-07-12 09:24:25.000000000 -0700 +++ AP1000_source/utils/perlbug.PL 2007-11-23 11:46:30.630103378 -0800 @@ -40,6 +40,7 @@ my @patches; while () { last if /^\s*}/; + next if /^\s*#/; # preprocessor stuff chomp; s/^\s+,?\s*"?//; s/"?\s*,?$//; diff -ruN perl-current/win32/Makefile AP1000_source/win32/Makefile --- perl-current/win32/Makefile 2007-11-21 02:36:00.000000000 -0800 +++ AP1000_source/win32/Makefile 2007-11-23 11:46:30.709089227 -0800 @@ -51,7 +51,13 @@ # before anything else. This script can then be set up, for example, # to add additional entries to @INC. # -#USE_SITECUST = define +USE_SITECUST = define + +# +# Uncomment this if you want to reverse the order of "lib" and +# "site/lib" in @INC. +# +USE_PRIVLIB_LAST = define # # uncomment to enable multiple interpreters. This is need for fork() @@ -244,7 +250,7 @@ # set this to your email address (perl will guess a value from # from your loginname and your hostname, which may not be right) # -#EMAIL = +EMAIL = support@ActiveState.com ## ## Build configuration ends. @@ -281,6 +287,10 @@ USE_SITECUST = undef !ENDIF +!IF "$(USE_PRIVLIB_LAST)" == "" +USE_PRIVLIB_LAST = undef +!ENDIF + !IF "$(USE_MULTI)" == "" USE_MULTI = undef !ENDIF @@ -579,7 +589,7 @@ PERLEXE_ICO = .\perlexe.ico PERLEXE_RES = .\perlexe.res -PERLDLL_RES = +PERLDLL_RES = .\perldll.res # Nominate a target which causes extensions to be re-built # This used to be $(PERLEXE), but at worst it is the .dll that they depend @@ -658,6 +668,7 @@ -C++ -prototypes MICROCORE_SRC = \ + ..\activeperl.c \ ..\av.c \ ..\deb.c \ ..\doio.c \ @@ -956,10 +967,10 @@ << $(XCOPY) $(PERLSTATICLIB) $(COREDIR) -$(PERLEXE_ICO): $(MINIPERL) ..\uupacktool.pl $(PERLEXE_ICO).packd - $(MINIPERL) -I..\lib ..\uupacktool.pl -u $(PERLEXE_ICO).packd $(PERLEXE_ICO) - -$(PERLEXE_RES): perlexe.rc $(PERLEXE_ICO) +#$(PERLEXE_ICO): $(MINIPERL) ..\uupacktool.pl $(PERLEXE_ICO).packd +# $(MINIPERL) -I..\lib ..\uupacktool.pl -u $(PERLEXE_ICO).packd $(PERLEXE_ICO) +# +#$(PERLEXE_RES): perlexe.rc $(PERLEXE_ICO) $(MINIMOD) : $(MINIPERL) ..\minimod.pl cd .. @@ -1213,7 +1224,8 @@ -del /f $(CONFIGPM) -del /f bin\*.bat -del /f perllibst.h - -del /f $(PERLEXE_ICO) perl.base +# -del /f $(PERLEXE_ICO) + -del /f perl.base -cd .. && del /s *.lib *.map *.pdb *.ilk *.bs *$(o) .exists pm_to_blib -cd $(EXTDIR) && del /s *.def Makefile Makefile.old -if exist $(AUTODIR) rmdir /s /q $(AUTODIR) diff -ruN perl-current/win32/config.bc AP1000_source/win32/config.bc --- perl-current/win32/config.bc 2007-08-21 07:32:24.000000000 -0700 +++ AP1000_source/win32/config.bc 2007-11-23 11:46:30.722086898 -0800 @@ -699,13 +699,13 @@ installprivlib='~INST_TOP~~INST_VER~\lib' installscript='~INST_TOP~~INST_VER~\bin' installsitearch='~INST_TOP~\site~INST_VER~\lib~INST_ARCH~' -installsitebin='~INST_TOP~~INST_VER~\bin~INST_ARCH~' +installsitebin='~INST_TOP~\site~INST_VER~\bin~INST_ARCH~' installsitehtml1dir='' installsitehtml3dir='' installsitelib='~INST_TOP~\site~INST_VER~\lib' installsiteman1dir='' installsiteman3dir='' -installsitescript='' +installsitescript='~INST_TOP~\site~INST_VER~\bin~INST_ARCH~' installstyle='lib' installusrbinperl='undef' installvendorarch='' diff -ruN perl-current/win32/config.ce AP1000_source/win32/config.ce --- perl-current/win32/config.ce 2007-08-21 07:32:24.000000000 -0700 +++ AP1000_source/win32/config.ce 2007-11-23 11:46:30.724086540 -0800 @@ -689,7 +689,7 @@ installprivlib='~INST_TOP~~INST_VER~\lib' installscript='~INST_TOP~~INST_VER~\bin' installsitearch='~INST_TOP~\site~INST_VER~\lib~INST_ARCH~' -installsitebin='~INST_TOP~~INST_VER~\bin~INST_ARCH~' +installsitebin='~INST_TOP~\site~INST_VER~\bin~INST_ARCH~' installsitelib='~INST_TOP~\site~INST_VER~\lib' installstyle='lib' installusrbinperl='undef' diff -ruN perl-current/win32/config.gc AP1000_source/win32/config.gc --- perl-current/win32/config.gc 2007-08-21 07:32:24.000000000 -0700 +++ AP1000_source/win32/config.gc 2007-11-23 11:46:30.726086181 -0800 @@ -699,13 +699,13 @@ installprivlib='~INST_TOP~~INST_VER~\lib' installscript='~INST_TOP~~INST_VER~\bin' installsitearch='~INST_TOP~\site~INST_VER~\lib~INST_ARCH~' -installsitebin='~INST_TOP~~INST_VER~\bin~INST_ARCH~' +installsitebin='~INST_TOP~\site~INST_VER~\bin~INST_ARCH~' installsitehtml1dir='' installsitehtml3dir='' installsitelib='~INST_TOP~\site~INST_VER~\lib' installsiteman1dir='' installsiteman3dir='' -installsitescript='' +installsitescript='~INST_TOP~\site~INST_VER~\bin~INST_ARCH~' installstyle='lib' installusrbinperl='undef' installvendorarch='' diff -ruN perl-current/win32/config.vc AP1000_source/win32/config.vc --- perl-current/win32/config.vc 2007-08-21 07:32:24.000000000 -0700 +++ AP1000_source/win32/config.vc 2007-11-23 11:46:30.727086002 -0800 @@ -699,13 +699,13 @@ installprivlib='~INST_TOP~~INST_VER~\lib' installscript='~INST_TOP~~INST_VER~\bin' installsitearch='~INST_TOP~\site~INST_VER~\lib~INST_ARCH~' -installsitebin='~INST_TOP~~INST_VER~\bin~INST_ARCH~' +installsitebin='~INST_TOP~\site~INST_VER~\bin~INST_ARCH~' installsitehtml1dir='' installsitehtml3dir='' installsitelib='~INST_TOP~\site~INST_VER~\lib' installsiteman1dir='' installsiteman3dir='' -installsitescript='' +installsitescript='~INST_TOP~\site~INST_VER~\bin~INST_ARCH~' installstyle='lib' installusrbinperl='undef' installvendorarch='' diff -ruN perl-current/win32/config.vc64 AP1000_source/win32/config.vc64 --- perl-current/win32/config.vc64 2007-08-21 07:32:24.000000000 -0700 +++ AP1000_source/win32/config.vc64 2007-11-23 11:46:30.729085644 -0800 @@ -699,13 +699,13 @@ installprivlib='~INST_TOP~~INST_VER~\lib' installscript='~INST_TOP~~INST_VER~\bin' installsitearch='~INST_TOP~\site~INST_VER~\lib~INST_ARCH~' -installsitebin='~INST_TOP~~INST_VER~\bin~INST_ARCH~' +installsitebin='~INST_TOP~\site~INST_VER~\bin~INST_ARCH~' installsitehtml1dir='' installsitehtml3dir='' installsitelib='~INST_TOP~\site~INST_VER~\lib' installsiteman1dir='' installsiteman3dir='' -installsitescript='' +installsitescript='~INST_TOP~\site~INST_VER~\bin~INST_ARCH~' installstyle='lib' installusrbinperl='undef' installvendorarch='' diff -ruN perl-current/win32/makefile.mk AP1000_source/win32/makefile.mk --- perl-current/win32/makefile.mk 2007-11-21 02:36:00.000000000 -0800 +++ AP1000_source/win32/makefile.mk 2007-11-23 11:46:30.797073463 -0800 @@ -53,7 +53,13 @@ # before anything else. This script can then be set up, for example, # to add additional entries to @INC. # -#USE_SITECUST *= define +USE_SITECUST *= define + +# +# Uncomment this if you want to reverse the order of "lib" and +# "site/lib" in @INC. +# +USE_PRIVLIB_LAST *= define # # uncomment to enable multiple interpreters. This is need for fork() @@ -272,7 +278,7 @@ # set this to your email address (perl will guess a value from # from your loginname and your hostname, which may not be right) # -#EMAIL *= +EMAIL *= support@ActiveState.com ## ## Build configuration ends. @@ -291,6 +297,7 @@ DEBUG_MSTATS *= undef USE_SITECUST *= undef +USE_PRIVLIB_LAST *= undef USE_MULTI *= undef USE_ITHREADS *= undef USE_IMP_SYS *= undef @@ -322,6 +329,10 @@ BUILDOPT += -DUSE_SITECUSTOMIZE .ENDIF +.IF "$(USE_PRIVLIB_LAST)" == "define" +BUILDOPT += -DPRIVLIB_LAST_IN_INC +.ENDIF + .IF "$(USE_MULTI)" != "undef" BUILDOPT += -DPERL_IMPLICIT_CONTEXT .ENDIF @@ -720,7 +731,7 @@ PERLEXE_ICO = .\perlexe.ico PERLEXE_RES = .\perlexe.res -PERLDLL_RES = +PERLDLL_RES = .\perldll.res # Nominate a target which causes extensions to be re-built # This used to be $(PERLEXE), but at worst it is the .dll that they depend @@ -816,6 +827,7 @@ -C++ -prototypes MICROCORE_SRC = \ + ..\activeperl.c \ ..\av.c \ ..\deb.c \ ..\doio.c \ @@ -1256,10 +1268,10 @@ .ENDIF $(XCOPY) $(PERLSTATICLIB) $(COREDIR) -$(PERLEXE_ICO): $(MINIPERL) ..\uupacktool.pl $(PERLEXE_ICO).packd - $(MINIPERL) -I..\lib ..\uupacktool.pl -u $(PERLEXE_ICO).packd $(PERLEXE_ICO) - -$(PERLEXE_RES): perlexe.rc $(PERLEXE_ICO) +#$(PERLEXE_ICO): $(MINIPERL) ..\uupacktool.pl $(PERLEXE_ICO).packd +# $(MINIPERL) -I..\lib ..\uupacktool.pl -u $(PERLEXE_ICO).packd $(PERLEXE_ICO) +# +#$(PERLEXE_RES): perlexe.rc $(PERLEXE_ICO) $(MINIMOD) : $(MINIPERL) ..\minimod.pl cd .. && miniperl minimod.pl > lib\ExtUtils\Miniperl.pm @@ -1539,7 +1551,8 @@ -del /f $(CONFIGPM) -del /f bin\*.bat -del /f perllibst.h - -del /f $(PERLEXE_ICO) perl.base +# -del /f $(PERLEXE_ICO) + -del /f perl.base -cd .. && del /s *$(a) *.map *.pdb *.ilk *.tds *.bs *$(o) .exists pm_to_blib -cd $(EXTDIR) && del /s *.def Makefile Makefile.old -if exist $(AUTODIR) rmdir /s /q $(AUTODIR) Files perl-current/win32/perl.ico and AP1000_source/win32/perl.ico differ diff -ruN perl-current/win32/perldll.rc AP1000_source/win32/perldll.rc --- perl-current/win32/perldll.rc 1969-12-31 16:00:00.000000000 -0800 +++ AP1000_source/win32/perldll.rc 2007-11-23 11:46:30.799073105 -0800 @@ -0,0 +1,52 @@ +// PerlDll.rc + +// (c) 1995-1998 Microsoft Corporation. All rights reserved. +// Developed by ActiveState Tool Corp., http://www.ActiveState.com + +// You may distribute under the terms of either the GNU General Public +// License or the Artistic License, as specified in the README file. + +#include +#include "BuildInfo.h" + +PERLDLL ICON perl.ico + +#ifndef _DEBUG +#define VER_DEBUG 0 +#else +#define VER_DEBUG VS_FF_DEBUG +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION PERLRC_VERSION + PRODUCTVERSION PERLRC_VERSION + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS VER_DEBUG + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN + +BEGIN +BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "ActiveState\0" + VALUE "FileDescription", "Perl Interpreter\0" + VALUE "FileVersion", PERLFILEVERSION + VALUE "InternalName", "perl58.dll\0" + VALUE "LegalCopyright", "Copyright 1987-2007, Larry Wall, Binary build by ActiveState, http://www.ActiveState.com\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "perl58.dll\0" + VALUE "ProductName", PERLPRODUCTNAME + VALUE "ProductVersion", PERLPRODUCTVERSION + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 0x04E4 + // English language (0x409) and the Windows ANSI codepage (0x04E4) + END +END + diff -ruN perl-current/win32/perlexe.rc AP1000_source/win32/perlexe.rc --- perl-current/win32/perlexe.rc 2006-06-13 12:29:38.000000000 -0700 +++ AP1000_source/win32/perlexe.rc 2007-11-23 11:46:30.799073105 -0800 @@ -1 +1,52 @@ -PERLEXE ICON perlexe.ico +// PerlExe.rc + +// (c) 1995-1999 Microsoft Corporation. All rights reserved. +// Developed by ActiveState Tool Corp., http://www.ActiveState.com + +// You may distribute under the terms of either the GNU General Public +// License or the Artistic License, as specified in the README file. + +#include +#include "BuildInfo.h" + +PERLEXE ICON perl.ico + +#ifndef _DEBUG +#define VER_DEBUG 0 +#else +#define VER_DEBUG VS_FF_DEBUG +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION PERLRC_VERSION + PRODUCTVERSION PERLRC_VERSION + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS VER_DEBUG + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE VFT2_UNKNOWN + +BEGIN +BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "ActiveState\0" + VALUE "FileDescription", "Perl Command Line Interpreter\0" + VALUE "FileVersion", PERLFILEVERSION + VALUE "InternalName", "perl.exe\0" + VALUE "LegalCopyright", "Copyright 1987-2007, Larry Wall, Binary build by ActiveState, http://www.ActiveState.com\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "perl.exe\0" + VALUE "ProductName", PERLPRODUCTNAME + VALUE "ProductVersion", PERLPRODUCTVERSION + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 0x04E4 + // English language (0x409) and the Windows ANSI codepage (0x04E4) + END +END + diff -ruN perl-current/win32/win32.c AP1000_source/win32/win32.c --- perl-current/win32/win32.c 2007-06-28 03:13:36.000000000 -0700 +++ AP1000_source/win32/win32.c 2007-11-23 11:46:30.821069164 -0800 @@ -4552,6 +4552,13 @@ return LoadLibraryExA(PerlDir_mapA(filename), NULL, LOAD_WITH_ALTERED_SEARCH_PATH); } +static +XS(w32_BuildNumber) +{ + dXSARGS; + XSRETURN_PV(PRODUCT_BUILD_NUMBER); +} + XS(w32_SetChildShowWindow) { dXSARGS; @@ -4594,6 +4601,7 @@ if (pfn_init) pfn_init(aTHX); + newXS("Win32::BuildNumber", w32_BuildNumber, file); newXS("Win32::SetChildShowWindow", w32_SetChildShowWindow, file); } diff -ruN perl-current/win32/win32.h AP1000_source/win32/win32.h --- perl-current/win32/win32.h 2007-06-07 04:52:06.000000000 -0700 +++ AP1000_source/win32/win32.h 2007-11-23 11:46:30.823068805 -0800 @@ -9,6 +9,8 @@ #ifndef _INC_WIN32_PERL5 #define _INC_WIN32_PERL5 +#include "BuildInfo.h" + #ifndef _WIN32_WINNT # define _WIN32_WINNT 0x0400 /* needed for TryEnterCriticalSection() etc. */ #endif End of Patch.