diff options
author | Chantry Xavier <shiningxc@gmail.com> | 2007-12-09 14:49:34 +0100 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2008-01-23 20:12:41 -0600 |
commit | 22c900e7d57bfa7c9ed482f888ef200c0289ceec (patch) | |
tree | dd797c831d8edfb2679b176ba431099039b8f3e9 /lib | |
parent | 6b8f404a33b14ccb89f3adedf438f08b330a177a (diff) | |
download | pacman-22c900e7d57bfa7c9ed482f888ef200c0289ceec.tar.xz |
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 <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libalpm/alpm.h | 2 | ||||
-rw-r--r-- | lib/libalpm/conflict.c | 10 | ||||
-rw-r--r-- | lib/libalpm/conflict.h | 1 | ||||
-rw-r--r-- | 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; |