From 8178c2f9863307b92a9634243f01a6aec4f42507 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sun, 4 Mar 2007 01:22:57 +0000 Subject: * Maybe that call to _alpm_trans_update_depends was necessary. Added it back in but did it right by duplicating the package first. --- lib/libalpm/remove.c | 10 +++++++++- lib/libalpm/sync.c | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c index 84908580..9c57334b 100644 --- a/lib/libalpm/remove.c +++ b/lib/libalpm/remove.c @@ -264,7 +264,7 @@ static void unlink_file(pmpkg_t *info, alpm_list_t *lp, alpm_list_t *targ, int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db) { - pmpkg_t *info; + pmpkg_t *info, *infodup; alpm_list_t *targ, *lp; ALPM_LOG_FUNC; @@ -330,6 +330,9 @@ int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db) } } + /* duplicate the package so we can remove the requiredby fields later */ + infodup = _alpm_pkg_dup(info); + /* remove the package from the database */ _alpm_log(PM_LOG_DEBUG, _("updating database")); _alpm_log(PM_LOG_DEBUG, _("removing database entry '%s'"), pkgname); @@ -343,6 +346,11 @@ int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db) pkgname); } + /* update dependency packages' REQUIREDBY fields */ + _alpm_trans_update_depends(trans, infodup); + _alpm_pkg_free(infodup); + + PROGRESS(trans, PM_TRANS_PROGRESS_REMOVE_START, pkgname, 100, alpm_list_count(trans->packages), (alpm_list_count(trans->packages) - alpm_list_count(targ) +1)); diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index 6f5a715d..71925482 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -1065,7 +1065,7 @@ pmsyncpkg_t *_alpm_sync_find(alpm_list_t *syncpkgs, const char* pkgname) } } - _alpm_log(PM_LOG_DEBUG, _("package '%s not found in sync"), pkgname); + _alpm_log(PM_LOG_DEBUG, _("package '%s' not found in sync"), pkgname); return(NULL); /* not found */ } -- cgit v1.2.3-24-g4f1b