summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/apk.8.scd5
-rw-r--r--src/app_cache.c10
-rw-r--r--src/app_upgrade.c4
3 files changed, 17 insertions, 2 deletions
diff --git a/doc/apk.8.scd b/doc/apk.8.scd
index 3b5797e..1b9b6f3 100644
--- a/doc/apk.8.scd
+++ b/doc/apk.8.scd
@@ -179,7 +179,10 @@ The following options are available for all commands.
The following options are available for all commands which commit the database.
*-s, --simulate*
- Simulate the requested operation without making any changes.
+ Simulate the requested operation without making any changes. The database
+ is opened in read only mode, and auto-updating of indexes is disabled.
+ You may want to run "apk update" before running a simulation to make sure
+ it is done with up-to-date repository indexes.
*--clean-protected*
Do not create .apk-new files in configuration directories.
diff --git a/src/app_cache.c b/src/app_cache.c
index 3a68938..09d9adf 100644
--- a/src/app_cache.c
+++ b/src/app_cache.c
@@ -198,11 +198,19 @@ static int cache_main(void *ctx, struct apk_database *db, struct apk_string_arra
return -EINVAL;
if (!apk_db_cache_active(db)) {
- apk_error("Package cache is not enabled.\n");
+ apk_error("Package cache is not enabled.");
r = 2;
goto err;
}
+ if ((actions & CACHE_DOWNLOAD) && (cctx->solver_flags || cctx->add_dependencies)) {
+ if (db->repositories.stale || db->repositories.unavailable) {
+ apk_error("Not continuing due to stale/unavailable repositories.");
+ r = 3;
+ goto err;
+ }
+ }
+
if (r == 0 && (actions & CACHE_CLEAN))
r = cache_clean(db);
if (r == 0 && (actions & CACHE_DOWNLOAD))
diff --git a/src/app_upgrade.c b/src/app_upgrade.c
index 8645d21..bc6ccb1 100644
--- a/src/app_upgrade.c
+++ b/src/app_upgrade.c
@@ -163,6 +163,10 @@ static int upgrade_main(void *ctx, struct apk_database *db, struct apk_string_ar
"Use --force-broken-world to override.");
return -1;
}
+ if (db->repositories.stale || db->repositories.unavailable) {
+ apk_error("Not continuing due to stale/unavailable repositories.");
+ return -1;
+ }
solver_flags = APK_SOLVERF_UPGRADE | uctx->solver_flags;
if (!uctx->no_self_upgrade && !args->num) {