1{
2 lib,
3 fetchFromGitHub,
4 singularity,
5 python3Packages,
6 testers,
7 udocker,
8}:
9
10python3Packages.buildPythonApplication rec {
11 pname = "udocker";
12 version = "1.3.17";
13 pyproject = true;
14
15 src = fetchFromGitHub {
16 owner = "indigo-dc";
17 repo = "udocker";
18 tag = version;
19 hash = "sha256-P49fkLvdCm/Eco+nD3SGM04PRQatBzq9CHlayueQetk=";
20 };
21
22 postPatch = ''
23 substituteInPlace setup.py \
24 --replace-fail "'pytest-runner'," ""
25 '';
26
27 # crun patchelf proot runc fakechroot
28 # are download statistically linked during runtime
29 buildInputs = [
30 singularity
31 ];
32
33 build-system = with python3Packages; [
34 setuptools
35 ];
36
37 dependencies = with python3Packages; [
38 pycurl
39 ];
40
41 nativeCheckInputs = with python3Packages; [
42 pytestCheckHook
43 ];
44
45 disabledTests = [
46 "test_02__load_structure"
47 "test_05__get_volume_bindings"
48 ];
49
50 disabledTestPaths = [
51 # Network
52 "tests/unit/test_curl.py"
53 "tests/unit/test_dockerioapi.py"
54 ];
55
56 pythonImportsCheck = [ "udocker" ];
57
58 passthru = {
59 tests.version = testers.testVersion { package = udocker; };
60 };
61
62 meta = {
63 description = "Basic user tool to execute simple docker containers in user space without root privileges";
64 homepage = "https://indigo-dc.gitbooks.io/udocker";
65 changelog = "https://github.com/indigo-dc/udocker/releases/tag/${version}";
66 license = lib.licenses.asl20;
67 maintainers = with lib.maintainers; [ bzizou ];
68 platforms = lib.platforms.linux;
69 mainProgram = "udocker";
70 };
71}