From b94894662332b9b7e0b4d218f01e9c47e3157c01 Mon Sep 17 00:00:00 2001 From: Eric Yen Date: Fri, 15 Mar 2024 11:12:28 -0700 Subject: [PATCH] libmambapy: init at 1.5.7 --- .../python-modules/libmambapy/default.nix | 93 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 95 insertions(+) create mode 100644 pkgs/development/python-modules/libmambapy/default.nix diff --git a/pkgs/development/python-modules/libmambapy/default.nix b/pkgs/development/python-modules/libmambapy/default.nix new file mode 100644 index 000000000000..0466bebfe309 --- /dev/null +++ b/pkgs/development/python-modules/libmambapy/default.nix @@ -0,0 +1,93 @@ +{ + lib, + fetchFromGitHub, + pythonPackages, + buildPythonPackage, + cmake, + ninja, + libmamba, + pybind11, + setuptools, + fmt, + spdlog, + tl-expected, + nlohmann_json, + yaml-cpp, + reproc, + libsolv, + curl, + zstd, + bzip2, + wheel, +}: +buildPythonPackage rec { + pname = "libmambapy"; + version = "1.5.7"; + pyproject = true; + + src = fetchFromGitHub { + owner = "mamba-org"; + repo = "mamba"; + rev = "${pname}-${version}"; + hash = "sha256-HfmvLi9IBWlaGAn2Ej4Bnm4b3l19jEXwNl5IUkdVxi0="; + }; + + nativeBuildInputs = [ + cmake + ninja + ]; + + buildInputs = [ + (libmamba.override { python3Packages = pythonPackages; }) + pybind11 + fmt + spdlog + tl-expected + nlohmann_json + yaml-cpp + reproc + libsolv + curl + zstd + bzip2 + ]; + + build-system = [ + setuptools + wheel + ]; + + # patch needed to fix setuptools errors + # see these for reference + # https://stackoverflow.com/questions/72294299/multiple-top-level-packages-discovered-in-a-flat-layout + # https://github.com/pypa/setuptools/issues/3197#issuecomment-1078770109 + postPatch = '' + substituteInPlace libmambapy/setup.py --replace-warn "setuptools.setup()" "setuptools.setup(py_modules=[])" + ''; + + cmakeFlags = [ + "-GNinja" + (lib.cmakeBool "BUILD_LIBMAMBAPY" true) + ]; + + buildPhase = '' + ninjaBuildPhase + cp -r libmambapy ../libmambapy + cd ../libmambapy + pypaBuildPhase + ''; + + pythonRemoveDeps = [ "scikit-build" ]; + + pythonImportsCheck = [ + "libmambapy" + "libmambapy.bindings" + ]; + + meta = { + description = "The python library for the fast Cross-Platform Package Manager"; + homepage = "https://github.com/mamba-org/mamba"; + license = lib.licenses.bsd3; + maintainers = [ lib.maintainers.ericthemagician ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 05c01a7cf9ed..a4505bbb1326 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6607,6 +6607,8 @@ self: super: with self; { inherit (pkgs) lzfse; }; + libmambapy = callPackage ../development/python-modules/libmambapy { }; + libmodulemd = lib.pipe pkgs.libmodulemd [ toPythonModule (p: