nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 fetchFromGitHub,
4 buildPythonPackage,
5 pythonOlder,
6 bcrypt,
7 cryptography,
8 jinja2,
9 librouteros,
10 mako,
11 packaging,
12 passlib,
13 pyyaml,
14 requests,
15 rtoml,
16 setuptools,
17 tomlkit,
18 pytestCheckHook,
19 versionCheckHook,
20}:
21
22buildPythonPackage (finalAttrs: {
23 pname = "bundlewrap";
24 version = "4.24.0";
25 pyproject = true;
26
27 src = fetchFromGitHub {
28 owner = "bundlewrap";
29 repo = "bundlewrap";
30 tag = finalAttrs.version;
31 hash = "sha256-ayLceqYZC4cNuz9C6v2+W2TuiGWQeLMssbvwZ0N0n78=";
32 };
33
34 build-system = [ setuptools ];
35
36 dependencies = [
37 bcrypt
38 cryptography
39 jinja2
40 mako
41 packaging
42 passlib
43 pyyaml
44 requests
45 tomlkit
46 librouteros
47 ]
48 ++ lib.optionals (pythonOlder "3.11") [ rtoml ];
49
50 pythonImportsCheck = [ "bundlewrap" ];
51
52 nativeCheckInputs = [
53 pytestCheckHook
54 versionCheckHook
55 ];
56 versionCheckProgram = "${placeholder "out"}/bin/bw";
57
58 enabledTestPaths = [
59 # only unit tests as integration tests need a OpenSSH client/server setup
60 "tests/unit"
61 ];
62
63 meta = {
64 homepage = "https://bundlewrap.org/";
65 description = "Easy, Concise and Decentralized Config management with Python";
66 changelog = "https://github.com/bundlewrap/bundlewrap/blob/${finalAttrs.src.tag}/CHANGELOG.md";
67 mainProgram = "bw";
68 license = [ lib.licenses.gpl3 ];
69 maintainers = with lib.maintainers; [ wamserma ];
70 };
71})