]> git.donarmstrong.com Git - wannabuild.git/blobdiff - lib/WB/QD.pm
WB::QD: Comment the code a bit more.
[wannabuild.git] / lib / WB / QD.pm
index 6a1a067ba9bb110c2f9b5702f3d3b99f4eabf226..83527bc5f9775010f7cdfd7654621d12a954566b 100644 (file)
@@ -47,11 +47,9 @@ sub readsourcebins {
             /^Build-Conflicts:\s*(.*)$/mi and $p->{'conflicts'} = $1;
 
             next unless $p->{'name'} and $p->{'version'};
-            next if $p->{'arch'} eq 'all';
             foreach my $tarch (split(/\s+/, $p->{'arch'})) {
                 $p->{'for-us'} = 1 if debarch_is($arch, $tarch);
             }
-            delete $p->{'arch'};
 
             # ignore if package already exists with higher version
             if ($srcs->{$p->{'name'}}) {
@@ -78,16 +76,28 @@ sub readsourcebins {
             /^Source:\s*(\S+)\s+\((\S+)\)$/mi and $p->{'source'} = $1 and $p->{'version'} = $2;
 
             # consider packages as non-existant if it's all but outdated
+            # arch:all and ver(binary) < ver(source) => skip
             next if $p->{'arch'} eq 'all' && $srcs->{$p->{'source'}} && $srcs->{$p->{'source'}}->{'version'} && vercmp($srcs->{$p->{'source'}}->{'version'}, $p->{'version'}) > 0;
+            # not for the current architecture or arch:all => skip
             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;
+            # register the binary if there isn't a newer one in the hash yet
+            $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);
+
+            # only continue if it's arch-specific...
             next if $p->{'arch'} eq 'all';
+
+            # annotate the source package if present, continue otherwise
             next unless $srcs->{$p->{'source'}};
+
             $srcs->{$p->{'source'}}->{'compiled'} = 1;
+
+            # TODO: ???
             next unless $srcs->{$p->{'source'}}->{'version'} eq $p->{'version'};
             $srcs->{$p->{'source'}}->{'installed'} = 1;
+
             next unless $p->{'binnmu'};
             next if ($srcs->{$p->{'source'}}->{'binnmu'}) && ($srcs->{$p->{'source'}}->{'binnmu'} > $p->{'binnmu'});
             $srcs->{$p->{'source'}}->{'binnmu'} = $p->{'binnmu'};
@@ -113,9 +123,13 @@ sub readsourcebins {
         }
         delete $srcs->{$k}->{'for-us'};
 
-        #my $p = $pas->{$k};
-        #$p ||= $pas->{'%'.$k};
-        #$srcs->{$k}->{'status'} = 'not-for-us' if pasignore($p, $arch);
+        if ($srcs->{$k}->{'arch'} eq 'all') {
+            $srcs->{$k}->{'status'} = 'arch-all-only';
+            delete $srcs->{$k}->{'arch'};
+            next;
+        }
+        delete $srcs->{$k}->{'arch'};
+        
         if (pasignore($pas->{'%'.$k}, $arch)) {
             $srcs->{$k}->{'status'} = 'packages-arch-specific';
             next;