Skip to content

maint: move to PHP 8.4, Apache 2.4.68 馃崚 - #2656

Merged
mcdurdin merged 1 commit into
stagingfrom
maint/cherry-pick/php-84
Sep 10, 2026
Merged

maint: move to PHP 8.4, Apache 2.4.68 馃崚#2656
mcdurdin merged 1 commit into
stagingfrom
maint/cherry-pick/php-84

Conversation

@mcdurdin

@mcdurdin mcdurdin commented Sep 9, 2026

Copy link
Copy Markdown
Member

As the PHP 7.4 image broke with missing security dependencies in Debian Bullseye (at time of writing, as yet unresolved), resolved to complete the upgrade to PHP 8.4 rather than try to build a stopgap solution based on existing PHP 7.4. Unfortunately PHP 8.4 has a number of incompatible
changes in 8.x series, documented at https://www.php.net/manual/en/migration80.incompatible.php. I have audited some of the more obvious ones -- but there is potential for other breakages which we will need to monitor.

Changes required:

  • move from PHP 7.4 to PHP 8.4 Docker image (upgrades Debian, Apache, PHP as major components)
  • dependency upgrades forced for Sentry, phpunit, curl-client, Parsedown
  • addition of BCTLS flag to .htaccess mod_rewrite rules (https://stackoverflow.com/q/75684314/1836776)
  • Fixup of several undefined variables (also fixed in keyboards repo)

See-also: keymanapp/keyman.com#828
See-also: keymanapp/s.keyman.com#1712
See-also: keymanapp/keymanweb.com#210
Relates-to: keymanapp/keymanweb.com#209
Cherry-pick-of: #2655
Test-bot: skip

As the PHP 7.4 image broke with missing security dependencies in Debian
Bullseye (at time of writing, as yet unresolved), resolved to complete
the upgrade to PHP 8.4 rather than try to build a stopgap solution based
on existing PHP 7.4. Unfortunately PHP 8.4 has a number of incompatible
changes in 8.x series, documented at
https://www.php.net/manual/en/migration80.incompatible.php. I have
audited some of the more obvious ones -- but there is potential for
other breakages which we will need to monitor.

Changes required:
* move from PHP 7.4 to PHP 8.4 Docker image (upgrades Debian, Apache,
  PHP as major components)
* dependency upgrades forced for Sentry, phpunit, curl-client, Parsedown
* addition of BCTLS flag to .htaccess mod_rewrite rules
  (https://stackoverflow.com/q/75684314/1836776)
* Fixup of several undefined variables (also fixed in keyboards repo)

See-also: keymanapp/keyman.com#828
See-also: keymanapp/s.keyman.com#1712
See-also: keymanapp/keymanweb.com#210
Relates-to: keymanapp/keymanweb.com#209
Test-bot: skip
@keymanapp-test-bot

Copy link
Copy Markdown

User Test Results

Test specification and instructions

User tests are not required

@keymanapp-test-bot keymanapp-test-bot Bot added this to the B19S1 milestone Sep 9, 2026
@mcdurdin
mcdurdin requested a review from tim-eves September 10, 2026 07:08
@mcdurdin
mcdurdin marked this pull request as ready for review September 10, 2026 07:10
@mcdurdin
mcdurdin merged commit e88de9f into staging Sep 10, 2026
6 checks passed
@mcdurdin
mcdurdin deleted the maint/cherry-pick/php-84 branch September 10, 2026 07:10
@github-project-automation github-project-automation Bot moved this from Todo to Done in Keyman Sep 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants