summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libalpm/conflict.c10
-rw-r--r--pactest/tests/conflict002.py13
-rw-r--r--pactest/tests/conflict003.py13
3 files changed, 27 insertions, 9 deletions
diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c
index d52f7e12..1baa0c27 100644
--- a/lib/libalpm/conflict.c
+++ b/lib/libalpm/conflict.c
@@ -112,13 +112,6 @@ static void check_conflict(alpm_list_t *list1, alpm_list_t *list2,
for(j = alpm_pkg_get_conflicts(pkg1); j; j = j->next) {
const char *conflict = j->data;
- if(strcmp(pkg1name, conflict) == 0) {
- /* a package cannot conflict with itself -- that's just not nice */
- _alpm_log(PM_LOG_DEBUG, "package '%s' conflicts with itself - packaging error",
- pkg1name);
- continue;
- }
-
for(k = list2; k; k = k->next) {
pmpkg_t *pkg2 = k->data;
const char *pkg2name = alpm_pkg_get_name(pkg2);
@@ -140,8 +133,7 @@ static void check_conflict(alpm_list_t *list1, alpm_list_t *list2,
}
}
-/* Returns a alpm_list_t* of pmdepmissing_t pointers.
- * conflicts are always name only */
+/* Returns a alpm_list_t* of pmdepmissing_t pointers. */
alpm_list_t *_alpm_checkconflicts(pmdb_t *db, alpm_list_t *packages)
{
alpm_list_t *baddeps = NULL;
diff --git a/pactest/tests/conflict002.py b/pactest/tests/conflict002.py
new file mode 100644
index 00000000..2e326f52
--- /dev/null
+++ b/pactest/tests/conflict002.py
@@ -0,0 +1,13 @@
+self.description = "conflict with version (conflict)"
+
+p = pmpkg("pkg1")
+p.conflicts = ["pkg2<=1.0-2"]
+self.addpkg(p);
+
+lp = pmpkg("pkg2", "1.0-1")
+self.addpkg2db("local", lp)
+
+self.args = "-A %s" % p.filename()
+self.addrule("PACMAN_RETCODE=1")
+self.addrule("!PKG_EXIST=pkg1")
+self.addrule("PKG_EXIST=pkg2")
diff --git a/pactest/tests/conflict003.py b/pactest/tests/conflict003.py
new file mode 100644
index 00000000..7205086a
--- /dev/null
+++ b/pactest/tests/conflict003.py
@@ -0,0 +1,13 @@
+self.description = "conflict with version (no conflict)"
+
+p = pmpkg("pkg1")
+p.conflicts = ["pkg2=1.0-2"]
+self.addpkg(p);
+
+lp = pmpkg("pkg2", "1.0-1")
+self.addpkg2db("local", lp)
+
+self.args = "-A %s" % p.filename()
+self.addrule("PACMAN_RETCODE=0")
+self.addrule("PKG_EXIST=pkg1")
+self.addrule("PKG_EXIST=pkg2")