]> git.saurik.com Git - apt.git/commitdiff
* updated from http://people.ubuntu.com/~mvo/bzr/apt/auto-mark/
authorMichael Vogt <egon@bottom>
Wed, 2 May 2007 11:58:21 +0000 (13:58 +0200)
committerMichael Vogt <egon@bottom>
Wed, 2 May 2007 11:58:21 +0000 (13:58 +0200)
1  2 
apt-pkg/depcache.cc
cmdline/apt-get.cc
doc/examples/configure-index
po/apt-all.pot

index 390d93dc8db7b1ae5305c9cc00a295d523f9783d,f5673dd5d1ec075d2ccce48d01a7939614719c35..ac667d51d6f3931c69306ba82d31b91203d71c79
@@@ -948,11 -907,22 +948,22 @@@ void pkgDepCache::MarkInstall(PkgIterat
               std::clog << "Installing " << InstPkg.Name() 
                         << " as dep of " << Pkg.Name() 
                         << std::endl;
-           MarkInstall(InstPkg,true,Depth + 1, false, ForceImportantDeps);
-           // Set the autoflag, after MarkInstall because MarkInstall unsets it
-           if (P->CurrentVer == 0)
-              PkgState[InstPkg->ID].Flags |= Flag::Auto;
+           // now check if we should consider it a automatic dependency or not
+           string sec = _config->Find("APT::Never-MarkAuto-Section","");
+           if(Pkg.Section() && (string(Pkg.Section()) ==  sec))
+           {
+              if(_config->FindB("Debug::pkgDepCache::AutoInstall",false) == true)
+                 std::clog << "Setting NOT as auto-installed because its a direct dep of a package in section " << sec << std::endl;
+              MarkInstall(InstPkg,true,Depth + 1, true);
+           }
+           else 
+           {
+              // mark automatic dependency
 -             MarkInstall(InstPkg,true,Depth + 1, false);
++             MarkInstall(InstPkg,true,Depth + 1, false, ForceImportantDeps);
+              // Set the autoflag, after MarkInstall because MarkInstall unsets it
+              if (P->CurrentVer == 0)
+                 PkgState[InstPkg->ID].Flags |= Flag::Auto;
+           }
         }
         continue;
        }
Simple merge
index 56389b7493e6967e1d8c60875bea060dcb869017,d3e061f9a01ee6f38e5ba867c87035c3679c5dab..d0aad1e3d094cd942e58b537159f2dbee412dfe0
@@@ -94,11 -95,9 +95,14 @@@ AP
    Cache-Limit "4194304";
    Default-Release "";
  
 +  // consider Recommends, Suggests as important dependencies that should
 +  // be installed by default
 +  APT::Install-Recommends "false";
 +  APT::Install-Suggests "false";
 +
+   // consider dependencies of packages in this section manual
+   Never-MarkAuto-Section "metapackages";
    // Write progress messages on this fd (for stuff like base-config)
    Status-Fd "-1";
    // Keep the list of FDs open (normally apt closes all fds when it
diff --cc po/apt-all.pot
index 81d742437556b21ffaa741bf8f9dbc34b8193e2c,0dc932d47da0232a5e838ea01daeab0721ead84e..bd066ab0670c408311ee2b9ce6a12a4804238e49
@@@ -2218,7 -2210,7 +2218,7 @@@ msgstr "
  msgid "Malformed line %u in source list %s (vendor id)"
  msgstr ""
  
- #: apt-pkg/packagemanager.cc:402
 -#: apt-pkg/packagemanager.cc:403
++#: apt-pkg/packagemanager.cc:402 apt-pkg/packagemanager.cc:403
  #, c-format
  msgid ""
  "This installation run will require temporarily removing the essential "