You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs-cvs@perl.apache.org by ra...@apache.org on 2003/07/06 19:33:18 UTC
cvs commit: modperl-docs/src/docs/2.0/os/win32 install.pod mpinstall
randyk 2003/07/06 10:33:18
Modified: src/docs/1.0/os/win32 install.pod mpinstall
src/docs/2.0/os/win32 install.pod mpinstall
Log:
For Win32,
- record the fact that mod_perl 1 now compiles with ActivePerl 8xx,
- give locations of where to get mod_perl 1 ppm packages for ActivePerl 8xx,
- adjust the mpinstall script to offer to get mod_perl 1 for ActivePerl 8xx,
if requested.
Revision Changes Path
1.25 +63 -51 modperl-docs/src/docs/1.0/os/win32/install.pod
Index: install.pod
===================================================================
RCS file: /home/cvs/modperl-docs/src/docs/1.0/os/win32/install.pod,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- install.pod 8 Jun 2003 18:01:29 -0000 1.24
+++ install.pod 6 Jul 2003 17:33:18 -0000 1.25
@@ -22,18 +22,17 @@
mod_perl/Apache environment; you can obtain such a prebuilt Perl
binary from L<http://www.activestate.com/>.
-Note that, currently, mod_perl 1.0 does not work with an
-ActivePerl Perl in the 8xx series (based on perl-5.8), due
-to some issues with I<LARGE_FILES> support. You should either
-then use an ActivePerl Perl in the 6xx series (based on perl-5.6.1),
-or else, if you need perl-5.8, build or obtain a binary
-Perl compiled without the I<USE_LARGE_FILES> compile-time option
-(beware that such a Perl, and XS-based extensions compiled with it,
-may not be binary compatible with ActivePerl 8xx and its
-XS-based extensions). Another possibility, if you desire perl-5.8,
-is to consider trying mod_perl 2.0, which does work
-with an ActivePerl Perl in the 8xx series (and is in fact
-the minimum required Perl version) - see
+mod_perl 1 builds and tests successfully with either
+an ActivePerl Perl in the 6xx series, based on perl-5.6.1,
+or with an ActivePerl Perl in the 8xx series, based on perl-5.8.0
+(for the latter, at the time of writing this requires the
+mod_perl cvs sources to build - see
+see the discussion on the
+L<Development Source Distribution|download::source/Development_Source_Distribution>
+for details on how to access this). If you are using perl-5.8,
+you may want to consider mod_perl 2.0, which although still
+in a development phase offers several significant performance
+improvements for Win32 - see
L<modperl-2 in Win32|docs::2.0::os::win32::install>
for details.
@@ -69,9 +68,11 @@
=item *
As of version 1.24_01, mod_perl will build on Win32 ActivePerls
-based on Perl-5.6.x (builds 6xx). For binary compatibility you
-should use the same compiler in building mod_perl that was used
-to compile your Perl binary; for ActivePerl, this means using VC++ 6.
+based on Perl-5.6.x (builds 6xx). For ActivePerl builds 8xx,
+at the time of writing you will need the mod_perl 1 cvs sources.
+For binary compatibility you should use the same compiler in
+building mod_perl that was used to compile your Perl binary;
+for ActivePerl, this means using VC++ 6.
=back
@@ -177,7 +178,10 @@
This gives the location of where to install mod_perl.so
(eg, F<\Apache\modules>). No default is assumed - if this argument
-is not given, mod_perl.so must be copied manually.
+is not given, mod_perl.so must be copied manually (in the
+current cvs mod_perl 1 sources, INSTALL_DLL, if not supplied,
+will assume a default of F<APACHE_SRC/modules>, if this directory
+exists).
=item DEBUG
@@ -257,11 +261,8 @@
=head2 PPM Packages
-For users of ActivePerl builds 6xx I<only>, obtainable from
-L<http://www.activestate.com/>,
-there are also C<PPM> mod_perl packages available (as discussed
-in the introduction, no C<ppm> mod_perl 1.0 ppm packages for
-ActivePerl builds 8xx are presently available). For this, if you
+For ActivePerl users (or compatible), there are also C<PPM>
+mod_perl packages available. For this, if you
don't already have it, get and install the latest Win32 Apache binary
from L<http://httpd.apache.org/>.
@@ -288,43 +289,54 @@
C:\> ppm install
http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl.ppd
-Another way, which will be useful if you plan on installing additional
-Apache modules, is to add the repository where the mod_perl package
-is kept to the C<ppm> shell utility. For C<ppm2> this may be
-done as (the C<set repository ...> command has been broken over two
-lines for readability):
-
- C:\> ppm
- PPM> set repository theoryx5
- http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer
-
-while for C<ppm3> the appropriate command is (again broken over
-two lines for readability):
-
- C:\> ppm3
- PPM> repository add theoryx5
- http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer
-
-After this, you can do
-
- PPM> install mod_perl
- PPM> quit
- C:\>
+for Activeperl 6xx builds, and as
+
+ C:\> ppm install
+ http://theoryx5.uwinnipeg.ca/ppms/mod_perl-1.ppd
-For C<ppm2>, use the C<set save> command to save the C<theoryx5> repository
-to your PPM configuration file, so that future PPM sessions will search this
+for 8xx builds. Another way, which will be useful if you plan
+on installing additional Apache modules, is to add the repository
+where the mod_perl package is kept to the C<ppm> shell utility.
+For C<ppm2> this may be done with the C<set repository alias location>
+command, while for C<ppm3> (the default with ActivePerl 8xx) the
+appropriate command is C<repository add alias location>; see the
+help utility within the C<ppm> shell for details. For 6xx builds,
+the appropriate location is
+
+ http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer
+
+while for for 8xx builds it is
+
+ http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer58
+
+After this, you can, within the ppm shell, use the C<install>
+command to either install C<mod_perl>, for 6xx, or
+C<mod_perl-1>, for 8xx. For C<ppm2>, use the C<set save> command to save
+the C<theoryx5> repository to your PPM configuration file,
+so that future PPM sessions will search this
repository, as well as ActiveState's, for requested packages.
If you are running mod_ssl under Apache, then you should
-obtain the C<mod_perl-eapi.ppd> package instead.
+obtain the C<mod_perl-eapi> package for 6xx or the
+C<mod_perl-eapi-1> package for 8xx instead.
+
+Note that, because of binary incompatibilities, one should
+I<not> install packages for ActivePerl 8xx from a repository
+containing packages for ActivePerl 6xx, and vice-versa, particularly
+if these packages contain XS-based modules.
The mod_perl PPM package also includes the necessary Apache DLL
C<mod_perl.so>; a post-installation script should be run which will
offer to copy this file to your Apache modules directory (eg,
-I<C:\Apache\modules>). This might not occur with C<ppm3>, in
-which case you can grab F<mod_perl.tar.gz> from
-L<http://theoryx5.uwinnipeg.ca/ppmpackages/x86/>; when
-unpacked, this will contain F<mod_perl.so> in the top-level
-directory.
+I<C:\Apache\modules>). If this fails, you can grab
+the appropriate dll and install it manually. For 6xx builds,
+this is at L<http://theoryx5.uwinnipeg.ca/ppmpackages/x86/>,
+for which the relevant file is either C<mod_perl.so> or,
+for EAPI support, C<mod_perl-eapi.so>. For 8xx builds,
+the location is L<http://theoryx5.uwinnipeg.ca/ppms/x86/>,
+for which the relevant file is either C<mod_perl-1.so> or,
+for EAPI support, C<mod_perl-eapi-1.so>. You should then
+copy this file to your Apache modules directory and rename
+it as C<mod_perl.so>, if necessary.
The mod_perl package available from this site will always
use the latest mod_perl sources compiled against the latest official
1.6 +61 -26 modperl-docs/src/docs/1.0/os/win32/mpinstall
Index: mpinstall
===================================================================
RCS file: /home/cvs/modperl-docs/src/docs/1.0/os/win32/mpinstall,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- mpinstall 8 Jun 2003 18:01:29 -0000 1.5
+++ mpinstall 6 Jul 2003 17:33:18 -0000 1.6
@@ -10,27 +10,28 @@
use warnings;
use ExtUtils::MakeMaker;
use LWP::Simple;
-use Archive::Tar;
-use Compress::Zlib;
use File::Copy;
use Config;
use Safe;
use Digest::MD5;
use IO::File;
require Win32;
+require File::Spec;
die "This only works for Win32" unless $^O =~ /Win32/i;
die "No mod_perl ppm package available for this Perl" if ($] < 5.006001);
my ($apache2, $apache);
+my @drives = drives();
# find a possible Apache2 directory
APACHE2: {
- for my $drive ('C'..'G') {
+ for my $drive (@drives) {
for my $p ('Apache2', 'Program files/Apache2',
- 'Program Files/Apache Group/Apache2') {
- if (-d "$drive:/$p") {
- $apache2 = "$drive:/$p";
+ 'Program Files/Apache Group/Apache2') {
+ my $candidate = File::Spec->catpath($drive, $p);
+ if (-d $candidate) {
+ $apache2 = $candidate;
last APACHE2;
}
}
@@ -45,11 +46,12 @@
# if no Apache2, try to find Apache1
unless ($apache2) {
APACHE: {
- for my $drive ('C'..'G') {
+ for my $drive (@drives) {
for my $p ('Apache', 'Program Files/Apache',
'Program Files/Apache Group/Apache') {
- if (-d "$drive:/$p") {
- $apache = "$drive:/$p";
+ my $candidate = File::Spec->catpath($drive, $p);
+ if (-d $candidate) {
+ $apache = $candidate;
last APACHE;
}
}
@@ -106,7 +108,12 @@
die 'Please specify an Apache directory' unless ($apache or $apache2);
my $theoryx5 = 'http://theoryx5.uwinnipeg.ca';
-my ($ppd, $tgz, $ppdfile, $tgzfile, $checksums);
+my $ppms = $theoryx5 . '/ppms/';
+my $ppmsx86 = $ppms . 'x86/';
+my $ppmpackages = $theoryx5 . '/ppmpackages/';
+my $ppmpackagesx86 = $ppmpackages . 'x86/';
+my ($ppd, $tgz, $ppdfile, $tgzfile, $checksums, $so_fetch, $so_fake);
+my $so = 'mod_perl.so';
my $cs = 'CHECKSUMS';
# set appropriate ppd and tar.gz files
@@ -120,15 +127,16 @@
if ($ans =~ /^n/i) {
$ppdfile = 'mod_perl.ppd';
$tgzfile = 'mod_perl.tar.gz';
- $ppd = $theoryx5 . '/ppmpackages/' . $ppdfile;
- $tgz = $theoryx5 . '/ppmpackages/x86/' . $tgzfile;
+ $so_fake = 'mod_perl.so';
}
else {
$ppdfile = 'mod_perl-eapi.ppd';
$tgzfile = 'mod_perl-eapi.tar.gz';
- $ppd = $theoryx5 . '/ppmpackages/' . $ppdfile;
- $tgz = $theoryx5 . '/ppmpackages/x86/' . $tgzfile;
+ $so_fake = 'mod_perl-eapi.so';
}
+ $ppd = $ppmpackages . $ppdfile;
+ $tgz = $ppmpackagesx86 . $tgzfile;
+ $so_fetch = $ppmpackagesx86 . $so_fake;
}
}
else {
@@ -136,11 +144,26 @@
if ($apache2) {
$ppdfile = 'mod_perl.ppd';
$tgzfile = 'mod_perl.tar.gz';
- $ppd = $theoryx5 . '/ppms/' . $ppdfile;
- $tgz = $theoryx5 . '/ppms/x86/' . $tgzfile;
+ $ppd = $ppms . $ppdfile;
+ $tgz = $ppmsx86 . $tgzfile;
+ $so_fake = 'mod_perl.so';
+ $so_fetch = $ppmsx86 . $so_fake;
}
else {
- die 'No mod_perl 1 package available for this perl version';
+ my $ans = prompt('Do you need EAPI support for mod_ssl?', 'no');
+ if ($ans =~ /^n/i) {
+ $ppdfile = 'mod_perl-1.ppd';
+ $tgzfile = 'mod_perl-1.tar.gz';
+ $so_fake = 'mod_perl-1.so';
+ }
+ else {
+ $ppdfile = 'mod_perl-eapi-1.ppd';
+ $tgzfile = 'mod_perl-eapi-1.tar.gz';
+ $so_fake = 'mod_perl-eapi-1.so';
+ }
+ $ppd = $ppms . $ppdfile;
+ $tgz = $ppmsx86 . $tgzfile;
+ $so_fetch = $ppmsx86 . $so_fake;
}
}
@@ -156,6 +179,10 @@
getstore($tgz, $tgzfile);
print " done!\n";
die "Failed to fetch $tgz" unless -e $tgzfile;
+print "Fetching $so_fetch ...";
+getstore($so_fetch, $so_fake);
+print " done!\n";
+die "Failed to fetch $so_fetch" unless -e $so_fake;
print "Fetching $checksums ...";
getstore($checksums, $cs);
print " done!\n";
@@ -165,6 +192,10 @@
unless (verifyMD5($tgzfile)) {
die qq{CHECKSUM check for "$tgzfile" failed.\n};
}
+ unless (verifyMD5($so_fake)) {
+ die qq{CHECKSUM check for "$so_fake" failed.\n};
+ }
+ rename($so_fake, $so) or die "Rename of $so_fake to $so failed: $!";
}
else {
die "Failed to fetch $checksums - cannot verify CHECKSUMS.";
@@ -190,14 +221,6 @@
print "\n@args\n";
system(@args) == 0 or die "system @args failed: $?";
-# extract mod_perl.so from the tar.gz file
-my $so = 'mod_perl.so';
-my $archive = Archive::Tar->new($tgzfile, 1);
-print "\nExtracting mod_perl.so ...";
-$archive->extract($so);
-die "Extraction of $so failed" unless (-e $so);
-print " done!\n";
-
# figure out where to place mod_perl.so
my $modules = $apache ? "$apache/modules" : "$apache2/modules";
$modules = prompt("Where should $so be placed?", $modules);
@@ -228,7 +251,7 @@
# clean up, if desired
my $ans = prompt("Remove temporary installation files from $tmp?", 'yes');
if ($ans =~ /^y/i) {
- unlink ($ppdfile, $old, $tgzfile, $cs)
+ unlink ($ppdfile, $old, $tgzfile, $cs, $so)
or warn "Cannot unlink files from $tmp: $!";
}
@@ -307,3 +330,15 @@
return $file;
}
+sub drives {
+ my @drives = ();
+ eval{require Win32API::File;};
+ return map {"$_:\\"} ('C' .. 'Z') if $@;
+ my @r = Win32API::File::getLogicalDrives();
+ return unless @r > 0;
+ for (@r) {
+ my $t = Win32API::File::GetDriveType($_);
+ push @drives, $_ if ($t == 3 or $t == 4);
+ }
+ return @drives > 0 ? @drives : undef;
+}
1.24 +16 -24 modperl-docs/src/docs/2.0/os/win32/install.pod
Index: install.pod
===================================================================
RCS file: /home/cvs/modperl-docs/src/docs/2.0/os/win32/install.pod,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- install.pod 8 Jun 2003 20:55:28 -0000 1.23
+++ install.pod 6 Jul 2003 17:33:18 -0000 1.24
@@ -112,8 +112,8 @@
=head2 PPM Packages
-The following assumes you already have ActivePerl 8xx from
-L<http://www.activestate.com/> and a Win32 Apache 2.0 binary from
+The following assumes you already have ActivePerl 8xx (I<not> 6xx)
+from L<http://www.activestate.com/> and a Win32 Apache 2.0 binary from
L<http://httpd.apache.org/>. In installing this, you might avoid
some future problems by choosing installation directories that do
not have spaces in their names (eg, F<C:/Apache2>).
@@ -134,26 +134,18 @@
C:\> ppm install
http://theoryx5.uwinnipeg.ca/ppms/mod_perl.ppd
-for ActivePerl 8xx builds. Another way, which will be useful if you
-plan on installing additional Apache modules, is to set the repository
+Another way, which will be useful if you plan on installing
+additional Apache modules, is to set the repository
within the C<ppm> shell utility to
http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer58
-for ActivePerl 8xx builds. The repository may be set using
-
- ppm> set repository NAME LOCATION
-
-for C<ppm2> and by
-
- ppm> rep add NAME LOCATION
-
-for C<ppm3> - see the help utility within the C<ppm> shell for
-details. mod_perl 2.0 can then be installed as
-
- ppm> install mod_perl
-
-This will install the necessary modules under an F<Apache2>
+using the C<repository add alias location> for I<ppm3> (the
+default with ActivePerl 8xx), and using C<set repository alias location>
+for C<ppm2>; see the help utility within the C<ppm> shell for
+details. mod_perl 2.0 can then be installed as C<install mod_perl>
+within the ppm shell, which
+will install the necessary modules under an F<Apache2>
subdirectory in your Perl tree, so as not to disturb a possible existing
F<Apache> directory from mod_perl 1.0. See the section below on
configuring mod_perl to add this directory to the C<@INC> path for
@@ -162,11 +154,9 @@
The mod_perl PPM package also includes the necessary Apache DLL
F<mod_perl.so>; a post-installation script should be run which will
offer to copy this file to your Apache2 modules directory (eg,
-F<C:/Apache2/modules/>). If this is not done, get
-F<mod_perl.tar.gz> from
-L<http://theoryx5.uwinnipeg.ca/ppms/x86/>;
-when unpacked, this file
-contains F<mod_perl.so> in the top-level directory.
+F<C:/Apache2/modules/>). If this fails, you can get
+F<mod_perl.so> from L<http://theoryx5.uwinnipeg.ca/ppms/x86/>
+and install it to your Apache2 modules directory by hand.
Note that, because of binary incompatibilities, one should
I<not> install packages for ActivePerl 8xx from a repository
@@ -189,7 +179,9 @@
=head2 All in one packages
-At L<http://perl.apache.org/dist/win32-bin/> there is a self-extracting
+There is an IndigoPerl Perl/Apache 2 binary package available from
+L<http://www.indigostar.com/> containing mod_perl 2. As well,
+at L<http://perl.apache.org/dist/win32-bin/> there is a self-extracting
archive F<Perl-5.8-win32-bin.exe> containing a binary version
of perl-5.8 (compatible with ActivePerl 8xx), together with Apache 2.0
and mod_perl 2.0. See the file F<Perl-5.8-win32-bin.readme> for
1.6 +61 -26 modperl-docs/src/docs/2.0/os/win32/mpinstall
Index: mpinstall
===================================================================
RCS file: /home/cvs/modperl-docs/src/docs/2.0/os/win32/mpinstall,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- mpinstall 8 Jun 2003 18:01:29 -0000 1.5
+++ mpinstall 6 Jul 2003 17:33:18 -0000 1.6
@@ -10,27 +10,28 @@
use warnings;
use ExtUtils::MakeMaker;
use LWP::Simple;
-use Archive::Tar;
-use Compress::Zlib;
use File::Copy;
use Config;
use Safe;
use Digest::MD5;
use IO::File;
require Win32;
+require File::Spec;
die "This only works for Win32" unless $^O =~ /Win32/i;
die "No mod_perl ppm package available for this Perl" if ($] < 5.006001);
my ($apache2, $apache);
+my @drives = drives();
# find a possible Apache2 directory
APACHE2: {
- for my $drive ('C'..'G') {
+ for my $drive (@drives) {
for my $p ('Apache2', 'Program files/Apache2',
- 'Program Files/Apache Group/Apache2') {
- if (-d "$drive:/$p") {
- $apache2 = "$drive:/$p";
+ 'Program Files/Apache Group/Apache2') {
+ my $candidate = File::Spec->catpath($drive, $p);
+ if (-d $candidate) {
+ $apache2 = $candidate;
last APACHE2;
}
}
@@ -45,11 +46,12 @@
# if no Apache2, try to find Apache1
unless ($apache2) {
APACHE: {
- for my $drive ('C'..'G') {
+ for my $drive (@drives) {
for my $p ('Apache', 'Program Files/Apache',
'Program Files/Apache Group/Apache') {
- if (-d "$drive:/$p") {
- $apache = "$drive:/$p";
+ my $candidate = File::Spec->catpath($drive, $p);
+ if (-d $candidate) {
+ $apache = $candidate;
last APACHE;
}
}
@@ -106,7 +108,12 @@
die 'Please specify an Apache directory' unless ($apache or $apache2);
my $theoryx5 = 'http://theoryx5.uwinnipeg.ca';
-my ($ppd, $tgz, $ppdfile, $tgzfile, $checksums);
+my $ppms = $theoryx5 . '/ppms/';
+my $ppmsx86 = $ppms . 'x86/';
+my $ppmpackages = $theoryx5 . '/ppmpackages/';
+my $ppmpackagesx86 = $ppmpackages . 'x86/';
+my ($ppd, $tgz, $ppdfile, $tgzfile, $checksums, $so_fetch, $so_fake);
+my $so = 'mod_perl.so';
my $cs = 'CHECKSUMS';
# set appropriate ppd and tar.gz files
@@ -120,15 +127,16 @@
if ($ans =~ /^n/i) {
$ppdfile = 'mod_perl.ppd';
$tgzfile = 'mod_perl.tar.gz';
- $ppd = $theoryx5 . '/ppmpackages/' . $ppdfile;
- $tgz = $theoryx5 . '/ppmpackages/x86/' . $tgzfile;
+ $so_fake = 'mod_perl.so';
}
else {
$ppdfile = 'mod_perl-eapi.ppd';
$tgzfile = 'mod_perl-eapi.tar.gz';
- $ppd = $theoryx5 . '/ppmpackages/' . $ppdfile;
- $tgz = $theoryx5 . '/ppmpackages/x86/' . $tgzfile;
+ $so_fake = 'mod_perl-eapi.so';
}
+ $ppd = $ppmpackages . $ppdfile;
+ $tgz = $ppmpackagesx86 . $tgzfile;
+ $so_fetch = $ppmpackagesx86 . $so_fake;
}
}
else {
@@ -136,11 +144,26 @@
if ($apache2) {
$ppdfile = 'mod_perl.ppd';
$tgzfile = 'mod_perl.tar.gz';
- $ppd = $theoryx5 . '/ppms/' . $ppdfile;
- $tgz = $theoryx5 . '/ppms/x86/' . $tgzfile;
+ $ppd = $ppms . $ppdfile;
+ $tgz = $ppmsx86 . $tgzfile;
+ $so_fake = 'mod_perl.so';
+ $so_fetch = $ppmsx86 . $so_fake;
}
else {
- die 'No mod_perl 1 package available for this perl version';
+ my $ans = prompt('Do you need EAPI support for mod_ssl?', 'no');
+ if ($ans =~ /^n/i) {
+ $ppdfile = 'mod_perl-1.ppd';
+ $tgzfile = 'mod_perl-1.tar.gz';
+ $so_fake = 'mod_perl-1.so';
+ }
+ else {
+ $ppdfile = 'mod_perl-eapi-1.ppd';
+ $tgzfile = 'mod_perl-eapi-1.tar.gz';
+ $so_fake = 'mod_perl-eapi-1.so';
+ }
+ $ppd = $ppms . $ppdfile;
+ $tgz = $ppmsx86 . $tgzfile;
+ $so_fetch = $ppmsx86 . $so_fake;
}
}
@@ -156,6 +179,10 @@
getstore($tgz, $tgzfile);
print " done!\n";
die "Failed to fetch $tgz" unless -e $tgzfile;
+print "Fetching $so_fetch ...";
+getstore($so_fetch, $so_fake);
+print " done!\n";
+die "Failed to fetch $so_fetch" unless -e $so_fake;
print "Fetching $checksums ...";
getstore($checksums, $cs);
print " done!\n";
@@ -165,6 +192,10 @@
unless (verifyMD5($tgzfile)) {
die qq{CHECKSUM check for "$tgzfile" failed.\n};
}
+ unless (verifyMD5($so_fake)) {
+ die qq{CHECKSUM check for "$so_fake" failed.\n};
+ }
+ rename($so_fake, $so) or die "Rename of $so_fake to $so failed: $!";
}
else {
die "Failed to fetch $checksums - cannot verify CHECKSUMS.";
@@ -190,14 +221,6 @@
print "\n@args\n";
system(@args) == 0 or die "system @args failed: $?";
-# extract mod_perl.so from the tar.gz file
-my $so = 'mod_perl.so';
-my $archive = Archive::Tar->new($tgzfile, 1);
-print "\nExtracting mod_perl.so ...";
-$archive->extract($so);
-die "Extraction of $so failed" unless (-e $so);
-print " done!\n";
-
# figure out where to place mod_perl.so
my $modules = $apache ? "$apache/modules" : "$apache2/modules";
$modules = prompt("Where should $so be placed?", $modules);
@@ -228,7 +251,7 @@
# clean up, if desired
my $ans = prompt("Remove temporary installation files from $tmp?", 'yes');
if ($ans =~ /^y/i) {
- unlink ($ppdfile, $old, $tgzfile, $cs)
+ unlink ($ppdfile, $old, $tgzfile, $cs, $so)
or warn "Cannot unlink files from $tmp: $!";
}
@@ -307,3 +330,15 @@
return $file;
}
+sub drives {
+ my @drives = ();
+ eval{require Win32API::File;};
+ return map {"$_:\\"} ('C' .. 'Z') if $@;
+ my @r = Win32API::File::getLogicalDrives();
+ return unless @r > 0;
+ for (@r) {
+ my $t = Win32API::File::GetDriveType($_);
+ push @drives, $_ if ($t == 3 or $t == 4);
+ }
+ return @drives > 0 ? @drives : undef;
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: docs-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: docs-cvs-help@perl.apache.org