]> git.donarmstrong.com Git - wannabuild.git/blobdiff - lib/WB/QD.pm
include the binary epoch (+b...) within any version number
[wannabuild.git] / lib / WB / QD.pm
index 059d6b67433a2e097b51a8c630fb138ecd492222..16b030639a415dac11be23256c38fe473a82d43f 100644 (file)
@@ -3,6 +3,7 @@ package WB::QD;
 use strict;
 use IO::Uncompress::AnyInflate qw(anyinflate);
 use Dpkg::Version qw(vercmp);
+use Data::Dumper;
 
 sub readsourcebins {
     my $arch = shift;
@@ -60,14 +61,15 @@ sub readsourcebins {
         while(<$P>) {
             my $p;
             /^Version:\s*(\S+)$/mi and $p->{'version'} = $1;
+            /^Version:\s*(\S+)\+b([0-9]+)$/mi and $p->{'version'} = $1 and $p->{'binnmu'} = $2;
             /^Architecture:\s*(\S+)$/mi and $p->{'arch'} = $1;
             /^Package:\s*(\S+)$/mi and $p->{'binary'} = $1;
             /^Package:\s*(\S+)$/mi and $p->{'source'} = $1;
             /^Source:\s*(\S+)$/mi and $p->{'source'} = $1;
             /^Source:\s*(\S+)\s+\((\S+)\)$/mi and $p->{'source'} = $1 and $p->{'version'} = $2;
-            $p->{'version'} =~ /(\S+)\+b([0-9]+)/ and $p->{'version'} = $1 and $p->{'binnmu'} = $2;
 
-            $binary->{$p->{'binary'}} = { 'version' => $p->{'version'}, 'arch' => $p->{'arch'}} unless $binary->{$p->{'binary'}} and vercmp($binary->{$p->{'binary'}->{'version'}}, $p->{'version'}) < 0;
+            next unless $p->{'arch'} eq 'all' || $p->{'arch'} eq ${arch};
+            $binary->{$p->{'binary'}} = { 'version' => $p->{'version'}, 'arch' => $p->{'arch'}} unless $binary->{$p->{'binary'}} and vercmp($binary->{$p->{'binary'}}->{'version'}, $p->{'version'}) < 0;
 
             #next if $pas->{$p->{'binary'}} && pasignore($pas->{$p->{'binary'}}, $arch);
             next if $p->{'arch'} eq 'all';
@@ -95,9 +97,8 @@ sub readsourcebins {
         delete $srcs->{$k}->{'compiled'};
         $srcs->{$k}->{'status'} = 'installed' if $srcs->{$k}->{'arch'} && $srcs->{$k}->{'arch'} eq 'all';
 
-        #my $p = $pas->{$k};
-        #$p ||= $pas->{'%'.$k};
-        #$srcs->{$k}->{'status'} = 'not-for-us' if pasignore($p, $arch);
+        $srcs->{$k}->{'version'} = $srcs->{$k}->{'version'}."+b".$srcs->{$k}->{'binnmu'} if $srcs->{$k}->{'binnmu'};
+
         if (pasignore($pas->{'%'.$k}, $arch)) {
             $srcs->{$k}->{'status'} = 'not-for-us';
             next;