Installing PHP8.1 removes necessary i386 dependencies needed for WINE

Ok... You have installed PHP, though...
Is there a Specific Reason you need 8.1?

well, since the projects I had created and their dependencies are all in PHP 8.1, I would rather switch off the zorin-windows-app-support.

If there is no other solution...

Isn't there any option like the above answer in which I install a specific version alongside the older version since these are some libraries?

This is trickier to answer.

A quick Crash Course in Debian Packages, Repositories and Human Nature:

I have a repo of my own. I create debian (.deb) packages for this repository that users can add my repo, then install what I upload.
So, I speak from experience.
To create a debian package, one of the files I must include is a build-depends file. This file sets what dependencies are needed and it is how APT knows what dependencies may be missing or what to install with the -y parameter.
Needless to say, this is a very important file.
The proper way to build this file list is to look-into and ensure that you list only the minimum necessary dependency required. Checking on this is a bit of work... So what some maintainers do to save time is just grab a Ready List of the Current Package Versions and paste that into it. (To give some perspective, my usual build-depends file contains about 250 dependency packages listed). And... you can see the flaw in this... Instead of listing only the necessary dependencies, it now limits what that package can be installed on. It also can create conflicts when a maintainer lists a current package version - without checking - instead of the package version actually in the Main Universe Repo it is to build to.

This is what the 8.1 maintainer has done. He included dependencies for package versions higher than Focal Fossa.

Your option is to contact the dev/mainainer with a bug report and submit this information. IF php8.1 can use the proper dependency in Focal... he may correct the build-depends file.
Or... Human Nature... he may wish to not spend time researching that and instead, correct the repo to work on Impish only.

Taking that chance is up to you, as it is up to the maintainer to sort that out, sadly.

I get it now! since I guess contact and creating issues in Ondrej/PHP repository wouldn't make any progress (and I guess they refer me to wait till focal packages get updated), I'll try to find another way to solve it (like PHP on docker or ...).

Also, I don't have the permission to change the topic subject it would be great to change it to something more meaningful so any other PHP developer(who also wants to use windows app support), doesn't get confused like me.

Overall thanks a lot for helping along solving this. :heart:

One thing you might test just for grins:
Add the 8.1 repo again...
Run

sudo apt update

Then run

sudo apt dist-upgrade

And see what output the terminal gives. Since you have 7.4 installed already... Perhaps... just perhaps... with the repo added it will upgrade php to 8.1
It's a big maybe that I am unwilling to risk my daily-use machine testing at the moment...
If it does not work, then please remember to remove the 8.1 repo, again and then run sudo apt update, just to spare yourself from any headaches as you search for other solutions.

Clarification point:
dist-upgrade will upgrade anything that does not require removing any existing files to do so.
full-upgrade will upgrade anything that does require removing packages or files to do so, making that a riskier operation on this topic.

Edited title...

Did you proceed with the Upgrade command?

I am confused... why is there another screenshot attempting to install php8.1-fpm?

well I guessed it would download libcre2-16 and maybe it would work since the apt upgrade answer was not such surprising:

You can try the sudo apt upgrade if you feel adventurous. Worst case: If it doesn't work, you would need to uninstall php, remove the repo, then sudo apt update and install as just sudo apt install php-fpm again to get 7.4. We already know that the php8.1 will not work since in the link you provided, the maintainer stated that he included libpcre2-8-0=10.34-7... But clearly, the build-depends file is still listing libpcre2-8-0=10.38, instead. That can only be corrected by the maintainer...

Technically, you could decompile the .deb file and change the build-depends file yourself... Then debuild it back into a .deb and install it. I actually do this a lot (LOL) because of this kind of thing.
But I am not personally certain that the rest of the package can operate on 10.34... So I cannot risk giving a walk-through on doing that.

well, that's too much for me since I don't have the tools and don't know how to do this but it sounds interesting to learn and *adventure.
btw would I get a good response if create an issue on the PHP Repository Issue Tracker?

He seemed responsive in the link you shared... I would expect the maintainer to prefer that his work is top-notch and works well on installs - So, I would definitely encourage you to file a bug report on it and see.
Since it is his repo and his package, he may know the things we don't and fix that up nice and easy.
The human nature points above... we all know. But it doesn't apply to everyone and it doesn't mean Don't Try.

Sure, I'll explain the result later here

Sorry I didn't check sooner, there is issue there related to this already

1 Like

The maintainers words:

i386 is practically dead on Ubuntu side

i386 is still necessary for Wine and many, many packages. Citing that 32 bit is "dead" (it isn't) is a cop out.

No, you need to accept the fact that as long as you are using PPA, you are no longer using the LTS base system.
This is a free service and comes with no warranty. If you run a production system, you either need to do the testing yourself, or there's always the option to use paid PHP by Freexian service that's more conservative when it comes to the dependencies.
As an option, you can always build the PHP yourself.

Translation: "I am not going to fix this. If you want it fixed, do it yourself."

yes, sounds great :frowning_face:

1 Like

I need to go away for a while, for now...
But I will look into this further later since in that thread:

My solution was simply to LOCALLY rebuild libpcre2-8-0 and libxml2 for amd64 and i386. This provided dependencies for php and wine32.

Locally refers to -on his machine only-. I am not sure what he means by rebuild, though... So there may be a solution there. But even so, that may be temporary should that maintainer upload an Update that then breaks that fix...

EDIT: You might try

sudo apt install libxml2:i386 libpcre2-8-0:i386

It would be great, till then I'll use 7.4, and my server interpreter.

Thanks a lot

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.