diff options
| author | Natanael Copa <ncopa@alpinelinux.org> | 2015-05-14 08:31:54 +0000 |
|---|---|---|
| committer | Natanael Copa <ncopa@alpinelinux.org> | 2015-05-14 08:34:17 +0000 |
| commit | c3fed183abefeca74cf122f9747ccc38c0bfe5ef (patch) | |
| tree | 2919f34c803bde8fb221130aacbd3b693ef0d15b | |
| parent | 5a3a4662b456649d728752bf2df642f5da6ed6e6 (diff) | |
| download | aports-c3fed183abefeca74cf122f9747ccc38c0bfe5ef.tar.bz2 aports-c3fed183abefeca74cf122f9747ccc38c0bfe5ef.tar.xz | |
main/apk-tools: make update return failure on mirror errors
this is needed to properly fix setup-apkrepos to not pick faulty
mirrors.
ref #4017
| -rw-r--r-- | main/apk-tools/APKBUILD | 16 | ||||
| -rw-r--r-- | main/apk-tools/update-return-errors-also-with---quiet.patch | 26 | ||||
| -rw-r--r-- | main/apk-tools/update-return-failure-if-any-mirror-update-failed.patch | 71 |
3 files changed, 109 insertions, 4 deletions
diff --git a/main/apk-tools/APKBUILD b/main/apk-tools/APKBUILD index 78dffb9db6..3f5be6aa03 100644 --- a/main/apk-tools/APKBUILD +++ b/main/apk-tools/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=apk-tools pkgver=2.5.0_rc1 -pkgrel=0 +pkgrel=1 pkgdesc="Alpine Package Keeper - package manager for alpine" subpackages="$pkgname-static" depends= @@ -13,6 +13,8 @@ if [ "$CBUILD" == "$CHOST" ]; then makedepends="$makedepends lua5.2-dev" fi source="http://dev.alpinelinux.org/archive/$pkgname/$pkgname-$pkgver.tar.xz + update-return-failure-if-any-mirror-update-failed.patch + update-return-errors-also-with---quiet.patch " url="http://git.alpinelinux.org/cgit/apk-tools/" @@ -82,6 +84,12 @@ luaapk() { mv "$pkgdir"/usr/lib "$subpkgdir"/usr/lib/ } -md5sums="4c19b3ffc68ca60147e3ad09cd8f1423 apk-tools-2.5.0_rc1.tar.xz" -sha256sums="c8c2293408f513fe805c5d6a7144117f2820bbee727089c1f9423109b08596f7 apk-tools-2.5.0_rc1.tar.xz" -sha512sums="121fd27dd297e5a95334fad72c4ffae3635692a2a8729918091f8eb91dbf1f6fdcfe8481f543ad7a73f3fbc9a938ddec3d80e0f4ede4c22c9821caf515dd32b5 apk-tools-2.5.0_rc1.tar.xz" +md5sums="4c19b3ffc68ca60147e3ad09cd8f1423 apk-tools-2.5.0_rc1.tar.xz +f19bb1f81e6e656a10c9ba4b2ee7c1d0 update-return-failure-if-any-mirror-update-failed.patch +c607661be6cb759d7009b9a66c2c5ff1 update-return-errors-also-with---quiet.patch" +sha256sums="c8c2293408f513fe805c5d6a7144117f2820bbee727089c1f9423109b08596f7 apk-tools-2.5.0_rc1.tar.xz +19099db5b48370008dc04734e74294ba101acfe39a9cc9e7760b5a88d30ba499 update-return-failure-if-any-mirror-update-failed.patch +220d3fc6a1b8bb2e644f20a25b6111dd4105810c0c577738ef9fd1fb9e1733cf update-return-errors-also-with---quiet.patch" +sha512sums="121fd27dd297e5a95334fad72c4ffae3635692a2a8729918091f8eb91dbf1f6fdcfe8481f543ad7a73f3fbc9a938ddec3d80e0f4ede4c22c9821caf515dd32b5 apk-tools-2.5.0_rc1.tar.xz +b131e3b0575da9135c616ccf099c5791adb066c6570e6ce4ba4b3a0be71030bccfb56f4ab10182e5fe07097459d48bb180684a34b3aa994d13e9e4176a3ff477 update-return-failure-if-any-mirror-update-failed.patch +4e3e8a340498da0cf320382560e91660b858ff730ceace167620138d9822db20287b3dfdbde97458de3b005d2dad6a0305fb7e9c10b84cf30c6bafe6f3ce012a update-return-errors-also-with---quiet.patch" diff --git a/main/apk-tools/update-return-errors-also-with---quiet.patch b/main/apk-tools/update-return-errors-also-with---quiet.patch new file mode 100644 index 0000000000..907700228c --- /dev/null +++ b/main/apk-tools/update-return-errors-also-with---quiet.patch @@ -0,0 +1,26 @@ +From 2322ba0ad938c142d0bb7a715940fc75ccdbe91b Mon Sep 17 00:00:00 2001 +From: Natanael Copa <ncopa@alpinelinux.org> +Date: Fri, 10 Apr 2015 17:33:21 +0000 +Subject: update: return errors also with --quiet + +fixes #4040 +--- + src/update.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/update.c b/src/update.c +index 84833ec..72e8673 100644 +--- a/src/update.c ++++ b/src/update.c +@@ -23,7 +23,7 @@ static int update_main(void *ctx, struct apk_database *db, struct apk_string_arr + char buf[32] = "OK:"; + + if (apk_verbosity < 1) +- return 0; ++ return db->repo_update_errors; + + for (i = 0; i < db->num_repos; i++) { + repo = &db->repos[i]; +-- +cgit v0.11.2 + diff --git a/main/apk-tools/update-return-failure-if-any-mirror-update-failed.patch b/main/apk-tools/update-return-failure-if-any-mirror-update-failed.patch new file mode 100644 index 0000000000..8eaee8d89a --- /dev/null +++ b/main/apk-tools/update-return-failure-if-any-mirror-update-failed.patch @@ -0,0 +1,71 @@ +From 944eae4b27d039608dd72b1d7b3ed015c20bdcc0 Mon Sep 17 00:00:00 2001 +From: Natanael Copa <ncopa@alpinelinux.org> +Date: Tue, 7 Apr 2015 09:57:42 +0200 +Subject: update: return failure if any mirror update failed + +fixes #4040 +--- + src/apk_database.h | 1 + + src/database.c | 4 +++- + src/update.c | 8 ++++++-- + 3 files changed, 10 insertions(+), 3 deletions(-) + +diff --git a/src/apk_database.h b/src/apk_database.h +index b2fa28e..315a429 100644 +--- a/src/apk_database.h ++++ b/src/apk_database.h +@@ -148,6 +148,7 @@ struct apk_database { + char *cache_remount_dir; + apk_blob_t *arch; + unsigned int local_repos, available_repos; ++ int repo_update_errors; + unsigned int pending_triggers; + int performing_self_update : 1; + int permanent : 1; +diff --git a/src/database.c b/src/database.c +index 8619465..0828725 100644 +--- a/src/database.c ++++ b/src/database.c +@@ -2017,8 +2017,10 @@ static int apk_repository_update(struct apk_database *db, struct apk_repository + int r, verify = (apk_flags & APK_ALLOW_UNTRUSTED) ? APK_SIGN_NONE : APK_SIGN_VERIFY; + + r = apk_cache_download(db, repo, NULL, verify, NULL, NULL); +- if (r != 0) ++ if (r != 0) { + apk_error("%s: %s", repo->url, apk_error_str(r)); ++ db->repo_update_errors++; ++ } + + return r; + } +diff --git a/src/update.c b/src/update.c +index ed721be..84833ec 100644 +--- a/src/update.c ++++ b/src/update.c +@@ -20,6 +20,7 @@ static int update_main(void *ctx, struct apk_database *db, struct apk_string_arr + { + struct apk_repository *repo; + int i; ++ char buf[32] = "OK:"; + + if (apk_verbosity < 1) + return 0; +@@ -35,10 +36,13 @@ static int update_main(void *ctx, struct apk_database *db, struct apk_string_arr + db->repos[i].url); + } + +- apk_message("OK: %d distinct packages available", ++ if (db->repo_update_errors != 0) ++ snprintf(buf, sizeof(buf), "%d errors;", ++ db->repo_update_errors); ++ apk_message("%s %d distinct packages available", buf, + db->available.packages.num_items); + +- return 0; ++ return db->repo_update_errors; + } + + static struct apk_applet apk_update = { +-- +cgit v0.11.2 + |
