Skip to content

php85: init at 8.5.2#481104

Merged
philiptaron merged 10 commits intoNixOS:masterfrom
piotrkwiecinski:php-8.5.2
Jan 27, 2026
Merged

php85: init at 8.5.2#481104
philiptaron merged 10 commits intoNixOS:masterfrom
piotrkwiecinski:php-8.5.2

Conversation

@piotrkwiecinski
Copy link
Contributor

@piotrkwiecinski piotrkwiecinski commented Jan 17, 2026

Supersedes #422308

Notes:
opcache is now built-in. I run a test using var_dump(function_exists('opcache_get_status'));

uri extension works. Tested using:

$uri = Uri\Rfc3986\Uri::parse('https://example.com/path?query=value#fragment');  
var_dump($uri->getScheme());

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

Add a 👍 reaction to pull requests you find important.

@nixpkgs-ci nixpkgs-ci bot requested review from Ma27, aanderse, jtojnar and talyz January 17, 2026 17:59
@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 6.topic: php PHP is a general-purpose scripting language geared towards web development. labels Jan 17, 2026
@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 101-500 This PR causes between 101 and 500 packages to rebuild on Linux. 10.rebuild-darwin: 101-500 This PR causes between 101 and 500 packages to rebuild on Darwin. and removed 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. labels Jan 17, 2026
@piotrkwiecinski

This comment was marked as outdated.

@piotrkwiecinski
Copy link
Contributor Author

@Al2Klimov would you test it. There are still some failures as we need to merge other PRs for extension upgrades, but core should work.

@piotrkwiecinski

This comment was marked as outdated.

@piotrkwiecinski
Copy link
Contributor Author

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 481104
Commit: 1c614d75004b9eb1ecda6ddeb959c4f544403de5


x86_64-linux

❌ 1 package failed to build:
  • php85Extensions.imagick
✅ 171 packages built:
  • php82Extensions.rrd
  • php83Extensions.rrd
  • phpExtensions.rrd (php84Extensions.rrd)
  • php85
  • php85Extensions.amqp
  • php85Extensions.apcu
  • php85Extensions.apcu.dev
  • php85Extensions.ast
  • php85Extensions.bcmath
  • php85Extensions.bcmath.dev
  • php85Extensions.blackfire
  • php85Extensions.bz2
  • php85Extensions.bz2.dev
  • php85Extensions.calendar
  • php85Extensions.calendar.dev
  • php85Extensions.ctype
  • php85Extensions.ctype.dev
  • php85Extensions.curl
  • php85Extensions.curl.dev
  • php85Extensions.dba
  • php85Extensions.dba.dev
  • php85Extensions.decimal
  • php85Extensions.dom
  • php85Extensions.dom.dev
  • php85Extensions.ds
  • php85Extensions.enchant
  • php85Extensions.enchant.dev
  • php85Extensions.event
  • php85Extensions.excimer
  • php85Extensions.exif
  • php85Extensions.exif.dev
  • php85Extensions.ffi
  • php85Extensions.ffi.dev
  • php85Extensions.fileinfo
  • php85Extensions.fileinfo.dev
  • php85Extensions.filter
  • php85Extensions.filter.dev
  • php85Extensions.ftp
  • php85Extensions.ftp.dev
  • php85Extensions.gd
  • php85Extensions.gd.dev
  • php85Extensions.gettext
  • php85Extensions.gettext.dev
  • php85Extensions.gmp
  • php85Extensions.gmp.dev
  • php85Extensions.gnupg
  • php85Extensions.iconv
  • php85Extensions.iconv.dev
  • php85Extensions.imap
  • php85Extensions.inotify
  • php85Extensions.intl
  • php85Extensions.intl.dev
  • php85Extensions.ldap
  • php85Extensions.ldap.dev
  • php85Extensions.luasandbox
  • php85Extensions.mailparse
  • php85Extensions.maxminddb
  • php85Extensions.mbstring
  • php85Extensions.mbstring.dev
  • php85Extensions.memcached
  • php85Extensions.meminfo
  • php85Extensions.memprof
  • php85Extensions.mongodb
  • php85Extensions.msgpack
  • php85Extensions.mysqli
  • php85Extensions.mysqli.dev
  • php85Extensions.mysqlnd
  • php85Extensions.mysqlnd.dev
  • php85Extensions.oci8
  • php85Extensions.openssl
  • php85Extensions.openssl.dev
  • php85Extensions.opentelemetry
  • php85Extensions.pcntl
  • php85Extensions.pcntl.dev
  • php85Extensions.pcov
  • php85Extensions.pdlib
  • php85Extensions.pdo
  • php85Extensions.pdo.dev
  • php85Extensions.pdo_dblib
  • php85Extensions.pdo_dblib.dev
  • php85Extensions.pdo_mysql
  • php85Extensions.pdo_mysql.dev
  • php85Extensions.pdo_oci
  • php85Extensions.pdo_odbc
  • php85Extensions.pdo_odbc.dev
  • php85Extensions.pdo_pgsql
  • php85Extensions.pdo_pgsql.dev
  • php85Extensions.pdo_sqlite
  • php85Extensions.pdo_sqlite.dev
  • php85Extensions.pgsql
  • php85Extensions.pgsql.dev
  • php85Extensions.pinba
  • php85Extensions.posix
  • php85Extensions.posix.dev
  • php85Extensions.protobuf
  • php85Extensions.pspell
  • php85Extensions.rdkafka
  • php85Extensions.readline
  • php85Extensions.readline.dev
  • php85Extensions.redis
  • php85Extensions.relay
  • php85Extensions.rrd
  • php85Extensions.session
  • php85Extensions.session.dev
  • php85Extensions.shmop
  • php85Extensions.shmop.dev
  • php85Extensions.simplexml
  • php85Extensions.simplexml.dev
  • php85Extensions.smbclient
  • php85Extensions.snmp
  • php85Extensions.snmp.dev
  • php85Extensions.snuffleupagus
  • php85Extensions.soap
  • php85Extensions.soap.dev
  • php85Extensions.sockets
  • php85Extensions.sockets.dev
  • php85Extensions.sodium
  • php85Extensions.sodium.dev
  • php85Extensions.spx
  • php85Extensions.sqlite3
  • php85Extensions.sqlite3.dev
  • php85Extensions.sqlsrv
  • php85Extensions.ssh2
  • php85Extensions.systemd
  • php85Extensions.sysvmsg
  • php85Extensions.sysvmsg.dev
  • php85Extensions.sysvsem
  • php85Extensions.sysvsem.dev
  • php85Extensions.sysvshm
  • php85Extensions.sysvshm.dev
  • php85Extensions.tidy
  • php85Extensions.tidy.dev
  • php85Extensions.tokenizer
  • php85Extensions.tokenizer.dev
  • php85Extensions.uuid
  • php85Extensions.uv
  • php85Extensions.vld
  • php85Extensions.wikidiff2
  • php85Extensions.xdebug
  • php85Extensions.xml
  • php85Extensions.xml.dev
  • php85Extensions.xmlreader
  • php85Extensions.xmlreader.dev
  • php85Extensions.xmlwriter
  • php85Extensions.xmlwriter.dev
  • php85Extensions.xsl
  • php85Extensions.xsl.dev
  • php85Extensions.yaml
  • php85Extensions.zend_test
  • php85Extensions.zend_test.dev
  • php85Extensions.zip
  • php85Extensions.zip.dev
  • php85Extensions.zlib
  • php85Extensions.zlib.dev
  • php85Extensions.zstd
  • php85Packages.castor
  • php85Packages.composer
  • php85Packages.composer-local-repo-plugin
  • php85Packages.cyclonedx-php-composer
  • php85Packages.grumphp
  • php85Packages.phan
  • php85Packages.phing
  • php85Packages.phive
  • php85Packages.php-codesniffer
  • php85Packages.php-cs-fixer
  • php85Packages.php-parallel-lint
  • php85Packages.phpinsights
  • php85Packages.phpmd
  • php85Packages.phpspy
  • php85Packages.phpstan
  • php85Packages.psalm

@piotrkwiecinski
Copy link
Contributor Author

There is a separate PR with php 8.5 support for imagick for #474586 which targets staging at the moment.

Otherwise I reckon this one is ready to review @Ma27.

@drupol drupol mentioned this pull request Jan 19, 2026
13 tasks
Copy link
Member

@Ma27 Ma27 left a comment

Choose a reason for hiding this comment

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

Thanks!

Even though I'm still not particularly happy about this de-facto vendoring of lexbor, just including the headers where necessary is IMHO the way better solution.

No final approval yet because CI is red.
@NixOS/nixpkgs-ci is there a way to reasonably add versioned attributes into by-name now given that this is what the CI wants from us?

@MattSturgeon
Copy link
Contributor

@NixOS/nixpkgs-ci is there a way to reasonably add versioned attributes into by-name now given that this is what the CI wants from us?

Without looking at the specifics of this PR, yes this is possible.

One approach is to create a by-name package directory for each version. Each version-package then overrides the base package (since it can't reference paths outside its scope).

Alternatively, you can expose versioned-packages as passthru attrs. Each version-package can reference finalAttrs.finalPackage as a base. These won't get picked up directly by hydra or eval-ci, but they will still be indirectly built and cached if they're a dependency of something else.

@Ma27
Copy link
Member

Ma27 commented Jan 24, 2026

@MattSturgeon

Alternatively, you can expose versioned-packages as passthru attrs. Each version-package can reference finalAttrs.finalPackage as a base. These won't get picked up directly by hydra or eval-ci, but they will still be indirectly built and cached if they're a dependency of something else.

Well, this is a new versioned attribute and not used anywhere yet. Also, I disagree with this being acceptable. By this rationale we could kill most Hydra jobs because the packages happen to be built in e.g. VM tests. This isn't helpful at all though when having dedicated jobsets to track regressions after core updates of e.g. glibc.

I honestly think this should be used in exceptional cases at best.

One approach is to create a by-name package directory for each version. Each version-package then overrides the base package (since it can't reference paths outside its scope).

To me, this still feels like a hack to force-push versioned attributes into something that doesn't really fit, by-name.
Also, isn't overrideAttrs discouraged anyways: #421201

@drupol
Copy link
Contributor

drupol commented Jan 24, 2026

Perhaps we could acknowledge that we should improve this and have another dedicated PR for it? So we don't block this long and awaited PR ?

@Ma27
Copy link
Member

Ma27 commented Jan 24, 2026

The reason I'm bringing this up is that the CI is red and IIRC "no PR failures" means we get kicked out of the queue when trying to merge this.

EDIT: to be clear, the approaches outlined by @MattSturgeon are the workarounds I've seen for a while now on trying to push ~everything into by-name. I'd feel very uneasy to do this for versioned attributes like we have here for the reasons I explained above.

@piotrkwiecinski
Copy link
Contributor Author

@Ma27 @drupol I've created a second pr with some changes to top level definition. vet is green, but I'm not sure if it's a good direction b312e2b.

@nixpkgs-ci nixpkgs-ci bot added the 8.has: package (new) This PR adds a new package label Jan 27, 2026
@jtojnar
Copy link
Member

jtojnar commented Jan 27, 2026

Alternately, we could merge without waiting for requirements and deal with this later.

@philiptaron philiptaron merged commit 86fa73c into NixOS:master Jan 27, 2026
28 of 32 checks passed
@philiptaron
Copy link
Contributor

Yeah, it's OK to let the ratchet go back a notch.

--replace-fail "$out/lib" "$dev/lib"
''
+ lib.optionalString (lib.versionAtLeast version "8.5") ''
# PHP 8.5+ has lexbor built into core; dom needs its headers.
Copy link
Contributor

Choose a reason for hiding this comment

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

Note for later: remove the comment from the script, move it outside.

Add a release note.

@piotrkwiecinski piotrkwiecinski deleted the php-8.5.2 branch January 27, 2026 19:04
@pingiun pingiun added the backport release-25.11 Backport PR automatically label Jan 28, 2026
@nixpkgs-ci
Copy link
Contributor

nixpkgs-ci bot commented Jan 28, 2026

Successfully created backport PR for release-25.11:

@github-actions github-actions bot added the 8.has: port to stable This PR already has a backport to the stable release. label Jan 28, 2026
jtojnar added a commit to fossar/nix-phps that referenced this pull request Jan 31, 2026
jtojnar added a commit to fossar/nix-phps that referenced this pull request Jan 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 6.topic: php PHP is a general-purpose scripting language geared towards web development. 8.has: package (new) This PR adds a new package 8.has: port to stable This PR already has a backport to the stable release. 10.rebuild-darwin: 101-500 This PR causes between 101 and 500 packages to rebuild on Darwin. 10.rebuild-linux: 101-500 This PR causes between 101 and 500 packages to rebuild on Linux. backport release-25.11 Backport PR automatically

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants