summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2018-01-02 15:35:24 +0200
committerTimo Teräs <timo.teras@iki.fi>2018-01-02 15:45:21 +0200
commit667cb6bca799e58f58f22ad868761c022c6600dc (patch)
tree6fa17fcce621586b19cf2806b73c4f7372a25810
parent2a161588fbf133e5941e9f7203f1fe580946d570 (diff)
downloadapk-tools-667cb6bca799e58f58f22ad868761c022c6600dc.tar.gz
apk-tools-667cb6bca799e58f58f22ad868761c022c6600dc.tar.bz2
apk-tools-667cb6bca799e58f58f22ad868761c022c6600dc.tar.xz
apk-tools-667cb6bca799e58f58f22ad868761c022c6600dc.zip
commit: properly analyze packages with provides="$pkgname"
-rw-r--r--src/commit.c3
-rw-r--r--test/provides.repo7
-rw-r--r--test/provides12.test8
3 files changed, 17 insertions, 1 deletions
diff --git a/src/commit.c b/src/commit.c
index 9efae1f..0c0bb34 100644
--- a/src/commit.c
+++ b/src/commit.c
@@ -456,7 +456,8 @@ static void print_conflicts(struct print_state *ps, struct apk_package *pkg)
if (d->version == &apk_null_blob &&
p->version == &apk_null_blob)
continue;
- if (once && p->pkg == pkg) {
+ if (once && p->pkg == pkg &&
+ p->version == d->version) {
once = 0;
continue;
}
diff --git a/test/provides.repo b/test/provides.repo
index 8776803..58bd416 100644
--- a/test/provides.repo
+++ b/test/provides.repo
@@ -97,3 +97,10 @@ V:0.1
S:1
I:1
D:conflicted-dep
+
+C:Q1Eyd5AdpAOBJWKMR89ppC66bbbbj=
+P:self-provide
+V:0.1
+S:1
+I:1
+p:self-provide
diff --git a/test/provides12.test b/test/provides12.test
new file mode 100644
index 0000000..1bee4f9
--- /dev/null
+++ b/test/provides12.test
@@ -0,0 +1,8 @@
+@ARGS
+--test-repo provides.repo
+add self-provide
+@EXPECT
+ERROR: unsatisfiable constraints:
+ self-provide-0.1:
+ conflicts: self-provide-0.1[self-provide]
+ satisfies: world[self-provide]