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;
}
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
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 "