Skip to content

Customizing conan settings: Make glibc version part of the Conan package_id on CentOS 9 - #5664

Open
jmarrec wants to merge 4 commits into
developfrom
centos-conan-GLIBC-ABI
Open

jmarrec wants to merge 4 commits into
developfrom
centos-conan-GLIBC-ABI

Conversation

@jmarrec

@jmarrec jmarrec commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

Pull request overview

Customizing conan settings: Make glibc version part of the Conan package_id on CentOS 9

Make glibc version part of the Conan package_id on CentOS 9

The gcc 14 binaries on nrel-v2 are built on ubuntu-24.04 (glibc 2.39), and get downloaded on AlmaLinux 9 (glibc 2.34) since the package_id matches, which fails to link (undefined reference to __isoc23_sscanf).

Add a shared Conan config in developer/conan/config with an optional os.libc / os.libc.version sub-setting and a glibc profile that sets it from the detected glibc. CentOS 9 CI installs it and passes -pr:a glibc, so it gets distinct package IDs and builds from source or pulls the glibc 2.34 binaries from nrel-v2. Other platforms are unaffected.

Also refresh binary_incompatility_glibc.md for Conan 2.

I have built the packages using that setting on a docker almalinux9 container with gcc 14, and uploaded them to nrel-v2 (taking 160 MB only)

Pull Request Author

  • Model API Changes / Additions
  • Any new or modified fields have been implemented in the EnergyPlus ForwardTranslator (and ReverseTranslator as appropriate)
  • Model API methods are tested (in src/model/test)
  • EnergyPlus ForwardTranslator Tests (in src/energyplus/Test)
  • If a new object or method, added a test in NREL/OpenStudio-resources: Add Link
  • If needed, added VersionTranslation rules for the objects (src/osversion/VersionTranslator.cpp)
  • Verified that C# bindings built fine on Windows, partial classes used as needed, etc.
  • All new and existing tests passes
  • If methods have been deprecated, update rest of code to use the new methods

Labels:

  • If change to an IDD file, add the label IDDChange
  • If breaking existing API, add the label APIChange
  • If deemed ready, add label Pull Request - Ready for CI so that CI builds your PR

Review Checklist

This will not be exhaustively relevant to every PR.

  • Perform a Code Review on GitHub
  • Code Style, strip trailing whitespace, etc.
  • All related changes have been implemented: model changes, model tests, FT changes, FT tests, VersionTranslation, OS App
  • Labeling is ok
  • If defect, verify by running develop branch and reproducing defect, then running PR and reproducing fix
  • If feature, test running new feature, try creative ways to break it
  • CI status: all green or justified

…age_id on CentOS 9

Make glibc version part of the Conan package_id on CentOS 9

The gcc 14 binaries on nrel-v2 are built on ubuntu-24.04 (glibc 2.39), and get downloaded on AlmaLinux 9 (glibc 2.34) since the package_id matches, which fails to link (undefined reference to `__isoc23_sscanf`).

Add a shared Conan config in developer/conan/config with an optional `os.libc` / `os.libc.version` sub-setting and a glibc profile that sets it from the detected glibc. CentOS 9 CI installs it and passes `-pr:a glibc`, so it gets distinct package IDs and builds from source or pulls the glibc 2.34 binaries from nrel-v2. Other platforms are unaffected.

Also refresh binary_incompatility_glibc.md for Conan 2.

- Fixes #5652 reliably
- Fixes NatLabRockies/openstudio-cmake-tools#6
@jmarrec jmarrec self-assigned this Oct 13, 2026
@jmarrec jmarrec added Developer Issue Pull Request - Ready for CI This pull request if finalized and is ready for continuous integration verification prior to merge. component - Conan Dependency / Package manager problems Continuous Integration labels Oct 13, 2026
@jmarrec
jmarrec force-pushed the centos-conan-GLIBC-ABI branch from 1c2acb6 to 75c5f64 Compare October 13, 2026 12:56
@jmarrec

jmarrec commented Oct 15, 2026

Copy link
Copy Markdown
Collaborator Author

Heyyoooooo Green build!

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.

🟢 Approval recommended

The only retained issue is a non-blocking quoting error in a documentation command.

1 open finding
What changed in this PR

Separates CentOS 9 Conan binaries by glibc version to prevent incompatible dependencies from being downloaded.

Changes:

  • Adds shared Conan settings and a glibc profile, enabled for CentOS 9 CI.
  • Updates dependency compatibility documentation.
  • Adds GCC compatibility adjustments and missing C++ headers.
File Description
src/​scriptengine/​ScriptEngine.hpp Adds standard library headers.
src/​epjson/​epJSONTranslator.cpp Adds warning annotations and preserves extensible-field lifetimes.
python/​engine/​PythonEngine.cpp Adds the algorithm header.
developer/​conan/​config/​settings_user.yml Defines optional Linux libc settings.
developer/​conan/​config/​README.md Documents configuration and usage.
developer/​conan/​config/​profiles/​glibc Detects libc and sets CMake compatibility policy.
developer/​conan/​config/​global.conf Configures downloads, caching, and non-interactive operation.
developer/​conan/​config/​.conanignore Excludes unrelated configuration files.
developer/​conan/​binary_incompatility_glibc.md Refreshes Conan compatibility guidance.
CMakeLists.txt Suppresses specified GCC warnings.
.github/​workflows/​full-build.yml Enables the glibc profile for CentOS 9.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread developer/conan/binary_incompatility_glibc.md Outdated
Updated the conan upload command to fix syntax.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@ci-commercialbuildings

ci-commercialbuildings commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

CI Results for 5b56b51:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component - Conan Dependency / Package manager problems Continuous Integration Developer Issue Pull Request - Ready for CI This pull request if finalized and is ready for continuous integration verification prior to merge.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unbrick centos9 build Centos9 artifactory remote need prebuilt packages

4 participants