tag 187670 + patch
thanks

This untested patch should cause packages.debian.org to show the
package information for the highest version in the distribution.

--- htmlscripts/create_package_pages.pl.~1.4.~  Mon Mar 24 19:55:25 2003
+++ htmlscripts/create_package_pages.pl Mon Apr  7 15:18:40 2003
@@ -181,25 +181,25 @@
 sub process_package() {
        chop $package_info;
        @package_pieces = split(/\n\b/, $package_info);
+       foreach (@field) {
+               $newpackage{$_} = '';
+       }
        foreach (@package_pieces) {
                if (/^Package:\s+(.*)$/) {
                        $pack = $1;
-                       foreach (@field) {
-                               $package{$pack}{$_} = '';
-                       }
-                       $package{$pack}{'source-dir'} = [];
-                       $package{$pack}{'source-files'} = [];
+                       $newpackage{'source-dir'} = [];
+                       $newpackage{'source-files'} = [];
                }
                elsif (/^Description:\s+(.*?)\n(.*)$/so) {
-                       $package{$pack}{'short-desc'} = $1;
+                       $newpackage{'short-desc'} = $1;
                        #$long_desc = $2;
                        #$long_desc =~ s/(\n|\A) /\n/sgo;
                        #$long_desc =~ 
s,(http://[\S~-]+?/?)([)]?[']?[.\,]?(\s|$)),<a href=\"$1\">$1</a>$2,go;
-                       $package{$pack}{'long-desc'} = $2;
+                       $newpackage{'long-desc'} = $2;
                }
                elsif (/^Description:\s+(.*?)$/so) {
-                       $package{$pack}{'short-desc'} = $1;
-                       $package{$pack}{'long-desc'} = "Package did not provide 
a long description. A bug ".
+                       $newpackage{'short-desc'} = $1;
+                       $newpackage{'long-desc'} = "Package did not provide a 
long description. A bug ".
                                        "should be filed against it.";
                }
                elsif 
(/^(pre-depends|depends|recommends|suggests|provides|conflicts|replaces):\s+(.*)$/sio)
 {
@@ -208,53 +208,70 @@
                        $value =~ s/\n//sgo;
                        $value =~ s/\s*,\s*/,/go;
                        $value =~ s/\s*\|\s*/|/go;
-                       $package{$pack}{lc($dependency_type)} = lc($value);
+                       $newpackage{lc($dependency_type)} = lc($value);
                }
                elsif (/^section:\s+(.*)$/io) {
                        $value = $1;
 # TODO: fix it to differentiate between non-US/{main,contrib,non-free}
                        if ($value =~ /non-us/io) {
-                               $package{$pack}{'distrib'} = lc($value);
-                               $package{$pack}{'section'} = 'non-us';
+                               $newpackage{'distrib'} = lc($value);
+                               $newpackage{'section'} = 'non-us';
                        } elsif ($value =~ /(contrib|non-free)/io) {
-                               $package{$pack}{'distrib'} = lc($1);
-                               $package{$pack}{'section'} = lc($value);
-                               $package{$pack}{'section'} =~ s,^(.*)/,,;
+                               $newpackage{'distrib'} = lc($1);
+                               $newpackage{'section'} = lc($value);
+                               $newpackage{'section'} =~ s,^(.*)/,,;
 # TODO: likewise
                        } elsif ($experimental) {
-                               $package{$pack}{'distrib'} = 'experimental';
-                               $package{$pack}{'section'} = lc($value);
+                               $newpackage{'distrib'} = 'experimental';
+                               $newpackage{'section'} = lc($value);
                        } else {
-                               $package{$pack}{'distrib'} = 'main';
-                               $package{$pack}{'section'} = lc($value);
+                               $newpackage{'distrib'} = 'main';
+                               $newpackage{'section'} = lc($value);
                        }
                }
                elsif (/^source:\s+(\S+)(?:\s+\((.+)\))?$/io) {
-                       $package{$pack}{'source'} = $1;
-                       $package{$pack}{'source-version'} = $2 if (defined $2);
+                       $newpackage{'source'} = $1;
+                       $newpackage{'source-version'} = $2 if (defined $2);
                }
                elsif (/^([\w-]+):\s+(.*)$/so) {
-                       $package{$pack}{lc($1)} = $2;
+                       $newpackage{lc($1)} = $2;
                }
                else {
                        die "Bad entry for package $pack";
                }
                if (m,^Filename: pool/updates/,i) {
-                       $package{$pack}{'distrib'} = 'security';
+                       $newpackage{'distrib'} = 'security';
                }
        }
+       
        # print $pack."\n";
-       # foreach (keys %{$package{$pack}}) {
+       # foreach (keys %{$newpackage}) {
        #       if (/source-files/) {
        #               print "  source-files:\n";
-       #               foreach (@{$package{$pack}{'source-files'}}) {
+       #               foreach (@{$newpackage{'source-files'}}) {
        #                       print "     $_\n";
        #               }
        #       }
        #       else {
-       #               print "  $_ = $package{$pack}{$_}\n";
+       #               print "  $_ = $newpackage{$_}\n";
        #       }
        # }
+
+       if (! exists ($package{$pack})) {
+               foreach (@field) {
+                       $package{$pack}{$_} = $newpackage{$_}
+               }
+       }
+       else {
+               system("dpkg", "--compare-versions",
+                      $package{$pack}{'version'}, '<',
+                      $newpackage{'version'});
+               if (($? >> 8) == 0) {
+                       foreach (@field) {
+                               $package{$pack}{$_} = $newpackage{$_}
+                       }
+               }
+       }
 }
 
 sub print_everything() {


Matt
-- 
It's most certainly GNU/Linux, not Linux.  Read more at
http://www.gnu.org/gnu/why-gnu-linux.html.

Reply via email to