pld-builder.new: PLD_Builder/install_br.py Uninstall packages that...

arekm arekm at pld-linux.org
Sun Mar 16 21:04:49 CET 2008


Author: arekm                        Date: Sun Mar 16 20:04:49 2008 GMT
Module: pld-builder.new               Tag: HEAD
---- Log message:
Uninstall packages that are conflicting with packages in BuildRequires list.

---- Files affected:
pld-builder.new/PLD_Builder:
   install_br.py (1.13 -> 1.14) 

---- Diffs:

================================================================
Index: pld-builder.new/PLD_Builder/install_br.py
diff -u pld-builder.new/PLD_Builder/install_br.py:1.13 pld-builder.new/PLD_Builder/install_br.py:1.14
--- pld-builder.new/PLD_Builder/install_br.py:1.13	Sun Mar 25 04:58:09 2007
+++ pld-builder.new/PLD_Builder/install_br.py	Sun Mar 16 21:04:44 2008
@@ -27,10 +27,37 @@
     for bre in needed.keys():
         nbr = nbr + " " + re.escape(bre)
     br = string.strip(nbr)
+    b.log_line("updating poldek cache...")
+    chroot.run("poldek --up; poldek --upa",
+            user = "root",
+            logfile = b.logfile)
+    # check conflicts in BRed packages
+    b.log_line("checking conflicting packages in BRed packages")
+    f = chroot.popen("poldek --test --caplookup -Q -v --upgrade %s" % br, user = "root")
+    rx = re.compile(r".*conflicts with installed ([^\s]+)")
+    conflicting = {}
+    for l in f.xreadlines():
+        b.log_line("rpm: %s" % l)
+        m = rx.search(l)
+        if m: conflicting[m.group(1)] = 1
+    f.close()
+    if len(conflicting) == 0:
+        b.log_line("no conflicts found")
+    else:
+        ncf = ""
+        for cfe in conflicting.keys():
+            ncf = ncf + " " + re.escape(cfe)
+        cf = string.strip(cfe)
+        b.log_line("uninstalling conflicting packages")
+        res = chroot.run("poldek -Q -v --noask --erase %s" % br,
+                user = "root",
+                logfile = b.logfile)
+        if res != 0:
+            b.log_line("error: conflicting packages uninstallation failed")
     b.log_line("installing BR: %s" % br)
-    res = chroot.run("poldek --up; poldek --upa; poldek --caplookup -Q -v --upgrade %s" % br,
-                         user = "root",
-                         logfile = b.logfile)
+    res = chroot.run("poldek --caplookup -Q -v --upgrade %s" % br,
+            user = "root",
+            logfile = b.logfile)
     if res != 0:
         b.log_line("error: BR installation failed")
     return res
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/pld-builder.new/PLD_Builder/install_br.py?r1=1.13&r2=1.14&f=u



More information about the pld-cvs-commit mailing list