nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 cryptography,
5 dnspython,
6 expiringdict,
7 fetchFromGitHub,
8 hatchling,
9 importlib-resources,
10 pem,
11 publicsuffixlist,
12 pyleri,
13 pyopenssl,
14 pytestCheckHook,
15 pythonOlder,
16 requests,
17 timeout-decorator,
18 xmltodict,
19}:
20
21buildPythonPackage (finalAttrs: {
22 pname = "checkdmarc";
23 version = "5.13.2";
24 pyproject = true;
25
26 src = fetchFromGitHub {
27 owner = "domainaware";
28 repo = "checkdmarc";
29 tag = finalAttrs.version;
30 hash = "sha256-Ub/B3IO7f5Ah2XNTJ90Y6whP+PIDCL7ucHGd5sWwJRk=";
31 };
32
33 pythonRelaxDeps = [
34 "cryptography"
35 "xmltodict"
36 ];
37
38 build-system = [ hatchling ];
39
40 dependencies = [
41 cryptography
42 dnspython
43 expiringdict
44 importlib-resources
45 pem
46 publicsuffixlist
47 pyleri
48 pyopenssl
49 requests
50 timeout-decorator
51 xmltodict
52 ];
53
54 nativeCheckInputs = [ pytestCheckHook ];
55
56 pythonImportsCheck = [ "checkdmarc" ];
57
58 enabledTestPaths = [ "tests.py" ];
59
60 disabledTests = [
61 # Tests require network access
62 "testBIMI"
63 "testDMARCPctLessThan100Warning"
64 "testSPFMissingARecord"
65 "testSPFMissingMXRecord"
66 "testSplitSPFRecord"
67 "testTooManySPFDNSLookups"
68 "testTooManySPFVoidDNSLookups"
69 ];
70
71 meta = {
72 description = "Parser for SPF and DMARC DNS records";
73 homepage = "https://github.com/domainaware/checkdmarc";
74 changelog = "https://github.com/domainaware/checkdmarc/blob/${finalAttrs.src.tag}/CHANGELOG.md";
75 license = lib.licenses.asl20;
76 maintainers = with lib.maintainers; [ fab ];
77 mainProgram = "checkdmarc";
78 };
79})