Added support for shell (and csh as well) patterns for required

dependencies, as specified in blueprint "improved-version-matching".

It's possible now to require greater, greater or equal than,
less, less or equal than, and equal pkg versions, as well as using
'{}' and '[^!]' csh patterns in dependencies.

Code lifted from FreeBSD, thanks! :-)

Change XBPS_RELVER to 20091107 to match latest additions.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091107035620-3051wcwrirqn2g14
This commit is contained in:
Juan RP
2009-11-07 04:56:20 +01:00
parent 95b51ae72b
commit adbd3d727c
11 changed files with 280 additions and 31 deletions

View File

@@ -153,7 +153,7 @@ xbps_requiredby_pkg_add(prop_array_t regar, prop_dictionary_t pkg)
prop_array_t rdeps;
prop_object_t obj, obj2;
prop_object_iterator_t iter, iter2;
const char *reqname, *pkgname, *version;
const char *reqname, *pkgname, *version, *str;
char *rdepname, *fpkgn;
int rv = 0;
@@ -176,7 +176,8 @@ xbps_requiredby_pkg_add(prop_array_t regar, prop_dictionary_t pkg)
}
while ((obj = prop_object_iterator_next(iter)) != NULL) {
rdepname = xbps_get_pkg_name(prop_string_cstring_nocopy(obj));
str = prop_string_cstring_nocopy(obj);
rdepname = xbps_get_pkgdep_name(str);
iter2 = prop_array_iterator(regar);
if (iter2 == NULL) {
free(rdepname);