Skip to content

Make extension installs reliable and add new extensions on PHP 8.2+ - #411

Merged
mistraloz merged 11 commits into
v5from
feat/extensions-reliability-and-additions
Oct 5, 2026
Merged

mistraloz merged 11 commits into
v5from
feat/extensions-reliability-and-additions

Conversation

@mistraloz

Copy link
Copy Markdown
Collaborator

Summary

Extension install failures were silently ignored during the build, which hid several broken extensions. This PR makes
the build fail on any install error, fixes the extensions that were broken, and adds new extensions available in the
Ondrej PPA.

Build reliability

  • The fat image build now fails when an extension cannot be installed (failures were previously ignored), and lists the
    failed extensions.
  • Skip package installation for extensions already bundled in php-common (e.g. ffi and gettext on PHP 8.5).

Extension fixes

  • rdkafka: installed from the stable apt package (6.0.5) instead of an alpha version built with pickle; nowavailable on PHP 8.5.
  • Blackfire: fix the CLI install since Blackfire switched to calendar-based versions.- swoole: enable mysqlnd, which swoole requires.
  • ffi: fix the install check (php -m displays FFI in uppercase).

New extensions (PHP 8.2+)

All installed from the Ondřej PPA packages (no compilation):

  • decimal: arbitrary precision decimal arithmetic
  • gnupg: GnuPG bindings
  • inotify: filesystem events
  • lz4 / zstd: fast compression
  • mcrypt: legacy applications only (deprecated)
  • odbc / pdo_odbc: generic ODBC access

Cleanup

  • Remove the unused weakref extension (PHP provides WeakReference natively since 7.4).

Tests & docs

  • Test suites can now run in parallel, and the test platform is detected from the Docker daemon instead of uname -p.
  • New test checking the PHP 8.2+ extensions can be enabled on the fat image (skipped on older versions).
  • README: document supported PHP and NodeJS versions, and update the list of available extensions (rdkafka was missing).

Test plan

  • Each new extension installed with its install.sh on PHP 8.2, 8.3, 8.4 and 8.5: loads in php -m with no output on stderr
  • test_presenceOfPhp82ExtensionsOnFat passes on an image with the extensions, is skipped on 8.1, fails on an image without them

@mistraloz mistraloz self-assigned this Oct 5, 2026
@mistraloz
mistraloz merged commit e20bc77 into v5 Oct 5, 2026
90 of 93 checks passed
@mistraloz
mistraloz deleted the feat/extensions-reliability-and-additions branch October 5, 2026 17:36
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