diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix b/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix new file mode 100644 index 000000000000..3c31ed8a361b --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix @@ -0,0 +1,74 @@ +{ lib, stdenv +, fetchFromGitLab +, makeWrapper +, which +, autoconf +, help2man +, file +, pari +}: + +stdenv.mkDerivation rec { + version = "2.023.6"; + pname = "sympow"; + + src = fetchFromGitLab { + group = "rezozer"; + owner = "forks"; + repo = "sympow"; + rev = "v${version}"; + sha256 = "132l0xv00ld1svvv9wh99wfra4zzjv2885h2sq0dsl98wiyvi5zl"; + }; + + postUnpack = '' + patchShebangs . + ''; + + nativeBuildInputs = [ + makeWrapper + which + autoconf + help2man + file + pari + ]; + + configurePhase = '' + runHook preConfigure + export PREFIX="$out" + export VARPREFIX="$out" # see comment on postInstall + ./Configure # doesn't take any options + runHook postConfigure + ''; + + # Usually, sympow has 3 levels of caching: statically distributed in /usr/, + # shared in /var and per-user in ~/.sympow. The shared cache assumes trust in + # other users and a shared /var is not compatible with nix's approach, so we + # set VARPREFIX to the read-only $out. This effectively disables shared + # caching. See https://trac.sagemath.org/ticket/3360#comment:36 and sympow's + # README for more details on caching. + # sympow will complain at runtime about the lack of write-permissions on the + # shared cache. We pass the `-quiet` flag by default to disable this. + postInstall = '' + wrapProgram "$out/bin/sympow" --add-flags '-quiet' + ''; + + # Example from the README as a sanity check. + doInstallCheck = true; + installCheckPhase = '' + export HOME="$TMP/home" + mkdir -p "$HOME" + "$out/bin/sympow" -sp 2p16 -curve "[1,2,3,4,5]" | grep '8.3705' + ''; + + meta = with lib; { + description = "Compute special values of symmetric power elliptic curve L-functions"; + license = { + shortName = "sympow"; + fullName = "Custom, BSD-like. See COPYING file."; + free = true; + }; + maintainers = teams.sage.members; + platforms = platforms.linux; + }; +} |