diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix b/infra/libkookie/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix new file mode 100644 index 000000000000..ae7a7c778de0 --- /dev/null +++ b/infra/libkookie/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix @@ -0,0 +1,74 @@ +{ 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 stdenv.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 = with maintainers; [ timokau ]; + platforms = platforms.linux; + }; +} |