1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 fetchpatch,
6 setuptools,
7 cryptography,
8 pyroute2,
9}:
10
11buildPythonPackage rec {
12 pname = "wgnlpy";
13 version = "0.1.5";
14 pyproject = true;
15
16 src = fetchFromGitHub {
17 owner = "ArgosyLabs";
18 repo = "wgnlpy";
19 rev = "v${version}";
20 hash = "sha256-5XAfBiKx4SqouA57PxmaCb0ea7mT2VeUI1tgnQE/ZwQ=";
21 };
22
23 patches = [
24 # see https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/83019
25 # Required for ifstate
26 # Upstream Issue/PR: https://github.com/ArgosyLabs/wgnlpy/pull/5
27 (fetchpatch {
28 url = "https://gitlab.alpinelinux.org/alpine/aports/-/raw/1f78a31dc3e8d7ffd4ff4b8c32fabc3ad0265ae2/community/py3-wgnlpy/0001-fix-exception-when-WGPEER_A_LAST_HANDSHAKE_TIME-is-N.patch";
29 hash = "sha256-MO5MMDXnaCPdakMlxCkiCBCDCiTFdG3V66l+AKb95X4=";
30 })
31 ];
32
33 build-system = [ setuptools ];
34
35 dependencies = [
36 cryptography
37 pyroute2
38 ];
39
40 pythonImportsCheck = [
41 "wgnlpy"
42 "wgnlpy.nlas"
43 ];
44
45 meta = {
46 description = "Netlink connector to WireGuard";
47 homepage = "https://github.com/ArgosyLabs/wgnlpy";
48 license = with lib.licenses; [ mit ];
49 platforms = lib.platforms.linux;
50 maintainers = with lib.maintainers; [ marcel ];
51 };
52}