Skip to content

Pin glibc to version 2.17 to support legacy systems#4

Closed
araustin01 wants to merge 5 commits intomainfrom
release-patch
Closed

Pin glibc to version 2.17 to support legacy systems#4
araustin01 wants to merge 5 commits intomainfrom
release-patch

Conversation

@araustin01
Copy link
Copy Markdown

Description

A recent automatic UA (Universal Agent) upgrade (~Apr 27, 2026) pushed a new version of the squeegee capability that bundled a libscrapli binary as part of the scrapliv2 migration. This binary was built against debian:bookworm-slim, which requires glibc >= 2.25. Customers running CentOS 7 (glibc 2.17 max) had their Command Access / config sync capability broken for several days.

Affected customer: Proofpoint — 7 agents impacted, config sync down for ~2 days.

Relevant Issue

Solution

Zig seems to natively support targeting specific glibc versions. Adding glibc_version to the gnu targets in ffi_targets (build.zig) ensures the produced .so only uses glibc symbols from 2.17. This is a ~2-line change and the .so becomes universally compatible with CentOS 7+.

Pinning to version 2.17 should strike a balance in support, considering its widespread adoption across numerous legacy Linux systems.

@araustin01 araustin01 requested a review from alistairking May 5, 2026 15:40
@araustin01 araustin01 self-assigned this May 5, 2026
@araustin01 araustin01 added the bug 🐛 Indicates an unexpected problem or unintended behavior label May 5, 2026
@araustin01
Copy link
Copy Markdown
Author

Scrapligo PR needs to be merged next: kentik/scrapligo#4
Then https://github.com/kentik/ksqueegee/pull/71

@araustin01 araustin01 marked this pull request as ready for review May 6, 2026 13:58
Copilot AI review requested due to automatic review settings May 6, 2026 13:58
@araustin01
Copy link
Copy Markdown
Author

Tested overnight on Proofpoint's CentOS 7 device that originally triggered this device, https://portal.kentik.com/v4/spoof/125921/610764?redirectUrl=%2Fv4%2Finfrastructure%2Fdevices&view=monitor&q=0579ea05c897b5089da98a0f9f2f0642

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR aims to restore compatibility of the released Linux GNU FFI shared objects with legacy distributions (notably CentOS 7) by constraining the minimum glibc symbol version used at link time.

Changes:

  • Add a min_glibc_version constant and apply it to the linux-gnu entries in ffi_targets.
  • Tighten build/update_version.sh sed patterns to avoid unintended replacements in other SemanticVersion literals.
  • Exclude build.zig from the Zig linter’s path set.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
build/update_version.sh Makes version-bump sed replacements more specific/anchored to avoid collateral edits in build.zig.
build.zig Introduces a pinned glibc target version for linux-gnu multi-target FFI builds and updates zlinter exclusions.

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

Comment thread build.zig
Comment thread build.zig Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@araustin01
Copy link
Copy Markdown
Author

@araustin01 araustin01 closed this May 7, 2026
@araustin01 araustin01 deleted the release-patch branch May 7, 2026 15:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug 🐛 Indicates an unexpected problem or unintended behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants