[arch-dev-public] Upcoming PHP 8.1 update
David Runge
dave at sleepmap.de
Sun Apr 24 16:57:28 UTC 2022
On 2022-03-08 13:56:04 (+0100), David Runge via arch-dev-public wrote:
> after waiting another couple of weeks, the situation with nextcloud
> unfortunately has still not improved.
> We see issues with utf-8 compatibility [1] and meanwhile the version
> 24.0.0 which is supposed to provide native support for php 8.1 is being
> delayed until end of April [2].
>
> This all being what it is, I believe the sanest (but also a bit
> complicated to maneuvre) way forward is to downgrade its dependencies to
> php7, as otherwise we will be stuck even longer with
> broken/disfunctional setups.
Meanwhile more time has passed and there has not been any progress on
this. For nextcloud 23.0.4 the compatibility patches do not apply
cleanly anymore.
Therefore I will implement a specific version check for it to check its
own php compatibility and fail otherwise, while removing the patches.
> The version constraints are implemented directly towards the language
> version the application is run with and would mean a good safe-guard
> against breakage in packaging and expectation.
> As it stands we would need to add a provides php=$version to the "older"
> php package (this also needs to be done for the current php7), which
> would allow more or less seamless upgrades/downgrades based upon the
> requirements of a given project. By default projects would always use
> the latest php, if not declaring version requirements.
> An upgrade to a given project, introducing an updated php version
> requirement, would automatically pull in the required php* package.
>
> I'm still a bit unsure about how to deal with this in the context of php
> modules though. For those we would still need to specifically touch a
> given PKGBUILD to change a dependency (e.g. php-gd vs. php7-gd) unless
> we come up with a way to abstract this with a common virtual provides.
I will introduce this for php7 in [testing] now and build nextcloud
23.0.4 against it.
This works for the interpreter, but it's more involved when looking at
the remaining interpreter-specific modules.
It would make sense to implement an abstraction for each that pulls in
the correct package.
E.g. for php7-apcu add a `provides=(php-apcu-interpreter=7)` and for
php-apcu add a `provides=(php-apcu-interpreter=8)`.
That way consumers can decide which interpreter they require by
depending on e.g. `php-apcu-interpreter=8`. This works similar to how we
do things for java.
Do you have any thoughts on this?
Best,
David
--
https://sleepmap.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.archlinux.org/pipermail/arch-dev-public/attachments/20220424/8272617c/attachment.sig>
More information about the arch-dev-public
mailing list