14
0

- Update to 0.30.0:

* Bump python-pkcs11 to 0.9.x.
  * Introduce signxml>=4.2.0 into [etsi] dependency group.
  * Allow custom text and stamp border colours.
  * Correct buggy behaviour when reauthenticating with a security handler.
  * Fix registration of multiple extensions in encrypted files.
  * Tolerate key usage violations when the signer is a trust anchor.
  * Remove unnecessary 3.8 compatibility code.
  * Make it easier to customise PKCS#11 queries
  * The root pyhanko package is now a namespace package.
  * Drop dependency on click in pyhanko distribution, move CLI code into
    pyhanko-cli instead.
  * Make the dependency on qrcode optional (in the new [qr] dependency group)
  * Replace defusedxml with a dependency on lxml.
- Subsume pyhanko-certvalidator into this package, upstream has intertwined
  all of the packages into one repo.
- Ship docs and license in the built packages.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyHanko?expand=0&rev=10
This commit is contained in:
2025-09-03 05:22:10 +00:00
committed by Git OBS Bridge
parent 8dbf4034aa
commit 316c7c886c
4 changed files with 89 additions and 21 deletions

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-pyHanko
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,39 +18,62 @@
%{?sle15_python_module_pythons}
Name: python-pyHanko
Version: 0.26.0
Version: 0.30.0
Release: 0
Summary: Tools for stamping and signing PDF files
License: MIT
URL: https://github.com/MatthiasValvekens/pyHanko
Source: https://github.com/MatthiasValvekens/pyHanko/archive/refs/tags/v%{version}.tar.gz#/pyhanko-%{version}.tar.gz
BuildRequires: %{python_module FontTools}
BuildRequires: %{python_module FontTools >= 4.33.3}
BuildRequires: %{python_module Pillow}
BuildRequires: %{python_module PyYAML}
BuildRequires: %{python_module PyYAML >= 6.0}
BuildRequires: %{python_module aiohttp}
BuildRequires: %{python_module asn1crypto >= 1.5.1}
BuildRequires: %{python_module base >= 3.9}
BuildRequires: %{python_module certomancer}
BuildRequires: %{python_module defusedxml}
BuildRequires: %{python_module click >= 8.1.3}
BuildRequires: %{python_module cryptography >= 43.0.3}
BuildRequires: %{python_module freezegun}
BuildRequires: %{python_module lxml >= 5.4}
BuildRequires: %{python_module oscrypto >= 1.1}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module pyhanko-certvalidator}
BuildRequires: %{python_module platformdirs >= 4.3.8}
BuildRequires: %{python_module pytest-aiohttp}
BuildRequires: %{python_module pytest-asyncio}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module python-barcode}
BuildRequires: %{python_module python-pkcs11}
BuildRequires: %{python_module qrcode}
BuildRequires: %{python_module requests >= 2.31}
BuildRequires: %{python_module requests-mock}
BuildRequires: %{python_module tzlocal}
BuildRequires: %{python_module uharfbuzz}
BuildRequires: %{python_module signxml >= 4.2}
BuildRequires: %{python_module tzlocal >= 4.3}
BuildRequires: %{python_module uharfbuzz >= 0.25}
BuildRequires: %{python_module uritools >= 3.0.1}
BuildRequires: %{python_module xsdata >= 24.4}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-PyYAML
Requires: python-asn1crypto
Requires: python-click
Requires: python-cryptography
Requires: python-pyhanko-certvalidator
Requires: python-qrcode
Requires: python-requests
Requires: python-tzlocal
Requires: python-uharfbuzz
Requires: python-PyYAML >= 6.0
Requires: python-asn1crypto >= 1.5.1
Requires: python-click >= 8.1.3
Requires: python-cryptography >= 43.0.3
Requires: python-lxml >= 5.4
Requires: python-oscrypto >= 1.1
Requires: python-platformdirs >= 4.3.8
Requires: python-requests >= 2.31
Requires: python-tzlocal >= 4.3
Requires: python-uritools >= 3.0.1
Suggests: python-FontTools >= 4.33.3
Suggests: python-uharfbuzz >= 0.25
Suggests: python-qrcode >= 7.3.1
Suggests: python-Pillow >= 7.2
Suggests: python-python-barcode
Suggests: python-python-pkcs11 >= 0.9
Suggests: python-aiohttp
Suggests: python-xsdata >= 24.4
Suggests: python-signxml >= 4.2
Obsoletes: python-pyhanko-certvalidator < %{version}
Provides: python-pyhanko-certvalidator = %{version}
Requires(post): update-alternatives
Requires(postun): update-alternatives
BuildArch: noarch
@@ -63,16 +86,35 @@ The lack of open-source CLI tooling to handle digitally signing and stamping PDF
%autosetup -p1 -n pyHanko-%{version}
%build
for pkg in pkgs/* ; do
pushd $pkg
# Hardcoded versions
sed -i 's/0.0.0.dev1/%{version}/' pyproject.toml
%pyproject_wheel
popd
done
%install
for pkg in pkgs/* ; do
pushd $pkg
%pyproject_install
popd
done
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%python_clone -a %{buildroot}%{_bindir}/pyhanko
%check
export PYTHONPATH=$(pwd)/internal/common-test-utils/src
pushd pkgs/pyhanko-certvalidator
%pytest
popd
pushd pkgs/pyhanko-cli
%pytest
popd
pushd pkgs/pyhanko
# Tests that are skipped or ignored require modules that are not shipped
%pytest --ignore pyhanko_tests/test_csc.py --ignore pyhanko_tests/test_pkcs11.py -k 'not (test_pades or test_ts_fetch)'
%pytest --ignore tests/test_csc.py -k 'not (test_pades or test_ts_fetch or test_simple_text_stamp_on_page_with_leaky_graphics_state)'
popd
%post
%python_install_alternative pyhanko
@@ -81,8 +123,13 @@ The lack of open-source CLI tooling to handle digitally signing and stamping PDF
%python_uninstall_alternative pyhanko
%files %{python_files}
%doc pkgs/pyhanko/README.md
%license pkgs/pyhanko/LICENSE
%python_alternative %{_bindir}/pyhanko
%{python_sitelib}/pyhanko
%{python_sitelib}/pyhanko_certvalidator
%{python_sitelib}/pyhanko-%{version}.dist-info
%{python_sitelib}/pyhanko_certvalidator-%{version}.dist-info
%{python_sitelib}/pyhanko_cli-%{version}.dist-info
%changelog