make rpm import optional in koji/__init__.py

Fixes: https://pagure.io/koji/issue/1772
This commit is contained in:
Tomas Kopecek 2019-11-07 14:42:37 -05:00
parent c1464236c5
commit e11ad814af
2 changed files with 9 additions and 2 deletions

View file

@ -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)

View file

@ -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: