aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2015-05-14 08:31:54 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2015-05-14 08:34:17 +0000
commitc3fed183abefeca74cf122f9747ccc38c0bfe5ef (patch)
tree2919f34c803bde8fb221130aacbd3b693ef0d15b
parent5a3a4662b456649d728752bf2df642f5da6ed6e6 (diff)
downloadaports-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/APKBUILD16
-rw-r--r--main/apk-tools/update-return-errors-also-with---quiet.patch26
-rw-r--r--main/apk-tools/update-return-failure-if-any-mirror-update-failed.patch71
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
+