upgrade: reset versioned deps in world when doing upgrade -a

Doing "apk add file.apk" adds a versioned dependency to allow
downgrading, and sticky version. Most often this is to install
single packages from newer repository. So it would make sense
to reset them to non-versioned if doing:

 apk upgrade -a

fixes #346
cute-signatures
Natanael Copa 2010-05-11 09:31:20 +00:00
parent 87420aaf29
commit 47bac8c29c
1 changed files with 7 additions and 2 deletions

View File

@ -41,10 +41,15 @@ static int upgrade_main(void *ctx, struct apk_database *db, int argc, char **arg
goto err;
for (i = 0; i < db->world->num; i++) {
r = apk_state_lock_dependency(state, &db->world->item[i]);
struct apk_dependency *dep = &db->world->item[i];
if (dep->version && (apk_flags & APK_PREFER_AVAILABLE)) {
dep->result_mask = APK_VERSION_EQUAL | APK_VERSION_LESS | APK_VERSION_GREATER;
dep->version = NULL;
}
r = apk_state_lock_dependency(state, dep);
if (r != 0) {
apk_error("Unable to upgrade '%s'",
db->world->item[i].name->name);
dep->name->name);
goto err;
}
}