1 { lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, doxygen
2 , numactl, rdma-core, libbfd, libiberty, perl, zlib, symlinkJoin
8 # Needed for configure to find all libraries
9 cudatoolkit' = symlinkJoin {
10 inherit (cudatoolkit) name meta;
11 paths = [ cudatoolkit cudatoolkit.lib ];
14 in stdenv.mkDerivation rec {
18 src = fetchFromGitHub {
22 sha256 = "sha256-NhtN8xrHc6UnUrMbq9LHpb25JO+/LDGcLLGebCfGnv4=";
26 # Pull upstream fix for binutils-2.39:
27 # https://github.com/openucx/ucx/pull/8450
29 name = "binutils-2.39.patch";
30 url = "https://github.com/openucx/ucx/commit/6b6128efd416831cec3a1820f7d1c8e648b79448.patch";
31 sha256 = "sha256-ci00nZG8iOUEFXbmgr/5XkIfiw4eAAdG1wcEYjQSiT8=";
35 nativeBuildInputs = [ autoreconfHook doxygen ];
44 ] ++ lib.optional enableCuda cudatoolkit;
47 "--with-rdmacm=${rdma-core}"
51 "--with-verbs=${rdma-core}"
52 ] ++ lib.optional enableCuda "--with-cuda=${cudatoolkit'}";
54 enableParallelBuilding = true;
57 description = "Unified Communication X library";
58 homepage = "http://www.openucx.org";
59 license = licenses.bsd3;
60 platforms = platforms.linux;
61 maintainers = [ maintainers.markuskowa ];