[Gelistirici] İsmail.py de iyileştirme.

Güngör Erseymen gelurine at gmail.com
10 Ara 2008 Çar 15:45:05 EET


Merhaba,

Sbcl paketini kaynak koddan derleyebilmek için yaptığım değişiklikleri
bir türlü commit edememiştim. Aslında temel sorun ismail.py ye pakete
anlamsız depler yazılmasın diye eklenmiş  olan bölümmüş. Burasını aynı
kaynak paketten çıkan paketlerin sadece eski release ya da versionları
da builddep olabilsin şeklinde değiştirince sorun kalmadı.

Bana bu şekliyle ismail.py daha mantıklı geldi. Aşağıdaki patch i
commit edeyim mi? nedersiniz?

İyi çalışmalar.


Index: ismail.py
===================================================================
--- ismail.py   (revision 20801)
+++ ismail.py   (working copy)
@@ -420,10 +420,33 @@
         if prev != 1:
             piksError(doc.getTag("History"), errors, "missing release numbers")

+
+        # Old versions or releases of self packages can be in source
build dependencies.
+
+        hrel = int(self.history[0].release)
+        hver = pisi.version.Version(self.history[0].version)
+
         for pak in self.packages:
-            deps = map(lambda x: x.package, self.source.build_deps)
-            if pak.name in deps:
-                piksError(doc, errors, "package name '%s' is in
source '%s' build dependencies" % (pak.name, self.source.name))
+            build_deps = filter(lambda x: x.package == pak.name,
self.source.build_deps)
+
+            if len(build_deps) > 0:
+                for dep in build_deps:
+                    try:
+                        if dep.release != None and int(dep.release) < hrel:
+                            continue
+                        if dep.releaseFrom != None and
int(dep.releaseFrom) < hrel:
+                            continue
+                        if dep.version != None and
pisi.version.Version(dep.version) < hver:
+                            continue
+                        if dep.versionFrom != None and
pisi.version.Version(dep.versionFrom) < hver:
+                            continue
+                    except pisi.version.VersionException, e:
+                        piksError(doc, errors, "invalid version: %s" % e)
+                    except ValueError, e:
+                        piksError(doc, errors, "invalid release: %s" % e)
+
+                    piksError(doc, errors, "package name '%s' is in
source '%s' build dependencies with invalid release/version
information." % (pak.name, self.source.name))
+
             deps = map(lambda x: x.package, pak.packageDependencies)
             if pak.name in deps:
                 piksError(doc, errors, "package name '%s' is in self
dependencies" % pak.name)


Gelistirici mesaj listesiyle ilgili daha fazla bilgi