From b96ea3934f63f54f1e095648e5b9ddafeb016c1d Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Jun 10 2024 07:02:56 +0000 Subject: handle koji versions back to 1.18 --- diff --git a/devtools/check-api b/devtools/check-api index 65cf558..e3e28eb 100755 --- a/devtools/check-api +++ b/devtools/check-api @@ -2,6 +2,7 @@ import inspect import json import os +import subprocess import sys import types @@ -11,8 +12,17 @@ from collections import OrderedDict kojitop = os.path.dirname(os.path.dirname(__file__)) sys.path.insert(0, kojitop) -import koji -from kojihub import auth, kojixmlrpc, kojihub +setup = kojitop + '/setup.py' +try: + proc = subprocess.Popen(['python', setup, '--version'], stdout=subprocess.PIPE) + (out, _) = proc.communicate() + VERSTR = out.decode().strip() + VERSION = tuple([int(x) for x in VERSTR.split('.')]) + # we use this version to adapt our api scan a bit, but we record + # the version from koji lib in the api data +except Exception: + VERSTR = '0.0.0' + VERSION = (0,0,0) import koji import koji.arch @@ -21,7 +31,11 @@ import koji.xmlrpcplus import koji.tasks import koji.plugin -from kojihub import kojixmlrpc +if VERSION >= (1, 32, 0): + from kojihub import kojixmlrpc +else: + from hub import kojixmlrpc + kojixmlrpc.load_scripts({'SCRIPT_FILENAME': kojixmlrpc.__file__}) def main(): @@ -63,7 +77,7 @@ def read_api(): data = OrderedDict() # we use OrderedDicts so that our json output diffs nicely - data['version'] = list(koji.__version_info__) + data['version'] = list(getattr(koji, '__version_info__', (0,0,0))) lib_modules = (koji, koji.arch, koji.util, koji.tasks, koji.xmlrpcplus, koji.plugin) data['lib'] = OrderedDict()