From e74b40a8baf611c7939b8645c4d29c90cc31a6d2 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Mon, 13 Nov 2017 09:45:29 +0100 Subject: 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. --- gbp/rpm/__init__.py | 19 ++++++++++++------- 1 file 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 -- cgit v1.2.3