mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
dev-python/pykerberos: fix Python 3.10 compatibility
Closes: https://bugs.gentoo.org/867421 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
https://bugs.gentoo.org/867421
|
||||
https://github.com/apple/ccs-pykerberos/pull/89
|
||||
|
||||
From 1e1666af51bb11ea5c6dd442415ce765073737c3 Mon Sep 17 00:00:00 2001
|
||||
From: stevenpackardblp <77253966+stevenpackardblp@users.noreply.github.com>
|
||||
Date: Sun, 24 Oct 2021 23:03:41 -0400
|
||||
Subject: [PATCH] Use Py_ssize_t type
|
||||
|
||||
Python 3.10 requires that the `Py_ssize_t` type is used for string lengths instead of `int`.
|
||||
--- a/src/kerberos.c
|
||||
+++ b/src/kerberos.c
|
||||
@@ -14,6 +14,7 @@
|
||||
* limitations under the License.
|
||||
**/
|
||||
|
||||
+#define PY_SSIZE_T_CLEAN
|
||||
#include <Python.h>
|
||||
|
||||
#include "kerberosbasic.h"
|
||||
@@ -244,9 +245,9 @@ static PyObject *channelBindings(PyObject *self, PyObject *args, PyObject* keywd
|
||||
char *initiator_address = NULL;
|
||||
char *acceptor_address = NULL;
|
||||
char *application_data = NULL;
|
||||
- int initiator_length = 0;
|
||||
- int acceptor_length = 0;
|
||||
- int application_length = 0;
|
||||
+ Py_ssize_t initiator_length = 0;
|
||||
+ Py_ssize_t acceptor_length = 0;
|
||||
+ Py_ssize_t application_length = 0;
|
||||
|
||||
PyObject *pychan_bindings = NULL;
|
||||
struct gss_channel_bindings_struct *input_chan_bindings;
|
||||
|
||||
48
dev-python/pykerberos/pykerberos-1.3.1-r1.ebuild
Normal file
48
dev-python/pykerberos/pykerberos-1.3.1-r1.ebuild
Normal file
@@ -0,0 +1,48 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{8..10} )
|
||||
inherit distutils-r1
|
||||
|
||||
MY_P=PyKerberos-${PV}
|
||||
DESCRIPTION="A high-level Python wrapper for Kerberos/GSSAPI operations"
|
||||
HOMEPAGE="
|
||||
https://www.calendarserver.org/PyKerberos.html
|
||||
https://github.com/apple/ccs-pykerberos/
|
||||
https://pypi.org/project/kerberos/"
|
||||
SRC_URI="
|
||||
https://github.com/apple/ccs-pykerberos/archive/${MY_P}.tar.gz"
|
||||
S=${WORKDIR}/ccs-pykerberos-${MY_P}
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc64 ~riscv ~x86"
|
||||
# test environment is non-trivial to set up, so just use docker
|
||||
# (see python_test below)
|
||||
# also for alpha/beta Python releases support:
|
||||
# https://github.com/apple/ccs-pykerberos/pull/83/commits/5f1130a1305b5f6e7d7d8b41067c4713f0c8950f
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="app-crypt/mit-krb5"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.3.1-python3.10.patch
|
||||
)
|
||||
|
||||
python_test() {
|
||||
set -- docker run \
|
||||
-v "${PWD}:/app" \
|
||||
-w /app \
|
||||
-e PYENV=$("${EPYTHON}" -c 'import sys; print(sys.version.split()[0])') \
|
||||
-e KERBEROS_USERNAME=administrator \
|
||||
-e KERBEROS_PASSWORD=Password01 \
|
||||
-e KERBEROS_REALM=example.com \
|
||||
-e KERBEROS_PORT=80 \
|
||||
ubuntu:16.04 \
|
||||
/bin/bash .travis.sh
|
||||
echo "${@}" >&2
|
||||
"${@}" || die "Tests failed with ${EPYTHON}"
|
||||
}
|
||||
Reference in New Issue
Block a user