diff --git a/koji/__init__.py b/koji/__init__.py index 8141d13f..3144507e 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 bed2eac4..167d34b6 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: