[paketler-commits] r69361 - 2009/devel/kernel/default/drivers/module-nvidia185/comar

paketler-commits at pardus.org.tr paketler-commits at pardus.org.tr
1 Haz 2009 Pzt 21:05:03 EEST


Author: fatih
Date: Mon Jun  1 21:05:03 2009
New Revision: 69361

Modified:
   2009/devel/kernel/default/drivers/module-nvidia185/comar/package.py
Log:
Migrate all configs

Modified: 2009/devel/kernel/default/drivers/module-nvidia185/comar/package.py
=================================================================
--- 2009/devel/kernel/default/drivers/module-nvidia185/comar/package.py	(original)
+++ 2009/devel/kernel/default/drivers/module-nvidia185/comar/package.py	Mon Jun  1 21:05:03 2009
@@ -3,30 +3,40 @@
 import os
 
 oldPackages = ("nvidia-drivers177", "nvidia-drivers180", "xorg-video-nvidia180")
-driverPackage = "xorg-video-nvidia185"
+currentPackage = "xorg-video-nvidia185"
 
 def enable(package):
     call(package.replace("-", "_"), "Xorg.Driver", "enable")
 
-def migrate(oldPackage, newPackage):
-    enable(newPackage)
-
+def migrate():
     configXML = "/var/lib/zorg/config.xml"
     if os.path.exists(configXML):
-        xmldata = open(configXML).read()
-        attr = "package='%s'"
-        xmldata = xmldata.replace(attr % oldPackage, attr % newPackage)
-        open(configXML, "w").write(xmldata)
+        import piksemel
+
+        doc = piksemel.parse(configXML)
+        dirty = False
+        for card in doc.tags("Card"):
+            ac = card.getTag("ActiveConfig")
+            if ac:
+                drv = ac.getTag("Driver")
+                if drv:
+                    pkg = drv.getAttribute("package")
+                    if pkg in oldPackages:
+                        drv.setAttribute("package", currentPackage)
+                        dirty = True
+
+        if dirty:
+            open(configXML, "w").write(doc.toPrettyString())
 
 def postInstall(fromVersion, fromRelease, toVersion, toRelease):
-    try:
-        enabledPackage = file("/var/lib/zorg/enabled_package").read()
+    migrate()
 
-        if enabledPackage in oldPackages:
-            migrate(enabledPackage, driverPackage)
+    try:
+        enabledPackage = open("/var/lib/zorg/enabled_package").read()
 
-        elif enabledPackage == driverPackage and fromVersion != toVersion:
-            enable(driverPackage)
+        if enabledPackage in oldPackages \
+            or (enabledPackage == currentPackage and fromVersion != toVersion):
+            enable(currentPackage)
 
     except IOError:
         pass


Paketler-commits mesaj listesiyle ilgili daha fazla bilgi