nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 flit-core,
8
9 # dependencies
10 appdirs,
11 cryptography,
12 id,
13 importlib-resources,
14 platformdirs,
15 pyasn1,
16 pydantic,
17 pyjwt,
18 pyopenssl,
19 requests,
20 rfc3161-client,
21 rfc8785,
22 rich,
23 securesystemslib,
24 sigstore-models,
25 sigstore-protobuf-specs,
26 sigstore-rekor-types,
27 tuf,
28
29 # tests
30 pretend,
31 pytestCheckHook,
32 writableTmpDirAsHomeHook,
33
34 # passthru
35 nix-update-script,
36}:
37
38buildPythonPackage (finalAttrs: {
39 pname = "sigstore";
40 version = "4.1.0";
41 pyproject = true;
42
43 src = fetchFromGitHub {
44 owner = "sigstore";
45 repo = "sigstore-python";
46 tag = "v${finalAttrs.version}";
47 hash = "sha256-Wt9ZoMHTiMlbAab9p8/WF38/OiyCaqHPS5R7/fTAfxw=";
48 };
49
50 build-system = [ flit-core ];
51
52 pythonRelaxDeps = [
53 "sigstore-models"
54 ];
55
56 dependencies = [
57 appdirs
58 cryptography
59 id
60 importlib-resources
61 platformdirs
62 pyasn1
63 pydantic
64 pyjwt
65 pyopenssl
66 requests
67 rfc3161-client
68 rfc8785
69 rich
70 securesystemslib
71 sigstore-models
72 sigstore-protobuf-specs
73 sigstore-rekor-types
74 tuf
75 ];
76
77 nativeCheckInputs = [
78 pretend
79 pytestCheckHook
80 writableTmpDirAsHomeHook
81 ];
82
83 pythonImportsCheck = [ "sigstore" ];
84
85 disabledTests = [
86 # Tests require network access
87 "test_fail_init_url"
88 "test_get_identity_token_bad_code"
89 "test_identity_proof_claim_lookup"
90 "test_init_url"
91 "test_production"
92 "test_sct_verify_keyring"
93 "test_sign_rekor_entry_consistent"
94 "test_verification_materials_retrieves_rekor_entry"
95 "test_verifier"
96 "test_fix_bundle_fixes_missing_checkpoint"
97 "test_trust_root_bundled_get"
98 "test_fix_bundle_upgrades_bundle"
99 "test_trust_root_tuf_caches_and_requests"
100 "test_regression_verify_legacy_bundle"
101 ];
102
103 passthru.updateScript = nix-update-script { };
104
105 meta = {
106 description = "Codesigning tool for Python packages";
107 homepage = "https://github.com/sigstore/sigstore-python";
108 changelog = "https://github.com/sigstore/sigstore-python/blob/${finalAttrs.src.tag}/CHANGELOG.md";
109 license = lib.licenses.asl20;
110 maintainers = with lib.maintainers; [ bot-wxt1221 ];
111 mainProgram = "sigstore";
112 };
113})