libmambapy: init at 1.5.7

This commit is contained in:
Eric Yen 2024-03-15 11:12:28 -07:00 committed by Sandro Jäckel
parent 9032d723d0
commit b948946623
No known key found for this signature in database
GPG Key ID: 3AF5A43A3EECC2E5
2 changed files with 95 additions and 0 deletions

View File

@ -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 ];
};
}

View File

@ -6607,6 +6607,8 @@ self: super: with self; {
inherit (pkgs) lzfse;
};
libmambapy = callPackage ../development/python-modules/libmambapy { };
libmodulemd = lib.pipe pkgs.libmodulemd [
toPythonModule
(p: