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";