dev-python/python-pkcs11: new package, add 0.9.3

A patch is applied to move the main python package directory under
src, otherwise the tests fail because the source package containing
the directory occuldes the one on the system, and the tests fail.

See https://github.com/tpm2-software/tpm2-pytss/pull/356 for another
package that had the same problem and its explaination of the solution

Signed-off-by: Christopher Byrne <salah.coronya@gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/45252
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Christopher Byrne
2026-01-04 01:21:01 -06:00
committed by Sam James
parent 7d8e438415
commit a00e91702e
4 changed files with 189 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST python_pkcs11-0.9.3.tar.gz 174748 BLAKE2B 1f69a75e907276ec518afbf391fd69388c77a85ec7408d89b2f869434c2be1315c892d4bcbafd03e60d67795b2254c9da3ab976e391e2165c8d79535159191d0 SHA512 571947182264df94e4c2ec3e5922f85c5826006089ec87f194d3b782a46db9e19140a2d5076e130872b5f2068d3402f959a4acabace23250a05e3d1d5cd77fb3

View File

@@ -0,0 +1,116 @@
diff --git a/MANIFEST.in b/MANIFEST.in
index c426022..1bd1806 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,2 +1,2 @@
graft extern/
-include pkcs11/*.pxd
\ No newline at end of file
+include src/pkcs11/*.pxd
diff --git a/pyproject.toml b/pyproject.toml
index 79b3e86..b119388 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -53,7 +53,7 @@ combine-as-imports = true
[tool.setuptools]
ext-modules = [
- {name = "pkcs11._pkcs11", sources = ["pkcs11/_pkcs11.pyx"]}
+ {name = "pkcs11._pkcs11", sources = ["src/pkcs11/_pkcs11.pyx"]}
]
[tool.cibuildwheel]
@@ -68,9 +68,6 @@ archs = ["AMD64"]
[tool.cibuildwheel.macos]
archs = ["universal2"]
-[tool.setuptools.packages.find]
-include = ["pkcs11*"]
-
[tool.coverage.run]
plugins = ["Cython.Coverage"]
diff --git a/pkcs11/__init__.py b/src/pkcs11/__init__.py
similarity index 100%
rename from pkcs11/__init__.py
rename to src/pkcs11/__init__.py
diff --git a/pkcs11/_pkcs11.pxd b/src/pkcs11/_pkcs11.pxd
similarity index 99%
rename from pkcs11/_pkcs11.pxd
rename to src/pkcs11/_pkcs11.pxd
index ba1903d..03f094a 100644
--- a/pkcs11/_pkcs11.pxd
+++ b/src/pkcs11/_pkcs11.pxd
@@ -6,7 +6,7 @@ from cython.view cimport array
from pkcs11.exceptions import *
-cdef extern from '../extern/cryptoki.h':
+cdef extern from '../../extern/cryptoki.h':
ctypedef unsigned char CK_BYTE
ctypedef CK_BYTE CK_BBOOL
diff --git a/pkcs11/_pkcs11.pyx b/src/pkcs11/_pkcs11.pyx
similarity index 99%
rename from pkcs11/_pkcs11.pyx
rename to src/pkcs11/_pkcs11.pyx
index 27f692e..6a33094 100644
--- a/pkcs11/_pkcs11.pyx
+++ b/src/pkcs11/_pkcs11.pyx
@@ -1946,7 +1946,7 @@ _CLASS_MAP = {
ObjectClass.CERTIFICATE: Certificate,
}
-cdef extern from "../extern/load_module.c":
+cdef extern from "../../extern/load_module.c":
ctypedef struct P11_HANDLE:
void *get_function_list_ptr
diff --git a/pkcs11/attributes.py b/src/pkcs11/attributes.py
similarity index 100%
rename from pkcs11/attributes.py
rename to src/pkcs11/attributes.py
diff --git a/pkcs11/constants.py b/src/pkcs11/constants.py
similarity index 100%
rename from pkcs11/constants.py
rename to src/pkcs11/constants.py
diff --git a/pkcs11/defaults.py b/src/pkcs11/defaults.py
similarity index 100%
rename from pkcs11/defaults.py
rename to src/pkcs11/defaults.py
diff --git a/pkcs11/exceptions.py b/src/pkcs11/exceptions.py
similarity index 100%
rename from pkcs11/exceptions.py
rename to src/pkcs11/exceptions.py
diff --git a/pkcs11/mechanisms.py b/src/pkcs11/mechanisms.py
similarity index 100%
rename from pkcs11/mechanisms.py
rename to src/pkcs11/mechanisms.py
diff --git a/pkcs11/types.py b/src/pkcs11/types.py
similarity index 100%
rename from pkcs11/types.py
rename to src/pkcs11/types.py
diff --git a/pkcs11/util/__init__.py b/src/pkcs11/util/__init__.py
similarity index 100%
rename from pkcs11/util/__init__.py
rename to src/pkcs11/util/__init__.py
diff --git a/pkcs11/util/dh.py b/src/pkcs11/util/dh.py
similarity index 100%
rename from pkcs11/util/dh.py
rename to src/pkcs11/util/dh.py
diff --git a/pkcs11/util/dsa.py b/src/pkcs11/util/dsa.py
similarity index 100%
rename from pkcs11/util/dsa.py
rename to src/pkcs11/util/dsa.py
diff --git a/pkcs11/util/ec.py b/src/pkcs11/util/ec.py
similarity index 100%
rename from pkcs11/util/ec.py
rename to src/pkcs11/util/ec.py
diff --git a/pkcs11/util/rsa.py b/src/pkcs11/util/rsa.py
similarity index 100%
rename from pkcs11/util/rsa.py
rename to src/pkcs11/util/rsa.py
diff --git a/pkcs11/util/x509.py b/src/pkcs11/util/x509.py
similarity index 100%
rename from pkcs11/util/x509.py
rename to src/pkcs11/util/x509.py

View File

@@ -0,0 +1,14 @@
<pkgmetadata>
<maintainer type="person" proxied="yes">
<email>salah.coronya@gmail.com</email>
<name>Christopher Byrne</name>
</maintainer>
<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<upstream>
<remote-id type="github">pyauth/python-pkcs11</remote-id>
<remote-id type="pypi">python-pkcs11</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,58 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_EXT=1
PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1 edo pypi
DESCRIPTION="PKCS#11/Cryptoki support for Python"
HOMEPAGE="
https://github.com/pyauth/python-pkcs11
https://pypi.org/project/python-pkcs11
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
RDEPEND="dev-python/asn1crypto[${PYTHON_USEDEP}]"
DEPEND="${RDEPEND}"
BDEPEND="dev-python/cython[${PYTHON_USEDEP}]
dev-python/setuptools-scm[${PYTHON_USEDEP}]
test? (
dev-libs/openssl
dev-libs/softhsm
dev-python/cryptography[${PYTHON_USEDEP}]
dev-python/parameterized[${PYTHON_USEDEP}]
)
"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
distutils_enable_sphinx docs dev-python/sphinx-rtd-theme
PATCHES=( "${FILESDIR}/${PN}-0.9.3-refactor-under-src.patch" )
src_test() {
local -x PKCS11_MODULE="${BROOT}/usr/$(get_libdir)/softhsm/libsofthsm2.so"
local -x PKCS11_TOKEN_LABEL="TEST"
local -x PKCS11_TOKEN_PIN="1234"
local -x PKCS11_TOKEN_SO_PIN="5678"
mkdir -p "${HOME}/.config/softhsm2" || die
cat > "${HOME}/.config/softhsm2/softhsm2.conf" <<- EOF || die "Failed to create config"
directories.tokendir = ${T}
objectstore.backend = file
EOF
edo softhsm2-util --init-token --free \
--label ${PKCS11_TOKEN_LABEL} \
--pin ${PKCS11_TOKEN_PIN} \
--so-pin ${PKCS11_TOKEN_SO_PIN}
distutils-r1_src_test
}