summaryrefslogtreecommitdiff
path: root/src/upgrade.c
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2013-06-18 16:24:48 +0300
committerTimo Teräs <timo.teras@iki.fi>2013-06-19 08:33:51 +0300
commitd315c9019cf6e43dd7ecfe17e8d3896469396997 (patch)
tree68a54cb549792813700c18f19177bd1c2c52fe56 /src/upgrade.c
parentf91b01fea8a0e2b32ccf9d3eea8468d5312633c4 (diff)
downloadapk-tools-d315c9019cf6e43dd7ecfe17e8d3896469396997.tar.gz
apk-tools-d315c9019cf6e43dd7ecfe17e8d3896469396997.tar.bz2
apk-tools-d315c9019cf6e43dd7ecfe17e8d3896469396997.tar.xz
apk-tools-d315c9019cf6e43dd7ecfe17e8d3896469396997.zip
upgrade: new option: --latest (-l)
Select latest version of package (if it is not pinned), and print error if it cannot be installed due to other dependencies. Together with --available, it selects the latest package which is present at least in some repository. This also fixes few solver issues with ordering of package selection that got quite apparent with this flag. Namely, we cannot "lock" a package until it's reverse dependencies are locked or not all of the solver flags are propagated properly.
Diffstat (limited to 'src/upgrade.c')
-rw-r--r--src/upgrade.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/upgrade.c b/src/upgrade.c
index 41d3cf7..f23ea91 100644
--- a/src/upgrade.c
+++ b/src/upgrade.c
@@ -35,6 +35,9 @@ static int upgrade_parse(void *ctx, struct apk_db_options *dbopts,
case 'a':
uctx->solver_flags |= APK_SOLVERF_AVAILABLE;
break;
+ case 'l':
+ uctx->solver_flags |= APK_SOLVERF_LATEST;
+ break;
default:
return -1;
}
@@ -131,6 +134,9 @@ static struct apk_option upgrade_options[] = {
"replacing or downgrading packages (instead of holding them) "
"if the currently installed package is no longer available "
"from any repository" },
+ { 'l', "latest",
+ "Select latest version of package (if it is not pinned), and "
+ "print error if it cannot be installed due to other dependencies" },
{ 0x10000, "no-self-upgrade",
"Do not do early upgrade of 'apk-tools' package" },
};