Skip to content

fix(php): stop a declared bundled extension from replacing the image's build - #1624

Merged
geodro merged 2 commits into
mainfrom
fix/php-ext-bundled-clobber
Aug 31, 2026
Merged

fix(php): stop a declared bundled extension from replacing the image's build#1624
geodro merged 2 commits into
mainfrom
fix/php-ext-bundled-clobber

Conversation

@geodro

@geodro geodro commented Aug 31, 2026

Copy link
Copy Markdown
Member

The image compiles its bundled extensions as part of its own configure run, with flags a standalone build layered on top cannot pass. A declared custom extension that names one of them rebuilds it generically anyway, so the better build is quietly replaced: ftp came back without OpenSSL and lost ftp_ssl_connect again, right after the base image had been fixed to ship it.

Builds now skip any bundled name in the declared set, which heals a declaration that is already there, and php:ext add refuses one up front rather than starting a rebuild that can only make the image worse.

Refs #1576

…s build

The image compiles its bundled extensions as part of its own configure run, with flags a standalone build layered on top cannot pass. A declared custom extension that names one of them rebuilds it generically anyway, so the better build is quietly replaced: ftp came back without OpenSSL and lost ftp_ssl_connect again, right after the base image had been fixed to ship it.

Builds now skip any bundled name in the declared set, which heals a declaration that is already there, and php:ext add refuses one up front rather than starting a rebuild that can only make the image worse.

Refs #1576
@geodro
geodro requested a review from a team as a code owner August 31, 2026 14:14
…clared

Skipping a bundled name at build time only helps an image built after the change. The fingerprint an image carries is taken from the declared set, and the declared set does not move when the binary starts ignoring part of it, so an image built while a declared ftp was still replacing the base image's own read as current forever and kept the lesser build until someone forced a rebuild by hand.

The fingerprint now covers the set the build will actually realise, bundled names and their apk deps left out. An image built before this reads as out of date exactly once, and the next thing that touches the version puts the image's own build back.
@geodro
geodro merged commit c71fbb4 into main Aug 31, 2026
3 checks passed
@geodro
geodro deleted the fix/php-ext-bundled-clobber branch August 31, 2026 14:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant