summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2017-11-13 09:45:29 +0100
committerGuido Günther <agx@sigxcpu.org>2017-11-13 09:49:52 +0100
commite74b40a8baf611c7939b8645c4d29c90cc31a6d2 (patch)
treec800b37f14492b0230c1a7fff4448d14768327f8
parent6ed72d30c2910e8a444dc28f891caa834a26fe1d (diff)
rpm: conditionally check for librpm flags
Not all of them are in newer librpm and this way we can add new ones as needed as well.
-rw-r--r--gbp/rpm/__init__.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/gbp/rpm/__init__.py b/gbp/rpm/__init__.py
index 655e9b42..45bef116 100644
--- a/gbp/rpm/__init__.py
+++ b/gbp/rpm/__init__.py
@@ -62,13 +62,18 @@ class SrcRpmFile(object):
"""Keeps all needed data read from a source rpm"""
def __init__(self, srpmfile):
# Do not required signed packages to be able to import
- ts_vsflags = (librpm.RPMVSF_NOMD5HEADER | librpm.RPMVSF_NORSAHEADER |
- librpm.RPMVSF_NOSHA1HEADER | librpm.RPMVSF_NODSAHEADER |
- librpm.RPMVSF_NOMD5 | librpm.RPMVSF_NORSA |
- librpm.RPMVSF_NOSHA1 | librpm.RPMVSF_NODSA)
- srpmfp = open(srpmfile)
- self.rpmhdr = librpm.ts(vsflags=ts_vsflags).hdrFromFdno(srpmfp.fileno())
- srpmfp.close()
+ ts_vsflags = 0
+ for flag in ['RPMVSF_NOMD5HEADER', 'RPMVSF_NORSAHEADER',
+ 'RPMVSF_NOSHA1HEADER', 'RPMVSF_NODSAHEADER',
+ 'RPMVSF_NOMD5', 'RPMVSF_NORSA', 'RPMVSF_NOSHA1',
+ 'RPMVSF_NODSA']:
+ try:
+ # Ignore flags not present in different librpm versions
+ ts_vsflags |= getattr(librpm, flag)
+ except AttributeError:
+ pass
+ with open(srpmfile) as srpmfp:
+ self.rpmhdr = librpm.ts(vsflags=ts_vsflags).hdrFromFdno(srpmfp.fileno())
self.srpmfile = os.path.abspath(srpmfile)
@property