nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 aiohttp,
5 buildPythonPackage,
6 cryptography,
7 fetchFromGitHub,
8 pytest-aiohttp,
9 pytest-codspeed,
10 pytestCheckHook,
11 pythonAtLeast,
12 setuptools,
13}:
14
15buildPythonPackage rec {
16 pname = "snitun";
17 version = "0.45.1";
18 pyproject = true;
19
20 src = fetchFromGitHub {
21 owner = "NabuCasa";
22 repo = "snitun";
23 tag = version;
24 hash = "sha256-luXv5J0PUvW+AGTecwkEq+qkG1N5Ja5NbBKJ3M6HC0I=";
25 };
26
27 postPatch = ''
28 substituteInPlace pyproject.toml \
29 --replace-fail 'version = "0.0.0"' 'version = "${version}"'
30 '';
31
32 build-system = [ setuptools ];
33
34 dependencies = [
35 aiohttp
36 cryptography
37 ];
38
39 nativeCheckInputs = [
40 pytest-aiohttp
41 pytest-codspeed
42 pytestCheckHook
43 ];
44
45 disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [
46 "test_multiplexer_data_channel_abort_full" # https://github.com/NabuCasa/snitun/issues/61
47 # port binding conflicts
48 "test_snitun_single_runner_timeout"
49 "test_snitun_single_runner_throttling"
50 # ConnectionResetError: [Errno 54] Connection reset by peer
51 "test_peer_listener_timeout"
52 ];
53
54 pythonImportsCheck = [ "snitun" ];
55
56 meta = {
57 description = "SNI proxy with TCP multiplexer";
58 changelog = "https://github.com/NabuCasa/snitun/releases/tag/${src.tag}";
59 homepage = "https://github.com/nabucasa/snitun";
60 license = lib.licenses.gpl3Only;
61 maintainers = with lib.maintainers; [ Scriptkiddi ];
62 platforms = lib.platforms.linux;
63 };
64}