mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-26 23:54:01 +00:00
133 lines
2.9 KiB
Nix
133 lines
2.9 KiB
Nix
|
{ lib
|
||
|
, buildPythonPackage
|
||
|
, fetchFromGitHub
|
||
|
, pythonOlder
|
||
|
, asn1crypto
|
||
|
, click
|
||
|
, cryptography
|
||
|
, pyhanko-certvalidator
|
||
|
, pytz
|
||
|
, pyyaml
|
||
|
, qrcode
|
||
|
, requests
|
||
|
, tzlocal
|
||
|
, certomancer
|
||
|
, freezegun
|
||
|
, python-pae
|
||
|
, pytest-aiohttp
|
||
|
, requests-mock
|
||
|
, pytestCheckHook
|
||
|
# Flags to add to the library
|
||
|
, extraPubkeyAlgsSupport ? false
|
||
|
, oscrypto
|
||
|
, opentypeSupport ? false
|
||
|
, fonttools
|
||
|
, uharfbuzz
|
||
|
, imageSupport ? false
|
||
|
, pillow
|
||
|
, python-barcode
|
||
|
, pkcs11Support ? false
|
||
|
, python-pkcs11
|
||
|
, asyncHttpSupport ? false
|
||
|
, aiohttp
|
||
|
}:
|
||
|
|
||
|
buildPythonPackage rec {
|
||
|
pname = "pyhanko";
|
||
|
version = "0.12.1";
|
||
|
format = "setuptools";
|
||
|
|
||
|
disabled = pythonOlder "3.7";
|
||
|
|
||
|
# Tests are only available on GitHub
|
||
|
src = fetchFromGitHub {
|
||
|
owner = "MatthiasValvekens";
|
||
|
repo = "pyHanko";
|
||
|
rev = version;
|
||
|
sha256 = "sha256-W60NTKEtCqJ/QdtNiieKUsrl2jIjIH86Wych68R3mBc=";
|
||
|
};
|
||
|
|
||
|
propagatedBuildInputs = [
|
||
|
click
|
||
|
pyhanko-certvalidator
|
||
|
pytz
|
||
|
pyyaml
|
||
|
qrcode
|
||
|
tzlocal
|
||
|
] ++ lib.optionals (extraPubkeyAlgsSupport) [
|
||
|
oscrypto
|
||
|
] ++ lib.optionals (opentypeSupport) [
|
||
|
fonttools
|
||
|
uharfbuzz
|
||
|
] ++ lib.optionals (imageSupport) [
|
||
|
pillow
|
||
|
python-barcode
|
||
|
] ++ lib.optionals (pkcs11Support) [
|
||
|
python-pkcs11
|
||
|
] ++ lib.optionals (asyncHttpSupport) [
|
||
|
aiohttp
|
||
|
];
|
||
|
|
||
|
postPatch = ''
|
||
|
substituteInPlace setup.py \
|
||
|
--replace ", 'pytest-runner'" "" \
|
||
|
--replace "pytest-aiohttp~=0.3.0" "pytest-aiohttp~=1.0.3"
|
||
|
'';
|
||
|
|
||
|
checkInputs = [
|
||
|
aiohttp
|
||
|
certomancer
|
||
|
freezegun
|
||
|
python-pae
|
||
|
pytest-aiohttp
|
||
|
requests-mock
|
||
|
pytestCheckHook
|
||
|
];
|
||
|
|
||
|
disabledTestPaths = lib.optionals (!opentypeSupport) [
|
||
|
"pyhanko_tests/test_stamp.py"
|
||
|
"pyhanko_tests/test_text.py"
|
||
|
] ++ lib.optionals (!imageSupport) [
|
||
|
"pyhanko_tests/test_barcode.py"
|
||
|
] ++ lib.optionals (!pkcs11Support) [
|
||
|
"pyhanko_tests/test_pkcs11.py"
|
||
|
];
|
||
|
|
||
|
disabledTests = [
|
||
|
# Most of the test require working with local certificates,
|
||
|
# contacting OSCP or performing requests
|
||
|
"test_generic_data_sign_legacy"
|
||
|
"test_generic_data_sign"
|
||
|
"test_cms_v3_sign"
|
||
|
"test_detached_cms_with_self_reported_timestamp"
|
||
|
"test_detached_cms_with_tst"
|
||
|
"test_detached_cms_with_content_tst"
|
||
|
"test_detached_cms_with_wrong_content_tst"
|
||
|
"test_detached_with_malformed_content_tst"
|
||
|
"test_noop_attribute_prov"
|
||
|
"test_detached_cades_cms_with_tst"
|
||
|
"test_read_qr_config"
|
||
|
"test_no_changes_policy"
|
||
|
"test_bogus_metadata_manipulation"
|
||
|
"test_tamper_sig_obj"
|
||
|
"test_signed_file_diff_proxied_objs"
|
||
|
"test_pades_revinfo_live"
|
||
|
"test_diff_fallback_ok"
|
||
|
"test_no_diff_summary"
|
||
|
"test_ocsp_embed"
|
||
|
"test_ts_fetch_aiohttp"
|
||
|
"test_ts_fetch_requests"
|
||
|
];
|
||
|
|
||
|
pythonImportsCheck = [
|
||
|
"pyhanko"
|
||
|
];
|
||
|
|
||
|
meta = with lib; {
|
||
|
description = "Sign and stamp PDF files";
|
||
|
homepage = "https://github.com/MatthiasValvekens/pyHanko";
|
||
|
license = licenses.mit;
|
||
|
maintainers = with maintainers; [ wolfangaukang ];
|
||
|
};
|
||
|
}
|