mirror of
https://github.com/moparisthebest/pacman
synced 2025-02-28 09:21:53 -05:00
PM_DEP_MOD_LT and PM_DEP_MOD_GT depmods added
You can use foo<2.0 and foo>2.0 as depend add046.py and add047.py pactests were added to check this Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
47f4c5a480
commit
13dd2864ca
@ -369,7 +369,9 @@ typedef enum _pmdepmod_t {
|
|||||||
PM_DEP_MOD_ANY = 1,
|
PM_DEP_MOD_ANY = 1,
|
||||||
PM_DEP_MOD_EQ,
|
PM_DEP_MOD_EQ,
|
||||||
PM_DEP_MOD_GE,
|
PM_DEP_MOD_GE,
|
||||||
PM_DEP_MOD_LE
|
PM_DEP_MOD_LE,
|
||||||
|
PM_DEP_MOD_GT,
|
||||||
|
PM_DEP_MOD_LT
|
||||||
} pmdepmod_t;
|
} pmdepmod_t;
|
||||||
|
|
||||||
pmdepend_t *alpm_splitdep(const char *depstring);
|
pmdepend_t *alpm_splitdep(const char *depstring);
|
||||||
|
@ -310,6 +310,8 @@ static int dep_vercmp(const char *version1, pmdepmod_t mod,
|
|||||||
case PM_DEP_MOD_EQ: equal = (cmp == 0); break;
|
case PM_DEP_MOD_EQ: equal = (cmp == 0); break;
|
||||||
case PM_DEP_MOD_GE: equal = (cmp >= 0); break;
|
case PM_DEP_MOD_GE: equal = (cmp >= 0); break;
|
||||||
case PM_DEP_MOD_LE: equal = (cmp <= 0); break;
|
case PM_DEP_MOD_LE: equal = (cmp <= 0); break;
|
||||||
|
case PM_DEP_MOD_LT: equal = (cmp < 0); break;
|
||||||
|
case PM_DEP_MOD_GT: equal = (cmp > 0); break;
|
||||||
default: equal = 1; break;
|
default: equal = 1; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -374,10 +376,19 @@ pmdepend_t SYMEXPORT *alpm_splitdep(const char *depstring)
|
|||||||
depend->mod = PM_DEP_MOD_LE;
|
depend->mod = PM_DEP_MOD_LE;
|
||||||
*ptr = '\0';
|
*ptr = '\0';
|
||||||
ptr += 2;
|
ptr += 2;
|
||||||
} else if((ptr = strstr(newstr, "="))) {
|
} else if((ptr = strstr(newstr, "="))) { /* Note: we must do =,<,> checks after <=, >= checks */
|
||||||
depend->mod = PM_DEP_MOD_EQ;
|
depend->mod = PM_DEP_MOD_EQ;
|
||||||
*ptr = '\0';
|
*ptr = '\0';
|
||||||
ptr += 1;
|
ptr += 1;
|
||||||
|
} else if((ptr = strstr(newstr, "<"))) {
|
||||||
|
depend->mod = PM_DEP_MOD_LT;
|
||||||
|
*ptr = '\0';
|
||||||
|
ptr += 1;
|
||||||
|
} else if((ptr = strstr(newstr, ">"))) {
|
||||||
|
depend->mod = PM_DEP_MOD_GT;
|
||||||
|
*ptr = '\0';
|
||||||
|
ptr += 1;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
/* no version specified - copy in the name and return it */
|
/* no version specified - copy in the name and return it */
|
||||||
depend->mod = PM_DEP_MOD_ANY;
|
depend->mod = PM_DEP_MOD_ANY;
|
||||||
@ -684,6 +695,12 @@ char SYMEXPORT *alpm_dep_get_string(const pmdepend_t *dep)
|
|||||||
case PM_DEP_MOD_EQ:
|
case PM_DEP_MOD_EQ:
|
||||||
opr = "=";
|
opr = "=";
|
||||||
break;
|
break;
|
||||||
|
case PM_DEP_MOD_LT:
|
||||||
|
opr = "<";
|
||||||
|
break;
|
||||||
|
case PM_DEP_MOD_GT:
|
||||||
|
opr = ">";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
opr = "";
|
opr = "";
|
||||||
break;
|
break;
|
||||||
|
14
pactest/tests/add046.py
Normal file
14
pactest/tests/add046.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
self.description = "pkg2<2.0 dependency (satisfy)"
|
||||||
|
|
||||||
|
p = pmpkg("pkg1")
|
||||||
|
p.depends = ["pkg2<2.0"]
|
||||||
|
self.addpkg(p)
|
||||||
|
|
||||||
|
lp = pmpkg("pkg2", "1.9b-3")
|
||||||
|
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")
|
14
pactest/tests/add047.py
Normal file
14
pactest/tests/add047.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
self.description = "pkg2<2.0 dependency (not satisfy)"
|
||||||
|
|
||||||
|
p = pmpkg("pkg1")
|
||||||
|
p.depends = ["pkg2<2.0"]
|
||||||
|
self.addpkg(p)
|
||||||
|
|
||||||
|
lp = pmpkg("pkg2", "2.0-3")
|
||||||
|
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")
|
Loading…
x
Reference in New Issue
Block a user