Control: forwarded -1
https://salsa.debian.org/php-team/pear/php-slim-psr7/-/commit/d2e579fa2202265888baf9649cadce7f924fd93b
Control: found -1 php-slim-psr7/1.6.1-1~bpo11+1
Hi David,
This is a complicated subject that I already brought to you, but there is no
easy solution.
First, for the backports version: thank you for reporting this bug !
There is no change impacting the library in the diff:
https://github.com/symfony/polyfill-php80/compare/v1.22.0...v1.26.0
Lowering the version was already done for phpMyAdmin's PPA for Ubuntu jammy.
So I lowered the required version to symfony/polyfill-php80 1.22 available in
Bullseye to fix this bug.
Secondly, the subject that needs to be addressed: Users do what they want and
use php libraries on different versions that Debian was shipped with.
This is something some people want to avoid thinking about, but it's a reality.
- First point: Technically from a packaging stand point, there is no way to
block a library or app's usage with another version than the one shipped by
Debian.
It's only a deb file.
- Second point: if we could do that, the user could still run a library or app
on a different PHP version.
The only way is that the code must protect itself from being run on another
version of PHP.
So if "pkg-php-tools" autoloader tool would add some code in the autoloader to
ensure PHP classes are not run on a different PHP version then yes we can drop the
polyfill libraries.
The code would be protecting itself and we would avoid problems like:
https://bugs.launchpad.net/ubuntu/+source/phpmyadmin/+bug/2016016
The top stack solution we had to do on Ubuntu since one library did screw up
it's packaging was to force phpMyAdmin to require PHP 8.
Since the code did not protect itself, and this all resulted in a crash.
Ref:
https://code.launchpad.net/~athos-ribeiro/ubuntu/+source/phpmyadmin/+git/phpmyadmin/+merge/442711
I am awaiting the proper changes in Debian's packaging tools to be able to move
out of polyfills.
PHP multi version support is complicated. Users do what they want. And as a
maintainer of the tools, I have the angry
users to handle when the proper safeties and polyfills are not in place when
they decide to use another PHP version to run the tool/library packaged.
https://github.com/phpmyadmin/phpmyadmin/issues/17523 and
https://github.com/phpmyadmin/phpmyadmin/issues/17503 reflect that.
I will not be dropping the dependency on the polyfill because upstream is
requiring it, and because users will run the code on other versions.
And you can not even argue with the users, that will not understand. Upstream
says it supports PHP 7.4 so it does:
https://github.com/slimphp/Slim-Psr7/blob/1.6.x/composer.json#L31
And makes the polyfill required.
The users do not even know how things are packaged and will blame you for it
anyway.
Conclusion: I am not considering going blind about what users do with their
Debian and Ubuntu releases. They install tools from other sources. Ref: deb
sury for other PHP versions.
I hope you understand, maybe something can be done to ensure the code protects
itself for example adding a bit of code to abort execution when it's used on
another version that for example:
- The php constraint on composer.json
(https://github.com/slimphp/Slim-Psr7/blob/1.6.x/composer.json#L31)
- Or the Debian shipped version of PHP
Let me know your thoughts.
--
William