Skip to content

fix(nemo): pin texterrors to 1.1.6 for GLIBCXX compatibility#10134

Merged
mudler merged 1 commit into
mudler:masterfrom
fqscfqj:fix/nemo-pin-texterrors
Jun 2, 2026
Merged

fix(nemo): pin texterrors to 1.1.6 for GLIBCXX compatibility#10134
mudler merged 1 commit into
mudler:masterfrom
fqscfqj:fix/nemo-pin-texterrors

Conversation

@fqscfqj

@fqscfqj fqscfqj commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Problem

The cuda13-nemo backend fails to load on the default LocalAI container (Ubuntu 22.04) with:

ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.32' not found
(required by .../texterrors_align.cpython-310-x86_64-linux-gnu.so)

The texterrors package (a NeMo transitive dependency) contains a compiled C++ extension. When the backend OCI image is built on a system with GCC 14+ (e.g. Ubuntu 24.04), pip may build texterrors from source rather than using the pre-built wheel, producing a binary that requires GLIBCXX_3.4.32 — which the Ubuntu 22.04 container does not provide (it ships up to GLIBCXX_3.4.30).

Fix

Pin texterrors==1.1.6 in requirements-cublas13.txt before nemo_toolkit[asr].

This ensures:

  • Reproducible builds: a known-good version is always used regardless of build environment
  • Wheel over source: by pinning a version that has manylinux2014 wheels on PyPI (requiring only GLIBCXX_3.4.11), pip is more likely to install the pre-built wheel instead of building from source with the host toolchain

Investigation notes

I verified all available texterrors versions on PyPI (0.5.1 through 1.1.6) — their pre-built manylinux2014 wheels only require GLIBCXX up to 3.4.11, which is fully compatible with Ubuntu 22.04. The issue arises when the package is compiled from source (.tar.gz) during OCI image build on a newer platform.

Fixes #10056

Copilot AI review requested due to automatic review settings June 2, 2026 09:15

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds an additional Python dependency to the NeMo CUDA 13 (cu130) requirements set.

Changes:

  • Add texterrors==1.1.6 to requirements-cublas13.txt.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@fqscfqj fqscfqj force-pushed the fix/nemo-pin-texterrors branch from 1b655f6 to e412a6c Compare June 2, 2026 09:29
Pin texterrors==1.1.6 before nemo_toolkit[asr] in requirements-cublas13.txt.

The texterrors package (a NeMo transitive dependency) contains a compiled
C++ extension (texterrors_align.so) that may be built from source during
OCI image creation. When built on systems with GCC 14+ (e.g. Ubuntu 24.04),
the resulting binary requires GLIBCXX_3.4.32, which is not available in
the default LocalAI container (Ubuntu 22.04, GLIBCXX up to 3.4.30).

Pinning to 1.1.6 (the latest release) ensures:
- Reproducible builds across environments
- pip resolves the pre-built manylinux2014 wheel (needs only GLIBCXX_3.4.11)
  instead of potentially building from source with a newer toolchain

Fixes mudler#10056

Signed-off-by: 番茄摔成番茄酱 <fqscfqj@outlook.com>
@fqscfqj fqscfqj force-pushed the fix/nemo-pin-texterrors branch from e412a6c to ec0f163 Compare June 2, 2026 09:31
@mudler mudler merged commit 94eca04 into mudler:master Jun 2, 2026
1 check passed
@localai-bot localai-bot added the bug Something isn't working label Jun 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: nemo backend (cuda13-nemo) fails on Ubuntu 22.04 - GLIBCXX_3.4.32 not found

4 participants