Unverified Commit 2e270245 authored by Gaétan Lepage's avatar Gaétan Lepage Committed by GitHub
Browse files

mprime: 30.19b21 -> 31.04b02, modernize, add doc (#495350)

parents f5cb6bf2 a8443ec6
Loading
Loading
Loading
Loading
+29 −18
Original line number Diff line number Diff line
{
  stdenv,
  lib,
  fetchurl,
  unzip,
  fetchzip,
  boost,
  curl,
  hwloc,
@@ -27,30 +26,40 @@ let
      x86_64-darwin = "makemac";
    }
    ."${stdenv.hostPlatform.system}" or throwSystem;
in

stdenv.mkDerivation rec {
  docDir = "share/mprime/doc";
in
stdenv.mkDerivation (finalAttrs: {
  pname = "mprime";
  version = "30.19b21";
  src = fetchurl {
    url = "https://download.mersenne.ca/gimps/v30/30.19/p95v${
      lib.replaceStrings [ "." ] [ "" ] version
  version = "31.04b02";

  src = fetchzip {
    url = "https://download.mersenne.ca/gimps/v31/31.04/p95v${
      lib.replaceStrings [ "." ] [ "" ] finalAttrs.version
    }.source.zip";
    hash = "sha256-vchDpUem+R3GcASj77zZmFivfbB17Nd7cYiyPlrCzio=";
    hash = "sha256-W8ic709bgm9KbVxe1fvIEC8J8LrwwMfAajX1bKhv6EM=";
    stripRoot = false;
  };

  postPatch = ''
    sed -i ${srcDir}/makefile \
      -e 's/^LFLAGS =.*//'
  ''
  + lib.optionalString stdenv.hostPlatform.isLinux ''
    substituteInPlace ${srcDir}/makefile \
      --replace '-Wl,-Bstatic'  "" \
      --replace '-Wl,-Bdynamic' ""
      --replace-fail '-Wl,-Bstatic'  "" \
      --replace-fail '-Wl,-Bdynamic' ""
  ''
  + ''
    # The program refers the user to these files, make them easier to find and open
    substituteInPlace ${srcDir}/menu.c \
      --replace-fail "stress.txt" "$out/${docDir}/stress.txt" \
      --replace-fail "readme.txt" "$out/${docDir}/readme.txt"
    substituteInPlace commonb.c \
      --replace-fail "stress.txt" "$out/${docDir}/stress.txt" \
      --replace-fail "readme.txt" "$out/${docDir}/readme.txt"
  '';

  sourceRoot = ".";

  nativeBuildInputs = [ unzip ];

  buildInputs = [
    boost
    curl
@@ -61,12 +70,14 @@ stdenv.mkDerivation rec {
  enableParallelBuilding = true;

  buildPhase = ''
    make -C gwnum -f ${gwnum}
    make -C ${srcDir}
    make -C gwnum -f ${gwnum} ''${enableParallelBuilding:+-j$NIX_BUILD_CORES}
    make -C ${srcDir} ''${enableParallelBuilding:+-j$NIX_BUILD_CORES}
  '';

  installPhase = ''
    install -Dm555 -t $out/bin ${srcDir}/mprime

    install -Dm444 -t $out/${docDir} license.txt readme.txt stress.txt undoc.txt
  '';

  meta = {
@@ -90,4 +101,4 @@ stdenv.mkDerivation rec {
    maintainers = with lib.maintainers; [ dstremur ];
    mainProgram = "mprime";
  };
}
})