From 6d695c624ce3ee11f1f79aae2c9849343e4f0544 Mon Sep 17 00:00:00 2001 From: qbisi Date: Thu, 24 Jul 2025 06:18:37 +0800 Subject: [PATCH 1/4] ucx: use finalAttrs --- pkgs/by-name/uc/ucx/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/uc/ucx/package.nix b/pkgs/by-name/uc/ucx/package.nix index a2df302dd232..b517b9960f90 100644 --- a/pkgs/by-name/uc/ucx/package.nix +++ b/pkgs/by-name/uc/ucx/package.nix @@ -36,14 +36,14 @@ let # rocm build fails with gcc stdenv due to unrecognised arg parallel-jobs stdenv' = if enableRocm then rocmPackages.stdenv else stdenv; in -stdenv'.mkDerivation rec { +stdenv'.mkDerivation (finalAttrs: { pname = "ucx"; version = "1.18.1"; src = fetchFromGitHub { owner = "openucx"; repo = "ucx"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; sha256 = "sha256-LW57wbQFwW14Z86p9jo1ervkCafVy+pnIQQ9t0i8enY="; }; @@ -110,4 +110,4 @@ stdenv'.mkDerivation rec { platforms = platforms.linux; maintainers = [ maintainers.markuskowa ]; }; -} +}) From 41108ad5e620b52c140783f4b92a54685fe39f55 Mon Sep 17 00:00:00 2001 From: qbisi Date: Thu, 24 Jul 2025 06:20:18 +0800 Subject: [PATCH 2/4] ucx: no with lib; in meta --- pkgs/by-name/uc/ucx/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/uc/ucx/package.nix b/pkgs/by-name/uc/ucx/package.nix index b517b9960f90..b020231c25ce 100644 --- a/pkgs/by-name/uc/ucx/package.nix +++ b/pkgs/by-name/uc/ucx/package.nix @@ -103,11 +103,11 @@ stdenv'.mkDerivation (finalAttrs: { enableParallelBuilding = true; - meta = with lib; { + meta = { description = "Unified Communication X library"; homepage = "https://www.openucx.org"; - license = licenses.bsd3; - platforms = platforms.linux; - maintainers = [ maintainers.markuskowa ]; + license = lib.licenses.bsd3; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ markuskowa ]; }; }) From 41d9acc3f74264c50d4ba68b3309dbeff4699152 Mon Sep 17 00:00:00 2001 From: qbisi Date: Fri, 25 Jul 2025 18:45:15 +0800 Subject: [PATCH 3/4] ucx: mark loongarch64 badPlatform --- pkgs/by-name/uc/ucx/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/uc/ucx/package.nix b/pkgs/by-name/uc/ucx/package.nix index b020231c25ce..c82c686ac243 100644 --- a/pkgs/by-name/uc/ucx/package.nix +++ b/pkgs/by-name/uc/ucx/package.nix @@ -108,6 +108,9 @@ stdenv'.mkDerivation (finalAttrs: { homepage = "https://www.openucx.org"; license = lib.licenses.bsd3; platforms = lib.platforms.linux; + # LoongArch64 is not supported. + # See: https://github.com/openucx/ucx/issues/9873 + badPlatforms = lib.platforms.loongarch64; maintainers = with lib.maintainers; [ markuskowa ]; }; }) From 26d9aac3477428b609feed5529003d33b7ddb8f8 Mon Sep 17 00:00:00 2001 From: qbisi Date: Fri, 25 Jul 2025 01:37:10 +0800 Subject: [PATCH 4/4] openmpi: disable ucx support when not available --- pkgs/by-name/op/openmpi/package.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/op/openmpi/package.nix b/pkgs/by-name/op/openmpi/package.nix index 761b0e00c453..d3ef5d0fcad1 100644 --- a/pkgs/by-name/op/openmpi/package.nix +++ b/pkgs/by-name/op/openmpi/package.nix @@ -101,6 +101,8 @@ stdenv.mkDerivation (finalAttrs: { libnl numactl pmix + ] + ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform ucx) [ ucx ucc ] @@ -153,8 +155,10 @@ stdenv.mkDerivation (finalAttrs: { p = [ "mpi" ] - ++ lib.optionals stdenv.hostPlatform.isLinux [ + ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform ucx) [ "shmem" + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ "osh" ]; s = [ @@ -201,7 +205,7 @@ stdenv.mkDerivation (finalAttrs: { part1 = [ "mpi" ] - ++ lib.optionals stdenv.hostPlatform.isLinux [ "shmem" ]; + ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform ucx) [ "shmem" ]; part2 = builtins.attrNames wrapperDataSubstitutions; }; in