diff options
Diffstat (limited to 'pkgs/servers/inginious/default.nix')
-rw-r--r-- | pkgs/servers/inginious/default.nix | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/pkgs/servers/inginious/default.nix b/pkgs/servers/inginious/default.nix new file mode 100644 index 00000000000..ba6a54fc973 --- /dev/null +++ b/pkgs/servers/inginious/default.nix @@ -0,0 +1,71 @@ +{ pkgs, lib, pythonPackages }: +with lib; + +let + docker_1_7_2 = pythonPackages.docker.override rec { + name = "docker-py-1.7.2"; + + src = pkgs.fetchurl { + url = "mirror://pypi/d/docker-py/${name}.tar.gz"; + sha256 = "0k6hm3vmqh1d3wr9rryyif5n4rzvcffdlb1k4jvzp7g4996d3ccm"; + }; + }; + + webpy-custom = pythonPackages.web.override { + name = "web.py-INGI"; + src = pkgs.fetchFromGitHub { + owner = "UCL-INGI"; + repo = "webpy-INGI"; + # tip of branch "ingi" + rev = "f487e78d65d6569eb70003e588d5c6ace54c384f"; + sha256 = "159vwmb8554xk98rw380p3ah170r6gm861r1nqf2l452vvdfxscd"; + }; + }; + +in pythonPackages.buildPythonApplication rec { + version = "0.3a2.dev0"; + name = "inginious-${version}"; + + disabled = pythonPackages.isPy3k; + + patchPhase = '' + # transient failures + substituteInPlace inginious/backend/tests/TestRemoteAgent.py \ + --replace "test_update_task_directory" "noop" + ''; + + propagatedBuildInputs = with pythonPackages; [ + requests2 + cgroup-utils docker_1_7_2 docutils lti mock pygments + pymongo pyyaml rpyc sh simpleldap sphinx_rtd_theme tidylib + websocket_client watchdog webpy-custom flup + ]; + + buildInputs = with pythonPackages; [ nose selenium virtual-display ]; + + /* Hydra fix exists only on github for now. + src = pkgs.fetchurl { + url = "mirror://pypi/I/INGInious/INGInious-${version}.tar.gz"; + }; + */ + src = pkgs.fetchFromGitHub { + owner = "UCL-INGI"; + repo = "INGInious"; + rev = "07d111c0a3045c7cc4e464d4adb8aa28b75a6948"; + sha256 = "0kldbkc9yw1mgg5w5q5v8k2hz089c5c4rvxb5xhbagkzgm2gn230"; + }; + + # Only patch shebangs in /bin, other scripts are run within docker + # containers and will fail if patched. + dontPatchShebangs = true; + preFixup = '' + patchShebangs $prefix/bin + ''; + + meta = { + description = "An intelligent grader that allows secured and automated testing of code made by students"; + homepage = "https://github.com/UCL-INGI/INGInious"; + license = licenses.agpl3; + maintainers = with maintainers; [ layus ]; + }; +} |