mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-08-27 02:34:53 +00:00
In high core/load environments ctranslate2 could fail to link like: ... running build_ext building 'ctranslate2._ext' extension creating build/temp.linux-x86_64-cpython-314/cpp g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/ijyd6j5zv846q20zh9q5dk5dk9smn5h0-python3.14-pybind11-3.0.4/lib/python3.14/site-packages/pybind11/include -I/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/include/python3.14 -c cpp/encoder.cc -o build/temp.linux-x86_64-cpython-314/cpp/encoder.o -std=c++17 -fvisibility=hidden -fPIC g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/ijyd6j5zv846q20zh9q5dk5dk9smn5h0-python3.14-pybind11-3.0.4/lib/python3.14/site-packages/pybind11/include -I/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/include/python3.14 -c cpp/logging.cc -o build/temp.linux-x86_64-cpython-314/cpp/logging.o -std=c++17 -fvisibility=hidden -fPIC g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/ijyd6j5zv846q20zh9q5dk5dk9smn5h0-python3.14-pybind11-3.0.4/lib/python3.14/site-packages/pybind11/include -I/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/include/python3.14 -c cpp/translation_result.cc -o build/temp.linux-x86_64-cpython-314/cpp/translation_result.o -std=c++17 -fvisibility=hidden -fPIC g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/ijyd6j5zv846q20zh9q5dk5dk9smn5h0-python3.14-pybind11-3.0.4/lib/python3.14/site-packages/pybind11/include -I/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/include/python3.14 -c cpp/wav2vec2.cc -o build/temp.linux-x86_64-cpython-314/cpp/wav2vec2.o -std=c++17 -fvisibility=hidden -fPIC g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/ijyd6j5zv846q20zh9q5dk5dk9smn5h0-python3.14-pybind11-3.0.4/lib/python3.14/site-packages/pybind11/include -I/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/include/python3.14 -c cpp/execution_stats.cc -o build/temp.linux-x86_64-cpython-314/cpp/execution_stats.o -std=c++17 -fvisibility=hidden -fPIC g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/ijyd6j5zv846q20zh9q5dk5dk9smn5h0-python3.14-pybind11-3.0.4/lib/python3.14/site-packages/pybind11/include -I/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/include/python3.14 -c cpp/mpi.cc -o build/temp.linux-x86_64-cpython-314/cpp/mpi.o -std=c++17 -fvisibility=hidden -fPIC g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/ijyd6j5zv846q20zh9q5dk5dk9smn5h0-python3.14-pybind11-3.0.4/lib/python3.14/site-packages/pybind11/include -I/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/include/python3.14 -c cpp/generator.cc -o build/temp.linux-x86_64-cpython-314/cpp/generator.o -std=c++17 -fvisibility=hidden -fPIC g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/ijyd6j5zv846q20zh9q5dk5dk9smn5h0-python3.14-pybind11-3.0.4/lib/python3.14/site-packages/pybind11/include -I/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/include/python3.14 -c cpp/module.cc -o build/temp.linux-x86_64-cpython-314/cpp/module.o -std=c++17 -fvisibility=hidden -fPIC g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/ijyd6j5zv846q20zh9q5dk5dk9smn5h0-python3.14-pybind11-3.0.4/lib/python3.14/site-packages/pybind11/include -I/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/include/python3.14 -c cpp/translator.cc -o build/temp.linux-x86_64-cpython-314/cpp/translator.o -std=c++17 -fvisibility=hidden -fPIC g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/ijyd6j5zv846q20zh9q5dk5dk9smn5h0-python3.14-pybind11-3.0.4/lib/python3.14/site-packages/pybind11/include -I/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/include/python3.14 -c cpp/whisper.cc -o build/temp.linux-x86_64-cpython-314/cpp/whisper.o -std=c++17 -fvisibility=hidden -fPIC g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/ijyd6j5zv846q20zh9q5dk5dk9smn5h0-python3.14-pybind11-3.0.4/lib/python3.14/site-packages/pybind11/include -I/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/include/python3.14 -c cpp/generation_result.cc -o build/temp.linux-x86_64-cpython-314/cpp/generation_result.o -std=c++17 -fvisibility=hidden -fPIC g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/ijyd6j5zv846q20zh9q5dk5dk9smn5h0-python3.14-pybind11-3.0.4/lib/python3.14/site-packages/pybind11/include -I/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/include/python3.14 -c cpp/storage_view.cc -o build/temp.linux-x86_64-cpython-314/cpp/storage_view.o -std=c++17 -fvisibility=hidden -fPIC g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/ijyd6j5zv846q20zh9q5dk5dk9smn5h0-python3.14-pybind11-3.0.4/lib/python3.14/site-packages/pybind11/include -I/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/include/python3.14 -c cpp/wav2vec2bert.cc -o build/temp.linux-x86_64-cpython-314/cpp/wav2vec2bert.o -std=c++17 -fvisibility=hidden -fPIC g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/ijyd6j5zv846q20zh9q5dk5dk9smn5h0-python3.14-pybind11-3.0.4/lib/python3.14/site-packages/pybind11/include -I/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/include/python3.14 -c cpp/scoring_result.cc -o build/temp.linux-x86_64-cpython-314/cpp/scoring_result.o -std=c++17 -fvisibility=hidden -fPIC g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -shared -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-bzip2-1.0.8/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libffi-3.5.2/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-util-linux-minimal-2.42.2-lib/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-ncurses-6.6/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-xz-5.8.3/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-zlib-1.3.2/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-openssl-3.6.3/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-sqlite-3.53.1/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mpdecimal-4.0.1/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-expat-2.8.2/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-zstd-1.5.7/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-bluez-headers-5.86/lib -L/nix/store/bzzvmj6wh8a7mqvq9i54fmvpsdxz4zqj-tzdata-2026b/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gdbm-1.26-lib/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-readline-8.3p3/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-bzip2-1.0.8/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libffi-3.5.2/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-util-linux-minimal-2.42.2-lib/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-ncurses-6.6/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-xz-5.8.3/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-zlib-1.3.2/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-openssl-3.6.3/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-sqlite-3.53.1/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mpdecimal-4.0.1/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-expat-2.8.2/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-zstd-1.5.7/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-bluez-headers-5.86/lib -L/nix/store/bzzvmj6wh8a7mqvq9i54fmvpsdxz4zqj-tzdata-2026b/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gdbm-1.26-lib/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-readline-8.3p3/lib build/temp.linux-x86_64-cpython-314/cpp/encoder.o build/temp.linux-x86_64-cpython-314/cpp/execution_stats.o build/temp.linux-x86_64-cpython-314/cpp/generation_result.o build/temp.linux-x86_64-cpython-314/cpp/generator.o build/temp.linux-x86_64-cpython-314/cpp/logging.o build/temp.linux-x86_64-cpython-314/cpp/module.o build/temp.linux-x86_64-cpython-314/cpp/mpi.o build/temp.linux-x86_64-cpython-314/cpp/scoring_result.o build/temp.linux-x86_64-cpython-314/cpp/storage_view.o build/temp.linux-x86_64-cpython-314/cpp/translation_result.o build/temp.linux-x86_64-cpython-314/cpp/translator.o build/temp.linux-x86_64-cpython-314/cpp/wav2vec2.o build/temp.linux-x86_64-cpython-314/cpp/wav2vec2bert.o build/temp.linux-x86_64-cpython-314/cpp/whisper.o -L/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/lib -lctranslate2 -o build/lib.linux-x86_64-cpython-314/ctranslate2/_ext.cpython-314-x86_64-linux-gnu.so -Wl,-rpath,/usr/local/lib64:/usr/local/lib /nix/store/ddk8rvjihg4vhh1k6x9rc65y1zb1kx34-binutils-2.46/bin/ld.bfd: cannot find -lctranslate2: No such file or directory collect2: error: ld returned 1 exit status error: command '/nix/store/vdaz6sk455r8sbpi7wzaf9vlz5i9yyvx-gcc-wrapper-15.2.0/bin/g++' failed with exit code 1 ERROR Backend subprocess exited when trying to invoke build_wheel ... This can be avoided by setting library_dirs explicitly through an env in the upstream build system https://github.com/OpenNMT/CTranslate2/blob/v4.8.1/python/setup.py#L31-L42 and with that the lib directory is given explicitly and the linker can always find it: python3.14-ctranslate2> g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -shared -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-bzip2-1.0.8/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libffi-3.5.2/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-util-linux-minimal-2.42.2-lib/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-ncurses-6.6/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-xz-5.8.3/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-zlib-1.3.2/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-openssl-3.6.3/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-sqlite-3.53.1/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mpdecimal-4.0.1/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-expat-2.8.2/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-zstd-1.5.7/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-bluez-headers-5.86/lib -L/nix/store/bzzvmj6wh8a7mqvq9i54fmvpsdxz4zqj-tzdata-2026b/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gdbm-1.26-lib/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-readline-8.3p3/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-bzip2-1.0.8/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libffi-3.5.2/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-util-linux-minimal-2.42.2-lib/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-ncurses-6.6/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-xz-5.8.3/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-zlib-1.3.2/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-openssl-3.6.3/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-sqlite-3.53.1/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mpdecimal-4.0.1/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-expat-2.8.2/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-zstd-1.5.7/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-bluez-headers-5.86/lib -L/nix/store/bzzvmj6wh8a7mqvq9i54fmvpsdxz4zqj-tzdata-2026b/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gdbm-1.26-lib/lib -L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-readline-8.3p3/lib build/temp.linux-x86_64-cpython-314/cpp/encoder.o build/temp.linux-x86_64-cpython-314/cpp/execution_stats.o build/temp.linux-x86_64-cpython-314/cpp/generation_result.o build/temp.linux-x86_64-cpython-314/cpp/generator.o build/temp.linux-x86_64-cpython-314/cpp/logging.o build/temp.linux-x86_64-cpython-314/cpp/module.o build/temp.linux-x86_64-cpython-314/cpp/mpi.o build/temp.linux-x86_64-cpython-314/cpp/scoring_result.o build/temp.linux-x86_64-cpython-314/cpp/storage_view.o build/temp.linux-x86_64-cpython-314/cpp/translation_result.o build/temp.linux-x86_64-cpython-314/cpp/translator.o build/temp.linux-x86_64-cpython-314/cpp/wav2vec2.o build/temp.linux-x86_64-cpython-314/cpp/wav2vec2bert.o build/temp.linux-x86_64-cpython-314/cpp/whisper.o -L/nix/store/xiqxnqx0w0aaq35mh3x4pjh2mv9w0xg3-ctranslate2-4.8.1/lib -L/nix/store/jxyrvv4gbpnp3ap5iy7wxwl1sg4x2x88-python3-3.14.6/lib -lctranslate2 -o build/lib.linux-x86_64-cpython-314/ctranslate2/_ext.cpython-314-x86_64-linux-gnu.so -Wl,-rpath,/usr/local/lib64:/usr/local/lib
95 lines
2.0 KiB
Nix
95 lines
2.0 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
buildPythonPackage,
|
|
|
|
# build-system
|
|
pybind11,
|
|
setuptools,
|
|
|
|
# dependencies
|
|
ctranslate2-cpp,
|
|
numpy,
|
|
pyyaml,
|
|
|
|
# tests
|
|
pytestCheckHook,
|
|
torch,
|
|
transformers,
|
|
writableTmpDirAsHomeHook,
|
|
wurlitzer,
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
inherit (ctranslate2-cpp) pname version src;
|
|
pyproject = true;
|
|
|
|
# https://github.com/OpenNMT/CTranslate2/tree/master/python
|
|
sourceRoot = "${src.name}/python";
|
|
|
|
postPatch = ''
|
|
substituteInPlace pyproject.toml \
|
|
--replace-fail "pybind11==" "pybind11>="
|
|
'';
|
|
|
|
build-system = [
|
|
pybind11
|
|
setuptools
|
|
];
|
|
|
|
dependencies = [
|
|
numpy
|
|
pyyaml
|
|
];
|
|
|
|
env.CTRANSLATE2_ROOT = "${ctranslate2-cpp}";
|
|
|
|
cmakeFlags = [ "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" ];
|
|
|
|
pythonImportsCheck = [
|
|
# https://opennmt.net/CTranslate2/python/overview.html
|
|
"ctranslate2"
|
|
"ctranslate2.converters"
|
|
"ctranslate2.models"
|
|
"ctranslate2.specs"
|
|
];
|
|
|
|
nativeCheckInputs = [
|
|
pytestCheckHook
|
|
torch
|
|
transformers
|
|
writableTmpDirAsHomeHook
|
|
wurlitzer
|
|
];
|
|
|
|
preCheck = ''
|
|
# run tests against build result, not sources
|
|
rm -rf ctranslate2
|
|
'';
|
|
|
|
disabledTests =
|
|
lib.optionals (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux) [
|
|
# RuntimeError: Failed to initialize cpuinfo!"
|
|
"test_torch_variables"
|
|
]
|
|
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
|
# Fatal Python error: Aborted
|
|
"test_invalid_model_path"
|
|
];
|
|
|
|
disabledTestPaths = [
|
|
# TODO: ModuleNotFoundError: No module named 'opennmt'
|
|
"tests/test_opennmt_tf.py"
|
|
# OSError: We couldn't connect to 'https://huggingface.co' to load this file
|
|
"tests/test_transformers.py"
|
|
];
|
|
|
|
meta = {
|
|
description = "Fast inference engine for Transformer models";
|
|
homepage = "https://github.com/OpenNMT/CTranslate2";
|
|
changelog = "https://github.com/OpenNMT/CTranslate2/blob/${src.rev}/CHANGELOG.md";
|
|
license = lib.licenses.mit;
|
|
maintainers = with lib.maintainers; [ hexa ];
|
|
};
|
|
}
|