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.
This commit is contained in:
Michael Weiss
2017-09-22 21:30:38 +02:00
parent 1acf6716aa
commit 5257232ac7
4 changed files with 100 additions and 24 deletions
+51 -11
View File
@@ -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 ];