Mark various functions in deps.c static
Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
5a9a570dda
commit
3bc3999bd2
2 changed files with 27 additions and 32 deletions
|
@ -43,7 +43,7 @@ void _alpm_dep_free(pmdepend_t *dep)
|
||||||
FREE(dep);
|
FREE(dep);
|
||||||
}
|
}
|
||||||
|
|
||||||
pmdepmissing_t *_alpm_depmiss_new(const char *target, pmdepend_t *dep,
|
static pmdepmissing_t *depmiss_new(const char *target, pmdepend_t *dep,
|
||||||
const char *causingpkg)
|
const char *causingpkg)
|
||||||
{
|
{
|
||||||
pmdepmissing_t *miss;
|
pmdepmissing_t *miss;
|
||||||
|
@ -67,6 +67,18 @@ void _alpm_depmiss_free(pmdepmissing_t *miss)
|
||||||
FREE(miss);
|
FREE(miss);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Does pkg1 depend on pkg2, ie. does pkg2 satisfy a dependency of pkg1? */
|
||||||
|
static int _alpm_dep_edge(pmpkg_t *pkg1, pmpkg_t *pkg2)
|
||||||
|
{
|
||||||
|
alpm_list_t *i;
|
||||||
|
for(i = alpm_pkg_get_depends(pkg1); i; i = i->next) {
|
||||||
|
if(_alpm_depcmp(pkg2, i->data)) {
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
/* Convert a list of pmpkg_t * to a graph structure,
|
/* Convert a list of pmpkg_t * to a graph structure,
|
||||||
* with a edge for each dependency.
|
* with a edge for each dependency.
|
||||||
* Returns a list of vertices (one vertex = one package)
|
* Returns a list of vertices (one vertex = one package)
|
||||||
|
@ -192,7 +204,7 @@ alpm_list_t *_alpm_sortbydeps(alpm_list_t *targets, int reverse)
|
||||||
return(newtargs);
|
return(newtargs);
|
||||||
}
|
}
|
||||||
|
|
||||||
pmpkg_t *_alpm_find_dep_satisfier(alpm_list_t *pkgs, pmdepend_t *dep)
|
static pmpkg_t *find_dep_satisfier(alpm_list_t *pkgs, pmdepend_t *dep)
|
||||||
{
|
{
|
||||||
alpm_list_t *i;
|
alpm_list_t *i;
|
||||||
|
|
||||||
|
@ -214,7 +226,7 @@ pmpkg_t *_alpm_find_dep_satisfier(alpm_list_t *pkgs, pmdepend_t *dep)
|
||||||
pmpkg_t SYMEXPORT *alpm_find_satisfier(alpm_list_t *pkgs, const char *depstring)
|
pmpkg_t SYMEXPORT *alpm_find_satisfier(alpm_list_t *pkgs, const char *depstring)
|
||||||
{
|
{
|
||||||
pmdepend_t *dep = _alpm_splitdep(depstring);
|
pmdepend_t *dep = _alpm_splitdep(depstring);
|
||||||
pmpkg_t *pkg = _alpm_find_dep_satisfier(pkgs, dep);
|
pmpkg_t *pkg = find_dep_satisfier(pkgs, dep);
|
||||||
_alpm_dep_free(dep);
|
_alpm_dep_free(dep);
|
||||||
return(pkg);
|
return(pkg);
|
||||||
}
|
}
|
||||||
|
@ -257,15 +269,15 @@ alpm_list_t SYMEXPORT *alpm_checkdeps(alpm_list_t *pkglist, int reversedeps,
|
||||||
pmdepend_t *depend = j->data;
|
pmdepend_t *depend = j->data;
|
||||||
/* 1. we check the upgrade list */
|
/* 1. we check the upgrade list */
|
||||||
/* 2. we check database for untouched satisfying packages */
|
/* 2. we check database for untouched satisfying packages */
|
||||||
if(!_alpm_find_dep_satisfier(upgrade, depend) &&
|
if(!find_dep_satisfier(upgrade, depend) &&
|
||||||
!_alpm_find_dep_satisfier(dblist, depend)) {
|
!find_dep_satisfier(dblist, depend)) {
|
||||||
/* Unsatisfied dependency in the upgrade list */
|
/* Unsatisfied dependency in the upgrade list */
|
||||||
pmdepmissing_t *miss;
|
pmdepmissing_t *miss;
|
||||||
char *missdepstring = alpm_dep_compute_string(depend);
|
char *missdepstring = alpm_dep_compute_string(depend);
|
||||||
_alpm_log(PM_LOG_DEBUG, "checkdeps: missing dependency '%s' for package '%s'\n",
|
_alpm_log(PM_LOG_DEBUG, "checkdeps: missing dependency '%s' for package '%s'\n",
|
||||||
missdepstring, alpm_pkg_get_name(tp));
|
missdepstring, alpm_pkg_get_name(tp));
|
||||||
free(missdepstring);
|
free(missdepstring);
|
||||||
miss = _alpm_depmiss_new(alpm_pkg_get_name(tp), depend, NULL);
|
miss = depmiss_new(alpm_pkg_get_name(tp), depend, NULL);
|
||||||
baddeps = alpm_list_add(baddeps, miss);
|
baddeps = alpm_list_add(baddeps, miss);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -278,19 +290,19 @@ alpm_list_t SYMEXPORT *alpm_checkdeps(alpm_list_t *pkglist, int reversedeps,
|
||||||
pmpkg_t *lp = i->data;
|
pmpkg_t *lp = i->data;
|
||||||
for(j = alpm_pkg_get_depends(lp); j; j = j->next) {
|
for(j = alpm_pkg_get_depends(lp); j; j = j->next) {
|
||||||
pmdepend_t *depend = j->data;
|
pmdepend_t *depend = j->data;
|
||||||
pmpkg_t *causingpkg = _alpm_find_dep_satisfier(modified, depend);
|
pmpkg_t *causingpkg = find_dep_satisfier(modified, depend);
|
||||||
/* we won't break this depend, if it is already broken, we ignore it */
|
/* we won't break this depend, if it is already broken, we ignore it */
|
||||||
/* 1. check upgrade list for satisfiers */
|
/* 1. check upgrade list for satisfiers */
|
||||||
/* 2. check dblist for satisfiers */
|
/* 2. check dblist for satisfiers */
|
||||||
if(causingpkg &&
|
if(causingpkg &&
|
||||||
!_alpm_find_dep_satisfier(upgrade, depend) &&
|
!find_dep_satisfier(upgrade, depend) &&
|
||||||
!_alpm_find_dep_satisfier(dblist, depend)) {
|
!find_dep_satisfier(dblist, depend)) {
|
||||||
pmdepmissing_t *miss;
|
pmdepmissing_t *miss;
|
||||||
char *missdepstring = alpm_dep_compute_string(depend);
|
char *missdepstring = alpm_dep_compute_string(depend);
|
||||||
_alpm_log(PM_LOG_DEBUG, "checkdeps: transaction would break '%s' dependency of '%s'\n",
|
_alpm_log(PM_LOG_DEBUG, "checkdeps: transaction would break '%s' dependency of '%s'\n",
|
||||||
missdepstring, alpm_pkg_get_name(lp));
|
missdepstring, alpm_pkg_get_name(lp));
|
||||||
free(missdepstring);
|
free(missdepstring);
|
||||||
miss = _alpm_depmiss_new(lp->name, depend, alpm_pkg_get_name(causingpkg));
|
miss = depmiss_new(lp->name, depend, alpm_pkg_get_name(causingpkg));
|
||||||
baddeps = alpm_list_add(baddeps, miss);
|
baddeps = alpm_list_add(baddeps, miss);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -538,7 +550,7 @@ void _alpm_recursedeps(pmdb_t *db, alpm_list_t *targs, int include_explicit)
|
||||||
* an error code without prompting
|
* an error code without prompting
|
||||||
* @return the resolved package
|
* @return the resolved package
|
||||||
**/
|
**/
|
||||||
pmpkg_t *_alpm_resolvedep(pmdepend_t *dep, alpm_list_t *dbs,
|
static pmpkg_t *resolvedep(pmdepend_t *dep, alpm_list_t *dbs,
|
||||||
alpm_list_t *excluding, int prompt)
|
alpm_list_t *excluding, int prompt)
|
||||||
{
|
{
|
||||||
alpm_list_t *i, *j;
|
alpm_list_t *i, *j;
|
||||||
|
@ -645,7 +657,7 @@ pmpkg_t SYMEXPORT *alpm_find_dbs_satisfier(alpm_list_t *dbs, const char *depstri
|
||||||
|
|
||||||
dep = _alpm_splitdep(depstring);
|
dep = _alpm_splitdep(depstring);
|
||||||
ASSERT(dep, return(NULL));
|
ASSERT(dep, return(NULL));
|
||||||
pkg = _alpm_resolvedep(dep, dbs, NULL, 1);
|
pkg = resolvedep(dep, dbs, NULL, 1);
|
||||||
_alpm_dep_free(dep);
|
_alpm_dep_free(dep);
|
||||||
return(pkg);
|
return(pkg);
|
||||||
}
|
}
|
||||||
|
@ -705,16 +717,16 @@ int _alpm_resolvedeps(alpm_list_t *localpkgs, alpm_list_t *dbs_sync, pmpkg_t *pk
|
||||||
pmdepend_t *missdep = alpm_miss_get_dep(miss);
|
pmdepend_t *missdep = alpm_miss_get_dep(miss);
|
||||||
/* check if one of the packages in the [*packages] list already satisfies
|
/* check if one of the packages in the [*packages] list already satisfies
|
||||||
* this dependency */
|
* this dependency */
|
||||||
if(_alpm_find_dep_satisfier(*packages, missdep)) {
|
if(find_dep_satisfier(*packages, missdep)) {
|
||||||
_alpm_depmiss_free(miss);
|
_alpm_depmiss_free(miss);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* check if one of the packages in the [preferred] list already satisfies
|
/* check if one of the packages in the [preferred] list already satisfies
|
||||||
* this dependency */
|
* this dependency */
|
||||||
pmpkg_t *spkg = _alpm_find_dep_satisfier(preferred, missdep);
|
pmpkg_t *spkg = find_dep_satisfier(preferred, missdep);
|
||||||
if(!spkg) {
|
if(!spkg) {
|
||||||
/* find a satisfier package in the given repositories */
|
/* find a satisfier package in the given repositories */
|
||||||
spkg = _alpm_resolvedep(missdep, dbs_sync, *packages, 0);
|
spkg = resolvedep(missdep, dbs_sync, *packages, 0);
|
||||||
}
|
}
|
||||||
if(!spkg) {
|
if(!spkg) {
|
||||||
pm_errno = PM_ERR_UNSATISFIED_DEPS;
|
pm_errno = PM_ERR_UNSATISFIED_DEPS;
|
||||||
|
@ -747,18 +759,6 @@ int _alpm_resolvedeps(alpm_list_t *localpkgs, alpm_list_t *dbs_sync, pmpkg_t *pk
|
||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Does pkg1 depend on pkg2, ie. does pkg2 satisfy a dependency of pkg1? */
|
|
||||||
int _alpm_dep_edge(pmpkg_t *pkg1, pmpkg_t *pkg2)
|
|
||||||
{
|
|
||||||
alpm_list_t *i;
|
|
||||||
for(i = alpm_pkg_get_depends(pkg1); i; i = i->next) {
|
|
||||||
if(_alpm_depcmp_tolerant(pkg2, i->data)) {
|
|
||||||
return(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
const char SYMEXPORT *alpm_miss_get_target(const pmdepmissing_t *miss)
|
const char SYMEXPORT *alpm_miss_get_target(const pmdepmissing_t *miss)
|
||||||
{
|
{
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
|
@ -44,18 +44,13 @@ struct __pmdepmissing_t {
|
||||||
|
|
||||||
void _alpm_dep_free(pmdepend_t *dep);
|
void _alpm_dep_free(pmdepend_t *dep);
|
||||||
pmdepend_t *_alpm_dep_dup(const pmdepend_t *dep);
|
pmdepend_t *_alpm_dep_dup(const pmdepend_t *dep);
|
||||||
pmdepmissing_t *_alpm_depmiss_new(const char *target, pmdepend_t *dep,
|
|
||||||
const char *causinpkg);
|
|
||||||
void _alpm_depmiss_free(pmdepmissing_t *miss);
|
void _alpm_depmiss_free(pmdepmissing_t *miss);
|
||||||
alpm_list_t *_alpm_sortbydeps(alpm_list_t *targets, int reverse);
|
alpm_list_t *_alpm_sortbydeps(alpm_list_t *targets, int reverse);
|
||||||
void _alpm_recursedeps(pmdb_t *db, alpm_list_t *targs, int include_explicit);
|
void _alpm_recursedeps(pmdb_t *db, alpm_list_t *targs, int include_explicit);
|
||||||
pmpkg_t *_alpm_resolvedep(pmdepend_t *dep, alpm_list_t *dbs, alpm_list_t *excluding, int prompt);
|
|
||||||
int _alpm_resolvedeps(alpm_list_t *localpkgs, alpm_list_t *dbs_sync, pmpkg_t *pkg,
|
int _alpm_resolvedeps(alpm_list_t *localpkgs, alpm_list_t *dbs_sync, pmpkg_t *pkg,
|
||||||
alpm_list_t *preferred, alpm_list_t **packages, alpm_list_t *remove,
|
alpm_list_t *preferred, alpm_list_t **packages, alpm_list_t *remove,
|
||||||
alpm_list_t **data);
|
alpm_list_t **data);
|
||||||
int _alpm_dep_edge(pmpkg_t *pkg1, pmpkg_t *pkg2);
|
|
||||||
pmdepend_t *_alpm_splitdep(const char *depstring);
|
pmdepend_t *_alpm_splitdep(const char *depstring);
|
||||||
pmpkg_t *_alpm_find_dep_satisfier(alpm_list_t *pkgs, pmdepend_t *dep);
|
|
||||||
int _alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep);
|
int _alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep);
|
||||||
int _alpm_depcmp_tolerant(pmpkg_t *pkg, pmdepend_t *dep);
|
int _alpm_depcmp_tolerant(pmpkg_t *pkg, pmdepend_t *dep);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue