diff --git a/pkgs/by-name/eq/equihash/package.nix b/pkgs/by-name/eq/equihash/package.nix new file mode 100644 index 000000000000..f1cb8668978c --- /dev/null +++ b/pkgs/by-name/eq/equihash/package.nix @@ -0,0 +1,36 @@ +{ + lib, + stdenv, + fetchFromGitHub, + libsodium, + nix-update-script, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "equihash"; + version = "1.0.10"; + + src = fetchFromGitHub { + owner = "stef"; + repo = "equihash"; + tag = "v${finalAttrs.version}"; + hash = "sha256-s16MwWH/xYLl7MSayXLoQUtuTv4GsQgq+qbI14igcv8="; + }; + + strictDeps = true; + + buildInputs = [ libsodium ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Memory-hard PoW with fast verification"; + homepage = "https://github.com/stef/equihash/"; + license = lib.licenses.cc0; + teams = [ lib.teams.ngi ]; + # ld -z not available on darwin + platforms = lib.platforms.linux; + }; +}) diff --git a/pkgs/development/python-modules/pyequihash/default.nix b/pkgs/development/python-modules/pyequihash/default.nix new file mode 100644 index 000000000000..54b033d2b89e --- /dev/null +++ b/pkgs/development/python-modules/pyequihash/default.nix @@ -0,0 +1,50 @@ +{ + lib, + stdenv, + buildPythonPackage, + equihash, + setuptools, + python, +}: + +buildPythonPackage rec { + pname = "pyequihash"; + pyproject = true; + + inherit (equihash) + version + src + ; + + sourceRoot = "${src.name}/python"; + + postPatch = + let + soext = stdenv.hostPlatform.extensions.sharedLibrary; + in + '' + substituteInPlace ./equihash/__init__.py --replace-fail \ + "ctypes.util.find_library('equihash') or ctypes.util.find_library('libequihash')" "'${lib.getLib equihash}/lib/libequihash${soext}'" + ''; + + build-system = [ setuptools ]; + + pythonImportsCheck = [ "equihash" ]; + + checkPhase = '' + runHook preCheck + + ${python.interpreter} test.py + + runHook postCheck + ''; + + meta = { + inherit (equihash.meta) + description + homepage + license + teams + ; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 897ed22dd676..cd68383b6918 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -12823,6 +12823,8 @@ self: super: with self; { pyepsg = callPackage ../development/python-modules/pyepsg { }; + pyequihash = callPackage ../development/python-modules/pyequihash { }; + pyerfa = callPackage ../development/python-modules/pyerfa { }; pyeverlights = callPackage ../development/python-modules/pyeverlights { };