> The ISO images would be the same amount of data as the
> file tree you see now, but in a few chunks. If you only
> want to install it, you can skip the SRPMS and save a
> lot of resources. If you download with something smart
> like 'mirror' then it will only get the stuff you missed
> in your previous attempt.


There's a bug in mirror - it doesn't restart interrupted files.

It also has a y2k problem. This is easily fixed:
[summer@dugite summer]$ tail  /usr/lib/mirror/dateconv.pl
sub main'time_to_standard
{
        package dateconv;

        local( $time ) = @_;

        local( $sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst ) =
                 gmtime( $time );
        return sprintf( "%2d $months[ $mon + 1 ] %2d %02d:%02d", $mday,
1900+$year, $hour, $min );
}
[summer@dugite summer]$

The return statement here is corrected.


Here are my changes to /usr/bin/mirror - not all related to the
problem, but you will probably want them.

--- /usr/bin/mirror     Tue Jul 25 03:53:32 2000
+++ /home/summer/bin/mirror     Sat Nov 10 04:35:04 2001
@@ -219,7 +219,7 @@
 $me = $ENV{'USER'} || $ENV{'LOGNAME'};

 # Files matching this pattern are usually compressed.
-$squished = '\.(Z|z|gz)$';
+$squished = '\.(bz2|rpm|Z|z|gz)$';

 # special /bin/sh chars that must be escaped.
 $shell_metachars = '\"|\$|`|\\\\';
@@ -2485,15 +2485,24 @@
                # the timestamps of the exising temp file and the
original
                # src file match then flag a restart.
                $tmp = &filename_to_tempname( '', $dest_path );
+# JCS - I'm not entirely sure what's going on but these I know:
+#  1 restart doesn't.
+#  2  $dest_size [ $tmpi ] is always zero, and that goes to exlain 1
+
+# I think we should be looking at -s $tmp here.
+#warn "Work file " . $tmp . "\n";
                $tmpi = $dest_map{ $tmp };
                $restart = '';
-#warn "get_file = $get_file, can_restart = $can_restart, dest_size =
$dest_size[ $tmpi ], dest_time = $dest_time[ $tmpi ], src_time =
$src_time[ $srci ]\n";
+#warn "get_file=$get_file, can_restart=$can_restart,
dest_size=$dest_size[ $tmpi ], dest_time=$dest_time[ $tmpi ], src_time
= $src_time[ $srci ]\n"
+#                      unless $dest_size [ $tmpi ] = 0;
                if( $get_file &&
                   $can_restart &&
-                  $dest_size[ $tmpi ] != 0 &&
+#         $dest_size[ $tmpi ] != 0 &&
+                  -s $tmp != 0 &&
                   ($dest_time[ $tmpi ] eq $src_time[ $srci ]) ){
                        # Then this is an xfer of the same file
                        # so just restart where I left off
+warn "Restarting " . $dest_path . "\n";
                        $restart = 'r';
                }
                # x for xfer, c for compress, s for split
@@ -2675,7 +2684,8 @@
                        next;
                }

-               &msg( "Need to $XFER file $src_path as $dest_path
($attribs)\n" ) if $debug > 1;
+               &msg( "Need to $XFER file $src_path as $dest_path
($attribs)\n")
+                       if $debug > 1;

                local( $newpath ) =
                        &transfer_file( $src_path, $dest_path,
@@ -3836,7 +3846,7 @@
        eval( "flock( \$file, $kind )" );
        if( $@ =~ /unimplemented/ ){
                $can_flock = 0;
-               warn "flock not unavialable, running unlocked\n";
+               warn "flock not available, running unlocked\n";
        }
 }

[summer@dugite summer]$


Distribution vendors should incorporate these changes; I've probably
not reported them to anyone other than the author and he doesn't
respond.


--
Cheers
John Summerfield

Microsoft's most solid OS: http://www.geocities.com/rcwoolley/

Note: mail delivered to me is deemed to be intended for me, for my
disposition.

Reply via email to