about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSerg Nesterov <i.am.cust0dian@gmail.com>2020-01-24 13:01:43 +0300
committerSerg Nesterov <i.am.cust0dian@gmail.com>2020-01-25 09:39:25 +0300
commit93dc12a6d89ed57cf5b88085f4a9e6bd14f57a10 (patch)
tree040723749b293bcb54d1bb2d1a19a5410ba5112a
parent7f142260d38e586fe1e182a650fa32e199a96370 (diff)
downloadnixlib-93dc12a6d89ed57cf5b88085f4a9e6bd14f57a10.tar
nixlib-93dc12a6d89ed57cf5b88085f4a9e6bd14f57a10.tar.gz
nixlib-93dc12a6d89ed57cf5b88085f4a9e6bd14f57a10.tar.bz2
nixlib-93dc12a6d89ed57cf5b88085f4a9e6bd14f57a10.tar.lz
nixlib-93dc12a6d89ed57cf5b88085f4a9e6bd14f57a10.tar.xz
nixlib-93dc12a6d89ed57cf5b88085f4a9e6bd14f57a10.tar.zst
nixlib-93dc12a6d89ed57cf5b88085f4a9e6bd14f57a10.zip
pythonPackages.glances: fix darwin build
-rw-r--r--pkgs/development/python-modules/glances/default.nix38
1 files changed, 29 insertions, 9 deletions
diff --git a/pkgs/development/python-modules/glances/default.nix b/pkgs/development/python-modules/glances/default.nix
index f248dffb4fff..0a0864e52b6c 100644
--- a/pkgs/development/python-modules/glances/default.nix
+++ b/pkgs/development/python-modules/glances/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchFromGitHub, fetchpatch, isPyPy, lib
+{ stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch, isPyPy, lib
 , psutil, setuptools, bottle, batinfo, pysnmp
 , hddtemp, future
 # Optional dependencies:
@@ -20,19 +20,38 @@ buildPythonPackage rec {
   };
 
   # Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
-  patches = lib.optional doCheck ./skip-failing-tests.patch
-    ++ [ (fetchpatch {
-      # Correct unitest
-      url = "https://github.com/nicolargo/glances/commit/abf64ffde31113f5f46ef286703ff061fc57395f.patch";
-      sha256 = "00krahqq89jvbgrqx2359cndmvq5maffhpj163z10s1n7q80kxp1";
-    }) ];
+  patches = lib.optional (doCheck && stdenv.isLinux) ./skip-failing-tests.patch
+    ++ [
+      (fetchpatch {
+        # Correct unitest
+        url = "https://github.com/nicolargo/glances/commit/abf64ffde31113f5f46ef286703ff061fc57395f.patch";
+        sha256 = "00krahqq89jvbgrqx2359cndmvq5maffhpj163z10s1n7q80kxp1";
+      })
+
+      (fetchpatch {
+        # Fix IP plugin initialization issue
+        url = "https://github.com/nicolargo/glances/commit/48cb5ef8053d823302e7e53490fb22cec2fabb0f.patch";
+        sha256 = "1590qgcr8w3d9ddpgd9mk5j6q6aq29341vr8bi202yjwwiv2bia9";
+      })
+    ];
+
+  # On Darwin this package segfaults due to mismatch of pure and impure
+  # CoreFoundation. This issues was solved for binaries but for interpreted
+  # scripts a workaround below is still required.
+  # Relevant: https://github.com/NixOS/nixpkgs/issues/24693
+  makeWrapperArgs = lib.optionals stdenv.isDarwin [
+    "--set" "DYLD_FRAMEWORK_PATH" "/System/Library/Frameworks"
+  ];
 
   doCheck = true;
   checkInputs = [ unittest2 ];
+  preCheck = lib.optional stdenv.isDarwin ''
+    export DYLD_FRAMEWORK_PATH=/System/Library/Frameworks
+  '';
 
-  propagatedBuildInputs = [ psutil setuptools bottle batinfo pysnmp hddtemp future
+  propagatedBuildInputs = [ psutil setuptools bottle batinfo pysnmp future
     netifaces
-  ];
+  ] ++ lib.optional stdenv.isLinux hddtemp;
 
   preConfigure = ''
     sed -i 's/data_files\.append((conf_path/data_files.append(("etc\/glances"/' setup.py;
@@ -43,5 +62,6 @@ buildPythonPackage rec {
     description = "Cross-platform curses-based monitoring tool";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ primeos koral ];
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }