anchor.diff:    ++ stdenv.lib.optionals (ghostscript != null) [ ghostscript ]
     ++ stdenv.lib.optionals (hdf5 != null) [ hdf5 ]
     ++ stdenv.lib.optionals (glpk != null) [ glpk ]
  -  ++ stdenv.lib.optionals (suitesparse != null) [ suitesparse ]
  +  ++ stdenv.lib.optionals (suitesparse != null) [ suitesparse' ]
     ++ stdenv.lib.optionals (enableJava) [ jdk ]
     ++ stdenv.lib.optionals (sundials_2 != null) [ sundials_2 ]
     ++ stdenv.lib.optionals (gnuplot != null) [ gnuplot ]
  
positive.code:   enableParallelBuilding = true;
  
    # See https://savannah.gnu.org/bugs/?50339
    F77_INTEGER_8_FLAG = if blas.isILP64 then "-fdefault-integer-8" else "";
  
    configureFlags = [
      "--with-blas=blas"
      "--with-lapack=lapack"
      (if blas.isILP64 then "--enable-64" else "--disable-64")
    ]
      ++ stdenv.lib.optionals stdenv.isDarwin [ "--enable-link-all-dependencies" ]
      ++ stdenv.lib.optionals enableReadline [ "--enable-readline" ]
  
negative.code: , darwin
  }:
  
  let
    # Not always evaluated
    blas' = if use64BitIdx then
      blas.override {
        isILP64 = true;
      }
    else
      blas
    ;
    lapack' = if use64BitIdx then
      lapack.override {
        isILP64 = true;
      }
    else
      lapack
    ;
    qrupdate' = qrupdate.override {
      # If use64BitIdx is false, this override doesn't evaluate to a new
      # derivation, as blas and lapack are not overriden.
      blas = blas';
      lapack = lapack';
    };
    arpack' = arpack.override {
      blas = blas';
      lapack = lapack';
    };
    # Not always suitesparse is required at all
    suitesparse' = if suitesparse != null then
      suitesparse.override {
        blas = blas';
        lapack = lapack';
      }
    else
      null
    ;
  in mkDerivation rec {
    version = "6.1.0";
    pname = "octave";
  
  