[pacman-dev] CVS update of pacman-lib/lib/libalpm (sync.c)

Dan McGee dan at archlinux.org
Wed Mar 28 00:32:00 EDT 2007


    Date: Wednesday, March 28, 2007 @ 00:32:00
  Author: dan
    Path: /home/cvs-pacman/pacman-lib/lib/libalpm

Modified: sync.c (1.112 -> 1.113)

Fix --ignore behavior on sysupgrade

* --ignore was being ignored (haha) on sysupgrade when a package was listed
  as being a force upgrade. This adds a prompt to the user in this case asking
  what to do.

Signed-off-by: Dan McGee <dan at archlinux.org>


--------+
 sync.c |   18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)


Index: pacman-lib/lib/libalpm/sync.c
diff -u pacman-lib/lib/libalpm/sync.c:1.112 pacman-lib/lib/libalpm/sync.c:1.113
--- pacman-lib/lib/libalpm/sync.c:1.112	Tue Mar 20 23:08:19 2007
+++ pacman-lib/lib/libalpm/sync.c	Wed Mar 28 00:32:00 2007
@@ -216,14 +216,22 @@
 									alpm_pkg_get_name(local), alpm_pkg_get_version(local),
 									alpm_pkg_get_name(spkg), alpm_pkg_get_version(spkg));
 				if(!_alpm_sync_find(trans->packages, alpm_pkg_get_name(spkg))) {
-					pmpkg_t *dummy = _alpm_pkg_new(alpm_pkg_get_name(local),
-																				 alpm_pkg_get_version(local));
-					if(dummy == NULL) {
+					/* If package is in the ignorepkg list, ask before we add it to
+					 * the transaction */
+					if(alpm_list_find_str(handle->ignorepkg, alpm_pkg_get_name(local))) {
+						int resp = 0;
+						QUESTION(trans, PM_TRANS_CONV_INSTALL_IGNOREPKG, local, NULL, NULL, &resp);
+						if(!resp) {
+							continue;
+						}
+					}
+					pmpkg_t *tmp = _alpm_pkg_dup(local);
+					if(tmp == NULL) {
 						goto error;
 					}
-					sync = _alpm_sync_new(PM_SYNC_TYPE_UPGRADE, spkg, dummy);
+					sync = _alpm_sync_new(PM_SYNC_TYPE_UPGRADE, spkg, tmp);
 					if(sync == NULL) {
-						FREEPKG(dummy);
+						FREEPKG(tmp);
 						goto error;
 					}
 					trans->packages = alpm_list_add(trans->packages, sync);




More information about the pacman-dev mailing list