From d2f0fc1f414290b399301f284329b791c010ee85 Mon Sep 17 00:00:00 2001 From: Timo Kaufmann Date: Mon, 9 Jul 2018 00:01:03 +0200 Subject: [PATCH] openblas: backport fix https://github.com/xianyi/OpenBLAS/issues/1666 Causing test failures in cvxopt and (according to an openblas issue) numpy. --- .../science/math/openblas/default.nix | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix index fc8f11f2f11e..4630dc1b8ddb 100644 --- a/pkgs/development/libraries/science/math/openblas/default.nix +++ b/pkgs/development/libraries/science/math/openblas/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchpatch, gfortran, perl, which, config, coreutils +{ stdenv, fetchFromGitHub, fetchpatch, gfortran, perl, which, config, coreutils # Most packages depending on openblas expect integer width to match # pointer width, but some expect to use 32-bit integers always # (for compatibility with reference BLAS). @@ -80,10 +80,11 @@ in stdenv.mkDerivation rec { name = "openblas-${version}"; version = "0.3.1"; - src = fetchurl { - url = "https://github.com/xianyi/OpenBLAS/archive/v${version}.tar.gz"; - sha256 = "0czbs2afmcxxij1ivqrm04p0qcksg5fravjifhydvb7k6mpraphz"; - name = "openblas-${version}.tar.gz"; + src = fetchFromGitHub { + owner = "xianyi"; + repo = "OpenBLAS"; + rev = "v${version}"; + sha256 = "1dkwp4gz1hzpmhzks9y9ipb4c5h0r6c7yff62x3s8x9z6f8knaqc"; }; inherit blas64; @@ -117,7 +118,14 @@ stdenv.mkDerivation rec { ] ++ stdenv.lib.optional (stdenv.hostPlatform.libc == "musl") "NO_AFFINITY=1" ++ mapAttrsToList (var: val: var + "=" + val) config; - patches = []; # TODO: Remove on next mass-rebuild + patches = [ + # Backport of https://github.com/xianyi/OpenBLAS/pull/1667, which + # is causing problems and was already accepted upstream. + (fetchpatch { + url = "https://github.com/xianyi/OpenBLAS/commit/5f2a3c05cd0e3872be3c5686b9da6b627658eeb7.patch"; + sha256 = "1qvxhk92likrshw6z6hjqxvkblwzgsbzis2b2f71bsvx9174qfk1"; + }) + ]; doCheck = true; checkTarget = "tests";