diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 4323b94b5762..6a4588028e48 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -6886,6 +6886,11 @@ github = "dstengele"; githubId = 1706418; }; + dstremur = { + name = "Diego Strebel"; + github = "dstremur"; + githubId = 76773187; + }; dsuetin = { name = "Danil Suetin"; email = "suetin085+nixpkgs@protonmail.com"; diff --git a/pkgs/by-name/mf/mfaktc/package.nix b/pkgs/by-name/mf/mfaktc/package.nix new file mode 100644 index 000000000000..857bc9a0ef32 --- /dev/null +++ b/pkgs/by-name/mf/mfaktc/package.nix @@ -0,0 +1,63 @@ +{ + lib, + stdenv, + autoAddDriverRunpath, + cudaPackages, + fetchFromGitHub, + versionCheckHook, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "mfaktc"; + version = "0.23.5"; + + src = fetchFromGitHub { + owner = "primesearch"; + repo = "mfaktc"; + tag = "${finalAttrs.version}"; + fetchSubmodules = true; + hash = "sha256-NUcRd+WvmRjXC7rfOKFw4mue7V9oobsy/OTHHEoaiHo="; + }; + + enableParallelBuilding = true; + buildInputs = [ + cudaPackages.cuda_nvcc + cudaPackages.cuda_cudart + autoAddDriverRunpath + ]; + + makeFlags = [ + "-C" + "src" + ]; + + installPhase = '' + runHook preInstall + + install -Dm755 mfaktc -t $out/bin + install -Dm755 mfaktc.ini -t $out/share + + runHook postInstall + ''; + + doInstallCheck = true; + nativeInstallCheckInputs = [ + versionCheckHook + ]; + + versionCheckProgramArg = "-h"; + + meta = { + description = "Trial Factoring program using CUDA for GIMPS"; + longDescription = '' + CUDA Program for trial factoring Mersenne primes. Intented for use with GIMPS through autoprimenet.py. + Note that the mfaktc.ini file, which is in $out/share, must be symlinked to your working directory. + ''; + homepage = "https://github.com/primesearch/mfaktc"; + downloadPage = "https://github.com/primesearch/mfaktc/releases/tag/${finalAttrs.version}"; + maintainers = with lib.maintainers; [ dstremur ]; + license = lib.licenses.gpl3Plus; + platforms = [ "x86_64-linux" ]; + mainProgram = "mfaktc"; + }; +})