From 286eadc1475d9f30177222e215c12d1463b73d6e Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Sat, 9 Dec 2017 15:28:39 -0500 Subject: [PATCH] Add gurobipy for python2.7 on Linux --- .../python-modules/gurobipy/linux.nix | 35 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 37 insertions(+) create mode 100644 pkgs/development/python-modules/gurobipy/linux.nix diff --git a/pkgs/development/python-modules/gurobipy/linux.nix b/pkgs/development/python-modules/gurobipy/linux.nix new file mode 100644 index 00000000000..fa4d58c77b7 --- /dev/null +++ b/pkgs/development/python-modules/gurobipy/linux.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchurl, python }: +assert python.isPy27; +let utf = if python.ucsEncoding == 2 + then "16" + else if python.ucsEncoding == 4 + then "32" + else throw "Unsupported python UCS encoding UCS${toString python.ucsEncoding}"; +in +stdenv.mkDerivation + { name = "gurobipy-7.0.2"; + src = fetchurl + { url = "http://packages.gurobi.com/7.0/gurobi7.0.2_linux64.tar.gz"; + sha256 = "1lgdj4cncjvnnw8dppiax7q2j8121pxyg9iryj8v26mrk778dnmn"; + }; + buildCommand = + '' + # Unpack + tar xf $src + + # Install + cd gurobi*/linux64 + mkdir -p $out/lib/python2.7/site-packages + mv lib/python2.7_utf${utf}/gurobipy \ + $out/lib/python2.7/site-packages + mv lib/python2.7_utf${utf}/gurobipy.so \ + $out/lib/python2.7/site-packages/gurobipy + mv lib/libaes*.so* lib/libgurobi*.so* $out/lib + + # Fixup + patchelf --set-rpath $out/lib \ + $out/lib/python2.7/site-packages/gurobipy/gurobipy.so + patchelf --add-needed libaes70.so \ + $out/lib/python2.7/site-packages/gurobipy/gurobipy.so + ''; + } diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 490e8a58122..d99a7168a11 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5634,6 +5634,8 @@ in { then callPackage ../development/python-modules/gurobipy/darwin.nix { inherit (pkgs.darwin) cctools insert_dylib; } + else if stdenv.system == "x86_64-linux" + then callPackage ../development/python-modules/gurobipy/linux.nix {} else throw "gurobipy not yet supported on ${stdenv.system}"; helper = buildPythonPackage rec {