[Uludag-commits] r12306 - trunk/pisi/pisi

svn-uludag at uludag.org.tr svn-uludag at uludag.org.tr
9 Şub 2007 Cum 14:39:34 EET


Author: faik
Date: Fri Feb  9 14:39:33 2007
New Revision: 12306

Modified:
   trunk/pisi/pisi/constants.py
   trunk/pisi/pisi/index.py
   trunk/pisi/pisi/metadata.py
   trunk/pisi/pisi/util.py
Log:
* change delta package prefix: "delta.pisi" -> "pisi.delta"
* add delta packages to pisi-index



Modified: trunk/pisi/pisi/constants.py
=================================================================
--- trunk/pisi/pisi/constants.py	(original)
+++ trunk/pisi/pisi/constants.py	Fri Feb  9 14:39:33 2007
@@ -47,7 +47,7 @@
         self.__c.package_suffix = ".pisi"
 
         # delta suffix for package names
-        self.__c.delta_package_suffix = ".delta.pisi"
+        self.__c.delta_package_suffix = ".pisi.delta"
 
         # suffix for lzma
         self.__c.lzma_suffix = ".lzma"

Modified: trunk/pisi/pisi/index.py
=================================================================
--- trunk/pisi/pisi/index.py	(original)
+++ trunk/pisi/pisi/index.py	Fri Feb  9 14:39:33 2007
@@ -88,8 +88,12 @@
         self.repo_dir = repo_uri
 
         packages = []
+        deltas = {}
         for root, dirs, files in os.walk(repo_uri):
             for fn in files:
+                if fn.endswith(ctx.const.delta_package_suffix):
+                    name, version = util.parse_package_name(fn)
+                    deltas.setdefault(name, []).append(os.path.join(root, fn))
                 if fn.endswith(ctx.const.package_suffix):
                     packages.append(os.path.join(root, fn))
                 if fn == 'component.xml':
@@ -102,7 +106,7 @@
 
         for pkg in util.filter_latest_packages(packages):
             ctx.ui.info(_('Adding %s to package index') % pkg)
-            self.add_package(pkg, repo_uri)
+            self.add_package(pkg, deltas, repo_uri)
 
     def update_db(self, repo, txn = None):
         # FIXME: updating db takes too much time. So a notify mechanism is used to inform the status
@@ -129,7 +133,7 @@
             ctx.sourcedb.add_spec(sf, repo, txn=txn)
             update_progress()
 
-    def add_package(self, path, repo_uri):
+    def add_package(self, path, deltas, repo_uri):
         package = Package(path, 'r')
         md = package.get_metadata()
         md.package.packageSize = os.path.getsize(path)
@@ -149,6 +153,16 @@
             # No need to carry these with index (#3965)
             md.package.files = None
             md.package.additionalFiles = None
+
+            if md.package.name in deltas:
+                for delta_path in deltas[md.package.name]:
+                    delta = metadata.Delta()
+                    delta.packageURI = util.removepathprefix(repo_uri, delta_path)
+                    delta.packageSize = os.path.getsize(delta_path)
+                    name, relFrom, relTo = util.parse_delta_package_name(delta_path)
+                    delta.releaseFrom = relFrom
+                    md.package.deltaPackages.append(delta)
+
             self.packages.append(md.package)
 
     def add_component(self, path):

Modified: trunk/pisi/pisi/metadata.py
=================================================================
--- trunk/pisi/pisi/metadata.py	(original)
+++ trunk/pisi/pisi/metadata.py	Fri Feb  9 14:39:33 2007
@@ -27,6 +27,13 @@
 import pisi.pxml.autoxml as autoxml
 import pisi.util as util
 
+class Delta:
+    __metaclass__ = autoxml.autoxml
+    
+    t_PackageURI = [ autoxml.String, autoxml.optional]
+    t_PackageSize = [ autoxml.Long, autoxml.optional]
+    a_releaseFrom = [autoxml.String, autoxml.optional]
+
 class Source:
     __metaclass__ = autoxml.autoxml
 
@@ -45,6 +52,7 @@
     t_PackageSize = [ autoxml.Long, autoxml.optional]
     t_PackageHash = [ autoxml.String, autoxml.optional, "SHA1Sum" ]
     t_PackageURI = [ autoxml.String, autoxml.optional]
+    t_DeltaPackages = [ [Delta], autoxml.optional]
     t_PackageFormat = [ autoxml.String, autoxml.optional]
 
     t_Source = [ Source, autoxml.optional]

Modified: trunk/pisi/pisi/util.py
=================================================================
--- trunk/pisi/pisi/util.py	(original)
+++ trunk/pisi/pisi/util.py	Fri Feb  9 14:39:33 2007
@@ -633,6 +633,18 @@
 
     return (name, version)
 
+def parse_delta_package_name(package_name):
+    """Separate delta package name and release infos
+    
+    example: tasma-5-7.pisi.delta -> (tasma, 5, 7)
+    
+    """
+    name, release = parse_package_name(package_name)
+    release = release[:-len(ctx.const.delta_package_suffix)]
+    releaseFrom, releaseTo = release.split("-")
+    
+    return name, releaseFrom, releaseTo
+
 def filter_latest_packages(package_paths):
     """ For a given pisi package paths list where there may also be multiple versions
         of the same package, filters only the latest versioned ones """


Uludag-commits mesaj listesiyle ilgili daha fazla bilgi