1{ lib, fetchFromGitHub, python3, nginx }:
2
3let
4 py = python3.override {
5 packageOverrides = self: super: {
6 # pyramid 2.0 no longer has a 'pyramid.compat' module
7 pyramid = super.pyramid.overridePythonAttrs (oldAttrs: rec {
8 version = "1.10.8";
9 src = oldAttrs.src.override {
10 inherit version;
11 sha256 = "sha256-t81mWVvvkvgXZLl23d4rL6jk9fMl4C9l9ux/NwiynPY=";
12 };
13 });
14 };
15 };
16
17in with py.pkgs;
18buildPythonApplication rec {
19 pname = "devpi-server";
20 version = "6.2.0";
21
22 src = fetchFromGitHub {
23 owner = "devpi";
24 repo = "devpi";
25 rev = "68ee291ef29a93f6d921d4927aec8d13919b4a4c";
26 sha256 = "1ivd5dy9f2gq07w8n2gywa0n0d9wv8644l53ni9fz7i69jf8q2fm";
27 };
28
29 sourceRoot = "source/server";
30
31 postPatch = ''
32 substituteInPlace setup.py \
33 --replace "pluggy>=0.6.0,<1.0" "pluggy>=0.6.0,<2.0"
34 '';
35
36 propagatedBuildInputs = [
37 py
38 appdirs
39 devpi-common
40 defusedxml
41 execnet
42 itsdangerous
43 repoze_lru
44 passlib
45 pluggy
46 pyramid
47 strictyaml
48 waitress
49 ];
50
51 checkInputs = [
52 beautifulsoup4
53 nginx
54 pytestCheckHook
55 pytest-flake8
56 webtest
57 ] ++ lib.optionals isPy27 [ mock ];
58
59 # root_passwd_hash tries to write to store
60 # TestMirrorIndexThings tries to write to /var through ngnix
61 # nginx tests try to write to /var
62 preCheck = ''
63 export PATH=$PATH:$out/bin
64 export HOME=$TMPDIR
65 '';
66 pytestFlagsArray = [
67 "./test_devpi_server"
68 "--slow"
69 "-rfsxX"
70 "--ignore=test_devpi_server/test_nginx_replica.py"
71 "--ignore=test_devpi_server/test_streaming_nginx.py"
72 "--ignore=test_devpi_server/test_streaming_replica_nginx.py"
73 ];
74 disabledTests = [
75 "root_passwd_hash_option"
76 "TestMirrorIndexThings"
77 ];
78
79 __darwinAllowLocalNetworking = true;
80
81 meta = with lib;{
82 homepage = "http://doc.devpi.net";
83 description = "Github-style pypi index server and packaging meta tool";
84 license = licenses.mit;
85 maintainers = with maintainers; [ makefu ];
86 };
87}