Skip to content

Prebuilt GNU Linux binary requires GLIBC 2.39, incompatible with Ubuntu 22.04 LTS / Debian 12 #1492

Description

@gaojunran

Problem

The prebuilt hl-linux-x86_64-gnu.tar.gz binary requires GLIBC_2.39, which is not available on common LTS distributions:

$ hl
hl: /lib64/libc.so.6: version `GLIBC_2.39' not found (required by hl)

Environment

  • OS: Ubuntu 22.04 LTS (GLIBC 2.35)
  • hl version: 0.36.3 (installed via aqua/mise, hl-linux-x86_64-gnu variant)
  • Also affected: Debian 12 (GLIBC 2.36), RHEL 9 (GLIBC 2.34), and other LTS distros

Root Cause

The linux-x86-gnu build target runs on ubuntu-latest in CI (build.yml), which is currently Ubuntu 24.04 with GLIBC 2.39. The resulting binary dynamically links against GLIBC 2.39 symbols, making it incompatible with older but still-supported LTS distributions.

Suggestion

Consider one of the following approaches to improve compatibility:

  1. Build the GNU variant on an older runner (e.g., ubuntu-22.04) to lower the minimum GLIBC requirement. This is the most common approach for Rust projects targeting broad Linux compatibility.

  2. Recommend the musl variant as the default for Linux in package manager registries (aqua, brew, etc.). The hl-linux-x86_64-musl build already exists and is statically linked, but aqua/mise currently selects the GNU variant by default.

  3. Document the GLIBC requirement in the README/installation section so users on older distros know to use the musl variant or build from source.

Workaround

Users on older distributions can:

  • Use the musl variant: download hl-linux-x86_64-musl.tar.gz from the release page
  • Build from source: cargo install --locked --git https://github.com/pamburus/hl.git

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions