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