[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