19 python3Packages.buildPythonApplication {
20 pname = "gns3-server";
23 src = fetchFromGitHub {
27 rev = "refs/tags/v${version}";
30 # GNS3 2.3.26 requires a static BusyBox for the Docker integration
32 cp ${pkgsStatic.busybox}/bin/busybox gns3server/compute/docker/resources/bin/busybox
35 build-system = with python3Packages; [ setuptools ];
37 dependencies = with python3Packages; [
53 ] ++ lib.optionals (pythonOlder "3.9") [
57 postInstall = lib.optionalString (!stdenv.hostPlatform.isWindows) ''
58 rm $out/bin/gns3loopback
61 # util-linux (script program) is required for Docker support
62 makeWrapperArgs = [ "--suffix PATH : ${lib.makeBinPath [ util-linux ]}" ];
66 # Otherwise tests will fail to create directory
67 # Permission denied: '/homeless-shelter'
69 export HOME=$(mktemp -d)
72 checkInputs = with python3Packages; [
79 # fails on ofborg because of lack of cpu vendor information
80 "--deselect=tests/controller/gns3vm/test_virtualbox_gns3_vm.py::test_cpu_vendor_id"
81 # Rerun failed tests up to three times (flaky tests)
86 inherit (nixosTests) gns3-server;
87 version = testers.testVersion {
88 package = gns3-server;
89 command = "${lib.getExe gns3-server} --version";
94 description = "Graphical Network Simulator 3 server (${channel} release)";
96 The GNS3 server manages emulators such as Dynamips, VirtualBox or
97 Qemu/KVM. Clients like the GNS3 GUI control the server using a HTTP REST
100 homepage = "https://www.gns3.com/";
101 changelog = "https://github.com/GNS3/gns3-server/releases/tag/v${version}";
102 license = lib.licenses.gpl3Plus;
103 platforms = lib.platforms.linux;
104 maintainers = with lib.maintainers; [ anthonyroussel ];
105 mainProgram = "gns3server";