yeni pspec formatı (history) desteği, pisinizi güncelleyin

önceki pisi-index.xml ve eski binary paketler ile uyuşmayacaktır
cachelerinizi siliniz
This commit is contained in:
Gürer Özen
2005-10-13 10:13:14 +00:00
parent 7e0c6a5dd4
commit 4710ec5e2f
3 changed files with 34 additions and 20 deletions
+2 -1
View File
@@ -122,7 +122,8 @@ class MetaData(XmlFile):
self.package.license = pkg.license
self.package.runtimeDeps = pkg.runtimeDeps
self.package.paths = pkg.paths
self.package.history = src.history # FIXME
# FIXME: no need to copy full history with comments
self.package.history = src.history
self.package.conflicts = pkg.conflicts
self.package.providesComar = pkg.providesComar
self.package.requiresComar = pkg.requiresComar
+29 -18
View File
@@ -135,35 +135,37 @@ class PatchInfo:
class UpdateInfo:
def __init__(self, node = None):
if node:
self.release = getNodeAttribute(node, "release")
self.type = getNodeAttribute(node, "type")
self.date = getNodeText(getNode(node, "Date"))
self.version = getNodeText(getNode(node, "Version"))
self.release = getNodeText(getNode(node, "Release"))
self.type = getNodeText(getNode(node, "Type"))
self.comment = getNodeText(getNode(node, "Comment"))
self.name = getNodeText(getNode(node, "Name"))
self.email = getNodeText(getNode(node, "Email"))
else:
self.type = None
def elt(self, xml):
node = xml.newNode("Update")
node.setAttribute("release", self.release)
xml.addTextNodeUnder(node, "Date", self.date)
xml.addTextNodeUnder(node, "Version", self.version)
xml.addTextNodeUnder(node, "Release", self.release)
xml.addTextNodeUnder(node, "Comment", self.comment)
xml.addTextNodeUnder(node, "Name", self.name)
xml.addTextNodeUnder(node, "Email", self.email)
if self.type:
xml.addTextNodeUnder(node, "Type", self.type)
node.setAttribute("type", self.type)
return node
def has_errors(self):
err = Checks()
err.has_tag(self.date, "Update", "Date")
err.has_tag(self.version, "Update", "Version")
err.has_tag(self.release, "Update", "Release")
return err.list
def __str__(self):
s = self.date
s += ", ver=" + self.version
s += ", rel=" + self.release
s += ", type=" + self.type
return s
return "%s, ver=%s, rel=%s, type=%s" % (
self.data, self.version, self.release, self.type)
class PathInfo:
def __init__(self, node = None):
@@ -236,8 +238,6 @@ class SourceInfo:
buildDepElts = getAllNodes(node,
"BuildDependencies/Dependency")
self.buildDeps = [DepInfo(d) for d in buildDepElts]
historyElts = getAllNodes(node, "History/Update")
self.history = [UpdateInfo(x) for x in historyElts]
def elt(self, xml):
node = xml.newNode("Source")
@@ -276,12 +276,8 @@ class SourceInfo:
err.add(_("Source archive URI and type should be given"))
if not self.archiveSHA1:
errd.add(_("Source archive should have a SHA1 sum"))
if len(self.history) <= 0:
err.add(_("Source needs some education in History :)"))
err.join(self.packager.has_errors())
for update in self.history:
err.join(update.has_errors())
for patch in self.patches:
err.join(patch.has_errors())
for dep in self.buildDeps:
@@ -334,6 +330,7 @@ class PackageInfo:
xml.addNodeUnder(node, "RuntimeDependencies", dep.elt(xml))
for path in self.paths:
xml.addNodeUnder(node, "Files", path.elt(xml))
# FIXME: no need to put full history with comments in metafile.xml
for update in self.history:
xml.addNodeUnder(node, "History", update.elt(xml))
for conflict in self.conflicts:
@@ -395,11 +392,14 @@ class SpecFile(XmlFile):
self.source = SourceInfo(self.getNode("Source"))
historyElts = getAllNodes(self.getNode("History"), "Update")
self.history = [UpdateInfo(x) for x in historyElts]
# As we have no Source/Version tag we need to get
# the last version and release information
# from the first child of History/Update. And it works :)
self.source.version = self.source.history[0].version
self.source.release = self.source.history[0].release
self.source.version = self.history[0].version
self.source.release = self.history[0].release
# find all binary packages
packageElts = self.getAllNodes("Package")
@@ -408,8 +408,15 @@ class SpecFile(XmlFile):
self.merge_tags()
self.override_tags()
#FIXME: copy only needed information
# no need to keep full history with comments in metadata.xml
self.source.history = self.history
for p in self.packages:
p.history = self.history
self.unlink()
errs = self.has_errors()
if errs:
e = ""
@@ -471,6 +478,10 @@ class SpecFile(XmlFile):
errs.add(_("There should be at least one Package section"))
for p in self.packages:
err.join(p.has_errors())
if len(self.history) <= 0:
err.add(_("Source needs some education in History :)"))
for update in self.history:
err.join(update.has_errors())
return err.list
def write(self, filename):
+3 -1
View File
@@ -540,7 +540,9 @@ if errors:
printu("***")
if len(sys.argv) > 2:
if sys.argv[2] == "packager":
if sys.argv[2] == "check":
sys.exit(0)
elif sys.argv[2] == "packager":
if len(sys.argv) > 3:
packagers[unicode(sys.argv[3].decode('utf-8'))].report()
sys.exit(0)