Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=755b48fc75d2810fd75708b175954bdf778edaad

commit 755b48fc75d2810fd75708b175954bdf778edaad
Author: Michel Hermier <[email protected]>
Date:   Tue May 7 10:45:10 2013 +0200

libpacman: Merge upgrade and remove path in _pacman_transpkg_checkdeps.

diff --git a/lib/libpacman/deps.c b/lib/libpacman/deps.c
index a01c750..d748001 100644
--- a/lib/libpacman/deps.c
+++ b/lib/libpacman/deps.c
@@ -387,7 +387,7 @@ int _pacman_transpkg_checkdeps(pmtrans_t *trans, 
pmtranspkg_t *transpkg, pmlist_
if (transpkg->type & PM_TRANS_TYPE_ADD) {
_pacman_trans_check_package_depends (trans, transpkg->pkg_new, baddeps);
}
-       if (transpkg->type == PM_TRANS_TYPE_UPGRADE) {
+       if (transpkg->type & PM_TRANS_TYPE_REMOVE) {
pmlist_t *i;

/* Check reverse depends using PM_PKG_REQUIREDBY */
@@ -396,33 +396,17 @@ int _pacman_transpkg_checkdeps(pmtrans_t *trans, 
pmtranspkg_t *transpkg, pmlist_
pmtranspkg_t *required_transpkg = __pacman_trans_get_trans_pkg (trans, 
required_pkg_name);
pmpkg_t *required_pkg_local;

-                       if (required_transpkg != NULL &&
-                                       required_transpkg->type & 
PM_TRANS_TYPE_ADD) {
-                               /* this package is also in the upgrade list, so 
don't worry about it */
-                               continue;
-                       }
-
-                       if((required_pkg_local = 
_pacman_db_get_pkgfromcache(db, required_pkg_name)) == NULL) {
-                               /* hmmm... package isn't installed.. */
-                               continue;
-                       }
-
-                       _pacman_trans_check_package_depends (trans, 
required_pkg_local, baddeps);
-               }
-       }
-       if (transpkg->type == PM_TRANS_TYPE_REMOVE) {
-               pmlist_t *i;
-
-               /* Check reverse depends using PM_PKG_REQUIREDBY */
-               for (i = _pacman_pkg_getinfo (transpkg->pkg_local, 
PM_PKG_REQUIREDBY); i; i = i->next) {
-                       const char *required_pkg_name = i->data;
-                       pmtranspkg_t *required_transpkg = 
__pacman_trans_get_trans_pkg (trans, required_pkg_name);
-                       pmpkg_t *required_pkg_local;
-
-                       if (required_transpkg != NULL &&
-                                       required_transpkg->type == 
PM_TRANS_TYPE_REMOVE) {
-                               /* Ignore required packages to be deleted */
-                               continue;
+                       if (required_transpkg != NULL) {
+                               if (transpkg->type & PM_TRANS_TYPE_ADD &&
+                                               required_transpkg->type & 
PM_TRANS_TYPE_ADD) {
+                                       /* The required package is also to be 
upgraded, so don't worry about it */
+                                       continue;
+                               }
+                               if (transpkg->type == PM_TRANS_TYPE_REMOVE &&
+                                               required_transpkg->type == 
PM_TRANS_TYPE_REMOVE) {
+                                       /* The required package is also to be 
deleted, so don't worry about it */
+                                       continue;
+                               }
}

if((required_pkg_local = _pacman_db_get_pkgfromcache(db, required_pkg_name)) == 
NULL) {
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to