summaryrefslogtreecommitdiff
path: root/apt-private/private-cmndline.cc
diff options
context:
space:
mode:
authorJulian Andres Klode <julian.klode@canonical.com>2019-05-09 22:23:17 +0200
committerJulian Andres Klode <julian.klode@canonical.com>2019-06-11 16:49:03 +0200
commit9244f712396c10b674740cc79fdab61c47173d04 (patch)
treeed9dcc194dba59faae6340e8bea55c5b57b2c867 /apt-private/private-cmndline.cc
parent35cb34d721e11a9e7dfa9ccd29d5bd58da8f7efc (diff)
Introduce apt satisfy and apt-get satisfy
Allow to satisfy dependency strings supplied on the command line, optionally prefixed with "Conflicts:" to satisfy them like Conflicts. Build profiles and architecture restriction lists, as used in build dependencies, are supported as well. Compared to build-dep, build-essential is not installed automatically, and installing of recommended packages follows the global default, which defaults to yes. Closes: #275379 See merge request apt-team/apt!63
Diffstat (limited to 'apt-private/private-cmndline.cc')
-rw-r--r--apt-private/private-cmndline.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/apt-private/private-cmndline.cc b/apt-private/private-cmndline.cc
index 3a25c7131..3f43d6eb1 100644
--- a/apt-private/private-cmndline.cc
+++ b/apt-private/private-cmndline.cc
@@ -216,14 +216,17 @@ static bool addArgumentsAPTGet(std::vector<CommandLine::Args> &Args, char const
addArg(0, "tar-only", "APT::Get::Tar-Only", 0);
addArg(0, "dsc-only", "APT::Get::Dsc-Only", 0);
}
- else if (CmdMatches("build-dep"))
+ else if (CmdMatches("build-dep") || CmdMatches("satisfy"))
{
addArg('a', "host-architecture", "APT::Get::Host-Architecture", CommandLine::HasArg);
addArg('P', "build-profiles", "APT::Build-Profiles", CommandLine::HasArg);
addArg(0, "purge", "APT::Get::Purge", 0);
addArg(0, "solver", "APT::Solver", CommandLine::HasArg);
- addArg(0,"arch-only","APT::Get::Arch-Only",0);
- addArg(0,"indep-only","APT::Get::Indep-Only",0);
+ if (CmdMatches("build-dep"))
+ {
+ addArg(0,"arch-only","APT::Get::Arch-Only",0);
+ addArg(0,"indep-only","APT::Get::Indep-Only",0);
+ }
// this has no effect *but* sbuild is using it (see LP: #1255806)
// once sbuild is fixed, this option can be removed
addArg('f', "fix-broken", "APT::Get::Fix-Broken", 0);
@@ -241,7 +244,7 @@ static bool addArgumentsAPTGet(std::vector<CommandLine::Args> &Args, char const
if (CmdMatches("install", "reinstall", "remove", "purge", "upgrade", "dist-upgrade",
"dselect-upgrade", "autoremove", "auto-remove", "autopurge", "clean", "autoclean", "auto-clean", "check",
- "build-dep", "full-upgrade", "source"))
+ "build-dep", "satisfy", "full-upgrade", "source"))
{
addArg('s', "simulate", "APT::Get::Simulate", 0);
addArg('s', "just-print", "APT::Get::Simulate", 0);