{
  buildLuarocksPackage,
  fetchurl,
  luaAtLeast,
  luaOlder,
  callPackage,
  luajit,
  openblas,
}:
let
  xsys = callPackage ./xsys.nix { };
in
buildLuarocksPackage {
  pname = "sci";
  version = "1.0.0.beta12-1";
  knownRockspec =
    (fetchurl {
      url = "mirror://luarocks/sci-1.0.0.beta12-1.rockspec";
      sha256 = "0lprn9x4zw767hdz8lyxmwrrfyn5xj3x50pm9b4qiwy8992mg00r";
    }).outPath;
  src = fetchurl {
    url = "https://github.com/stepelu/lua-sci/archive/v1.0.0-beta12.tar.gz";
    sha256 = "0a45r7n13gfqckpdp1bmizqvjadn8nc5d6ff9gjw860g3i75sy2h";
  };

  disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
  propagatedBuildInputs = [
    luajit
    xsys
    openblas
  ];

  meta = {
    homepage = "https://github.com/stepelu/lua-sci";
    description = "Scientific Computing with LuaJIT";
    license.fullName = "MIT";
  };
}