1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
{
lib,
fetchFromGitHub,
buildPythonApplication,
gitUpdater,
aiohttp,
appdirs,
beautifulsoup4,
defusedxml,
devpi-common,
execnet,
itsdangerous,
nginx,
packaging,
passlib,
platformdirs,
pluggy,
py,
httpx,
pyramid,
pytest-asyncio,
pytestCheckHook,
repoze-lru,
setuptools,
strictyaml,
waitress,
webtest,
testers,
devpi-server,
nixosTests,
}:
buildPythonApplication rec {
pname = "devpi-server";
version = "6.15.0";
pyproject = true;
src = fetchFromGitHub {
owner = "devpi";
repo = "devpi";
rev = "server-${version}";
hash = "sha256-tKR1xZju5bDbFu8t3SunTM8FlaXodSm/OjJ3Jfl7Dzk=";
};
sourceRoot = "${src.name}/server";
postPatch = ''
substituteInPlace tox.ini \
--replace "--flake8" ""
'';
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
aiohttp
appdirs
defusedxml
devpi-common
execnet
itsdangerous
packaging
passlib
platformdirs
pluggy
pyramid
repoze-lru
setuptools
strictyaml
waitress
py
httpx
]
++ passlib.optional-dependencies.argon2;
nativeCheckInputs = [
beautifulsoup4
nginx
py
pytest-asyncio
pytestCheckHook
webtest
];
# root_passwd_hash tries to write to store
# TestMirrorIndexThings tries to write to /var through ngnix
# nginx tests try to write to /var
preCheck = ''
export PATH=$PATH:$out/bin
export HOME=$TMPDIR
'';
pytestFlags = [
"-rfsxX"
];
enabledTestPaths = [
"./test_devpi_server"
];
disabledTestPaths = [
"test_devpi_server/test_nginx_replica.py"
"test_devpi_server/test_streaming_nginx.py"
"test_devpi_server/test_streaming_replica_nginx.py"
];
disabledTests = [
"root_passwd_hash_option"
"TestMirrorIndexThings"
"test_auth_mirror_url_no_hash"
"test_auth_mirror_url_with_hash"
"test_auth_mirror_url_hidden_in_logs"
"test_simplelinks_timeout"
];
__darwinAllowLocalNetworking = true;
pythonImportsCheck = [
"devpi_server"
];
passthru.tests = {
devpi-server = nixosTests.devpi-server;
version = testers.testVersion {
package = devpi-server;
};
};
# devpi uses a monorepo for server,common,client and web
passthru.updateScript = gitUpdater {
rev-prefix = "server-";
};
meta = {
homepage = "http://doc.devpi.net";
description = "Github-style pypi index server and packaging meta tool";
changelog = "https://github.com/devpi/devpi/blob/${src.rev}/server/CHANGELOG";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ makefu ];
};
}
|