summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libalpm/deps.c54
-rw-r--r--lib/libalpm/deps.h5
2 files changed, 27 insertions, 32 deletions
diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c
index 1f1e637f..2c2637ac 100644
--- a/lib/libalpm/deps.c
+++ b/lib/libalpm/deps.c
@@ -43,7 +43,7 @@ void _alpm_dep_free(pmdepend_t *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)
{
pmdepmissing_t *miss;
@@ -67,6 +67,18 @@ void _alpm_depmiss_free(pmdepmissing_t *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,
* with a edge for each dependency.
* 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);
}
-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;
@@ -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)
{
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);
return(pkg);
}
@@ -257,15 +269,15 @@ alpm_list_t SYMEXPORT *alpm_checkdeps(alpm_list_t *pkglist, int reversedeps,
pmdepend_t *depend = j->data;
/* 1. we check the upgrade list */
/* 2. we check database for untouched satisfying packages */
- if(!_alpm_find_dep_satisfier(upgrade, depend) &&
- !_alpm_find_dep_satisfier(dblist, depend)) {
+ if(!find_dep_satisfier(upgrade, depend) &&
+ !find_dep_satisfier(dblist, depend)) {
/* Unsatisfied dependency in the upgrade list */
pmdepmissing_t *miss;
char *missdepstring = alpm_dep_compute_string(depend);
_alpm_log(PM_LOG_DEBUG, "checkdeps: missing dependency '%s' for package '%s'\n",
missdepstring, alpm_pkg_get_name(tp));
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);
}
}
@@ -278,19 +290,19 @@ alpm_list_t SYMEXPORT *alpm_checkdeps(alpm_list_t *pkglist, int reversedeps,
pmpkg_t *lp = i->data;
for(j = alpm_pkg_get_depends(lp); j; j = j->next) {
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 */
/* 1. check upgrade list for satisfiers */
/* 2. check dblist for satisfiers */
if(causingpkg &&
- !_alpm_find_dep_satisfier(upgrade, depend) &&
- !_alpm_find_dep_satisfier(dblist, depend)) {
+ !find_dep_satisfier(upgrade, depend) &&
+ !find_dep_satisfier(dblist, depend)) {
pmdepmissing_t *miss;
char *missdepstring = alpm_dep_compute_string(depend);
_alpm_log(PM_LOG_DEBUG, "checkdeps: transaction would break '%s' dependency of '%s'\n",
missdepstring, alpm_pkg_get_name(lp));
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);
}
}
@@ -538,7 +550,7 @@ void _alpm_recursedeps(pmdb_t *db, alpm_list_t *targs, int include_explicit)
* an error code without prompting
* @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 *i, *j;
@@ -645,7 +657,7 @@ pmpkg_t SYMEXPORT *alpm_find_dbs_satisfier(alpm_list_t *dbs, const char *depstri
dep = _alpm_splitdep(depstring);
ASSERT(dep, return(NULL));
- pkg = _alpm_resolvedep(dep, dbs, NULL, 1);
+ pkg = resolvedep(dep, dbs, NULL, 1);
_alpm_dep_free(dep);
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);
/* check if one of the packages in the [*packages] list already satisfies
* this dependency */
- if(_alpm_find_dep_satisfier(*packages, missdep)) {
+ if(find_dep_satisfier(*packages, missdep)) {
_alpm_depmiss_free(miss);
continue;
}
/* check if one of the packages in the [preferred] list already satisfies
* this dependency */
- pmpkg_t *spkg = _alpm_find_dep_satisfier(preferred, missdep);
+ pmpkg_t *spkg = find_dep_satisfier(preferred, missdep);
if(!spkg) {
/* 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) {
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);
}
-/* 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)
{
ALPM_LOG_FUNC;
diff --git a/lib/libalpm/deps.h b/lib/libalpm/deps.h
index 86070ab4..11ad2462 100644
--- a/lib/libalpm/deps.h
+++ b/lib/libalpm/deps.h
@@ -44,18 +44,13 @@ struct __pmdepmissing_t {
void _alpm_dep_free(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);
alpm_list_t *_alpm_sortbydeps(alpm_list_t *targets, int reverse);
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,
alpm_list_t *preferred, alpm_list_t **packages, alpm_list_t *remove,
alpm_list_t **data);
-int _alpm_dep_edge(pmpkg_t *pkg1, pmpkg_t *pkg2);
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_tolerant(pmpkg_t *pkg, pmdepend_t *dep);