diff options
author | Michael Weiss <dev.primeos@gmail.com> | 2017-09-22 21:18:37 +0200 |
---|---|---|
committer | Michael Weiss <dev.primeos@gmail.com> | 2017-09-22 21:30:38 +0200 |
commit | 5257232ac7a59dc3c7598042f0d21dc4ae60ea14 (patch) | |
tree | afa5fc5f76dc061f6e2fdc5e70424b5688c66155 /pkgs/applications/networking/gns3/server.nix | |
parent | 1acf6716aafc863ce33e3b7b431c1defbbd88275 (diff) | |
download | nixpkgs-5257232ac7a59dc3c7598042f0d21dc4ae60ea14.tar nixpkgs-5257232ac7a59dc3c7598042f0d21dc4ae60ea14.tar.gz nixpkgs-5257232ac7a59dc3c7598042f0d21dc4ae60ea14.tar.bz2 nixpkgs-5257232ac7a59dc3c7598042f0d21dc4ae60ea14.tar.lz nixpkgs-5257232ac7a59dc3c7598042f0d21dc4ae60ea14.tar.xz nixpkgs-5257232ac7a59dc3c7598042f0d21dc4ae60ea14.tar.zst nixpkgs-5257232ac7a59dc3c7598042f0d21dc4ae60ea14.zip |
gns3: "Improve" the packaging
This is "a bit" hacky tho... The improvement is that it now covers the stable as well as the preview releases and doesn't require Python 3.4 anymore.
Diffstat (limited to 'pkgs/applications/networking/gns3/server.nix')
-rw-r--r-- | pkgs/applications/networking/gns3/server.nix | 62 |
1 files changed, 51 insertions, 11 deletions
diff --git a/pkgs/applications/networking/gns3/server.nix b/pkgs/applications/networking/gns3/server.nix index 7d5d9433bf3..9d7bf6f5a3a 100644 --- a/pkgs/applications/networking/gns3/server.nix +++ b/pkgs/applications/networking/gns3/server.nix @@ -1,23 +1,63 @@ -{ stdenv, python3Packages, fetchFromGitHub }: +{ stable, branch, version, sha256Hash }: -python3Packages.buildPythonPackage rec { +{ stdenv, python3Packages, fetchFromGitHub, fetchurl }: + +let + pythonPackages = python3Packages; + yarl = if (!stable) then pythonPackages.yarl + else (stdenv.lib.overrideDerivation pythonPackages.yarl (oldAttrs: + rec { + pname = "yarl"; + version = "0.9.8"; + name = "${pname}-${version}"; + src = pythonPackages.fetchPypi { + inherit pname version; + sha256 = "1v2dsmr7bqp0yx51pwhbxyvzza8m2f88prsnbd926mi6ah38p0d7"; + }; + })); + aiohttp = if (!stable) then pythonPackages.aiohttp + else (stdenv.lib.overrideDerivation pythonPackages.aiohttp (oldAttrs: + rec { + pname = "aiohttp"; + version = "1.3.5"; + name = "${pname}-${version}"; + src = pythonPackages.fetchPypi { + inherit pname version; + sha256 = "0hpqdiaifgyfqmxkyzwypwvrnvz5rqzgzylzhihfidc5ldfs856d"; + }; + propagatedBuildInputs = [ yarl ] + ++ (with pythonPackages; [ async-timeout chardet multidict ]); + })); + aiohttp-cors = if (!stable) then pythonPackages.aiohttp-cors + else (stdenv.lib.overrideDerivation pythonPackages.aiohttp-cors (oldAttrs: + rec { + pname = "aiohttp-cors"; + version = "0.5.1"; + name = "${pname}-${version}"; + src = pythonPackages.fetchPypi { + inherit pname version; + sha256 = "0szma27ri25fq4nwwvs36myddggw3jz4pyzmq63yz4xpw0jjdxck"; + }; + propagatedBuildInputs = [ aiohttp ]; + })); +in pythonPackages.buildPythonPackage rec { name = "${pname}-${version}"; pname = "gns3-server"; - version = "2.1.0rc1"; src = fetchFromGitHub { owner = "GNS3"; repo = pname; rev = "v${version}"; - sha256 = "181689fpjxq4hy2lyxk4zciqhgnhj5srvb4xsxdlbf68n89fj2zf"; + sha256 = sha256Hash; }; - propagatedBuildInputs = with python3Packages; [ - aiohttp jinja2 psutil zipstream aiohttp-cors raven jsonschema yarl typing - prompt_toolkit - ]; + propagatedBuildInputs = [ yarl aiohttp aiohttp-cors ] + ++ (with pythonPackages; [ + jinja2 psutil zipstream raven jsonschema typing + prompt_toolkit + ]); - postPatch = '' + postPatch = stdenv.lib.optionalString (!stable) '' sed -i 's/yarl>=0.11,<0.12/yarl/g' requirements.txt ''; @@ -28,13 +68,13 @@ python3Packages.buildPythonPackage rec { rm $out/bin/gns3loopback # For windows only ''; meta = with stdenv.lib; { - description = "Graphical Network Simulator 3 server"; + description = "Graphical Network Simulator 3 server (${branch} release)"; longDescription = '' The GNS3 server manages emulators such as Dynamips, VirtualBox or Qemu/KVM. Clients like the GNS3 GUI control the server using a HTTP REST API. ''; - homepage = "https://www.gns3.com/"; + homepage = https://www.gns3.com/; license = licenses.gpl3Plus; platforms = platforms.linux; maintainers = with maintainers; [ primeos ]; |