]> git.deb.at Git - deb/packages.git/blobdiff - bin/parse-packages
Skip arch:all for 3rd party repositories that provide new archs
[deb/packages.git] / bin / parse-packages
index ca77fbc7c66b86e1f0666c9eef54242d44a7f849..c411d340c6800fe4f6b9a2de8af79beaa4454f11 100755 (executable)
@@ -74,6 +74,9 @@ for my $suite (@SUITES) {
                }
                # Skip double package
                next if exists($packages_all_db{"$data{'package'} $data{'architecture'} $data{'version'}"});
+               # Skip arch:all for amd64&kfreebsd, too often broken
+               next if ($archive eq 'amd64' or $archive eq 'kfreebsd')
+                   and $data{architecture} eq 'all';
 
                if ($data{'provides'}) {
                    foreach (split /\s*,\s*/, $data{'provides'}) {
@@ -121,14 +124,14 @@ for my $suite (@SUITES) {
                $priorities{$suite}{$data{priority}}++;
                my $pkgitem = "$archive $suite $data{'architecture'} ".
                        "$section $subsection $data{'priority'} $data{'version'} $sdescr\0";
-               my $previtem = $packages_small{$data{'package'}}{$suite}{$data{'architecture'}}
-                   || $pkgitem;
+               my $previtem = ($packages_small{$data{'package'}}{$suite}{$data{'architecture'}}
+                   ||= $pkgitem);
                $packages_small{$data{'package'}}{$suite}{$data{'architecture'}} = $pkgitem
-                   if version_cmp($data{'version'}, (split /\s/o, $previtem)[6]) >= 0;
-               $previtem = $packages_small{$data{'package'}}{$suite}{'any'}
-                   || $pkgitem;
+                   if version_cmp($data{'version'}, (split /\s/o, $previtem)[6]) > 0;
+               $previtem = ($packages_small{$data{'package'}}{$suite}{'any'}
+                   ||= $pkgitem);
                $packages_small{$data{'package'}}{$suite}{'any'} = $pkgitem
-                   if version_cmp($data{'version'}, (split /\s/o, $previtem)[6]) >= 0;
+                   if version_cmp($data{'version'}, (split /\s/o, $previtem)[6]) > 0;
                $sources_packages{$src} .=
                        "$archive $suite $data{'package'} $data{'version'} $data{'architecture'}\000";
                $data{archive} = $archive;