[packages/python-pykerberos] - initial

qboosh qboosh at pld-linux.org
Sat Apr 18 17:58:42 CEST 2026


commit 768c13181425f367b40465932e1285a565a40aff
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sat Apr 18 17:59:11 2026 +0200

    - initial

 pykerberos-heimdal.patch |  77 ++++++++++++++++++++++++++++++++
 python-pykerberos.spec   | 114 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 191 insertions(+)
---
diff --git a/python-pykerberos.spec b/python-pykerberos.spec
new file mode 100644
index 0000000..18a7dc8
--- /dev/null
+++ b/python-pykerberos.spec
@@ -0,0 +1,114 @@
+#
+# Conditional build:
+%bcond_with	krb5	# MIT Kerberos instead of heimdal
+%bcond_without	python2 # CPython 2.x module
+%bcond_without	python3 # CPython 3.x module
+
+Summary:	High-level interface to Kerberos
+Summary(pl.UTF-8):	Wysokopoziomowy interfejs do Kerberosa
+Name:		python-pykerberos
+Version:	1.2.4
+Release:	1
+License:	Apache v2.0
+Group:		Libraries/Python
+#Source0Download: https://pypi.org/simple/pykerberos/
+Source0:	https://files.pythonhosted.org/packages/source/p/pykerberos/pykerberos-%{version}.tar.gz
+# Source0-md5:	3a1095035ef26f9551cdfc2a52ee02a5
+Patch0:		pykerberos-heimdal.patch
+URL:		https://pypi.org/project/pykerberos/
+%if %{with krb5}
+BuildRequires:	krb5-devel
+%else
+BuildRequires:	heimdal-devel
+%endif
+%if %{with python2}
+BuildRequires:	python-devel >= 1:2.5
+BuildRequires:	python-setuptools
+%endif
+%if %{with python3}
+BuildRequires:	python3-devel >= 1:3.2
+BuildRequires:	python3-setuptools
+%endif
+BuildRequires:	rpm-pythonprov
+BuildRequires:	rpmbuild(macros) >= 1.714
+Requires:	python-modules >= 1:2.5
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+This Python package is a high-level wrapper for Kerberos (GSSAPI)
+operations. The goal is to avoid having to build a module that wraps
+the entire Kerberos framework, and instead offer a limited set of
+functions that do what is needed for client/server Kerberos
+authentication based on <http://www.ietf.org/rfc/rfc4559.txt>.
+
+%description -l pl.UTF-8
+Ten moduł Pythona to wysokopoziomowe obudowanie operacji Kerberosa
+(GSSAPI). Celem jest uniknięcie potrzeby budowania moduł opakowującego
+cały szkielet Kerberosa na rzecz ograniczonego zbioru funkcji,
+wystarczających do uwierzytelniania klienta/serwera Kerberosa w
+oparciu o <http://www.ietf.org/rfc/rfc4559.txt>.
+
+%package -n python3-pykerberos
+Summary:	High-level interface to Kerberos
+Summary(pl.UTF-8):	Wysokopoziomowy interfejs do Kerberosa
+Group:		Libraries/Python
+Requires:	python3-modules >= 1:3.2
+
+%description -n python3-pykerberos
+This Python package is a high-level wrapper for Kerberos (GSSAPI)
+operations. The goal is to avoid having to build a module that wraps
+the entire Kerberos framework, and instead offer a limited set of
+functions that do what is needed for client/server Kerberos
+authentication based on <http://www.ietf.org/rfc/rfc4559.txt>.
+
+%description -n python3-pykerberos -l pl.UTF-8
+Ten moduł Pythona to wysokopoziomowe obudowanie operacji Kerberosa
+(GSSAPI). Celem jest uniknięcie potrzeby budowania moduł opakowującego
+cały szkielet Kerberosa na rzecz ograniczonego zbioru funkcji,
+wystarczających do uwierzytelniania klienta/serwera Kerberosa w
+oparciu o <http://www.ietf.org/rfc/rfc4559.txt>.
+
+%prep
+%setup -q -n pykerberos-%{version}
+%patch -P0 -p1
+
+%build
+%if %{with python2}
+%py_build
+%endif
+
+%if %{with python3}
+%py3_build
+%endif
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%if %{with python2}
+%py_install
+
+%py_postclean
+%endif
+
+%if %{with python3}
+%py3_install
+%endif
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%if %{with python2}
+%files
+%defattr(644,root,root,755)
+%doc README.txt pysrc/kerberos.py
+%{py_sitedir}/kerberos.so
+%{py_sitedir}/pykerberos-%{version}-py*.egg-info
+%endif
+
+%if %{with python3}
+%files -n python3-pykerberos
+%defattr(644,root,root,755)
+%doc README.txt pysrc/kerberos.py
+%{py3_sitedir}/kerberos.cpython-*.so
+%{py3_sitedir}/pykerberos-%{version}-py*.egg-info
+%endif
diff --git a/pykerberos-heimdal.patch b/pykerberos-heimdal.patch
new file mode 100644
index 0000000..8dec21d
--- /dev/null
+++ b/pykerberos-heimdal.patch
@@ -0,0 +1,77 @@
+--- pykerberos-1.2.4/src/kerberosbasic.h.orig	2026-04-18 10:13:09.127262480 +0200
++++ pykerberos-1.2.4/src/kerberosbasic.h	2026-04-18 10:13:21.060531165 +0200
+@@ -15,7 +15,7 @@
+  **/
+ 
+ #include <gssapi/gssapi.h>
+-#include <gssapi/gssapi_generic.h>
++#include <krb5.h>
+ #include <gssapi/gssapi_krb5.h>
+ 
+ #define krb5_get_err_text(context,code) error_message(code)
+--- pykerberos-1.2.4/src/kerberospw.h.orig	2026-04-18 10:14:07.900277413 +0200
++++ pykerberos-1.2.4/src/kerberospw.h	2026-04-18 10:14:12.170254280 +0200
+@@ -16,7 +16,7 @@
+  **/
+ 
+ #include <gssapi/gssapi.h>
+-#include <gssapi/gssapi_generic.h>
++#include <krb5.h>
+ #include <gssapi/gssapi_krb5.h>
+ 
+ #define krb5_get_err_text(context,code) error_message(code)
+--- pykerberos-1.2.4/src/kerberosgss.h.orig	2026-04-18 10:14:39.380106872 +0200
++++ pykerberos-1.2.4/src/kerberosgss.h	2026-04-18 10:14:46.006737639 +0200
+@@ -15,7 +15,7 @@
+  **/
+ 
+ #include <gssapi/gssapi.h>
+-#include <gssapi/gssapi_generic.h>
++#include <krb5.h>
+ #include <gssapi/gssapi_krb5.h>
+ #ifdef GSSAPI_EXT
+   #include <gssapi/gssapi_ext.h>
+--- pykerberos-1.2.4/src/kerberosgss.c.orig	2026-04-18 10:34:52.273536064 +0200
++++ pykerberos-1.2.4/src/kerberosgss.c	2026-04-18 10:45:10.373520862 +0200
+@@ -38,7 +38,7 @@ char* server_principal_details(const cha
+     int code;
+     krb5_context kcontext;
+     krb5_keytab kt = NULL;
+-    krb5_kt_cursor cursor = NULL;
++    krb5_kt_cursor cursor = {-1, NULL, NULL};
+     krb5_keytab_entry entry;
+     char* pname = NULL;
+ 
+@@ -82,12 +82,12 @@ char* server_principal_details(const cha
+             result = malloc(strlen(pname) + 1);
+             strcpy(result, pname);
+             krb5_free_unparsed_name(kcontext, pname);
+-            krb5_free_keytab_entry_contents(kcontext, &entry);
++            krb5_kt_free_entry(kcontext, &entry);
+             break;
+         }
+ 
+         krb5_free_unparsed_name(kcontext, pname);
+-        krb5_free_keytab_entry_contents(kcontext, &entry);
++        krb5_kt_free_entry(kcontext, &entry);
+     }
+ 
+     if (result == NULL)
+@@ -97,7 +97,7 @@ char* server_principal_details(const cha
+     }
+ 
+ end:
+-    if (cursor)
++    if (cursor.sp != NULL || cursor.data != NULL)
+         krb5_kt_end_seq_get(kcontext, kt, &cursor);
+     if (kt)
+         krb5_kt_close(kcontext, kt);
+@@ -131,7 +131,7 @@ int authenticate_gss_client_init(const c
+     if (strchr(service, '/'))
+         mech = GSS_C_NO_OID;
+     else
+-        mech = gss_krb5_nt_service_name;
++        mech = GSS_C_NT_HOSTBASED_SERVICE;
+ 
+     maj_stat = gss_import_name(&min_stat, &name_token, mech, &state->server_name);
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/python-pykerberos.git/commitdiff/768c13181425f367b40465932e1285a565a40aff



More information about the pld-cvs-commit mailing list