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

show non-candidates as fallback for virtual packages (Closes: #578385)

David Kalnischkies лет назад: 16
Родитель
Сommit
3b796dfc90
2 измененных файлов с 14 добавлено и 6 удалено
  1. 13 6
      cmdline/apt-get.cc
  2. 1 0
      debian/changelog

+ 13 - 6
cmdline/apt-get.cc

@@ -1147,20 +1147,27 @@ bool TryToInstall(pkgCache::PkgIterator Pkg,pkgDepCache &Cache,
 		  Pkg.FullName(true).c_str());
 	 
 	 pkgCache::PrvIterator I = Pkg.ProvidesList();
+	 unsigned short provider = 0;
 	 for (; I.end() == false; I++)
 	 {
 	    pkgCache::PkgIterator Pkg = I.OwnerPkg();
 	    
 	    if (Cache[Pkg].CandidateVerIter(Cache) == I.OwnerVer())
 	    {
+	       c1out << "  " << Pkg.FullName(true) << " " << I.OwnerVer().VerStr();
 	       if (Cache[Pkg].Install() == true && Cache[Pkg].NewInstall() == false)
-		  c1out << "  " << Pkg.FullName(true) << " " << I.OwnerVer().VerStr() <<
-		  _(" [Installed]") << endl;
-	       else
-		  c1out << "  " << Pkg.FullName(true) << " " << I.OwnerVer().VerStr() << endl;
-	    }      
+		  c1out << _(" [Installed]");
+	       c1out << endl;
+	       ++provider;
+	    }
 	 }
-	 c1out << _("You should explicitly select one to install.") << endl;
+	 // if we found no candidate which provide this package, show non-candidates
+	 if (provider == 0)
+	    for (I = Pkg.ProvidesList(); I.end() == false; I++)
+	       c1out << "  " << I.OwnerPkg().FullName(true) << " " << I.OwnerVer().VerStr()
+		<< _(" [Not candidate version]") << endl;
+	 else
+	    c1out << _("You should explicitly select one to install.") << endl;
       }
       else
       {

+ 1 - 0
debian/changelog

@@ -19,6 +19,7 @@ apt (0.7.26~exp4) experimental; urgency=low
     - display MD5Sum in --print-uris if not forced to use another method
       instead of displaying the strongest available (Closes: #576420)
     - regex for package names executed on Grp- not PkgIterator
+    - show non-candidates as fallback for virtual packages (Closes: #578385)
   * apt-pkg/deb/dpkgpm.cc:
     - remove Chroot-Directory from files passed to install commands.
       Thanks to Kel Modderman for report & patch! (Closes: #577226)