Skip to content

feat: Vendor libicu as a BOSH package to fix postgres-16/17/18 on Ubuntu Resolute - #99

Open
ZPascal wants to merge 2 commits into
mainfrom
issue-98
Open

ZPascal wants to merge 2 commits into
mainfrom
issue-98

Conversation

@ZPascal

@ZPascal ZPascal commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Ubuntu Resolute dropped libicu-dev, which broke postgres-16, 17, and 18. This adds a new postgres-libicu BOSH package that compiles ICU4C from source so postgres doesn't have to rely on the system library being present.

The postgres-16/17/18 packaging scripts now point their configure flags at ${BOSH_PACKAGES_PATH}/postgres-libicu and declare it as a dependency. postgres-15 is unaffected — it doesn't use ICU.

Also fixes the shebang pattern in those packaging scripts: #!/bin/bash -exu is silently ignored by BOSH, replaced with #!/bin/bash + set -euo pipefail.

On the CI side: Adds an icu-src Concourse resource tracking ICU4C releases on GitHub, a bump-libicu-package task to automate blob bumps, and checksum validation via SHASUM512.txt (same pattern as the existing yq bump task).

Closes #98

Test plan

  • Trigger bump-packages CI job and verify bump-libicu-package completes cleanly
  • Deploy postgres-16/17/18 on Resolute — initdb and pg_ctl start succeed
  • Verified on Noble and Jammy stemcells as well
  • postgres-15 unaffected
  • Only static .a libs in the ICU install target (--disable-shared), no .so leakage

@ZPascal
ZPascal marked this pull request as draft September 21, 2026 10:22
@ZPascal ZPascal changed the title feat: vendor libicu as a BOSH package to fix postgres-16/17/18 on Ubuntu Resolute feat: Vendor libicu as a BOSH package to fix postgres-16/17/18 on Ubuntu Resolute Sep 21, 2026
@ZPascal
ZPascal force-pushed the issue-98 branch 2 times, most recently from 4fe1601 to aee3d10 Compare September 21, 2026 12:05
@ZPascal ZPascal self-assigned this Sep 22, 2026
@ZPascal
ZPascal force-pushed the issue-98 branch 2 times, most recently from fdb8c5d to c3cf45e Compare September 22, 2026 21:24
…tu Resolute

libicu-dev was dropped from the Ubuntu Resolute stemcell, breaking
postgres-16/17/18 compilation which requires ICU at build time.

- Add postgres-libicu BOSH package that compiles ICU4C 78.3 from a vendored
  source tarball (static-only, --disable-shared) so postgres links ICU
  statically with no runtime .so dependency
- Update postgres-15, -16, -17, -18 to support aarch64 in packaging scripts
- Update postgres-16, -17, -18 to declare postgres-libicu as a dependency
  and use ${BOSH_PACKAGES_PATH:-/var/vcap/packages}/postgres-libicu in
  configure flags with -lstdc++ to satisfy C++ runtime symbols from static ICU

Closes #98
@ZPascal
ZPascal marked this pull request as ready for review September 23, 2026 05:53
@ZPascal
ZPascal requested review from a team and colins September 23, 2026 05:54

@Jobsby Jobsby left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please check the ICU release version and name changes between 77 and 78.

Comment thread ci/pipeline.yml Outdated
Comment thread ci/pipeline.yml Outdated
@ZPascal

ZPascal commented Sep 23, 2026

Copy link
Copy Markdown
Contributor Author

Please check the ICU release version and name changes between 77 and 78.

Thank you for the notification. We should handle this in a future-proof way, and I've adjusted the CI/CD job. I've also added SHA validation support.

@ZPascal
ZPascal requested a review from Jobsby September 23, 2026 18:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

Ubuntu Resolute stemcell: Missing "postgres-17/bin/initdb" script

2 participants