From 126d5152ba4356b8653ad065ebe268a787474937 Mon Sep 17 00:00:00 2001 From: Michael Daniels Date: Fri, 3 Oct 2025 17:45:57 -0400 Subject: [PATCH] python3Packages.hoomd-blue: 2.3.4 -> 6.0.0 Changelog: https://github.com/glotzerlab/hoomd-blue/blob/v6.0.0/CHANGELOG.rst Diff: https://github.com/glotzerlab/hoomd-blue/compare/refs/tags/v2.3.4...refs/tags/v6.0.0 --- .../python-modules/hoomd-blue/default.nix | 79 ++++++++++--------- 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/pkgs/development/python-modules/hoomd-blue/default.nix b/pkgs/development/python-modules/hoomd-blue/default.nix index 9adcb87f8ee8..056d326d93c3 100644 --- a/pkgs/development/python-modules/hoomd-blue/default.nix +++ b/pkgs/development/python-modules/hoomd-blue/default.nix @@ -1,69 +1,70 @@ { lib, buildPythonPackage, - fetchgit, cmake, + eigen, + fetchFromGitHub, + mpi, pkgconfig, python, - mpi ? null, + # true or false to enable/disable; null to use upstream defaults + withHpmc ? null, + withMd ? null, + withMetal ? null, + withMpcd ? null, }: let - components = { - cgcmm = true; - depreciated = true; - hpmc = true; - md = true; - metal = true; - }; - onOffBool = b: if b then "ON" else "OFF"; - withMPI = (mpi != null); + optionalCmakeBool = name: value: lib.optionals (value != null) [ (lib.cmakeBool name value) ]; in buildPythonPackage rec { - version = "2.3.4"; + version = "6.0.0"; pname = "hoomd-blue"; pyproject = false; # Built with cmake - src = fetchgit { - url = "https://bitbucket.org/glotzer/hoomd-blue"; - rev = "v${version}"; - sha256 = "0in49f1dvah33nl5n2qqbssfynb31pw1ds07j8ziryk9w252j1al"; - }; - - passthru = { - inherit components mpi; + src = fetchFromGitHub { + owner = "glotzerlab"; + repo = "hoomd-blue"; + tag = "v${version}"; + hash = "sha256-dmDBAJU6FxMQXuMO+nE1yzOY1m6/x43eH3USBQNVu8A="; + fetchSubmodules = true; }; nativeBuildInputs = [ cmake pkgconfig ]; - buildInputs = lib.optionals withMPI [ mpi ]; - propagatedBuildInputs = [ python.pkgs.numpy ] ++ lib.optionals withMPI [ python.pkgs.mpi4py ]; + buildInputs = [ + eigen + mpi + ]; + + dependencies = with python.pkgs; [ + numpy + mpi4py + pybind11 + ]; dontAddPrefix = true; cmakeFlags = [ - "-DENABLE_MPI=${onOffBool withMPI}" - "-DBUILD_CGCMM=${onOffBool components.cgcmm}" - "-DBUILD_DEPRECIATED=${onOffBool components.depreciated}" - "-DBUILD_HPMC=${onOffBool components.hpmc}" - "-DBUILD_MD=${onOffBool components.md}" - "-DBUILD_METAL=${onOffBool components.metal}" - "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/${python.sitePackages}" - ]; + (lib.cmakeBool "BUILD_TESTING" doCheck) + (lib.cmakeFeature "CMAKE_INSTALL_PREFIX" "${placeholder "out"}/${python.sitePackages}") + ] + ++ optionalCmakeBool "BUILD_MD" withMd + ++ optionalCmakeBool "BUILD_HPMC" withHpmc + ++ optionalCmakeBool "BUILD_METAL" withMetal + ++ optionalCmakeBool "BUILD_MPCD" withMpcd; - # tests fail but have tested that package runs properly - doCheck = false; - checkTarget = "test"; + # Tests are performed as part of the installPhase when -DBUILD_TESTING=TRUE, + # not the checkPhase or installCheckPhase. + # But leave doCheck here so people can override it as they may expect. + doCheck = true; meta = { - homepage = "http://glotzerlab.engin.umich.edu/hoomd-blue/"; + homepage = "https://glotzerlab.engin.umich.edu/software/"; description = "HOOMD-blue is a general-purpose particle simulation toolkit"; - license = lib.licenses.bsdOriginal; - platforms = [ "x86_64-linux" ]; + changelog = "https://github.com/glotzerlab/hoomd-blue/blob/${src.tag}/CHANGELOG.rst"; + license = lib.licenses.bsd3; maintainers = [ ]; - # Has compilation errors since some dependencies got updated, will probably - # be fixed if updated by itself to the latest version. - broken = true; }; }