]> git.saurik.com Git - apt.git/blobdiff - apt-private/private-install.cc
refactor dpkg execution in deb/debsystem
[apt.git] / apt-private / private-install.cc
index e61c4ca51e1d3507fa416348c52db1212527ff9f..28b8d9a7b7abe5dff374fb5a64c2a2a8a3b4fee1 100644 (file)
@@ -560,13 +560,8 @@ bool DoCacheManipulationFromCommandLine(CommandLine &CmdL, CacheFile &Cache,
 
       if (Fix != NULL && _config->FindB("APT::Get::AutoSolving", true) == true)
       {
 
       if (Fix != NULL && _config->FindB("APT::Get::AutoSolving", true) == true)
       {
-         for (unsigned short i = 0; order[i] != 0; ++i)
-         {
-           if (order[i] != MOD_INSTALL)
-              continue;
-           InstallAction.propergateReleaseCandiateSwitching(helper.selectedByRelease, c0out);
-           InstallAction.doAutoInstall();
-        }
+        InstallAction.propergateReleaseCandiateSwitching(helper.selectedByRelease, c0out);
+        InstallAction.doAutoInstall();
       }
 
       if (_error->PendingError() == true)
       }
 
       if (_error->PendingError() == true)
@@ -675,6 +670,18 @@ bool DoInstall(CommandLine &CmdL)
    
    std::map<unsigned short, APT::VersionSet> verset;
 
    
    std::map<unsigned short, APT::VersionSet> verset;
 
+   for (const char **I = CmdL.FileList; *I != 0; I++) {
+      // Check for local pkgs like in the loop above.
+      if(!FileExists(*I) || flExtension(*I) != "deb")
+        continue;
+
+      pkgCache::PkgIterator pkg = Cache->FindPkg(*I);
+
+      // Set any version providing the .deb as the candidate.
+      for (auto Prv = pkg.ProvidesList(); Prv.end() == false; Prv++)
+        Cache.GetDepCache()->SetCandidateVersion(Prv.OwnerVer());
+   }
+
    if(!DoCacheManipulationFromCommandLine(CmdL, Cache, verset, 0))
       return false;
 
    if(!DoCacheManipulationFromCommandLine(CmdL, Cache, verset, 0))
       return false;
 
@@ -682,7 +689,7 @@ bool DoInstall(CommandLine &CmdL)
       to what the user asked */
    SortedPackageUniverse Universe(Cache);
    if (Cache->InstCount() != verset[MOD_INSTALL].size())
       to what the user asked */
    SortedPackageUniverse Universe(Cache);
    if (Cache->InstCount() != verset[MOD_INSTALL].size())
-      ShowList(c1out, _("The following extra packages will be installed:"), Universe,
+      ShowList(c1out, _("The following additional packages will be installed:"), Universe,
            PkgIsExtraInstalled(&Cache, &verset[MOD_INSTALL]),
            &PrettyFullName, CandidateVersion(&Cache));
 
            PkgIsExtraInstalled(&Cache, &verset[MOD_INSTALL]),
            &PrettyFullName, CandidateVersion(&Cache));
 
@@ -816,8 +823,9 @@ void TryToInstall::operator() (pkgCache::VerIterator const &Ver) {
            else
               Cache->GetDepCache()->SetReInstall(Pkg, true);
         } else
            else
               Cache->GetDepCache()->SetReInstall(Pkg, true);
         } else
-           ioprintf(c1out,_("%s is already the newest version.\n"),
-                 Pkg.FullName(true).c_str());
+           // TRANSLATORS: First string is package name, second is version
+           ioprintf(c1out,_("%s is already the newest version (%s).\n"),
+                 Pkg.FullName(true).c_str(), Pkg.CurrentVer().VerStr());
       }
 
       // Install it with autoinstalling enabled (if we not respect the minial
       }
 
       // Install it with autoinstalling enabled (if we not respect the minial