--- g-cpan.pl 2003-01-08 19:57:48.000000000 -0800 +++ g-cpan.pl 2003-01-08 21:20:02.000000000 -0800 @@ -5,6 +5,8 @@ # # History: +# 01/08/03: jrray@gentoo.org: remove dependency on Digest::MD5 +# # 01/07/03: jrray@gentoo.org: getting the way subroutines are fed variables # sorted out (they're in @_) # Clean out module_check, unnecessary temp variables are evil. @@ -47,7 +49,8 @@ use File::Spec; use File::Path; use CPAN; -use Digest::MD5; +eval 'use Digest::MD5;'; +my $have_digestmd5 = $@ ? 0 : 1; # output error if no arguments unless (@ARGV) { @@ -241,16 +244,17 @@ my $localfile = $pack->{localfile}; ( my $base = $file ) =~ s/.*\/(.*)/$1/; + my $md5digest; + if ($have_digestmd5) { open( DIGIFILE, $localfile ) or die "Can't open '$file': $!"; binmode(DIGIFILE); - - my $md5digest = Digest::MD5->new; - while () { - $md5digest->add($_); - } + $md5digest = Digest::MD5->new->addfile(*DIGIFILE)->hexdigest; close(DIGIFILE); + } else { + ($md5digest = qx(/usr/bin/md5sum $localfile)) =~ s/^(.*?)\s.*$/$1/s; + } - my $md5string = sprintf "MD5 %s %s %d", $md5digest->hexdigest, $base, + my $md5string = sprintf "MD5 %s %s %d", $md5digest, $base, -s $localfile; # make ebuilds for all the prereqs @@ -260,7 +264,6 @@ create_ebuild( $obj, $dir, $file, $prereq_pm, $md5string ); push @ebuild_list, $dir; - } sub clean_up {