Просмотр исходного кода

if there is only deb-src pick higest version in deb-src release matching

Michael Vogt лет назад: 12
Родитель
Сommit
651ae5ce5f
2 измененных файлов с 12 добавлено и 5 удалено
  1. 5 3
      cmdline/apt-get.cc
  2. 7 2
      test/integration/test-apt-get-source

+ 5 - 3
cmdline/apt-get.cc

@@ -337,11 +337,9 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
 
             if (Rel == RelTag)
             {
-               ioprintf(c1out, "Selectied version '%s' (%s) for %s\n", 
-                        Ver.c_str(), RelTag.c_str(), Src.c_str());
                Last = Parse;
                Offset = Parse->Offset();
-               break;
+               Version = Ver;
             }
          }
 
@@ -362,6 +360,10 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
          if (VerTag.empty() == false && (VerTag == Ver))
 	    break;
       }
+      if (Version != "" && RelTag != "")
+         ioprintf(c1out, "Selectied version '%s' (%s) for %s\n", 
+                  Version.c_str(), RelTag.c_str(), Src.c_str());
+
       if (Last != 0 || VerTag.empty() == true)
 	 break;
       _error->Error(_("Ignore unavailable version '%s' of package '%s'"), VerTag.c_str(), TmpSrc.c_str());

+ 7 - 2
test/integration/test-apt-get-source

@@ -15,10 +15,14 @@ insertpackage 'wheezy' 'unreleated-package' 'all' '1.0'
 insertpackage 'unstable' 'foo' 'all' '2.0'
 insertsource 'unstable' 'foo' 'all' '2.0'
 
+# its possible to have multiple src versions in the sources file, do not break
+# in this case (bts #731853)
+insertsource 'stable' 'foo' 'all' '1.5'
 insertpackage 'stable' 'foo' 'all' '1.0'
 insertsource 'stable' 'foo' 'all' '1.0'
 
-# this package exists only as source
+# this packages exists only as source
+insertsource 'wheezy' 'foo' 'all' '0.0.1'
 insertsource 'wheezy' 'foo' 'all' '0.1'
 
 setupaptarchive
@@ -46,7 +50,8 @@ Need to get 0 B of source archives.
 'file://${APTARCHIVE}/foo_1.0.dsc' foo_1.0.dsc 0 MD5Sum:d41d8cd98f00b204e9800998ecf8427e
 'file://${APTARCHIVE}/foo_1.0.tar.gz' foo_1.0.tar.gz 0 MD5Sum:d41d8cd98f00b204e9800998ecf8427e" aptget source -q --print-uris foo=1.0
 
-# select by release with no binary package (Bug#731102)
+# select by release with no binary package (Bug#731102) but ensure to get
+# higest version
 testequal "$HEADER
 Selectied version '0.1' (wheezy) for foo
 Need to get 0 B of source archives.