summary refs log tree commit diff
diff options
context:
space:
mode:
authorMalo Bourgon <mbourgon@gmail.com>2022-06-17 07:34:54 -0700
committerGitHub <noreply@github.com>2022-06-17 10:34:54 -0400
commit206a9575b873efc47d03a2f3804ae323079637b7 (patch)
tree25497f73a6e13981856a0357060b11f03a64d526
parent1f95c49331340a06553ff78a12031a291113a23c (diff)
downloadnixpkgs-206a9575b873efc47d03a2f3804ae323079637b7.tar
nixpkgs-206a9575b873efc47d03a2f3804ae323079637b7.tar.gz
nixpkgs-206a9575b873efc47d03a2f3804ae323079637b7.tar.bz2
nixpkgs-206a9575b873efc47d03a2f3804ae323079637b7.tar.lz
nixpkgs-206a9575b873efc47d03a2f3804ae323079637b7.tar.xz
nixpkgs-206a9575b873efc47d03a2f3804ae323079637b7.tar.zst
nixpkgs-206a9575b873efc47d03a2f3804ae323079637b7.zip
python3Packages.pytorch: unbreak on Darwin (#177812)
* Add missing `buildInputs`.
* Enable Grand Central Dispatch support for `aarch64-darwin`.
* Remove `postFixup` steps for .dylib files that aren't present.
-rw-r--r--pkgs/development/python-modules/pytorch/default.nix20
-rw-r--r--pkgs/top-level/python-packages.nix2
2 files changed, 8 insertions, 14 deletions
diff --git a/pkgs/development/python-modules/pytorch/default.nix b/pkgs/development/python-modules/pytorch/default.nix
index 299b4eba0cf..76a83591039 100644
--- a/pkgs/development/python-modules/pytorch/default.nix
+++ b/pkgs/development/python-modules/pytorch/default.nix
@@ -10,6 +10,7 @@
 
   # Build inputs
   numactl,
+  CoreServices, libobjc,
 
   # Propagated build inputs
   numpy, pyyaml, cffi, click, typing-extensions,
@@ -145,7 +146,7 @@ in buildPythonPackage rec {
     # https://github.com/pytorch/pytorch/issues/70297
     # https://github.com/google/breakpad/commit/605c51ed96ad44b34c457bbca320e74e194c317e
     ./breakpad-sigstksz.patch
-  ] ++ lib.optionals stdenv.isDarwin [
+  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
     # pthreadpool added support for Grand Central Dispatch in April
     # 2020. However, this relies on functionality (DISPATCH_APPLY_AUTO)
     # that is available starting with macOS 10.13. However, our current
@@ -229,7 +230,8 @@ in buildPythonPackage rec {
 
   buildInputs = [ blas blas.provider pybind11 ]
     ++ lib.optionals cudaSupport [ cudnn magma nccl ]
-    ++ lib.optionals stdenv.isLinux [ numactl ];
+    ++ lib.optionals stdenv.isLinux [ numactl ]
+    ++ lib.optionals stdenv.isDarwin [ CoreServices libobjc ];
 
   propagatedBuildInputs = [
     cffi
@@ -295,15 +297,6 @@ in buildPythonPackage rec {
 
     install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libtorch.dylib
 
-    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libcaffe2_observers.dylib
-    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libcaffe2_observers.dylib
-
-    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libcaffe2_module_test_dynamic.dylib
-    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libcaffe2_module_test_dynamic.dylib
-
-    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libcaffe2_detectron_ops.dylib
-    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libcaffe2_detectron_ops.dylib
-
     install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libshm.dylib
     install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libshm.dylib
   '';
@@ -319,12 +312,11 @@ in buildPythonPackage rec {
   };
 
   meta = with lib; {
-    # darwin: error: use of undeclared identifier 'noU'; did you mean 'no'?
-    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     description = "Open source, prototype-to-production deep learning platform";
     homepage    = "https://pytorch.org/";
     license     = licenses.bsd3;
-    platforms   = with platforms; linux ++ lib.optionals (!cudaSupport) darwin;
     maintainers = with maintainers; [ teh thoughtpolice tscholak ]; # tscholak esp. for darwin-related builds
+    platforms   = with platforms; linux ++ lib.optionals (!cudaSupport) darwin;
+    broken = stdenv.isLinux && stdenv.isAarch64;
   };
 }
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 313e13e0caf..4f843091e0a 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -8762,6 +8762,8 @@ in {
 
   pytorch = callPackage ../development/python-modules/pytorch {
     cudaSupport = pkgs.config.cudaSupport or false;
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;
+    inherit (pkgs.darwin) libobjc;
   };
 
   pytorch-bin = callPackage ../development/python-modules/pytorch/bin.nix { };