]> git.saurik.com Git - apt.git/commitdiff
support APT::Get::Build-Dep-Automatic again in build-dep
authorDavid Kalnischkies <david@kalnischkies.de>
Tue, 16 Feb 2016 19:32:28 +0000 (20:32 +0100)
committerDavid Kalnischkies <david@kalnischkies.de>
Sun, 6 Mar 2016 08:39:30 +0000 (09:39 +0100)
In a249b3e6fd798935a02b769149c9791a6fa6ef16 I dropped with the manual
first resolver step also the support for installing build-deps as
automatic in such a way that it behaved like this option was enabled by
default.

Restoring support for it means that we go back to mark build-
dependencies as manually installed again by default and provide this
option to keep them as automatically installed.

apt-private/private-source.cc
test/integration/test-bug-720597-build-dep-purge

index 5aaf6f48b4b8eaa3c4cbd20e9e852bc13dbbd6f9..5053c60fc41ba144585978e97cf66d52b46db3f5 100644 (file)
@@ -775,8 +775,31 @@ bool DoBuildDep(CommandLine &CmdL)
    }
    if (DoAutomaticRemove(Cache) == false)
       return false;
+
    {
       pkgDepCache::ActionGroup group(Cache);
+      if (_config->FindB("APT::Get::Build-Dep-Automatic", false) == false)
+      {
+        for (auto const &pkg: removeAgain)
+        {
+           auto const instVer = Cache[pkg].InstVerIter(Cache);
+           if (unlikely(instVer.end() == true))
+              continue;
+           for (auto D = instVer.DependsList(); D.end() != true; ++D)
+           {
+              if (D->Type != pkgCache::Dep::Depends || D.IsMultiArchImplicit())
+                 continue;
+              APT::VersionList verlist = APT::VersionList::FromDependency(Cache, D, APT::CacheSetHelper::CANDIDATE);
+              for (auto const &V : verlist)
+              {
+                 auto const P = V.ParentPkg();
+                 if (Cache[P].InstallVer != V)
+                    continue;
+                 Cache->MarkAuto(P, false);
+              }
+           }
+        }
+      }
       for (auto const &pkg: removeAgain)
         Cache->MarkDelete(pkg, false, 0, true);
    }
index 5d451f9690df61080f3c222210c5257b2b7ea312..c62d546873344db6533f988fae0628efd17b9d23 100755 (executable)
@@ -36,3 +36,27 @@ The following NEW packages will be installed:
 Purg pkga [1]
 Inst pkgb (1 stable [amd64])
 Conf pkgb (1 stable [amd64])' aptget build-dep pkgc -s --purge
+
+testsuccessequal 'Reading package lists...
+Building dependency tree...
+0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' apt autoremove -s
+testdpkgnotinstalled pkgb
+testsuccess apt build-dep pkgc -y -o Debug::pkgDepCache::AutoInstall=1 -o Debug::pkgDepCache::Marker=1
+testdpkginstalled pkgb
+testsuccessequal 'Reading package lists...
+Building dependency tree...
+Reading state information...
+0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' apt autoremove -s
+testsuccess apt purge pkgb pkgc -y
+testsuccessequal 'Reading package lists...
+Building dependency tree...
+Reading state information...
+0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' apt autoremove -s
+testsuccess apt build-dep pkgc -y -o APT::Get::Build-Dep-Automatic=true
+testsuccessequal 'Reading package lists...
+Building dependency tree...
+Reading state information...
+The following packages will be REMOVED:
+  pkgb
+0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
+Remv pkgb [1]' apt autoremove -s