xbps_find_pkg_repo_deps: check if current pkg version in repo is

enough to satisfy the required rundep for a pkg!

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091129045232-ext4zxqrtsmbbqku
This commit is contained in:
Juan RP 2009-11-29 05:52:32 +01:00
parent 4e38be11f4
commit bd9b545fc9

View File

@ -311,7 +311,7 @@ find_repo_deps(prop_dictionary_t master, prop_dictionary_t repo,
prop_object_t obj; prop_object_t obj;
prop_object_iterator_t iter; prop_object_iterator_t iter;
pkg_state_t state = 0; pkg_state_t state = 0;
const char *reqpkg, *reqvers, *pkg_queued; const char *reqpkg, *reqvers, *pkg_queued, *repo_pkgver;
char *pkgname; char *pkgname;
int rv = 0; int rv = 0;
@ -381,7 +381,6 @@ find_repo_deps(prop_dictionary_t master, prop_dictionary_t repo,
free(pkgname); free(pkgname);
continue; continue;
} }
curpkgd = NULL;
} }
/* /*
@ -415,6 +414,21 @@ find_repo_deps(prop_dictionary_t master, prop_dictionary_t repo,
continue; continue;
} }
} }
/*
* If version in repo does not satisfy the rundep, pass
* to the next rundep.
*/
if (!prop_dictionary_get_cstring_nocopy(curpkgd,
"pkgver", &repo_pkgver)) {
free(pkgname);
rv = errno;
break;
}
if (xbps_pkgdep_match(repo_pkgver, __UNCONST(reqpkg)) < 1) {
free(pkgname);
continue;
}
/* /*
* If package is installed but version doesn't satisfy * If package is installed but version doesn't satisfy
* the dependency mark it as an update, otherwise as * the dependency mark it as an update, otherwise as