From f9bbe9049f4bec2a8ea2f27ef6c3e2cf97cacc3a Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Tue, 7 Oct 2025 10:33:15 +0000 Subject: [PATCH 1/3] ctranslate2: move to by-name --- .../default.nix => by-name/ct/ctranslate2/package.nix} | 5 +++-- pkgs/top-level/all-packages.nix | 6 ------ 2 files changed, 3 insertions(+), 8 deletions(-) rename pkgs/{development/libraries/ctranslate2/default.nix => by-name/ct/ctranslate2/package.nix} (96%) diff --git a/pkgs/development/libraries/ctranslate2/default.nix b/pkgs/by-name/ct/ctranslate2/package.nix similarity index 96% rename from pkgs/development/libraries/ctranslate2/default.nix rename to pkgs/by-name/ct/ctranslate2/package.nix index 8524bb3e16ce..8484d66f3757 100644 --- a/pkgs/development/libraries/ctranslate2/default.nix +++ b/pkgs/by-name/ct/ctranslate2/package.nix @@ -1,13 +1,14 @@ { lib, stdenv, + config, fetchFromGitHub, cmake, llvmPackages, # openmp withMkl ? false, mkl, - withCUDA ? false, - withCuDNN ? false, + withCUDA ? config.cudaSupport, + withCuDNN ? withCUDA && (cudaPackages ? cudnn), cudaPackages, # Enabling both withOneDNN and withOpenblas is broken # https://github.com/OpenNMT/CTranslate2/issues/1294 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e781d2021c05..d0559c581cee 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7140,12 +7140,6 @@ with pkgs; inherit (cosmopolitan) cosmocc; - ctranslate2 = callPackage ../development/libraries/ctranslate2 rec { - withCUDA = pkgs.config.cudaSupport; - withCuDNN = withCUDA && (cudaPackages ? cudnn); - cudaPackages = pkgs.cudaPackages; - }; - ustream-ssl = callPackage ../development/libraries/ustream-ssl { ssl_implementation = openssl; }; ustream-ssl-wolfssl = callPackage ../development/libraries/ustream-ssl { From c0b9be4e54a755b36262b9d25d999aa3f97e7623 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Tue, 7 Oct 2025 10:33:58 +0000 Subject: [PATCH 2/3] ctranslate2: cleanup --- pkgs/by-name/ct/ctranslate2/package.nix | 35 +++++++++++++------------ 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/pkgs/by-name/ct/ctranslate2/package.nix b/pkgs/by-name/ct/ctranslate2/package.nix index 8484d66f3757..c03e25a739ac 100644 --- a/pkgs/by-name/ct/ctranslate2/package.nix +++ b/pkgs/by-name/ct/ctranslate2/package.nix @@ -24,19 +24,18 @@ }: let - cmakeBool = b: if b then "ON" else "OFF"; stdenv' = if withCUDA then cudaPackages.backendStdenv else stdenv; in -stdenv'.mkDerivation rec { +stdenv'.mkDerivation (finalAttrs: { pname = "ctranslate2"; version = "4.6.0"; src = fetchFromGitHub { owner = "OpenNMT"; repo = "CTranslate2"; - rev = "v${version}"; - hash = "sha256-EM2kunqtxo0BTIzrEomfaRsdav7sx6QEOhjDtjjSoYY="; + tag = "v${finalAttrs.version}"; fetchSubmodules = true; + hash = "sha256-EM2kunqtxo0BTIzrEomfaRsdav7sx6QEOhjDtjjSoYY="; }; nativeBuildInputs = [ @@ -50,15 +49,17 @@ stdenv'.mkDerivation rec { # https://opennmt.net/CTranslate2/installation.html#build-options # https://github.com/OpenNMT/CTranslate2/blob/54810350e662ebdb01ecbf8e4a746f02aeff1dd7/python/tools/prepare_build_environment_linux.sh#L53 # https://github.com/OpenNMT/CTranslate2/blob/59d223abcc7e636c1c2956e62482bc3299cc7766/python/tools/prepare_build_environment_macos.sh#L12 - "-DOPENMP_RUNTIME=COMP" - "-DWITH_CUDA=${cmakeBool withCUDA}" - "-DWITH_CUDNN=${cmakeBool withCuDNN}" - "-DWITH_DNNL=${cmakeBool withOneDNN}" - "-DWITH_OPENBLAS=${cmakeBool withOpenblas}" - "-DWITH_RUY=${cmakeBool withRuy}" - "-DWITH_MKL=${cmakeBool withMkl}" + (lib.cmakeFeature "OPENMP_RUNTIME" "COMP") + (lib.cmakeBool "WITH_CUDA" withCUDA) + (lib.cmakeBool "WITH_CUDNN" withCuDNN) + (lib.cmakeBool "WITH_DNNL" withOneDNN) + (lib.cmakeBool "WITH_OPENBLAS" withOpenblas) + (lib.cmakeBool "WITH_RUY" withRuy) + (lib.cmakeBool "WITH_MKL" withMkl) ] - ++ lib.optional stdenv.hostPlatform.isDarwin "-DWITH_ACCELERATE=ON"; + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + (lib.cmakeBool "WITH_ACCELERATE" true) + ]; buildInputs = lib.optionals withMkl [ @@ -90,16 +91,16 @@ stdenv'.mkDerivation rec { ; }; - meta = with lib; { + meta = { description = "Fast inference engine for Transformer models"; mainProgram = "ct2-translator"; homepage = "https://github.com/OpenNMT/CTranslate2"; - changelog = "https://github.com/OpenNMT/CTranslate2/blob/${src.rev}/CHANGELOG.md"; - license = licenses.mit; - maintainers = with maintainers; [ + changelog = "https://github.com/OpenNMT/CTranslate2/blob/${finalAttrs.src.tag}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ hexa misuzu ]; broken = !(withCuDNN -> withCUDA); }; -} +}) From 127236cb72609a08798f365c2ecede786f19eafb Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Tue, 7 Oct 2025 10:37:00 +0000 Subject: [PATCH 3/3] ctranslate2: fix CMake 4 compatibility --- pkgs/by-name/ct/ctranslate2/package.nix | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkgs/by-name/ct/ctranslate2/package.nix b/pkgs/by-name/ct/ctranslate2/package.nix index c03e25a739ac..aaa3cbb13e27 100644 --- a/pkgs/by-name/ct/ctranslate2/package.nix +++ b/pkgs/by-name/ct/ctranslate2/package.nix @@ -38,6 +38,19 @@ stdenv'.mkDerivation (finalAttrs: { hash = "sha256-EM2kunqtxo0BTIzrEomfaRsdav7sx6QEOhjDtjjSoYY="; }; + # Fix CMake 4 compatibility + postPatch = '' + substituteInPlace third_party/cpu_features/CMakeLists.txt \ + --replace-fail \ + 'cmake_minimum_required(VERSION 3.0)' \ + 'cmake_minimum_required(VERSION 3.10)' + + substituteInPlace third_party/ruy/third_party/cpuinfo/deps/clog/CMakeLists.txt \ + --replace-fail \ + 'CMAKE_MINIMUM_REQUIRED(VERSION 3.1 FATAL_ERROR)' \ + 'CMAKE_MINIMUM_REQUIRED(VERSION 3.10 FATAL_ERROR)' + ''; + nativeBuildInputs = [ cmake ]