FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > ArchLinux > ArchLinux Pacman Development

 
 
LinkBack Thread Tools
 
Old 01-14-2008, 02:47 PM
Nagy Gabor
 
Default Alternative interpretation of multiple replaces

>From 3c3804926d84734c918d2626becb1c19eeebbd7e Mon Sep 17 00:00:00 2001
From: Nagy Gabor <ngaba@bibl.u-szeged.hu>
Date: Mon, 14 Jan 2008 16:44:22 +0100
Subject: [PATCH] Alternative interpretation of multiple replaces

Ref.: http://www.archlinux.org/pipermail/pacman-dev/2008-January/010819.html
sync134.py and sync135.py were modified accordingly.

Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu>
---
lib/libalpm/sync.c | 15 ++++++++++++++-
pactest/tests/sync134.py | 6 +++---
pactest/tests/sync135.py | 6 +++---
3 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index ca50efe..e2aebe2 100644
--- a/lib/libalpm/sync.c
+++ b/lib/libalpm/sync.c
@@ -115,7 +115,20 @@ static int find_replacements(pmtrans_t *trans, pmdb_t *db_local,
_alpm_log(PM_LOG_WARNING, _("%s-%s: ignoring package upgrade (to be replaced by %s-%s)
"),
alpm_pkg_get_name(lpkg), alpm_pkg_get_version(lpkg),
alpm_pkg_get_name(spkg), alpm_pkg_get_version(spkg));
- } else {
+ continue;
+ }
+ /* check if we already elected lpkg as to-be-replaced */
+ int replaced = 0;
+ alpm_list_t *l;
+ for(l = *syncpkgs; l && !replaced; l = l->next) {
+ pmsyncpkg_t *sync = l->data;
+ if(sync->type == PM_SYNC_TYPE_REPLACE) {
+ if(_alpm_pkg_find(alpm_pkg_get_name(lpkg), sync->data)) {
+ replaced = 1;
+ }
+ }
+ }
+ if(!replaced) {
/* get confirmation for the replacement */
if(trans) {
int doreplace = 0;
diff --git a/pactest/tests/sync134.py b/pactest/tests/sync134.py
index 572ab32..2bdaebf 100644
--- a/pactest/tests/sync134.py
+++ b/pactest/tests/sync134.py
@@ -1,4 +1,4 @@
-self.description = "Sysupgrade with a set of sync packages replacing a set local one"
+self.description = "Multiple replacers (1)"

sp1 = pmpkg("pkg2")
sp1.replaces = ["pkg1"]
@@ -17,5 +17,5 @@ self.args = "-Su"

self.addrule("PACMAN_RETCODE=0")
self.addrule("!PKG_EXIST=pkg1")
-for p in sp1, sp2:
- self.addrule("PKG_EXIST=%s" % p.name)
+self.addrule("PKG_EXIST=pkg2")
+self.addrule("!PKG_EXIST=pkg3")
diff --git a/pactest/tests/sync135.py b/pactest/tests/sync135.py
index 18c412a..10bd3b0 100644
--- a/pactest/tests/sync135.py
+++ b/pactest/tests/sync135.py
@@ -1,4 +1,4 @@
-self.description = "Sysupgrade with a set of sync packages replacing a set of local ones"
+self.description = "Multiple replacers (2)"

sp1 = pmpkg("pkg2")
sp1.replaces = ["pkg1"]
@@ -25,7 +25,7 @@ for p in lp1, lp2:
self.args = "-Su"

self.addrule("PACMAN_RETCODE=0")
-for p in lp1, lp2:
+for p in lp1, lp2, sp2, sp4:
self.addrule("!PKG_EXIST=%s" % p.name)
-for p in sp1, sp2, sp3, sp4:
+for p in sp1, sp3:
self.addrule("PKG_EXIST=%s" % p.name)
--
1.5.3.7


_______________________________________________
pacman-dev mailing list
pacman-dev@archlinux.org
http://archlinux.org/mailman/listinfo/pacman-dev
 

Thread Tools




All times are GMT. The time now is 12:49 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org