diff options
author | Guido Günther <agx@sigxcpu.org> | 2017-11-13 09:45:29 +0100 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2017-11-13 09:49:52 +0100 |
commit | e74b40a8baf611c7939b8645c4d29c90cc31a6d2 (patch) | |
tree | c800b37f14492b0230c1a7fff4448d14768327f8 | |
parent | 6ed72d30c2910e8a444dc28f891caa834a26fe1d (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__.py | 19 |
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 |