index : pacman | |
Archlinux32 fork of pacman | gitolite user |
summaryrefslogtreecommitdiff |
author | Dan McGee <dan@archlinux.org> | 2007-03-04 01:22:57 +0000 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2007-03-04 01:22:57 +0000 |
commit | 8178c2f9863307b92a9634243f01a6aec4f42507 (patch) | |
tree | a7d857dbac88c930a4082970587950d7b3f01a94 /lib/libalpm/remove.c | |
parent | eb8ae6cdc8c7717f8bb5f83ec26dfcf3f971257e (diff) |
-rw-r--r-- | lib/libalpm/remove.c | 10 |
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)); |