diff --git a/.gitignore b/.gitignore index 535a6b2..1092685 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ koji-1.4.0.tar.bz2 /koji-1.10.1.tar.bz2 /koji-1.11.0.tar.bz2 /koji-1.12.0.tar.bz2 +/koji-1.13.0.tar.bz2 diff --git a/0001-allow-kojid-to-start-when-not-using-ssl-cert-auth.patch b/0001-allow-kojid-to-start-when-not-using-ssl-cert-auth.patch deleted file mode 100644 index 08d2ddc..0000000 --- a/0001-allow-kojid-to-start-when-not-using-ssl-cert-auth.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 952465a544a0243b6112a10bfcfdffb1ad081fab Mon Sep 17 00:00:00 2001 -From: Dennis Gilmore -Date: Wed, 19 Apr 2017 14:51:19 -0500 -Subject: [PATCH] allow kojid to start when not using ssl cert auth - -kojid in koji 1.12.0 fails to start when not using ssl cert auth -Traceback (most recent call last): - File "/usr/sbin/kojid", line 5627, in - if os.path.isfile(options.cert): - File "/usr/lib64/python2.7/genericpath.py", line 37, in isfile - st = os.stat(path) - TypeError: coercing to Unicode: need string or buffer, NoneType found -if you do not have a cert option defined we should move on. so add -to the if statement a check that the option is actually defined - -Signed-off-by: Dennis Gilmore ---- - builder/kojid | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/builder/kojid b/builder/kojid -index 6f3837a..dd46d4a 100755 ---- a/builder/kojid -+++ b/builder/kojid -@@ -5624,7 +5624,7 @@ if __name__ == "__main__": - #start a session and login - session_opts = koji.grab_session_options(options) - session = koji.ClientSession(options.server, session_opts) -- if os.path.isfile(options.cert): -+ if options.cert and os.path.isfile(options.cert): - try: - # authenticate using SSL client certificates - session.ssl_login(options.cert, None, --- -2.12.2 - diff --git a/403.patch b/403.patch deleted file mode 100644 index a0a56ea..0000000 --- a/403.patch +++ /dev/null @@ -1,226 +0,0 @@ -From 2ed39c5e95a16fbc5d6c3fed7c7d7ff54d973e4c Mon Sep 17 00:00:00 2001 -From: Tomas Kopecek -Date: May 12 2017 07:52:42 +0000 -Subject: [PATCH 1/5] remove non-printable characters in fixEncoding - - -Some real-world changelogs contains non-printable characters or invalid -unicode ones. xmlrpc fails on such strings, so we sanitize changelog -strings before passing it to client. - -Related: https://pagure.io/koji/issue/349 - ---- - -diff --git a/hub/kojihub.py b/hub/kojihub.py -index 8c344f1..e7ad99f 100644 ---- a/hub/kojihub.py -+++ b/hub/kojihub.py -@@ -9376,7 +9376,8 @@ class RootExports(object): - else: - results.append({'date': cldate, 'date_ts': cltime, 'author': clname, 'text': cltext}) - -- return _applyQueryOpts(results, queryOpts) -+ results = _applyQueryOpts(results, queryOpts) -+ return koji.fixEncodingRecurse(results) - - def cancelBuild(self, buildID): - """Cancel the build with the given buildID -diff --git a/koji/__init__.py b/koji/__init__.py -index 7bafee7..f3cc50f 100644 ---- a/koji/__init__.py -+++ b/koji/__init__.py -@@ -2894,7 +2894,12 @@ def _taskLabel(taskInfo): - else: - return '%s (%s)' % (method, arch) - --def fixEncoding(value, fallback='iso8859-15'): -+NONPRINTABLE = ''.join([chr(x) for x in range(10) + range(11, 13) + range(14, 32) + [127]]) -+def removeNonprintable(value): -+ # expects raw-encoded string, not unicode -+ return value.translate(None, NONPRINTABLE) -+ -+def fixEncoding(value, fallback='iso8859-15', remove_nonprintable=True): - """ - Convert value to a 'str' object encoded as UTF-8. - If value is not valid UTF-8 to begin with, assume it is -@@ -2906,18 +2911,22 @@ def fixEncoding(value, fallback='iso8859-15'): - if isinstance(value, unicode): - # value is already unicode, so just convert it - # to a utf8-encoded str -- return value.encode('utf8') -+ s = value.encode('utf8') - else: - # value is a str, but may be encoded in utf8 or some - # other non-ascii charset. Try to verify it's utf8, and if not, - # decode it using the fallback encoding. - try: -- return value.decode('utf8').encode('utf8') -+ s = value.decode('utf8').encode('utf8') - except UnicodeDecodeError: -- return value.decode(fallback).encode('utf8') -+ s = value.decode(fallback).encode('utf8') -+ if remove_nonprintable: -+ return removeNonprintable(s) -+ else: -+ return s - - --def fixEncodingRecurse(value, fallback='iso8859-15'): -+def fixEncodingRecurse(value, fallback='iso8859-15', remove_nonprintable=True): - """Recursively fix string encoding in an object - - Similar behavior to fixEncoding, but recursive -@@ -2934,15 +2943,22 @@ def fixEncodingRecurse(value, fallback='iso8859-15'): - ret[k] = v - return ret - elif isinstance(value, unicode): -- return value.encode('utf8') -+ if remove_nonprintable: -+ return removeNonprintable(value.encode('utf8')) -+ else: -+ return value.encode('utf8') - elif isinstance(value, str): - # value is a str, but may be encoded in utf8 or some - # other non-ascii charset. Try to verify it's utf8, and if not, - # decode it using the fallback encoding. - try: -- return value.decode('utf8').encode('utf8') -- except UnicodeDecodeError, err: -- return value.decode(fallback).encode('utf8') -+ s = value.decode('utf8').encode('utf8') -+ except UnicodeDecodeError: -+ s = value.decode(fallback).encode('utf8') -+ if remove_nonprintable: -+ return removeNonprintable(s) -+ else: -+ return s - else: - return value - - -From 6a1ea7d1dcd297d47da7d81e88474c3b2ac11e47 Mon Sep 17 00:00:00 2001 -From: Tomas Kopecek -Date: May 12 2017 07:52:42 +0000 -Subject: [PATCH 2/5] less restrictive filter - - ---- - -diff --git a/koji/__init__.py b/koji/__init__.py -index f3cc50f..d35db93 100644 ---- a/koji/__init__.py -+++ b/koji/__init__.py -@@ -2894,10 +2894,11 @@ def _taskLabel(taskInfo): - else: - return '%s (%s)' % (method, arch) - --NONPRINTABLE = ''.join([chr(x) for x in range(10) + range(11, 13) + range(14, 32) + [127]]) -+CONTROL_CHARS = [chr(i) for i in range(32)] -+NONPRINTABLE_CHARS = ''.join([c for c in CONTROL_CHARS if c not in '\r\n\t']) - def removeNonprintable(value): - # expects raw-encoded string, not unicode -- return value.translate(None, NONPRINTABLE) -+ return value.translate(None, NONPRINTABLE_CHARS) - - def fixEncoding(value, fallback='iso8859-15', remove_nonprintable=True): - """ - -From a7b4389b81cb66816d4d93e0a4af0685dae01a83 Mon Sep 17 00:00:00 2001 -From: Tomas Kopecek -Date: May 12 2017 07:52:42 +0000 -Subject: [PATCH 3/5] don't remove nonprintable characters by default - - ---- - -diff --git a/hub/kojihub.py b/hub/kojihub.py -index e7ad99f..3258f03 100644 ---- a/hub/kojihub.py -+++ b/hub/kojihub.py -@@ -9377,7 +9377,7 @@ class RootExports(object): - results.append({'date': cldate, 'date_ts': cltime, 'author': clname, 'text': cltext}) - - results = _applyQueryOpts(results, queryOpts) -- return koji.fixEncodingRecurse(results) -+ return koji.fixEncodingRecurse(results, remove_nonprintable=True) - - def cancelBuild(self, buildID): - """Cancel the build with the given buildID -diff --git a/koji/__init__.py b/koji/__init__.py -index d35db93..fc6456f 100644 ---- a/koji/__init__.py -+++ b/koji/__init__.py -@@ -2900,7 +2900,7 @@ def removeNonprintable(value): - # expects raw-encoded string, not unicode - return value.translate(None, NONPRINTABLE_CHARS) - --def fixEncoding(value, fallback='iso8859-15', remove_nonprintable=True): -+def fixEncoding(value, fallback='iso8859-15', remove_nonprintable=False): - """ - Convert value to a 'str' object encoded as UTF-8. - If value is not valid UTF-8 to begin with, assume it is -@@ -2927,7 +2927,7 @@ def fixEncoding(value, fallback='iso8859-15', remove_nonprintable=True): - return s - - --def fixEncodingRecurse(value, fallback='iso8859-15', remove_nonprintable=True): -+def fixEncodingRecurse(value, fallback='iso8859-15', remove_nonprintable=False): - """Recursively fix string encoding in an object - - Similar behavior to fixEncoding, but recursive - -From 356c026367c4ac24de940cacb48eabc117b485bc Mon Sep 17 00:00:00 2001 -From: Tomas Kopecek -Date: May 12 2017 07:52:42 +0000 -Subject: [PATCH 4/5] propagate parameters recursively - - ---- - -diff --git a/koji/__init__.py b/koji/__init__.py -index fc6456f..84aceb0 100644 ---- a/koji/__init__.py -+++ b/koji/__init__.py -@@ -2933,14 +2933,14 @@ def fixEncodingRecurse(value, fallback='iso8859-15', remove_nonprintable=False): - Similar behavior to fixEncoding, but recursive - """ - if isinstance(value, tuple): -- return tuple([fixEncodingRecurse(x) for x in value]) -+ return tuple([fixEncodingRecurse(x, fallback=fallback, remove_nonprintable=remove_nonprintable) for x in value]) - elif isinstance(value, list): -- return list([fixEncodingRecurse(x) for x in value]) -+ return list([fixEncodingRecurse(x, fallback=fallback, remove_nonprintable=remove_nonprintable) for x in value]) - elif isinstance(value, dict): - ret = {} - for k in value: -- v = fixEncodingRecurse(value[k]) -- k = fixEncodingRecurse(k) -+ v = fixEncodingRecurse(value[k], fallback=fallback, remove_nonprintable=remove_nonprintable) -+ k = fixEncodingRecurse(k, fallback=fallback, remove_nonprintable=remove_nonprintable) - ret[k] = v - return ret - elif isinstance(value, unicode): - -From 4d37db92502dd8098ebcb77ba28fc5fc71214f55 Mon Sep 17 00:00:00 2001 -From: Tomas Kopecek -Date: May 12 2017 07:58:03 +0000 -Subject: [PATCH 5/5] remove non-printable characters from getRPMHeaders result - - ---- - -diff --git a/hub/kojihub.py b/hub/kojihub.py -index 3258f03..e3afce1 100644 ---- a/hub/kojihub.py -+++ b/hub/kojihub.py -@@ -9885,7 +9885,7 @@ class RootExports(object): - headers = koji.get_header_fields(rpm_path, headers) - for key, value in headers.items(): - if isinstance(value, basestring): -- headers[key] = koji.fixEncoding(value) -+ headers[key] = koji.fixEncoding(value, remove_nonprintable=True) - return headers - - queryRPMSigs = staticmethod(query_rpm_sigs) - diff --git a/449.patch b/449.patch deleted file mode 100644 index 26e550d..0000000 --- a/449.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 8c53aa3933cf51abd326ba5bc5811d04cf19488a Mon Sep 17 00:00:00 2001 -From: Patrick Uiterwijk -Date: Jun 03 2017 23:17:44 +0000 -Subject: Make sure to fix encoding all RPM Headers - - -The fix in #403 left some RPM Headers unfixed, most notably changelog* (because those are lists). -This patch makes use of fixEncodingRecurse to make sure all heades get encoded correctly. - -Signed-off-by: Patrick Uiterwijk - ---- - -diff --git a/hub/kojihub.py b/hub/kojihub.py -index 05dfb27..6257f20 100644 ---- a/hub/kojihub.py -+++ b/hub/kojihub.py -@@ -9878,10 +9878,7 @@ class RootExports(object): - raise koji.GenericError('either rpmID or taskID and filepath must be specified') - - headers = koji.get_header_fields(rpm_path, headers) -- for key, value in headers.items(): -- if isinstance(value, basestring): -- headers[key] = koji.fixEncoding(value, remove_nonprintable=True) -- return headers -+ return koji.fixEncodingRecurse(headers, remove_nonprintable=True) - - queryRPMSigs = staticmethod(query_rpm_sigs) - - diff --git a/5a23afaeeb1c54ccfb86e20b1f35c0215635536a.patch b/5a23afaeeb1c54ccfb86e20b1f35c0215635536a.patch deleted file mode 100644 index b96cb28..0000000 --- a/5a23afaeeb1c54ccfb86e20b1f35c0215635536a.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 5a23afaeeb1c54ccfb86e20b1f35c0215635536a Mon Sep 17 00:00:00 2001 -From: Patrick Uiterwijk -Date: May 04 2017 14:02:58 +0000 -Subject: Make proxyuser consistent between ssl and krb - - -Currently, krb would expect a krb principal where ssl expects a username. -This makes krb use the username, but also accept the krb_principal for -backwards compatibility. - -Signed-off-by: Patrick Uiterwijk - ---- - -diff --git a/koji/auth.py b/koji/auth.py -index 3cba331..105f998 100644 ---- a/koji/auth.py -+++ b/koji/auth.py -@@ -328,10 +328,14 @@ class Session(object): - login_principal = cprinc.name - user_id = self.getUserIdFromKerberos(login_principal) - if not user_id: -- if context.opts.get('LoginCreatesUser'): -- user_id = self.createUserFromKerberos(login_principal) -- else: -- raise koji.AuthError('Unknown Kerberos principal: %s' % login_principal) -+ user_id = self.getUserId(login_principal) -+ if not user_id: -+ # Only do autocreate if we also couldn't find by username AND the proxyuser -+ # looks like a krb5 principal -+ if context.opts.get('LoginCreatesUser') and '@' in login_principal: -+ user_id = self.createUserFromKerberos(login_principal) -+ else: -+ raise koji.AuthError('Unknown Kerberos principal: %s' % login_principal) - - self.checkLoginAllowed(user_id) - -@@ -575,6 +579,19 @@ class Session(object): - #for compatibility - return self.host_id - -+ def getUserId(self, username): -+ """Return the user ID associated with a particular username. If no user -+ with the given username if found, return None.""" -+ c = context.cnx.cursor() -+ q = """SELECT id FROM users WHERE name = %(username)s""" -+ c.execute(q, locals()) -+ r = c.fetchone() -+ c.close() -+ if r: -+ return r[0] -+ else: -+ return None -+ - def getUserIdFromKerberos(self, krb_principal): - """Return the user ID associated with a particular Kerberos principal. - If no user with the given princpal if found, return None.""" - diff --git a/5bcf029d037a673e013211445cc6ac892c6ed11e.patch b/5bcf029d037a673e013211445cc6ac892c6ed11e.patch deleted file mode 100644 index 2fb5b49..0000000 --- a/5bcf029d037a673e013211445cc6ac892c6ed11e.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 5bcf029d037a673e013211445cc6ac892c6ed11e Mon Sep 17 00:00:00 2001 -From: Tomas Kopecek -Date: May 19 2017 10:47:51 +0000 -Subject: don't inspect results for failed createImage tasks - - ---- - -diff --git a/builder/kojid b/builder/kojid -index 1a10483..235cbeb 100755 ---- a/builder/kojid -+++ b/builder/kojid -@@ -2228,6 +2228,8 @@ class BuildBaseImageTask(BuildImageTask): - if 'kickstart' in opts: - saw_ks = False - for arch in results.keys(): -+ if arch in ignored_arches: -+ continue - ks = os.path.basename(opts.get('kickstart')) - if ks in results[arch]['files']: - if saw_ks: - diff --git a/7ec0e2c6b01f27f7a23546c64d775a1befd722e4.patch b/7ec0e2c6b01f27f7a23546c64d775a1befd722e4.patch deleted file mode 100644 index 6533fbf..0000000 --- a/7ec0e2c6b01f27f7a23546c64d775a1befd722e4.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 7ec0e2c6b01f27f7a23546c64d775a1befd722e4 Mon Sep 17 00:00:00 2001 -From: Patrick Uiterwijk -Date: May 04 2017 14:02:58 +0000 -Subject: Make sslLogin use getUserId - - -Signed-off-by: Patrick Uiterwijk - ---- - -diff --git a/koji/auth.py b/koji/auth.py -index 105f998..6044590 100644 ---- a/koji/auth.py -+++ b/koji/auth.py -@@ -401,14 +401,8 @@ class Session(object): - else: - raise koji.AuthError('%s is not authorized to login other users' % client_dn) - -- cursor = context.cnx.cursor() -- query = """SELECT id FROM users -- WHERE name = %(username)s""" -- cursor.execute(query, locals()) -- result = cursor.fetchone() -- if result: -- user_id = result[0] -- else: -+ user_id = self.getUserId(username) -+ if not user_id: - if context.opts.get('LoginCreatesUser'): - user_id = self.createUser(username) - else: - diff --git a/fedora-config.patch b/fedora-config.patch index 4260bed..ec80300 100644 --- a/fedora-config.patch +++ b/fedora-config.patch @@ -1,6 +1,6 @@ ---- koji-1.12.0/cli/koji.conf.orig 2017-04-18 14:35:15.879593521 -0500 -+++ koji-1.12.0/cli/koji.conf 2017-04-18 14:37:45.818233378 -0500 -@@ -3,18 +3,20 @@ +--- koji-1.13.0/cli/koji.conf.fedoraconfig 2017-06-30 14:00:26.000000000 -0500 ++++ koji-1.13.0/cli/koji.conf 2017-07-03 12:41:55.615758878 -0500 +@@ -3,18 +3,23 @@ ;configuration for koji cli tool ;url of XMLRPC server @@ -18,16 +18,19 @@ ;path to the koji top directory ;topdir = /mnt/koji ++; use the fast upload feature of koji by default ++use_fast_upload = yes ++ ;configuration for Kerberos authentication +authtype = kerberos +krb_rdns = false ;the service name of the principal being used by the hub ;krbservice = host -@@ -25,10 +27,4 @@ +@@ -25,13 +30,6 @@ ;the keytab to auth as for automated clients ;keytab = /etc/krb5.keytab - + -;configuration for SSL authentication - -;client certificate @@ -35,4 +38,9 @@ - -;certificate of the CA that issued the HTTP server certificate -;serverca = ~/.koji/serverca.crt -+use_fast_upload = yes +- +-;enabled plugins for CLI, runroot and save_failed_tree are available +-;plugins = ++;enabled plugins for CLI, runroot is enabled by deafult for fedora ++;save_failed_tree is available ++plugins = runroot diff --git a/koji.spec b/koji.spec index e8e3361..a0ddc4f 100644 --- a/koji.spec +++ b/koji.spec @@ -1,4 +1,21 @@ -%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from %distutils.sysconfig import get_python_lib; print(get_python_lib())")} +# Enable Python 3 builds for Fedora + EPEL >5 +# NOTE: do **NOT** change 'epel' to 'rhel' here, as this spec is also +%if 0%{?fedora} || 0%{?epel} > 5 +%bcond_without python3 +# If the definition isn't available for python3_pkgversion, define it +%{?!python3_pkgversion:%global python3_pkgversion 3} +%else +%bcond_with python3 +%endif + +# Compatibility with RHEL. These macros have been added to EPEL but +# not yet to RHEL proper. +# https://bugzilla.redhat.com/show_bug.cgi?id=1307190 +%{!?__python2: %global __python2 /usr/bin/python2} +%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%{!?py2_build: %global py2_build %{expand: CFLAGS="%{optflags}" %{__python2} setup.py %{?py_setup_args} build --executable="%{__python2} -s"}} +%{!?py2_install: %global py2_install %{expand: CFLAGS="%{optflags}" %{__python2} setup.py %{?py_setup_args} install -O1 --skip-build --root %{buildroot}}} %if 0%{?fedora} || 0%{?rhel} >= 7 %global use_systemd 1 @@ -8,8 +25,8 @@ %endif Name: koji -Version: 1.12.0 -Release: 6%{?dist} +Version: 1.13.0 +Release: 1%{?dist} # koji.ssl libs (from plague) are GPLv2+ License: LGPLv2 and GPLv2+ Summary: Build system tools @@ -17,43 +34,85 @@ Group: Applications/System URL: https://pagure.io/koji/ Source0: https://releases.pagure.org/koji/koji-%{version}.tar.bz2 -Patch1: 0001-allow-kojid-to-start-when-not-using-ssl-cert-auth.patch -# https://pagure.io/koji/c/5a23afaeeb1c54ccfb86e20b1f35c0215635536a?branch=master -Patch2: 5a23afaeeb1c54ccfb86e20b1f35c0215635536a.patch -# https://pagure.io/koji/c/7ec0e2c6b01f27f7a23546c64d775a1befd722e4?branch=master -Patch3: 7ec0e2c6b01f27f7a23546c64d775a1befd722e4.patch -# https://pagure.io/koji/c/5bcf029d037a673e013211445cc6ac892c6ed11e?branch=master -Patch4: 5bcf029d037a673e013211445cc6ac892c6ed11e.patch -# https://pagure.io/koji/pull-request/403.patch -Patch5: 403.patch -# https://pagure.io/koji/pull-request/449.patch -Patch6: 449.patch - # Not upstreamable Patch100: fedora-config.patch BuildArch: noarch -Requires: python-krbV >= 1.0.13 -Requires: rpm-python -Requires: pyOpenSSL -Requires: python-requests -Requires: python-requests-kerberos -Requires: python-urlgrabber -Requires: python-dateutil +%if 0%{with python3} +Requires: python3-%{name} = %{version}-%{release} +Requires: python3-pycurl +Requires: python3-libcomps +%else +Requires: python2-%{name} = %{version}-%{release} +Requires: python2-pycurl +%if 0%{?fedora} || 0%{?rhel} >= 7 +Requires: python2-libcomps +%endif +%endif BuildRequires: python BuildRequires: python-sphinx %if %{use_systemd} BuildRequires: systemd BuildRequires: pkgconfig %endif -%if 0%{?fedora} || 0%{?rhel} >= 7 -Requires: python-libcomps -%endif %description Koji is a system for building and tracking RPMS. The base package contains shared libraries and the command-line interface. +%package -n python2-%{name} +Summary: Build system tools python library +%{?python_provide:%python_provide python2-%{name}} +BuildRequires: python2-devel +Requires: python-krbV >= 1.0.13 +Requires: rpm-python +Requires: pyOpenSSL +Requires: python-requests +Requires: python-requests-kerberos +Requires: python-dateutil +Requires: python-six + +%description -n python2-%{name} +Koji is a system for building and tracking RPMS. The base package +contains shared libraries and the command-line interface. + +%if 0%{with python3} +%package -n python3-%{name} +Summary: Build system tools python library +%{?python_provide:%python_provide python3-%{name}} +BuildRequires: python3-devel +Requires: python3-rpm +Requires: python3-pyOpenSSL +Requires: python3-requests +Requires: python3-requests-kerberos +Requires: python3-dateutil +Requires: python3-six + +%description -n python3-%{name} +Koji is a system for building and tracking RPMS. The base package +contains shared libraries and the command-line interface. +%endif + +%package -n python2-%{name}-cli-plugins +Summary: Koji client plugins +Group: Applications/Internet +License: LGPLv2 +Requires: %{name} = %{version}-%{release} + +%description -n python2-%{name}-cli-plugins +Plugins to the koji command-line interface + +%if 0%{with python3} +%package -n python3-%{name}-cli-plugins +Summary: Koji client plugins +Group: Applications/Internet +License: LGPLv2 +Requires: %{name} = %{version}-%{release} + +%description -n python3-%{name}-cli-plugins +Plugins to the koji command-line interface +%endif + %package hub Summary: Koji XMLRPC interface Group: Applications/Internet @@ -166,12 +225,6 @@ koji-web is a web UI to the Koji system. %prep %setup -q -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 %patch100 -p1 -b .fedoraconfig %build @@ -179,6 +232,16 @@ koji-web is a web UI to the Koji system. %install rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT %{?install_opt} install +%if 0%{with python3} +cd koji +make DESTDIR=$RPM_BUILD_ROOT PYTHON=python3 %{?install_opt} install +cd ../cli +make DESTDIR=$RPM_BUILD_ROOT PYTHON=python3 %{?install_opt} install +cd ../plugins +make DESTDIR=$RPM_BUILD_ROOT PYTHON=python3 %{?install_opt} install +# alter python interpreter in koji CLI +sed -i 's/\#\!\/usr\/bin\/python/\#\!\/usr\/bin\/python3/' $RPM_BUILD_ROOT/usr/bin/koji +%endif %clean rm -rf $RPM_BUILD_ROOT @@ -186,11 +249,37 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %{_bindir}/* -%{python_sitelib}/%{name} %config(noreplace) /etc/koji.conf %dir /etc/koji.conf.d %doc docs Authors COPYING LGPL +%files -n python2-%{name} +%defattr(-,root,root) +%{python2_sitelib}/%{name} +%{python2_sitelib}/koji_cli + +%if 0%{with python3} +%files -n python%{python3_pkgversion}-koji +%{python3_sitelib}/%{name} +%{python3_sitelib}/koji_cli +%endif + +%files -n python2-%{name}-cli-plugins +%defattr(-,root,root) +%{python2_sitelib}/koji_cli_plugins +# we don't have config files for default plugins yet +#%%dir %{_sysconfdir}/koji/plugins +#%%config(noreplace) %{_sysconfdir}/koji/plugins/*.conf + +%if 0%{with python3} +%files -n python%{python3_pkgversion}-%{name}-cli-plugins +%defattr(-,root,root) +%{python3_sitelib}/koji_cli_plugins +# we don't have config files for default plugins yet +#%%dir %{_sysconfdir}/koji/plugins +#%%config(noreplace) %{_sysconfdir}/koji/plugins/*.conf +%endif + %files hub %defattr(-,root,root) %{_datadir}/koji-hub @@ -341,335 +430,6 @@ fi %endif %changelog -* Wed Jun 14 2017 Dennis Gilmore - 1.12.0-6 -- change koji-web requires from mod_auth_kerb to mod_auth_gssapi - -* Sat Jun 03 2017 Patrick Uiterwijk - 1.12.0-5 -- Add patch for completing #349 fix - -* Sat Jun 03 2017 Patrick Uiterwijk - 1.12.0-4 -- Add upstreamed patch for #349 - -* Tue May 23 2017 Dennis Gilmore - 1.12.0-3 -- add some upstreamed patches needed to fix some things in fedora - -* Wed Apr 19 2017 Dennis Gilmore - 1.12.0-2 -- add patch so that kojid starts without ssl auth configured - -* Tue Apr 18 2017 Dennis Gilmore - 1.12.0-1 -- update to upstream 1.12.0 -- remove rhel 5 conditionals as its no longer supported in epel - -* Fri Feb 10 2017 Fedora Release Engineering - 1.11.0-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Sun Jan 08 2017 Till Maas - 1.11.0-5 -- Do not apply faulty CheckClientIP patch - -* Sun Jan 08 2017 Till Maas - 1.11.0-4 -- Add patch for keytab kerberos client config -- Move non upstreamable Fedora patch to the end to ease rebasing to future - upstream release -- Move license comment before license tag - -* Sat Jan 07 2017 Till Maas - 1.11.0-3 -- Add patches for proxy IP forwarding - -* Fri Jan 06 2017 Till Maas - 1.11.0-2 -- Update upstream URLs -- Add upstream koji-gc kerberos patches -- Use Source0 - -* Fri Dec 09 2016 Dennis Gilmore - 1.11.0-1 -- update to 1.11.0 -- setup fedora config for kerberos and flag day - -* Wed Sep 28 2016 Adam Miller - 1.10.1-13 -- Patch new-chroot functionality into runroot plugin - -* Tue Aug 23 2016 Dennis Gilmore - 1.10.1-12 -- add patch to disable bind mounting into image tasks chroots - -* Tue Jul 19 2016 Fedora Release Engineering - 1.10.1-11 -- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages - -* Thu May 26 2016 Dennis Gilmore - 1.10.1-10 -- add patch to enable dns in runroot chroots - -* Tue May 24 2016 Dennis Gilmore - 1.10.1-9 -- update to git master upstream, add lmc cosmetic fixes -- add patch to disable login in koji-web - -* Fri Apr 08 2016 Dennis Gilmore - 1.10.1-8 -- do not remove the - for project on livemedia -- fix the sending of messages on image completion - -* Thu Apr 07 2016 Dennis Gilmore - 1.10.1-7 -- --product had to be --project -- add missing Requires for koji-builder on python2-multilib - -* Wed Apr 06 2016 Dennis Gilmore - 1.10.1-6 -- add --product to livemedia-creator calls rhbz#1315110 - -* Wed Apr 06 2016 Dennis Gilmore - 1.10.1-5 -- enable dns in runroots -- add koji signed repo support -- Run plugin callbacks when image builds finish - -* Thu Mar 03 2016 Dennis Gilmore - 1.10.1-4 -- add a patch to install the runroot builder plugin in the correct place - -* Tue Mar 01 2016 Dennis Gilmore - 1.10.1-3 -- update to git e8201aac8294e6125a73504886b0800041b58868 -- https://pagure.io/fork/ausil/koji/branch/fedora-infra - -* Thu Feb 04 2016 Fedora Release Engineering - 1.10.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Nov 17 2015 Dennis Gilmore - 1.10.1-1 -- update to 1.10.1 -- Requires yum in the cli rhbz#1230888 - -* Thu Sep 24 2015 Kalev Lember - 1.10.0-2 -- Backport two patches to fix ClientSession SSL errors - -* Thu Jul 16 2015 Dennis Gilmore - 1.10.0=1 -- update to 1.10.0 release - -* Mon Jul 06 2015 Dennis Gilmore - 1.9.0-13.20150607gitf426fdb -- update the git snapshot to latest head -- enable systemd units for f23 up - -* Wed Jun 17 2015 Fedora Release Engineering - 1.9.0-12.20150423git52a0188 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Thu Apr 23 2015 Dennis Gilmore - 1.9.0-11.20150423git52a0188 -- update to latest git - -* Tue Jan 27 2015 Dennis Gilmore - 1.9.0-10.gitcd45e886 -- update to git tarball - -* Thu Dec 11 2014 Dennis Gilmore - 1.9.0-9 -- add upstream patch switching to TLS1 from sslv3 - -* Tue Sep 30 2014 Dennis Gilmore - 1.9.0-8 -- don't exclude koji-vm from ppc and ppc64 - -* Fri Sep 26 2014 Till Maas - 1.9.0-7 -- Use https for kojipkgs -- Update URL - -* Mon Aug 04 2014 Dennis Gilmore - 1.9.0-6 -- add patch to fix kickstart parsing - -* Mon Aug 04 2014 Dennis Gilmore - 1.9.0-5 -- add upstream patches for better docker support - -* Tue Jul 29 2014 Dennis Gilmore - 1.9.0-4 -- add upstream patch to compress docker images - -* Thu Jun 12 2014 Dennis Gilmore - 1.9.0-3 -- add patch to move builder workdir to /var/tmp -- add support for making raw.xz images - -* Sun Jun 08 2014 Fedora Release Engineering - 1.9.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Mon Mar 24 2014 Dennis Gilmore - 1.9.0-1 -- update to upstream 1.9.0 - -* Wed Jul 31 2013 Dennis Gilmore - 1.8.0-2 -- update from git snapshot - -* Mon Apr 01 2013 Dennis Gilmore - 1.8.0-1 -- update to upstream 1.8.0 - -* Thu Feb 14 2013 Fedora Release Engineering - 1.7.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Sun Jan 20 2013 Dennis Gilmore - 1.7.1-2 -- revert "avoid baseurl option in createrepo" patch -- fix integer overflow issue in checkUpload handler - -* Wed Nov 21 2012 Dennis Gilmore - 1.7.1-1 -- update to upstream 1.7.1 release - -* Sat Sep 01 2012 Dennis Gilmore - 1.7.0-7 -- add patch to mount all of /dev on appliances and lives - -* Fri Aug 31 2012 Dennis Gilmore - 1.7.0-4 -- add patch to only make /dev/urandom if it doesnt exist -- add upstream patch for taginfo fixes with older servers - -* Thu Jul 19 2012 Fedora Release Engineering - 1.7.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Tue Jun 05 2012 Dennis Gilmore - 1.7.0-2 -- use topurl not pkgurl in the fedora config - -* Fri Jun 01 2012 Dennis Gilmore - 1.7.0-1 -- update to 1.7.0 many bugfixes and improvements -- now uses mod_wsgi - -* Fri Jan 13 2012 Fedora Release Engineering - 1.6.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Mon Feb 07 2011 Fedora Release Engineering - 1.6.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Fri Dec 17 2010 Dennis Gilmore - 1.6.0-1 -- update to 1.6.0 - -* Wed Dec 01 2010 Dennis Gilmore - 1.5.0-1 -- update to 1.5.0 - -* Tue Aug 3 2010 David Malcolm - 1.4.0-4 -- fix python 2.7 incompatibilities (rhbz 619276) - -* Wed Jul 21 2010 David Malcolm - 1.4.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild - -* Sat Jul 10 2010 Dennis Gilmore - 1.4.0-2 -- add missing Requires: python-cheetah from koji-builder - -* Fri Jul 09 2010 Dennis Gilmore - 1.4.0-1 -- update to 1.4.0 -- Merge mead branch: support for building jars with Maven * -- support for building appliance images * -- soft dependencies for LiveCD/Appliance features -- smarter prioritization of repo regenerations -- package list policy to determine if package list changes are allowed -- channel policy to determine which channel a task is placed in -- edit host data via webui -- description and comment fields for hosts * -- cleaner log entries for kojihub -- track user data in versioned tables * -- allow setting retry parameters for the cli -- track start time for tasks * -- allow packages built from the same srpm to span multiple external repos -- make the command used to fetch sources configuable per repo -- kojira: remove unexpected directories -- let kojid to decide if it can handle a noarch task -- avoid extraneous ssl handshakes -- schema changes to support starred items - -* Fri Nov 20 2009 Dennis Gilmore - 1.3.2-1 -- update to 1.3.2 - -* Fri Jul 24 2009 Fedora Release Engineering - 1.3.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Wed Feb 25 2009 Fedora Release Engineering - 1.3.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Fri Feb 20 2009 Dennis Gilmore - 1.3.1-1 -- update to 1.3.1 - -* Wed Feb 18 2009 Dennis Gilmore - 1.3.0-1 -- update to 1.3.0 - -* Sat Nov 29 2008 Ignacio Vazquez-Abrams - 1.2.6-2 -- Rebuild for Python 2.6 - -* Mon Aug 25 2008 Dennis Gilmore - 1.2.6-1 -- update to 1.2.6 -- make sure we have to correct version of createrepo on Fedora 8 - -* Tue Aug 5 2008 Tom "spot" Callaway 1.2.5-2 -- fix conditional (line 5) -- fix license tag - -* Fri Jan 25 2008 jkeating 1.2.5-1 -- Put createrepo arguments in correct order - -* Thu Jan 24 2008 jkeating 1.2.4-1 -- Use the --skip-stat flag in createrepo calls. -- canonicalize tag arches before using them (dgilmore) -- fix return value of delete_build -- Revert to getfile urls if the task is not successful in emails -- Pass --target instead of --arch to mock. -- ignore trashcan tag in prune-signed-copies command -- add the "allowed_scms" kojid parameter -- allow filtering builds by the person who built them - -* Fri Dec 14 2007 jkeating 1.2.3-1 -- New upstream release with lots of updates, bugfixes, and enhancements. - -* Tue Jun 5 2007 Mike Bonnet - 1.2.2-1 -- only allow admins to perform non-scratch builds from srpm -- bug fixes to the cmd-line and web UIs - -* Thu May 31 2007 Mike Bonnet - 1.2.1-1 -- don't allow ExclusiveArch to expand the archlist (bz#239359) -- add a summary line stating whether the task succeeded or failed to the end of the "watch-task" output -- add a search box to the header of every page in the web UI -- new koji download-build command (patch provided by Dan Berrange) - -* Tue May 15 2007 Mike Bonnet - 1.2.0-1 -- change version numbering to a 3-token scheme -- install the koji favicon - -* Mon May 14 2007 Mike Bonnet - 1.1-5 -- cleanup koji-utils Requires -- fix encoding and formatting in email notifications -- expand archlist based on ExclusiveArch/BuildArchs -- allow import of rpms without srpms -- commit before linking in prepRepo to release db locks -- remove exec bit from kojid logs and uploaded files (patch by Enrico Scholz) - -* Tue May 1 2007 Mike Bonnet - 1.1-4 -- remove spurious Requires: from the koji-utils package - -* Tue May 1 2007 Mike Bonnet - 1.1-3 -- fix typo in BuildNotificationTask (patch provided by Michael Schwendt) -- add the --changelog param to the buildinfo command -- always send email notifications to the package builder and package owner -- improvements to the web UI - -* Tue Apr 17 2007 Mike Bonnet - 1.1-2 -- re-enable use of the --update flag to createrepo - -* Mon Apr 09 2007 Jesse Keating 1.1-1 -- make the output listPackages() consistent regardless of with_dups -- prevent large batches of repo deletes from holding up regens -- allow sorting the host list by arches - -* Mon Apr 02 2007 Jesse Keating 1.0-1 -- Release 1.0! - -* Wed Mar 28 2007 Mike Bonnet - 0.9.7-4 -- set SSL connection timeout to 12 hours - -* Wed Mar 28 2007 Mike Bonnet - 0.9.7-3 -- avoid SSL renegotiation -- improve log file handling in kojid -- bug fixes in command-line and web UI - -* Sun Mar 25 2007 Mike Bonnet - 0.9.7-2 -- enable http access to packages in kojid -- add Requires: pyOpenSSL -- building srpms from CVS now works with the Extras CVS structure -- fixes to the chain-build command -- bug fixes in the XML-RPC and web interfaces - -* Tue Mar 20 2007 Jesse Keating - 0.9.7-1 -- Package up the needed ssl files - -* Tue Mar 20 2007 Jesse Keating - 0.9.6-1 -- 0.9.6 release, mostly ssl auth stuff -- use named directories for config stuff -- remove -3 requires on creatrepo, don't need that specific anymore - -* Tue Feb 20 2007 Jesse Keating - 0.9.5-8 -- Add Authors COPYING LGPL to the docs of the main package - -* Tue Feb 20 2007 Jesse Keating - 0.9.5-7 -- Move web files from /var/www to /usr/share -- Use -p in install calls -- Add rpm-python to requires for koji - -* Mon Feb 19 2007 Jesse Keating - 0.9.5-6 -- Clean up spec for package review - -* Sun Feb 04 2007 Mike McLean - 0.9.5-1 -- project renamed to koji +* Mon Jul 03 2017 Dennis Gilmore - 1.13.0-1 +- update to upstream 1.13.0 +- remove old changelog entries diff --git a/sources b/sources index 199c8ab..77eb754 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (koji-1.12.0.tar.bz2) = 8898de9715c3d7bf828817eacfae55166d654ec8e561f3b1406b9208072af2ca277aeaf9e753d82938a4170aa261bf3d5f7c868142cbe9668e2e149c7f747cc8 +SHA512 (koji-1.13.0.tar.bz2) = be275566d48ebbcec1446bc6e49fae4be3694dd6afe233a35f787fb98e9763048f2452fedfb6b7de43e593a3617e7e65ab934d518cb1bd85cd806f9a650c81f1