Bug#187670: tag 187670 + patch
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 to: