aboutsummaryrefslogtreecommitdiffstats
path: root/src/state.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/state.c')
-rw-r--r--src/state.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/state.c b/src/state.c
index c07c806..5b6b81c 100644
--- a/src/state.c
+++ b/src/state.c
@@ -170,8 +170,16 @@ int apk_state_lock_dependency(struct apk_state *state,
return -1;
if (ns_empty(state->name[name->id])) {
- if (dep->result_mask == APK_DEPMASK_CONFLICT)
+ if (dep->result_mask == APK_DEPMASK_CONFLICT) {
+ if ((name->flags & APK_NAME_TOPLEVEL) &&
+ !(apk_flags & APK_FORCE)) {
+ apk_error("Not deleting top level dependency "
+ "'%s'. Use -f to override.",
+ name->name);
+ return -1;
+ }
return apk_state_lock_name(state, name, NULL);
+ }
/* This name has not been visited yet.
* Construct list of candidates. */