about summary refs log tree commit diff
path: root/pkgs/tools/misc/mprime
diff options
context:
space:
mode:
authorPeter Hoeg <peter@hoeg.com>2020-07-27 17:21:16 +0800
committerPeter Hoeg <peter@hoeg.com>2020-07-27 17:24:15 +0800
commitb278ccce7b173695c5e86bf951e0257e4dbd6509 (patch)
tree79f2c5f1ef304e9f43e1777ca281f275e5084163 /pkgs/tools/misc/mprime
parent28fce082c8ca1a8fb3dfac5c938829e51fb314c8 (diff)
mprime: 29.4b7 -> 29.8b7
Diffstat (limited to 'pkgs/tools/misc/mprime')
-rw-r--r--pkgs/tools/misc/mprime/default.nix47
-rw-r--r--pkgs/tools/misc/mprime/makefile.patch41
2 files changed, 29 insertions, 59 deletions
diff --git a/pkgs/tools/misc/mprime/default.nix b/pkgs/tools/misc/mprime/default.nix
index 363e90ab5f238..3189e41de8d4f 100644
--- a/pkgs/tools/misc/mprime/default.nix
+++ b/pkgs/tools/misc/mprime/default.nix
@@ -1,34 +1,45 @@
 { stdenv, lib, fetchurl, unzip, curl, hwloc, gmp }:
 
 let
-  srcDir =
-    if stdenv.hostPlatform.system == "x86_64-linux" then "linux64"
-    else if stdenv.hostPlatform.system == "i686-linux" then "linux"
-    else if stdenv.hostPlatform.system == "x86_64-darwin" then "macosx64"
-    else throwSystem;
   throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
-  gwnum =
-    if stdenv.hostPlatform.system == "x86_64-linux" then "make64"
-    else if stdenv.hostPlatform.system == "i686-linux" then "makefile"
-    else if stdenv.hostPlatform.system == "x86_64-darwin" then "makemac"
-    else throwSystem;
+
+  srcDir = {
+    x86_64-linux = "linux64";
+    i686-linux = "linux";
+    x86_64-darwin = "macosx64";
+  }."${stdenv.hostPlatform.system}" or throwSystem;
+
+  gwnum = {
+    x86_64-linux = "make64";
+    i686-linux = "makefile";
+    x86_64-darwin = "makemac";
+  }."${stdenv.hostPlatform.system}" or throwSystem;
 in
 
 stdenv.mkDerivation rec {
   pname = "mprime";
-  version = "29.4b7";
+  version = "29.8b7";
 
   src = fetchurl {
     url = "https://www.mersenne.org/ftp_root/gimps/p95v${lib.replaceStrings ["."] [""] version}.source.zip";
-    sha256 = "0idaqm46m4yis7vl014scx57lpccvjbnyy79gmj8caxghyajws0m";
+    sha256 = "0x5dk2dcppfnq17n79297lmn6p56rd66cbwrh1ds4l8r4hmwsjaj";
   };
 
-  unpackCmd = "unzip -d src -q $curSrc || true";
+  postPatch = ''
+    sed -i ${srcDir}/makefile \
+      -e 's/^LFLAGS =.*//'
+    substituteInPlace ${srcDir}/makefile \
+      --replace '-Wl,-Bstatic'  "" \
+      --replace '-Wl,-Bdynamic' ""
+  '';
+
+  sourceRoot = ".";
 
   nativeBuildInputs = [ unzip ];
+
   buildInputs = [ curl hwloc gmp ];
 
-  patches = [ ./makefile.patch ];
+  enableParallelBuilding = true;
 
   buildPhase = ''
     make -C gwnum -f ${gwnum}
@@ -36,10 +47,10 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    install -D ${srcDir}/mprime $out/bin/mprime
+    install -Dm555 -t $out/bin ${srcDir}/mprime
   '';
-  
-  meta = {
+
+  meta = with lib; {
     description = "Mersenne prime search / System stability tester";
     longDescription = ''
       MPrime is the Linux command-line interface version of Prime95, to be run
@@ -50,7 +61,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.mersenne.org/";
     # Unfree, because of a license requirement to share prize money if you find
     # a suitable prime. http://www.mersenne.org/legal/#EULA
-    license = stdenv.lib.licenses.unfree;
+    license = licenses.unfree;
     # Untested on linux-32 and osx. Works in theory.
     platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
   };
diff --git a/pkgs/tools/misc/mprime/makefile.patch b/pkgs/tools/misc/mprime/makefile.patch
deleted file mode 100644
index 6ed9cf69384d8..0000000000000
--- a/pkgs/tools/misc/mprime/makefile.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -dur src.old/linux/makefile src.new/linux/makefile
---- src.old/linux/makefile	2018-01-04 20:49:00.000000000 +0300
-+++ src.new/linux/makefile	2018-02-15 12:32:02.913011604 +0300
-@@ -28,8 +28,8 @@
- CPP = g++
- CPPFLAGS = -I.. -I../gwnum -O2 -march=i486 -malign-double
- 
--LFLAGS = -Wl,-M -Wl,-L/usr/local/lib
--LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lhwloc -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -ldl -lgmp
-+LFLAGS =
-+LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -lhwloc -lcurl -lrt -lstdc++ -ldl -lgmp
- 
- FACTOROBJ = factor32.o
- LINUXOBJS = prime.o menu.o
-diff -dur src.old/linux64/makefile src.new/linux64/makefile
---- src.old/linux64/makefile	2018-01-04 20:49:00.000000000 +0300
-+++ src.new/linux64/makefile	2018-02-15 12:32:28.836286995 +0300
-@@ -26,9 +26,9 @@
- CPP = g++
- CPPFLAGS = -I.. -I../gwnum -DX86_64 -O2
- 
--LFLAGS = -Wl,-M -Wl,-L/usr/local/lib
-+LFLAGS =
- #LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lhwloc -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -lz -lxml2 -ldl -lgmp
--LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lhwloc -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -ldl -lgmp
-+LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -lhwloc -lcurl -lrt -lstdc++ -ldl -lgmp
- 
- FACTOROBJ = factor64.o
- LINUXOBJS = prime.o menu.o
-diff -dur src.old/macosx64/makefile src.new/macosx64/makefile
---- src.old/macosx64/makefile	2018-01-04 20:49:02.000000000 +0300
-+++ src.new/macosx64/makefile	2018-02-15 12:33:32.401902535 +0300
-@@ -12,7 +12,7 @@
- CPP = g++
- CPPFLAGS = -I.. -I../gwnum -I../linux -O2 -DX86_64 -DCOMMAND_LINE_MPRIME -m64
- 
--LFLAGS = -m64 -Wl,-no_pie -L/usr/local/lib
-+LFLAGS = -m64 -Wl,-no_pie
- LIBS   = ../gwnum/amd64/release/gwnum.a -lm -lpthread -lhwloc -lcurl -framework IOKit -framework CoreFoundation -lstdc++ -lgmp
- 
- FACTOROBJ = ../prime95/macosx64/factor64.o