diff options
author | Timo Teräs <timo.teras@iki.fi> | 2011-10-31 16:58:35 +0200 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2011-10-31 16:59:16 +0200 |
commit | 259ea355754da91be38f7e1c4f86064b02a11788 (patch) | |
tree | 38467f7fdcbf6fc8b967219d000c4bc989a14818 | |
parent | 3bec65c2a515813f60eb25ac55d2d7461d80a4b6 (diff) | |
download | aports-259ea355754da91be38f7e1c4f86064b02a11788.tar.bz2 aports-259ea355754da91be38f7e1c4f86064b02a11788.tar.xz |
main/apk-tools: upgrade to 2.2.0_rc1
-rw-r--r-- | main/apk-tools/0001-lua-adapt-to-new-API.patch | 32 | ||||
-rw-r--r-- | main/apk-tools/0002-solver-pkg-implement-versioned-conflicts.patch | 219 | ||||
-rw-r--r-- | main/apk-tools/APKBUILD | 10 |
3 files changed, 3 insertions, 258 deletions
diff --git a/main/apk-tools/0001-lua-adapt-to-new-API.patch b/main/apk-tools/0001-lua-adapt-to-new-API.patch deleted file mode 100644 index c4668d96d9..0000000000 --- a/main/apk-tools/0001-lua-adapt-to-new-API.patch +++ /dev/null @@ -1,32 +0,0 @@ -From bd0242e1de1c21d4d58cfd86e98b223b6e3e7e12 Mon Sep 17 00:00:00 2001 -From: Natanael Copa <ncopa@alpinelinux.org> -Date: Thu, 20 Oct 2011 12:43:12 +0000 -Subject: [PATCH 1/2] lua: adapt to new API - -Use new apk_blob_pull_dep instead of the old apk_dep_from_blob ---- - src/lua-apk.c | 7 ++++--- - 1 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/src/lua-apk.c b/src/lua-apk.c -index 845d67a..e41e785 100644 ---- a/src/lua-apk.c -+++ b/src/lua-apk.c -@@ -204,10 +204,11 @@ static int Papk_exists(lua_State *L) - struct apk_dependency dep; - struct apk_name *name; - struct apk_package *pkg; -- int i, r; -+ int i; -+ apk_blob_t blob = APK_BLOB_STR(depstr); -+ apk_blob_pull_dep(&blob, db, &dep); - -- r = apk_dep_from_blob(&dep, db, APK_BLOB_STR(depstr)); -- if (r != 0) -+ if (APK_BLOB_IS_NULL(blob)) - goto ret_nil; - - name = dep.name; --- -1.7.7 - diff --git a/main/apk-tools/0002-solver-pkg-implement-versioned-conflicts.patch b/main/apk-tools/0002-solver-pkg-implement-versioned-conflicts.patch deleted file mode 100644 index 802501214f..0000000000 --- a/main/apk-tools/0002-solver-pkg-implement-versioned-conflicts.patch +++ /dev/null @@ -1,219 +0,0 @@ -From e682e6596c101d634b3780a98773c8433b3baadb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi> -Date: Fri, 21 Oct 2011 15:24:24 -0400 -Subject: [PATCH 2/2] solver, pkg: implement versioned conflicts - -One can now say in dependency "!foo<2" which means, that if foo is -installed, it needs to be >=2, but it's not a required dependency. ---- - src/apk_package.h | 3 ++- - src/apk_version.h | 1 - - src/del.c | 3 +-- - src/package.c | 24 ++++++++++++++---------- - src/solver.c | 10 ++++------ - test/conflict.repo | 19 +++++++++++++++++++ - test/conflict1.expect | 2 ++ - test/conflict2.expect | 2 ++ - 8 files changed, 44 insertions(+), 20 deletions(-) - create mode 100644 test/conflict.repo - create mode 100644 test/conflict1.expect - create mode 100644 test/conflict2.expect - -diff --git a/src/apk_package.h b/src/apk_package.h -index 41d65cb..c68fef7 100644 ---- a/src/apk_package.h -+++ b/src/apk_package.h -@@ -59,7 +59,8 @@ struct apk_sign_ctx { - struct apk_dependency { - struct apk_name *name; - apk_blob_t *version; -- int result_mask; -+ unsigned optional : 1; -+ unsigned result_mask : 3; - }; - APK_ARRAY(apk_dependency_array, struct apk_dependency); - -diff --git a/src/apk_version.h b/src/apk_version.h -index 8c264e6..514fea9 100644 ---- a/src/apk_version.h -+++ b/src/apk_version.h -@@ -21,7 +21,6 @@ - #define APK_DEPMASK_REQUIRE (APK_VERSION_EQUAL|APK_VERSION_LESS|\ - APK_VERSION_GREATER) - #define APK_DEPMASK_CHECKSUM (APK_VERSION_LESS|APK_VERSION_GREATER) --#define APK_DEPMASK_CONFLICT (0) - - const char *apk_version_op_string(int result_mask); - int apk_version_result_mask(const char *str); -diff --git a/src/del.c b/src/del.c -index 3d7ffe7..ffa924f 100644 ---- a/src/del.c -+++ b/src/del.c -@@ -58,8 +58,7 @@ static void foreach_installed_reverse_dependency( - for (k = 0; k < pkg0->depends->num; k++) { - struct apk_dependency *dep = &pkg0->depends->item[k]; - if (dep->name == name && -- (dep->result_mask == APK_DEPMASK_CONFLICT || -- apk_dep_is_satisfied(dep, pkg))) -+ apk_dep_is_satisfied(dep, pkg)) - break; - } - if (k >= pkg0->depends->num) -diff --git a/src/package.c b/src/package.c -index cc4c141..3886d82 100644 ---- a/src/package.c -+++ b/src/package.c -@@ -195,16 +195,16 @@ void apk_blob_pull_dep(apk_blob_t *b, struct apk_database *db, struct apk_depend - { - struct apk_name *name; - apk_blob_t bname, bop, bver = APK_BLOB_NULL; -- int mask = APK_DEPMASK_REQUIRE; -+ int mask = APK_DEPMASK_REQUIRE, optional = 0; - size_t len; - - /* [!]name[<,<=,=,>=,>]ver */ - if (APK_BLOB_IS_NULL(*b)) - goto fail; - if (b->ptr[0] == '!') { -- mask = 0; - b->ptr++; - b->len--; -+ optional = 1; - } - if (apk_blob_cspn(*b, "<>= ", &bname, &bop)) { - int i; -@@ -243,10 +243,14 @@ void apk_blob_pull_dep(apk_blob_t *b, struct apk_database *db, struct apk_depend - if (name == NULL) - goto fail; - -+ if (optional) -+ mask ^= APK_DEPMASK_REQUIRE; -+ - *dep = (struct apk_dependency){ - .name = name, - .version = apk_blob_atomize_dup(bver), - .result_mask = mask, -+ .optional = optional, - }; - return; - fail: -@@ -292,11 +296,8 @@ static int parse_depend(void *ctx, apk_blob_t blob) - - int apk_dep_is_satisfied(struct apk_dependency *dep, struct apk_package *pkg) - { -- if (pkg == NULL) { -- if (dep->result_mask == APK_DEPMASK_CONFLICT) -- return 1; -- return 0; -- } -+ if (pkg == NULL) -+ return dep->optional; - if (dep->name != pkg->name) - return 0; - if (dep->result_mask == APK_DEPMASK_CHECKSUM) { -@@ -326,13 +327,16 @@ void apk_blob_pull_deps(apk_blob_t *b, struct apk_database *db, struct apk_depen - - void apk_blob_push_dep(apk_blob_t *to, struct apk_dependency *dep) - { -- if (dep->result_mask == APK_DEPMASK_CONFLICT) -+ int result_mask = dep->result_mask; -+ -+ if (dep->optional) { - apk_blob_push_blob(to, APK_BLOB_PTR_LEN("!", 1)); -+ result_mask ^= APK_DEPMASK_REQUIRE; -+ } - - apk_blob_push_blob(to, APK_BLOB_STR(dep->name->name)); - -- if (dep->result_mask != APK_DEPMASK_CONFLICT && -- dep->result_mask != APK_DEPMASK_REQUIRE) { -+ if (!APK_BLOB_IS_NULL(*dep->version)) { - apk_blob_push_blob(to, APK_BLOB_STR(apk_version_op_string(dep->result_mask))); - apk_blob_push_blob(to, *dep->version); - } -diff --git a/src/solver.c b/src/solver.c -index 49cfc79..d277bc5 100644 ---- a/src/solver.c -+++ b/src/solver.c -@@ -126,8 +126,7 @@ static void foreach_dependency_pkg( - struct apk_package *pkg0 = name0->pkgs->item[j]; - - /* conflict depends on all to be not installed */ -- if (dep->result_mask != APK_DEPMASK_CONFLICT && -- !apk_dep_is_satisfied(dep, pkg0)) -+ if (!apk_dep_is_satisfied(dep, pkg0)) - continue; - - cb(ss, pkg0); -@@ -154,8 +153,7 @@ static void foreach_rinstall_if_pkg( - for (k = 0; k < pkg0->install_if->num; k++) { - struct apk_dependency *dep = &pkg0->install_if->item[k]; - if (dep->name == name && -- (dep->result_mask == APK_DEPMASK_CONFLICT || -- apk_dep_is_satisfied(dep, pkg))) -+ apk_dep_is_satisfied(dep, pkg)) - break; - } - if (k >= pkg0->install_if->num) -@@ -635,7 +633,7 @@ static void apply_constraint(struct apk_solver_state *ss, struct apk_dependency - if (ss->latest_decision != NULL) - inherit_name_state(name, ss->latest_decision->name); - -- if (dep->result_mask != APK_DEPMASK_CONFLICT) -+ if (!dep->optional) - ns->requirers++; - update_name_state(ss, name); - } -@@ -675,7 +673,7 @@ static void undo_constraint(struct apk_solver_state *ss, struct apk_dependency * - if (ss->latest_decision && has_inherited_state(ss->latest_decision->name)) - recalculate_inherted_name_state(name); - -- if (dep->result_mask != APK_DEPMASK_CONFLICT) -+ if (!dep->optional) - ns->requirers--; - update_name_state(ss, name); - } -diff --git a/test/conflict.repo b/test/conflict.repo -new file mode 100644 -index 0000000..a95658c ---- /dev/null -+++ b/test/conflict.repo -@@ -0,0 +1,19 @@ -+C:Q1EyN5AdpAOBJWKMR89pp/C66o+OE= -+P:a -+V:1 -+S:1 -+I:1 -+D:!b<2 -+ -+C:Q1C4uoV7SdMdDhYg4OCVmI71D8HIA= -+P:b -+V:1 -+S:1 -+I:1 -+ -+C:Q1hdUpqRv5mYgJEqW52UmVsvmyysE= -+P:b -+V:2 -+S:1 -+I:1 -+ -diff --git a/test/conflict1.expect b/test/conflict1.expect -new file mode 100644 -index 0000000..03c6d67 ---- /dev/null -+++ b/test/conflict1.expect -@@ -0,0 +1,2 @@ -+Installing b (2) -+Installing a (1) -diff --git a/test/conflict2.expect b/test/conflict2.expect -new file mode 100644 -index 0000000..250f942 ---- /dev/null -+++ b/test/conflict2.expect -@@ -0,0 +1,2 @@ -+1 unsatisfiable dependencies (solution with 2 names) -+world: b<2 --- -1.7.7 - diff --git a/main/apk-tools/APKBUILD b/main/apk-tools/APKBUILD index e371c5be71..6a034a23eb 100644 --- a/main/apk-tools/APKBUILD +++ b/main/apk-tools/APKBUILD @@ -1,14 +1,12 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=apk-tools -pkgver=2.2.0_pre1 -pkgrel=2 +pkgver=2.2.0_rc1 +pkgrel=0 pkgdesc="Alpine Package Keeper - package manager for alpine" subpackages="$pkgname-static lua-apk:luaapk" depends= makedepends="zlib-dev openssl-dev lua-dev" source="http://git.alpinelinux.org/cgit/$pkgname/snapshot/$pkgname-$pkgver.tar.bz2 - 0001-lua-adapt-to-new-API.patch - 0002-solver-pkg-implement-versioned-conflicts.patch " url="http://git.alpinelinux.org/cgit/apk-tools/" @@ -56,6 +54,4 @@ luaapk() { mv "$pkgdir"/usr/lib "$subpkgdir"/usr/lib/ } -md5sums="cda5172b66e7778b855dfda44e5f174f apk-tools-2.2.0_pre1.tar.bz2 -2e8538b8d46c9888cd6adde5212a7217 0001-lua-adapt-to-new-API.patch -8894f1cfc751b441910db949a7c33178 0002-solver-pkg-implement-versioned-conflicts.patch" +md5sums="a2829e24a18537ecdcb4740395142e95 apk-tools-2.2.0_rc1.tar.bz2" |