From 5c920137da4f2b4fea9e1b497d8d11ef3faeed83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Metin?= Date: Sun, 24 Jul 2005 17:23:14 +0000 Subject: [PATCH] =?UTF-8?q?-=20AdditionalFiles=20Package=20tag=C4=B1=20i?= =?UTF-8?q?=C3=A7erisine=20ta=C5=9F=C4=B1nd=C4=B1=20-=20Paket=20olu=C5=9Ft?= =?UTF-8?q?urma=20s=C4=B1ras=C4=B1nda=20art=C4=B1k=20AdditionalFiles=20i?= =?UTF-8?q?=C3=A7erisindekiler=20de=20pakete=20dahil=20ediliyor.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pisi/build.py | 17 +++++++++++++++++ pisi/metadata.py | 1 + pisi/sourcefetcher.py | 11 ++++++----- pisi/specfile.py | 18 +++++++++--------- 4 files changed, 33 insertions(+), 14 deletions(-) diff --git a/pisi/build.py b/pisi/build.py index a38f2332..812ecd69 100644 --- a/pisi/build.py +++ b/pisi/build.py @@ -227,6 +227,15 @@ class PisiBuild: fsize = "0" files.append(FileInfo(frpath, ftype, fsize, fhash)) + # append AdditionalFiles to files.xml + for afile in package.additionalFiles: + fpath = install_dir + afile.target + ftype = "AdditionalFile" + fhash = util.sha1_file(fpath) + fsize = str(os.path.getsize(fpath)) + frpath = util.removepathprefix(install_dir, fpath) # relative path + files.append(FileInfo(frpath, ftype, fsize, fhash)) + files.write(os.path.join(self.ctx.pkg_dir(), const.files_xml)) def buildPackages(self): @@ -259,6 +268,14 @@ class PisiBuild: pcomar.script) pkg.add_to_package(fname) + # store additional files + install_dir = self.ctx.pkg_dir() + const.install_dir_suffix + for afile in package.additionalFiles: + src = os.path.join(const.files_dir, afile.filename) + dest = os.path.join(install_dir + afile.target, afile.filename) + util.copy_file(src, dest) + if afile.permission: + os.chmod(dest, afile.permission) # add xmls and files os.chdir(self.ctx.pkg_dir()) diff --git a/pisi/metadata.py b/pisi/metadata.py index e0d84084..a9fe8ae9 100644 --- a/pisi/metadata.py +++ b/pisi/metadata.py @@ -81,6 +81,7 @@ class MetaData(XmlFile): self.package.conflicts = pkg.conflicts self.package.providesComar = pkg.providesComar self.package.requiresComar = pkg.requiresComar + self.package.additionalFiles = pkg.additionalFiles def read(self, filename): diff --git a/pisi/sourcefetcher.py b/pisi/sourcefetcher.py index 6128e270..b9d10a29 100644 --- a/pisi/sourcefetcher.py +++ b/pisi/sourcefetcher.py @@ -56,11 +56,12 @@ class SourceFetcher(object): def fetch_additionalFiles(self): spec = self.spec - for afile in spec.source.additionalFiles: - afileuri = join(self.location, - const.files_dir, patch.filename) - self.url.uri = afileuri - self.fetch(const.files_dir) + for pkg in self.spec.packages: + for afile in pkg.additionalFiles: + afileuri = join(self.location, + const.files_dir, patch.filename) + self.url.uri = afileuri + self.fetch(const.files_dir) def fetch(self, appendDest=""): from fetcher import fetchUrl diff --git a/pisi/specfile.py b/pisi/specfile.py index 874e4ace..13fb99de 100644 --- a/pisi/specfile.py +++ b/pisi/specfile.py @@ -33,14 +33,14 @@ class PackagerInfo: class AdditionalFileInfo: def __init__(self, node): - self.filepath = getNodeText(node) + self.filename = getNodeText(node) self.target = getNodeAttribute(node, "target") self.permission = getNodeAttribute(node, "permission") self.owner = getNodeAttribute(node, "owner") def elt(self, xml): node = xml.newNode("AdditionalFile") - xml.addText(node, self.filepath) + xml.addText(node, self.filename) node.setAttribute("target", self.target) if self.permission: node.setAttribute("permission", self.permission) @@ -48,7 +48,7 @@ class AdditionalFileInfo: node.setAttribute("owner", self.owner) def verify(self): - if not self.filepath: return False + if not self.filename: return False if not self.target: return False return True @@ -164,8 +164,6 @@ class SourceInfo: self.archiveSHA1 = getNodeAttribute(archiveNode, "sha1sum") patchElts = getAllNodes(node, "Patches/Patch") self.patches = [PatchInfo(p) for p in patchElts] - aFilesElts = getAllNodes(node, "AdditionalFiles/AdditionalFile") - self.additionalFiles = [AdditionalFileInfo(f) for f in aFilesElts] buildDepElts = getAllNodes(node, "BuildDependencies/Dependency") self.buildDeps = [DepInfo(d) for d in buildDepElts] historyElts = getAllNodes(node, "History/Update") @@ -188,8 +186,6 @@ class SourceInfo: archiveNode.setAttribute("sha1sum", self.archiveSHA1) for patch in self.patches: xml.addNodeUnder(node, "Patches", patch.elt(xml)) - for afile in self.additionalFiles: - xml.addNodeUnder(node, "AdditionalFiles", afile.elt(xml)) for dep in self.buildDeps: xml.addNodeUnder(node, "BuildDependencies", dep.elt(xml)) for update in self.history: @@ -212,8 +208,6 @@ class SourceInfo: if not update.verify(): return False for patch in self.patches: if not patch.verify(): return False - for afile in self.additionalFiles: - if not afile.verify(): return False for dep in self.buildDeps: if not dep.verify(): return False @@ -241,6 +235,8 @@ class PackageInfo(object): self.providesComar = [ComarProvide(x) for x in provComarElts] reqComarElts = getAllNodes(node, "Requires/COMAR") self.requiresComar = map(getNodeText, reqComarElts) + aFilesElts = getAllNodes(node, "AdditionalFiles/AdditionalFile") + self.additionalFiles = [AdditionalFileInfo(f) for f in aFilesElts] def elt(self, xml): node = xml.newNode("Package") @@ -265,6 +261,8 @@ class PackageInfo(object): xml.addNodeUnder(node, "Provides", pcomar.elt(xml)) for rcomar in self.requiresComar: xml.addTextNodeUnder(node, "Requires/COMAR", rcomar) + for afile in self.additionalFiles: + xml.addNodeUnder(node, "AdditionalFiles", afile.elt(xml)) return node def verify(self): @@ -278,6 +276,8 @@ class PackageInfo(object): if not path.verify(): return False for dep in self.runtimeDeps: if not dep.verify(): return False + for afile in self.additionalFiles: + if not afile.verify(): return False return True def __str__(self):