Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=aba9cdc0ef445e69d37f481b28beb251d13bc89e

commit aba9cdc0ef445e69d37f481b28beb251d13bc89e
Author: Miklos Vajna <vmik...@frugalware.org>
Date:   Wed Nov 17 14:10:52 2010 +0100

Make sure provides() is for all versions

Before:
pkgname=foo
pkgver=1.0
provides=('bar')
=> provides=('bar>=1.0')

After:
pkgname=foo
pkgver=1.0
provides=('bar')
=> provides=('bar')

diff --git a/lib/libpacman/deps.c b/lib/libpacman/deps.c
index b9fa6f6..432f3eb 100644
--- a/lib/libpacman/deps.c
+++ b/lib/libpacman/deps.c
@@ -358,8 +358,10 @@ pmlist_t *_pacman_checkdeps(pmtrans_t *trans, pmdb_t *db, 
unsigned char op, pmli
pmpkg_t *p = (pmpkg_t *)k->data;
/* see if the package names match OR if p provides depend.name */
if(!strcmp(p->name, depend.name) || _pacman_list_is_strin(depend.name, 
_pacman_pkg_getinfo(p, PM_PKG_PROVIDES))) {
-                                               if(depend.mod == 
PM_DEP_MOD_ANY) {
-                                                       /* accept any version */
+                                               if(depend.mod == PM_DEP_MOD_ANY 
||
+                                                               
_pacman_list_is_strin(depend.name, _pacman_pkg_getinfo(p, PM_PKG_PROVIDES))) {
+                                                       /* depend accepts any 
version or p provides depend (provides - by
+                                                        * definition - is for 
all versions) */
found = 1;
} else {
char *ver = strdup(p->version);
diff --git a/pactest/tests/sync993.py b/pactest/tests/sync993.py
new file mode 100644
index 0000000..31edcaf
--- /dev/null
+++ b/pactest/tests/sync993.py
@@ -0,0 +1,20 @@
+self.description = "System upgrade (Ignoring version on provides)"
+
+sp1 = pmpkg("pkg1", "1.0-2")
+sp1.depends = ["pkg3>=2.0"]
+self.addpkg2db("sync", sp1);
+
+lp1 = pmpkg("pkg1")
+self.addpkg2db("local", lp1)
+
+lp2 = pmpkg("pkg2", "1.0-1")
+lp2.conflicts = ["pkg3"]
+lp2.provides = ["pkg3"]
+self.addpkg2db("sync", lp2)
+self.addpkg2db("local", lp2)
+
+self.args = "-Su"
+
+self.addrule("PACMAN_RETCODE=0")
+self.addrule("PKG_MODIFIED=pkg1")
+self.addrule("PKG_EXIST=pkg2")
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to