diff options
Diffstat (limited to 'core/apk-tools/delay-state-init.patch')
-rw-r--r-- | core/apk-tools/delay-state-init.patch | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/core/apk-tools/delay-state-init.patch b/core/apk-tools/delay-state-init.patch deleted file mode 100644 index 397d2d4c23..0000000000 --- a/core/apk-tools/delay-state-init.patch +++ /dev/null @@ -1,63 +0,0 @@ -commit 110611c53c8e1b09c27c8c516c7f7c0baf47f68b -Author: Natanael Copa <ncopa@alpinelinux.org> -Date: Mon May 11 12:02:00 2009 +0000 - - add: delay state initialization til we have all pkgs in db - - The state size is taken from name_id and cannot be extended. So we - must wait with initializing the state til we have all packages added - to the db. - - We must also always allocate the package name, incase its not in the - repository. This is done with apk_db_get_name(). - -diff --git a/src/add.c b/src/add.c -index 77abc3b..9efab15 100644 ---- a/src/add.c -+++ b/src/add.c -@@ -41,13 +41,13 @@ static int add_main(void *ctx, int argc, char **argv) - struct add_ctx *actx = (struct add_ctx *) ctx; - struct apk_database db; - struct apk_state *state; -+ struct apk_dependency_array *pkgs; /* list of pkgs to install */ - int i, r; - - r = apk_db_open(&db, apk_root, actx->open_flags | APK_OPENF_WRITE); - if (r != 0) - return r; - -- state = apk_state_new(&db); - for (i = 0; i < argc; i++) { - struct apk_dependency dep; - -@@ -61,7 +61,7 @@ static int add_main(void *ctx, int argc, char **argv) - } - - dep = (struct apk_dependency) { -- .name = pkg->name, -+ .name = apk_db_get_name(&db, APK_BLOB_STR(pkg->name->name)), - .version = pkg->version, - .result_mask = APK_VERSION_EQUAL, - }; -@@ -71,14 +71,18 @@ static int add_main(void *ctx, int argc, char **argv) - .result_mask = APK_DEPMASK_REQUIRE, - }; - } -- apk_deps_add(&db.world, &dep); - dep.name->flags |= APK_NAME_TOPLEVEL; -+ apk_deps_add(&pkgs, &dep); -+ } - -- r = apk_state_lock_dependency(state, &dep); -+ state = apk_state_new(&db); -+ for (i = 0; i < pkgs->num; i++) { -+ r = apk_state_lock_dependency(state, &pkgs->item[i]); - if (r != 0) { -- apk_error("Unable to install '%s'", dep.name->name); -+ apk_error("Unable to install '%s'", pkgs->item[i].name->name); - goto err; - } -+ apk_deps_add(&db.world, &pkgs->item[i]); - } - r = apk_state_commit(state, &db); - err: |