Package: whohas Version: 0.24-1 Severity: normal -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Hi, The function debian search to all suite (so 4 requests). The attached patch use the ubuntu function (renamed Debian ;) to search on both packages.{debian.org,ubuntu.com} with a flag and drop the unused debian function. I've also restrict the matching version by dropping debports (in Debian case). - -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.32-26-generic (SMP w/4 CPU cores) Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages whohas depends on: ii libwww-perl 5.837-1 simple and consistent interface to ii libxml-simple-perl 2.18-3 Perl module for reading and writin ii perl 5.10.1-16 Larry Wall's Practical Extraction whohas recommends no packages. whohas suggests no packages. - -- no debconf information -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iQIcBAEBCAAGBQJM+R5cAAoJEJmGUYuaqqCl9IkP+wT+FiH7tDGVRmH1u+1GHgMn f/BsC83NkUdkDJckoXLkhKB2HUudH6/cyYDifeETPmWyCw4Bn3JduSb9CdDMssqX KZv/cYpPwZmkKsIhWPRcJEJZ1ZZHHFr4AwlhK8Wwi5jVYBQ6FGc/gSILZXSAAAMl AjOh9jy39Yhm7qAtVlIGAf2NkWGA4C7Ld7wTeYRoh/h1Oc+he48YAUBg5Rs8WYdi n1vleMwGVun240jdq0bJYRpvbAlcFcpplihisiSND/buhWX+2XJx9RbpQSY53gt/ Iw0ivM6cMMHkU2NNYbOV8rQtZac9fjZYG0TsefTOenB5c67QaZst+PUp3hLBUlpK CmkxI3yTxW+dgEQtbtQWHPIkR175zPBUzd0hJz+lgWnsZn3fYGz4XyL3g066z+Ud 7q5B5QZpiT/UkOCf6ljRIvflvOSVKQJhOdMol0aEQ5bdAtfEobaUHxmkuJlJNp/b D4Ah/bUMygyECS2MT3Jf9D/MZkTWlbZbadSeOZ0qnBYNVRJEdMq6Fz0L6Wm83Qu5 dkanRksSgqFxHdSvf4ta+kKmpN9d2/NPWuUsB9t59tGC2qgb4wF8pMMhcVOYqDKV tfsjU596jVAprTMhNGCkD63vOm0i3qMvu13hChhPCojKWBcFZVujhDJKFCbsly7B 4HUQ6UcALfQ7tw5ts1kG =VxmI -----END PGP SIGNATURE-----
--- /usr/bin/whohas 2010-04-05 00:42:48.000000000 +0200 +++ /usr/bin/whohas.new 2010-12-03 17:32:57.010903018 +0100 @@ -190,7 +190,7 @@ $thrs[$here++] = threads->new(\&sourcemage, $ARGV[0]); } if ($ubuntu_bool == 1) { - $thrs[$here++] = threads->new(\&ubuntu, $ARGV[0]); + $thrs[$here++] = threads->new(\&debian, $ARGV[0],"Ubuntu"); } if ($gentoo_bool == 1) { $thrs[$here++] = threads->new(\&gentoo, $ARGV[0]); @@ -256,7 +256,7 @@ &sourcemage( $ARGV[0]); } if ($ubuntu_bool == 1) { - &ubuntu( $ARGV[0]); + &debian( $ARGV[0],"Ubuntu"); } if ($opkg_bool == 1) { &opkg( $ARGV[0]); @@ -336,9 +336,14 @@ return ($_[0]); } -sub ubuntu { - my $base = "http://packages.ubuntu.com"; - my $query = $base."/search?keywords=".$_[0]."&searchon=names&suite=".$ubuntu_current_release."§ion=all"; +sub debian { + my $base = "http://packages.debian.org"; + my $variant = "Debian"; + if ($_[1] =~ /Ubuntu/) { + $base = "http://packages.ubuntu.com"; + $variant = "Ubuntu"; + } + my $query = $base."/search?keywords=".$_[0]."&searchon=names&suite=all§ion=all"; my @lines = split /\n/, &fetchdoc($query); my @names; my @versions; @@ -362,9 +367,19 @@ push @groups, $parts[4]; push @urls, $base.$parts[2]; push @dates, ""; - @parts = split />|<\/strong>/, $lines[$i+1]; + if ($variant =~ /Ubuntu/) { + @parts = split />|<\/strong>/, $lines[$i+1]; + } + else { + @parts = split /\(|\)/, $parts[3]; + } push @repos, $parts[1]; - @parts = split />|: /, $lines[$i+3]; + # we don't want Debian debports listed + my $version_line = 3; + if ($lines[$i+$version_line] =~ /debports/) { + $version_line = 5; + } + @parts = split />|: /, $lines[$i+$version_line]; push @versions, $parts[1]; $i += 8; } @@ -390,7 +405,7 @@ } } for (my $i = 0; $i < @repos; $i++) { - &pretty_print($cols,@columns,"Ubuntu",$names[$i],$versions[$i],$sizes[$i],$dates[$i],$repos[$i],$urls[$i]); + &pretty_print($cols,@columns,$variant,$names[$i],$versions[$i],$sizes[$i],$dates[$i],$repos[$i],$urls[$i]); } return (); } @@ -1019,60 +1034,6 @@ } } -sub debian { - my $debianbase = "http://packages.debian.org"; - my @names; - my @repos; - my @groups; - my @versions; - my @urls; - my @sizes; - my @dates; - my @dists = ( 'stable', 'testing', 'unstable', 'experimental' ); - for (my $x = 0; $x < @dists; $x++) { - my @lines = split /\n/, &fetchdoc($debianbase."/search?keywords=".$_[0]."&searchon=names&suite=".$dists[$x]."§ion=all"); - for (my $i = 50; $i < @lines; $i++) { - if ($lines[$i] =~ /<h3>Package /) { - my $name = (split /h3>Package |<\/h3>/, $lines[$i])[1]; - push @names, $name; - my @parts = split /href\=\"|\"\>|<\/a\>/, $lines[$i+3]; - $parts[4] =~ s/ \(|\)://g; - push @groups, $parts[4]; - push @repos, $dists[$x]; - push @urls, $debianbase.$parts[2]; - push @dates, ""; - @parts = split />|: /, $lines[$i+6]; - $parts[1] =~ s/ \[\<strong.*//; - push @versions, $parts[1]; - $i += 11; - } - } - } - if ($goDeep == 1) { - if ($useThreads == 1) { - my @thr; - for (my $i = 0; $i < @urls; $i++) { - push @thr, threads->new(\&debian_sizes, $urls[$i]); - } - for (my $i = 0; $i < @thr; $i++) { - push @sizes, $thr[$i]->join; - } - } else { - for (my $i = 0; $i < @urls; $i++) { - push @sizes, &debian_sizes($urls[$i]); - } - } - } else { - for (my $i = 0; $i < @urls; $i++) { - push @sizes, ""; - } - } - for (my $i = 0; $i < @repos; $i++) { - &pretty_print($cols,@columns,"Debian",$names[$i],$versions[$i],$sizes[$i],$dates[$i],$repos[$i],$urls[$i]); - } - return (); -} - sub aur { my $aurbase = "http://aur.archlinux.org"; my $stop;