From 90e520508581ea518cc8db5782f3384d224849ba Mon Sep 17 00:00:00 2001 From: Raymond Gauthier Date: Thu, 13 May 2021 22:41:14 -0400 Subject: [PATCH] pythonnet: 2.4.0 -> 2.5.2 - No longer broken. - Updated mono dependency to mono5. - Fix / improve packaging. --- .../python-modules/pythonnet/default.nix | 62 ++++++++++--------- pkgs/top-level/python-packages.nix | 4 +- 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/pkgs/development/python-modules/pythonnet/default.nix b/pkgs/development/python-modules/pythonnet/default.nix index d0054f7076a..7387d387dbe 100644 --- a/pkgs/development/python-modules/pythonnet/default.nix +++ b/pkgs/development/python-modules/pythonnet/default.nix @@ -2,8 +2,7 @@ , fetchPypi , fetchNuGet , buildPythonPackage -, python -, pytest +, pytestCheckHook , pycparser , psutil , pkg-config @@ -15,29 +14,36 @@ let - UnmanagedExports127 = fetchNuGet { - baseName = "UnmanagedExports"; - version = "1.2.7"; - sha256 = "0bfrhpmq556p0swd9ssapw4f2aafmgp930jgf00sy89hzg2bfijf"; - outputFiles = [ "*" ]; - }; - - NUnit371 = fetchNuGet { - baseName = "NUnit"; - version = "3.7.1"; - sha256 = "1yc6dwaam4w2ss1193v735nnl79id78yswmpvmjr1w4bgcbdza4l"; - outputFiles = [ "*" ]; - }; + dotnetPkgs = [ + (fetchNuGet { + baseName = "UnmanagedExports"; + version = "1.2.7"; + sha256 = "0bfrhpmq556p0swd9ssapw4f2aafmgp930jgf00sy89hzg2bfijf"; + outputFiles = [ "*" ]; + }) + (fetchNuGet { + baseName = "NUnit"; + version = "3.12.0"; + sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2"; + outputFiles = [ "*" ]; + }) + (fetchNuGet { + baseName = "System.ValueTuple"; + version = "4.5.0"; + sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; + outputFiles = [ "*" ]; + }) + ]; in buildPythonPackage rec { pname = "pythonnet"; - version = "2.4.0"; + version = "2.5.2"; src = fetchPypi { inherit pname version; - sha256 = "1ach9jic7a9rd3vmc4bphkr9fq01a0qk81f8a7gr9npwzmkqx8x3"; + sha256 = "1qzdc6jd7i9j7p6bcihnr98y005gv1358xqdr1plpbpnl6078a5p"; }; postPatch = '' @@ -50,7 +56,6 @@ buildPythonPackage rec { ''; nativeBuildInputs = [ - pytest pycparser pkg-config @@ -59,13 +64,15 @@ buildPythonPackage rec { mono - NUnit371 - UnmanagedExports127 - ]; + ] ++ dotnetPkgs; buildInputs = [ glib mono + ]; + + checkInputs = [ + pytestCheckHook psutil # needed for memory leak tests ]; @@ -73,22 +80,21 @@ buildPythonPackage rec { rm -rf packages mkdir packages - ln -s ${NUnit371}/lib/dotnet/NUnit/ packages/NUnit.3.7.1 - ln -s ${UnmanagedExports127}/lib/dotnet/NUnit/ packages/UnmanagedExports.1.2.7 + ${builtins.concatStringsSep "\n" ( + builtins.map ( + x: ''ln -s ${x}/lib/dotnet/${x.baseName} ./packages/${x.baseName}.${x.version}'' + ) dotnetPkgs)} # Setting TERM=xterm fixes an issue with terminfo in mono: System.Exception: Magic number is wrong: 542 export TERM=xterm ''; - checkPhase = '' - ${python.interpreter} -m pytest - ''; - meta = with lib; { description = ".Net and Mono integration for Python"; homepage = "https://pythonnet.github.io"; license = licenses.mit; + # + badPlatforms = [ "aarch64-linux" ]; maintainers = with maintainers; [ jraygauthier ]; - broken = true; }; } diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 68ea43b3a84..a19467bf259 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6674,8 +6674,8 @@ in { pythonnet = callPackage ../development/python-modules/pythonnet { - # `mono >= 4.6` required to prevent crashes encountered with earlier versions. - mono = pkgs.mono4; + # Using `mono > 5`, tests are failing.. + mono = pkgs.mono5; }; python-nmap = callPackage ../development/python-modules/python-nmap { };