[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