From 22c900e7d57bfa7c9ed482f888ef200c0289ceec Mon Sep 17 00:00:00 2001 From: Chantry Xavier Date: Sun, 9 Dec 2007 14:49:34 +0100 Subject: Add new public alpm_checkdbconflicts function. This function has a limited purpose, but might be interesting to do a sanity check from a frontend (eg testdb). Also removed the private _alpm_checkconflicts function to avoid confusion. This function was used only once in libalpm, in sync.c, and was just a single line anyway. Having to do it manually makes it explicit that we are looking for two kind of conflicts (targ vs targ and db vs targ). Signed-off-by: Chantry Xavier Signed-off-by: Dan McGee --- lib/libalpm/alpm.h | 2 ++ lib/libalpm/conflict.c | 10 +++++++--- lib/libalpm/conflict.h | 1 - lib/libalpm/sync.c | 3 ++- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index 0d65cff4..4c2793ce 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -386,6 +386,8 @@ alpm_list_t *alpm_deptest(pmdb_t *db, alpm_list_t *targets); const char *alpm_miss_get_target(const pmdepmissing_t *miss); pmdepend_t *alpm_miss_get_dep(pmdepmissing_t *miss); +alpm_list_t *alpm_checkdbconflicts(pmdb_t *db_local); + const char *alpm_conflict_get_package1(pmconflict_t *conflict); const char *alpm_conflict_get_package2(pmconflict_t *conflict); diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c index 37ced287..7b4cd0c2 100644 --- a/lib/libalpm/conflict.c +++ b/lib/libalpm/conflict.c @@ -207,9 +207,13 @@ alpm_list_t *_alpm_outerconflicts(pmdb_t *db, alpm_list_t *packages) return(baddeps); } -/* Check for transaction conflicts */ -alpm_list_t *_alpm_checkconflicts(pmdb_t *db, alpm_list_t *packages) { - return(alpm_list_join(_alpm_innerconflicts(packages), _alpm_outerconflicts(db, packages))); +/** Check the package conflicts in a database + * + * @param db_local the database to check + * @return an alpm_list_t of pmconflict_t + */ +alpm_list_t SYMEXPORT *alpm_checkdbconflicts(pmdb_t *db_local) { + return(_alpm_innerconflicts(_alpm_db_get_pkgcache(db_local))); } /* Returns a alpm_list_t* of file conflicts. diff --git a/lib/libalpm/conflict.h b/lib/libalpm/conflict.h index 41cee934..98a3efe6 100644 --- a/lib/libalpm/conflict.h +++ b/lib/libalpm/conflict.h @@ -40,7 +40,6 @@ void _alpm_conflict_free(pmconflict_t *conflict); int _alpm_conflict_isin(pmconflict_t *needle, alpm_list_t *haystack); alpm_list_t *_alpm_innerconflicts(alpm_list_t *packages); alpm_list_t *_alpm_outerconflicts(pmdb_t *db, alpm_list_t *packages); -alpm_list_t *_alpm_checkconflicts(pmdb_t *db, alpm_list_t *packages); alpm_list_t *_alpm_db_find_fileconflicts(pmdb_t *db, pmtrans_t *trans, char *root); void _alpm_fileconflict_free(pmfileconflict_t *conflict); diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index da7a18fb..b8f472d0 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -456,7 +456,8 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync EVENT(trans, PM_TRANS_EVT_INTERCONFLICTS_START, NULL, NULL); _alpm_log(PM_LOG_DEBUG, "looking for conflicts\n"); - deps = _alpm_checkconflicts(db_local, list); + deps = alpm_list_join(_alpm_innerconflicts(list), + _alpm_outerconflicts(db_local, list)); if(deps) { int errorout = 0; alpm_list_t *asked = NULL; -- cgit v1.2.3-70-g09d2