about summary refs log tree commit diff
diff options
context:
space:
mode:
authorShea Levy <shea.levy@target.com>2017-12-18 13:07:41 -0500
committerShea Levy <shea.levy@target.com>2017-12-18 13:07:41 -0500
commitc6c05dd2553f51d3ddd1070ab9ac118022316864 (patch)
tree3811a7568c00f68c30ffedf706faddc3bcbf409e
parent03e10f8535899841e05120cce7f4979973150e05 (diff)
downloadnixlib-c6c05dd2553f51d3ddd1070ab9ac118022316864.tar
nixlib-c6c05dd2553f51d3ddd1070ab9ac118022316864.tar.gz
nixlib-c6c05dd2553f51d3ddd1070ab9ac118022316864.tar.bz2
nixlib-c6c05dd2553f51d3ddd1070ab9ac118022316864.tar.lz
nixlib-c6c05dd2553f51d3ddd1070ab9ac118022316864.tar.xz
nixlib-c6c05dd2553f51d3ddd1070ab9ac118022316864.tar.zst
nixlib-c6c05dd2553f51d3ddd1070ab9ac118022316864.zip
gurobipy: Use buildPythonPackage on Darwin.
-rw-r--r--pkgs/development/python-modules/gurobipy/darwin.nix22
-rw-r--r--pkgs/development/python-modules/gurobipy/no-darwin-fixup.patch20
2 files changed, 30 insertions, 12 deletions
diff --git a/pkgs/development/python-modules/gurobipy/darwin.nix b/pkgs/development/python-modules/gurobipy/darwin.nix
index 9d7374bd5bd4..f5f06058fc75 100644
--- a/pkgs/development/python-modules/gurobipy/darwin.nix
+++ b/pkgs/development/python-modules/gurobipy/darwin.nix
@@ -1,26 +1,24 @@
-{ stdenv, fetchurl, python, xar, cpio, cctools, insert_dylib }:
+{ fetchurl, python, xar, cpio, cctools, insert_dylib }:
 assert python.pkgs.isPy27 && python.ucsEncoding == 2;
-stdenv.mkDerivation
+python.pkgs.buildPythonPackage
   { name = "gurobipy-7.0.2";
     src = fetchurl
       { url = "http://packages.gurobi.com/7.0/gurobi7.0.2_mac64.pkg";
         sha256 = "14dpxas6gx02kfb28i0fh68p1z4sbjmwg8hp8h5ch6c701h260mg";
       };
     buildInputs = [ xar cpio cctools insert_dylib ];
-    buildCommand =
+    unpackPhase =
       ''
-        # Unpack
         xar -xf $src
         zcat gurobi*mac64tar.pkg/Payload | cpio -i
         tar xf gurobi*_mac64.tar.gz
-
-        # Install
-        cd gurobi*/mac64
-        mkdir -p $out/lib/python2.7/site-packages
-        mv lib/python2.7/gurobipy $out/lib/python2.7/site-packages
-        mv lib/lib*.so $out/lib
-
-        # Fixup
+        sourceRoot=$(echo gurobi*/*64)
+        runHook postUnpack
+      '';
+    patches = [ ./no-darwin-fixup.patch ];
+    postInstall = "mv lib/lib*.so $out/lib";
+    postFixup =
+      ''
         install_name_tool -change \
           /System/Library/Frameworks/Python.framework/Versions/2.7/Python \
           ${python}/lib/libpython2.7.dylib \
diff --git a/pkgs/development/python-modules/gurobipy/no-darwin-fixup.patch b/pkgs/development/python-modules/gurobipy/no-darwin-fixup.patch
new file mode 100644
index 000000000000..c1ed8cb48886
--- /dev/null
+++ b/pkgs/development/python-modules/gurobipy/no-darwin-fixup.patch
@@ -0,0 +1,20 @@
+diff -Naur a/setup.py b/setup.py
+--- a/setup.py	2017-12-18 12:48:02.000000000 -0500
++++ b/setup.py	2017-12-18 12:48:43.000000000 -0500
+@@ -54,16 +54,3 @@
+       package_dir={'gurobipy' : srcpath },
+       package_data = {'gurobipy' : [srcfile] }
+       )
+-
+-if sys.platform == 'darwin':
+-  from distutils.sysconfig import get_python_lib
+-  import subprocess
+-  import os.path
+-  sitelib = get_python_lib() + '/gurobipy/gurobipy.so'
+-  subprocess.call(('install_name_tool', '-change', 'libgurobi70.so', '/Library/gurobi702/mac64/lib/libgurobi70.so', sitelib)) # version for change
+-  default = '/System/Library/Frameworks/Python.framework/Versions/2.7/Python'
+-  modified = sys.prefix + '/Python'
+-  if default != modified:
+-    if not os.path.isfile(modified):
+-      modified = sys.prefix + '/lib/libpython2.7.dylib' # For Anaconda
+-    subprocess.call(('install_name_tool', '-change', default, modified, sitelib))