commit 1ee5890ac3dfe565decb53e9af5842fe67274e91
Author: Michal Srb <msrb(a)redhat.com>
Date: Mon May 12 08:02:51 2014 +0200
[osgi] Do not fail if zipfile.is_zipfile() returns true for non-zip files
See rhbz#889131 for details
depgenerators/osgi.prov | 13 +++++++++----
depgenerators/osgi.req | 21 +++++++++++++--------
2 files changed, 22 insertions(+), 12 deletions(-)
---
diff --git a/depgenerators/osgi.prov b/depgenerators/osgi.prov
index 4090329..53b2cb4 100755
--- a/depgenerators/osgi.prov
+++ b/depgenerators/osgi.prov
@@ -85,10 +85,15 @@ class TagBuilder:
manifest = open(path)
self.handle_manifest(manifest)
if zipfile.is_zipfile(path):
- jarfile = ZipFile(path)
- if "META-INF/MANIFEST.MF" in jarfile.namelist():
- manifest = jarfile.open("META-INF/MANIFEST.MF")
- self.handle_manifest(manifest)
+ # looks like "zipfile.is_zipfile()" is not reliable
+ # see rhbz#889131 for more details
+ try:
+ jarfile = ZipFile(path)
+ if "META-INF/MANIFEST.MF" in jarfile.namelist():
+ manifest = jarfile.open("META-INF/MANIFEST.MF")
+ self.handle_manifest(manifest)
+ except IOError:
+ pass
if __name__ == "__main__":
diff --git a/depgenerators/osgi.req b/depgenerators/osgi.req
index be10cb1..037104f 100755
--- a/depgenerators/osgi.req
+++ b/depgenerators/osgi.req
@@ -87,14 +87,19 @@ class TagBuilder:
def get_osgi_require (self, path):
if not os.path.islink(path):
if zipfile.is_zipfile(path):
- jarfile = ZipFile(path)
- if "META-INF/MANIFEST.MF" in jarfile.namelist():
- manifest = jarfile.open("META-INF/MANIFEST.MF")
- headers = self.parse_manifest(manifest)
- if headers.get("Require-Bundle"):
- for bundle in
self.split_bundle_name(headers.get("Require-Bundle")):
- if bundle != "system.bundle":
- print "osgi(%s)" %(bundle)
+ # looks like "zipfile.is_zipfile()" is not reliable
+ # see rhbz#889131 for more details
+ try:
+ jarfile = ZipFile(path)
+ if "META-INF/MANIFEST.MF" in jarfile.namelist():
+ manifest = jarfile.open("META-INF/MANIFEST.MF")
+ headers = self.parse_manifest(manifest)
+ if headers.get("Require-Bundle"):
+ for bundle in
self.split_bundle_name(headers.get("Require-Bundle")):
+ if bundle != "system.bundle":
+ print "osgi(%s)" %(bundle)
+ except IOError:
+ pass
if __name__ == "__main__":
builder = TagBuilder ()