sorry, some scripts ahead; but hopefully of some use to someone, they were for me. cheers, lars On Mon, Jun 24, 2002 at 12:59:50AM +0200, Roman Drahtmueller wrote:
Fou4s is not picking up the apache update for 7.1. It appears that SuSE has not posted the file to "patches" yet, although the actual RPMs have been posted. As long as the package description is missing, both YOU and fou4s will not work. I just verified that it is not on ftp.gwdg.de yet. Would be nice ...
Dealing with it.
Has this fallen through the cracks? There still is no patch description posted.
It's partly solved - we have multiple architectures that don't build due to heat problems that we can't solve easily. We have the necessary cooling power, but a defect forces us to turn off. The patch files can't be written until the archs have built.
Be sure it hasn't slipped through.
Thanks, Roman.
in the mean time, what about % mirror mirror.get_ls-laRt % parse_listings_for_newer_rpm_versions SuSE-updates/i386/update/7.1/ls-laRt > available_newer_versions % filenames_to_wget_commands < available_newer_versions > wget.sh % less wget.sh % vi wget.sh % bash wget.sh you will need perl, mirror, wget mirror.get_ls-laRt looks like ------------------------------ # get the directory structure and recursive directory listing # adjust this to your nearest mirror site and your local directory structure package=patches site=ftp.gwdg.de # Keep all local_dirs relative to here local_dir=/home/lars/SuSE-updates/i386/update/7.1/ remote_dir=/pub/linux/suse/ftp.suse.com/suse/i386/update/7.1/ store_remote_listing=ls-laRt # ls_lR_file=ls-laRt passive_ftp=true do_deletes=false get_missing=no ------------------------------ parse_listings_for_newer_rpm_versions is ------------------------------ #!/usr/bin/perl sub vcmp { # this only works if the arguments have comparable structure, # i.e. have the same versioning scheme # it *will* break if old version is 20010512-7 and new version 2.5.4-8 my ($a,$b)=@_; $a =~ s/(\d+)/sprintf "%04i",$1/eg; $b =~ s/(\d+)/sprintf "%04i",$1/eg; $a cmp $b; }; # reaad in locally installe packe list, remember the versions $|=1; open IN,"rpm -qa|" or die "cannot open 'rpm -qa|': $!\n"; print STDERR "parsing rpm -qa| ... "; while (<IN>) { /(.*)-([^-]+)-(\d+)/; $installed{$1}="$2-$3"; } print STDERR "ok\n"; close IN; require "lsparse.pl"; # lsparse prints each line to main'STORE. Or I did not find the right # function/parameters. anyways, just mute it. open STORE,">/dev/null" or die "could not STORE>/dev/null\n"; open IN,$ARGV[0] or die "cannot open $ARGV[0]: $!\n"; while (@ls_line=lsparse'line_unix(*IN)) { # ' to make vim happy last if $ls_line[0] eq ""; if ($ls_line[0] =~ m|/([^/]*?)-([^-]+)-(\d+)(\.i386)?.rpm|) { print "# $1\t$installed{$1}\t$2-$3\n$ls_line[0]\n" if $installed{$1} and vcmp("$2-$3",$installed{$1}) > 0; } else { # print STDERR "unmatched filename $ls_line[0]\n"; } } ------------------------------ and filenames_to_wget_commands is ------------------------------ #!/usr/bin/perl # adjust this and --cut-dirs below to your mirror site $BASE_URL='ftp://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/suse/update/7.1'; $AbsolutWGET= "/usr/bin/wget --tries=2 --passive-ftp --directory-prefix=$DATA_DIR --mirror"; $WGET= "$AbsolutWGET --no-host-directories --cut-dirs=5"; $dontget = qr(/kernel/); $getonly = ""; # qr(/n2/); while (<>) { next if /^#/; next if /$dontget/; next if $getonly and not /$getonly/; s|^\.|$WGET $BASE_URL/|; print; } ------------------------------