randyk 2003/01/02 13:56:50
Modified: src/docs/1.0/os/win32 config.cfg install.pod
src/docs/2.0/os/win32 config.cfg install.pod
Added: src/docs/1.0/os/win32 get-perl-win32-bin
src/docs/2.0/os/win32 get-Perl-5.8-win32-bin
Log:
added script to fetch, build, and install all-in-one packages.
Revision Changes Path
1.8 +1 -0 modperl-docs/src/docs/1.0/os/win32/config.cfg
Index: config.cfg
===================================================================
RCS file: /home/cvs/modperl-docs/src/docs/1.0/os/win32/config.cfg,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- config.cfg 21 Dec 2002 07:26:16 -0000 1.7
+++ config.cfg 2 Jan 2003 21:56:50 -0000 1.8
@@ -17,6 +17,7 @@
copy_glob => [qw(
mpinstall
+ get-perl-win32-bin
)],
changes => 'Changes.pod',
1.20 +4 -0 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.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- install.pod 2 Jan 2003 20:51:35 -0000 1.19
+++ install.pod 2 Jan 2003 21:56:50 -0000 1.20
@@ -232,6 +232,10 @@
L<ftp://theoryx5.uwinnipeg.ca/pub/other/perl-win32-bin/>
contains this distribution split across multiple files -
see F<README.join> for instructions on how to join them.
+Alternatively, if you have Perl already, you can get the script
+F<get-perl-win32-bin> which, when invoked as
+C<perl get-perl-win32-bin>, will fetch and join
+the files for you.
As well as including a number of non-core modules, both of these
packages contain mod_perl. See the documentation on the web sites and
1.1 modperl-docs/src/docs/1.0/os/win32/get-perl-win32-bin
Index: get-perl-win32-bin
===================================================================
#####################################################################
# A Perl script to retrieve and join split files
# making up a Win32 Perl/Apache binary distribution
#
# Files created by hjsplit (http://www.freebyte.com/hjsplit/)
# with the joining accomplished by hj-join
#
# This script is Copyright 2003, by Randy Kobes,
# and may be distributed under the same terms as Perl itself.
# Please report problems to Randy Kobes <[EMAIL PROTECTED]>
#####################################################################
use strict;
use warnings;
use LWP::Simple;
use Safe;
use Digest::MD5;
use IO::File;
use ExtUtils::MakeMaker;
my $dist = 'perl-win32-bin';
my $exe = $dist . '.exe';
my $theoryx5 = 'ftp://theoryx5.uwinnipeg.ca/pub/other' . '/' . $dist;
my $max = 9;
print <<"END";
This script will fetch and then join the files needed for
creating the Perl/Apache Win32 binary distribution
$exe from $theoryx5/.
If the file transfer is interrupted before all the neccessary
files are joined, run the script again in the same directory;
files successfully fetched earlier will not be downloaded again.
END
my $ans = prompt("Fetch $exe?", 'yes');
die "Installation aborted" unless ($ans =~ /^y/i);
my $cs = 'CHECKSUMS';
my $checksums = $theoryx5 . '/' . $cs;
my $join = 'join32.exe';
my $rjoin = $theoryx5 . '/' . $join;
# fetch the CHECKSUMS file
print "Fetching $cs ...";
getstore($checksums, $cs);
print " done!\n";
die "Failed to fetch $cs" unless (-e $cs);
# fetch the join program
unless (-e $join) {
print "Fetching $join ...";
getstore($rjoin, $join);
print " done!\n";
die "Failed to fetch $join" unless (-e $join);
unless (verifyMD5($join)) {
print qq{CHECKSUM check for "$join" failed.\n};
unlink $join or warn "Cannot unlink $join: $!";
die;
}
}
# fetch the split files
my @files;
for (1 .. $max) {
my $num = $_ < 10 ? "00$_" : "0$_";
my $file = $dist . '.exe.' . $num;
push @files, $file;
if (-e $file) {
print "Skipping $file ...\n";
next;
}
my $rfile = $theoryx5 . '/' . $file;
print "Fetching $file ...";
getstore($rfile, $file);
print " done!\n";
die "Failed to fetch $file" unless (-e $file);
unless (verifyMD5($file)) {
print qq{CHECKSUM check for "$file" failed.\n};
unlink $file or warn "Cannot unlink $file: $!";
die;
}
}
#now join them
my @args = ('join32');
system(@args);
die "Joining files to create $exe failed" unless (-e $exe);
# remove the temporary files, if desired
$ans = prompt('Remove temporary files?', 'yes');
if ($ans =~ /^y/i) {
unlink @files or warn "Cannot unlink @files: $!";
}
# run the exe, if desired
$ans = prompt("Run $exe now?", 'yes');
if ($ans =~ /^y/i) {
@args = ($exe);
system(@args);
}
else {
print "Double click on $exe to install\n";
}
# routine to verify the CHECKSUMS for a file
# adapted from the MD5 check of CPAN.pm
sub verifyMD5 {
my $file = shift;
my $fh = IO::File->new;
my $cksum;
unless (open $fh, $cs) {
warn "Could not open $cs: $!";
return;
}
local($/);
my $eval = <$fh>;
$eval =~ s/\015?\012/\n/g;
close $fh;
my $comp = Safe->new();
$cksum = $comp->reval($eval);
if ($@) {
warn $@;
return;
}
my ($is, $should);
unless (open(FILE, $file)) {
warn "Cannot open $file: $!";
return;
}
binmode(FILE);
unless ($is = Digest::MD5->new->addfile(*FILE)->hexdigest) {
warn "Could not compute checksum for $file: $!";
close(FILE);
return;
}
close(FILE);
if ($should = $cksum->{$file}->{md5}) {
my $test = $is eq $should ? 1 : 0;
printf qq{Checksum for "$file" is %s\n},
($test == 1) ? 'OK.' : 'NOT OK.';
return $test;
}
else {
warn "Checksum data for $file not present in CHECKSUMS.\n";
return;
}
}
1.9 +1 -0 modperl-docs/src/docs/2.0/os/win32/config.cfg
Index: config.cfg
===================================================================
RCS file: /home/cvs/modperl-docs/src/docs/2.0/os/win32/config.cfg,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- config.cfg 2 Jan 2003 07:56:04 -0000 1.8
+++ config.cfg 2 Jan 2003 21:56:50 -0000 1.9
@@ -17,6 +17,7 @@
copy_glob => [qw(
mpinstall
+ get-Perl-5.8-win32-bin
)],
changes => 'Changes.pod',
1.18 +5 -1 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.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- install.pod 2 Jan 2003 20:51:35 -0000 1.17
+++ install.pod 2 Jan 2003 21:56:50 -0000 1.18
@@ -220,7 +220,11 @@
fetching the whole file at once, the directory
L<ftp://theoryx5.uwinnipeg.ca/pub/other/Perl-5.8-win32-bin/>
contains this distribution split across multiple files -
-see F<README.join> for instructions on how to join them.
+see F<README.join> for instructions on how to join them. Alternatively,
+if you have Perl already, you can get the script
+F<get-Perl-5.8-win32-bin> which, when invoked as
+C<perl get-Perl-5.8-win32-bin>, will fetch and join
+the files for you.
=head1 See Also
1.1 modperl-docs/src/docs/2.0/os/win32/get-Perl-5.8-win32-bin
Index: get-Perl-5.8-win32-bin
===================================================================
#####################################################################
# A Perl script to retrieve and join split files
# making up a Win32 Perl/Apache binary distribution
#
# Files created by hjsplit (http://www.freebyte.com/hjsplit/)
# with the joining accomplished by hj-join
#
# This script is Copyright 2003, by Randy Kobes,
# and may be distributed under the same terms as Perl itself.
# Please report problems to Randy Kobes <[EMAIL PROTECTED]>
#####################################################################
use strict;
use warnings;
use LWP::Simple;
use Safe;
use Digest::MD5;
use IO::File;
use ExtUtils::MakeMaker;
my $dist = 'Perl-5.8-win32-bin';
my $exe = $dist . '.exe';
my $theoryx5 = 'ftp://theoryx5.uwinnipeg.ca/pub/other' . '/' . $dist;
my $max = 13;
print <<"END";
This script will fetch and then join the files needed for
creating the Perl/Apache Win32 binary distribution
$exe from $theoryx5/.
If the file transfer is interrupted before all the neccessary
files are joined, run the script again in the same directory;
files successfully fetched earlier will not be downloaded again.
END
my $ans = prompt("Fetch $exe?", 'yes');
die "Installation aborted" unless ($ans =~ /^y/i);
my $cs = 'CHECKSUMS';
my $checksums = $theoryx5 . '/' . $cs;
my $join = 'join32.exe';
my $rjoin = $theoryx5 . '/' . $join;
# fetch the CHECKSUMS file
print "Fetching $cs ...";
getstore($checksums, $cs);
print " done!\n";
die "Failed to fetch $cs" unless (-e $cs);
# fetch the join program
unless (-e $join) {
print "Fetching $join ...";
getstore($rjoin, $join);
print " done!\n";
die "Failed to fetch $join" unless (-e $join);
unless (verifyMD5($join)) {
print qq{CHECKSUM check for "$join" failed.\n};
unlink $join or warn "Cannot unlink $join: $!";
die;
}
}
# fetch the split files
my @files;
for (1 .. $max) {
my $num = $_ < 10 ? "00$_" : "0$_";
my $file = $dist . '.exe.' . $num;
push @files, $file;
if (-e $file) {
print "Skipping $file ...\n";
next;
}
my $rfile = $theoryx5 . '/' . $file;
print "Fetching $file ...";
getstore($rfile, $file);
print " done!\n";
die "Failed to fetch $file" unless (-e $file);
unless (verifyMD5($file)) {
print qq{CHECKSUM check for "$file" failed.\n};
unlink $file or warn "Cannot unlink $file: $!";
die;
}
}
#now join them
my @args = ('join32');
system(@args);
die "Joining files to create $exe failed" unless (-e $exe);
# remove the temporary files, if desired
$ans = prompt('Remove temporary files?', 'yes');
if ($ans =~ /^y/i) {
unlink @files or warn "Cannot unlink @files: $!";
}
# run the exe, if desired
$ans = prompt("Run $exe now?", 'yes');
if ($ans =~ /^y/i) {
@args = ($exe);
system(@args);
}
else {
print "Double click on $exe to install\n";
}
# routine to verify the CHECKSUMS for a file
# adapted from the MD5 check of CPAN.pm
sub verifyMD5 {
my $file = shift;
my $fh = IO::File->new;
my $cksum;
unless (open $fh, $cs) {
warn "Could not open $cs: $!";
return;
}
local($/);
my $eval = <$fh>;
$eval =~ s/\015?\012/\n/g;
close $fh;
my $comp = Safe->new();
$cksum = $comp->reval($eval);
if ($@) {
warn $@;
return;
}
my ($is, $should);
unless (open(FILE, $file)) {
warn "Cannot open $file: $!";
return;
}
binmode(FILE);
unless ($is = Digest::MD5->new->addfile(*FILE)->hexdigest) {
warn "Could not compute checksum for $file: $!";
close(FILE);
return;
}
close(FILE);
if ($should = $cksum->{$file}->{md5}) {
my $test = $is eq $should ? 1 : 0;
printf qq{Checksum for "$file" is %s\n},
($test == 1) ? 'OK.' : 'NOT OK.';
return $test;
}
else {
warn "Checksum data for $file not present in CHECKSUMS.\n";
return;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]