From 83c4f1e7e15b42d301548615f7f7fe429f35f0b4 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Nov 07 2019 19:43:49 +0000 Subject: make rpm import optional in koji/__init__.py Fixes: https://pagure.io/koji/issue/1772 --- diff --git a/koji/__init__.py b/koji/__init__.py index 40403bb..e415808 100644 --- a/koji/__init__.py +++ b/koji/__init__.py @@ -68,7 +68,10 @@ try: import requests_kerberos except ImportError: # pragma: no cover requests_kerberos = None -import rpm +try: + import rpm +except ImportError: + rpm = None import shutil import signal import socket @@ -605,6 +608,8 @@ class RawHeader(object): # see Maximum RPM Appendix A: Format of the RPM File def __init__(self, data): + if rpm is None: + raise koji.GenericError("rpm's python bindings are not installed") if data[0:3] != RPM_HEADER_MAGIC: raise GenericError("Invalid rpm header: bad magic: %r" % (data[0:3],)) self.header = data @@ -889,6 +894,8 @@ def splice_rpm_sighdr(sighdr, src, dst=None, bufsize=8192): def get_rpm_header(f, ts=None): """Return the rpm header.""" + if rpm is None: + raise koji.GenericError("rpm's python bindings are not installed") if ts is None: ts = rpm.TransactionSet() ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES|rpm._RPMVSF_NODIGESTS) diff --git a/setup.py b/setup.py index 21c789e..24d34db 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ def get_install_requires(): 'requests-kerberos', 'six', #'libcomps', - 'rpm-py-installer', + #'rpm-py-installer', # it is optional feature #'rpm', ] if sys.version_info[0] < 3: