Skip to content

CI: CentOS Stream 10 integration blocked — "No candidate version available for pcre-devel" #520

@damacus

Description

@damacus

Summary

  • CentOS Stream 10 integration is currently disabled in .github/workflows/ci.yml due to missing dependency resolution for PCRE:
    • # - "centos-stream-10" No candidate version available for pcre-devel (see .github/workflows/ci.yml, L31)

Observed

  • When attempting to compile HAProxy from source on CentOS Stream 10 (via Test Kitchen/Dokken), Yum/DNF cannot find pcre-devel.
  • libraries/helpers.rb requests pcre-devel for RHEL-like platforms via Haproxy::Cookbook::Helpers#source_package_list.
  • resources/install.rb only sets USE_PCRE=1 during make and does not support USE_PCRE2.

Hypothesis

  • EL10 has dropped PCRE1 headers in favor of PCRE2. The correct development package is likely pcre2-devel, and HAProxy should be compiled with USE_PCRE2=1 instead of USE_PCRE=1 on this platform.

Affected code

  • .github/workflows/ci.yml (integration job): CentOS Stream 10 is commented out with the note above.
  • libraries/helpers.rb (method source_package_list): uses pcre-devel for 'rhel', 'amazon', 'fedora'.
  • resources/install.rb (build flags): currently appends USE_PCRE=... but has no USE_PCRE2 toggle.

Proposed fix

  1. Add PCRE2 support in source builds:
    • Introduce a use_pcre2 property in resources/install.rb and conditionally append USE_PCRE2=... to the make command.
    • Default to PCRE2 on EL10+ (retain PCRE1 for older RHEL-like releases), or auto-detect based on package availability.
  2. Update dependency mapping in libraries/helpers.rb:
    • For RHEL-family platforms, use pcre2-devel on EL10+; keep pcre-devel for EL9 and older.
  3. Re-enable centos-stream-10 in the integration matrix once the above is green.

Acceptance criteria

  • CI successfully runs all relevant source suites on CentOS Stream 10.
  • No regressions on EL8/EL9, Debian, Ubuntu, etc.
  • Tests updated per TDD guidelines to cover PCRE2 path and CentOS Stream 10.

Context

  • Current HAProxy source_version default is 2.8.5, which supports PCRE2.
  • Kitchen images include centos-stream-10 in kitchen.dokken.yml, so once dependencies are fixed, we should be able to enable it in CI.

If desired, I can open a PR implementing the above changes and re-enabling CentOS Stream 10 in .github/workflows/ci.yml.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions