Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incompatibility with Arch Linux Qt 6 #991

Closed
1 task done
skep1337 opened this issue Apr 13, 2023 · 35 comments · Fixed by #2358
Closed
1 task done

Incompatibility with Arch Linux Qt 6 #991

skep1337 opened this issue Apr 13, 2023 · 35 comments · Fixed by #2358
Labels
bug Something isn't working

Comments

@skep1337
Copy link

Operating System

Linux

Version of Prism Launcher

Prism Launcher 6.3-1

Version of Qt

Qt 6.5.0-3

Description of bug

I cannot open Prism Launcher at all.

When started in the terminal, I get the following output:

warning: direct reference to protected function _ZNK19QStyledItemDelegate15initStyleOptionEP20QStyleOptionViewItemRK11QModelIndex' in /usr/lib/libQt6Widgets.so.6' may break pointer equality
prismlauncher: _ZNK19QStyledItemDelegate15initStyleOptionEP20QStyleOptionViewItemRK11QModelIndex: /usr/lib/libQt6Widgets.so.6: error due to GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS

Steps to reproduce

Try to start the launcher.

Suspected cause

There was a qt6 update yesterday that might have caused it

This issue is unique

  • I have searched the issue tracker and did not find an issue describing my bug.
@skep1337 skep1337 added the bug Something isn't working label Apr 13, 2023
@Scrumplex
Copy link
Member

Is this also happening with our development builds on your distro?

Grab PrismLauncher-Linux-Qt6-95842ee-Debug from here, extract it and try to run the PrismLauncher script in there: https://github.com/PrismLauncher/PrismLauncher/actions/runs/4646923411

@dqnk
Copy link

dqnk commented Apr 13, 2023

Yes, this also happens with the development build, but only QT6

@Scrumplex
Copy link
Member

Well, at the end, this is an ABI incompatibility between Qt that's used in our CI and Qt that's built by Arch Linux

@WORMSTweaker
Copy link

Can confirm, Qt6 update changed something that broke Prism, switching back to the Qt5 version of the launcher works as a temporary solution

@Elagoht
Copy link

Elagoht commented Apr 13, 2023

For now, until the qt6 client updated, you can still use qt5 client.

@MrBruz
Copy link

MrBruz commented Apr 14, 2023

@WORMSTweaker How do we use the QT5 version?

@skep1337
Copy link
Author

@WORMSTweaker How do we use the QT5 version?

If you're on archlinux, install prismlauncher-qt5-bin from the AUR

@Guanran928
Copy link

Can confirm
Using Arch Linux and prismlauncher-bin
Switching to prismlauncher-qt5-bin fixed this problem

@SangeloDev
Copy link

Happened to me as well, can confirm that the qt5-bin version works fine as a workaround

@MightyPiggie
Copy link

You can use qt6. I had the same problem. I was on version 6.4.3-1. Updated to 6.5.0-1 and had the same problem. After downgrading I could launch it again. I am not sure but I think it has to do with this commit

Again I could also be completely wrong.

@Scrumplex
Copy link
Member

I am not sure but I think it has to do with this commit

Seems like that's the one.

@DownloadableFox
Copy link

DownloadableFox commented Apr 20, 2023

Having this exact issue in ArchLinux.

warning: direct reference to protected function `_ZNK19QStyledItemDelegate15initStyleOptionEP20QStyleOptionViewItemRK11QModelIndex' in `/usr/lib/libQt6Widgets.so.6' may break pointer equality
prismlauncher: _ZNK19QStyledItemDelegate15initStyleOptionEP20QStyleOptionViewItemRK11QModelIndex: /usr/lib/libQt6Widgets.so.6: error due to GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS

Can also confirm that switching to prismlauncher-qt5-bin fixed my issues.

@WaviestBalloon
Copy link

I can also also also confirm that switching to prismlauncher-qt5-bin has resolved the issue on Arch.

@Beethoven-n
Copy link

switching to prismlauncher-qt5-bin doesn't work on my machine!
i get this error, even after downgrading qt5-base and outright rebuilding qt5-styleplugins:
Cannot mix incompatible Qt library (5.15.9) with this library (5.15.8)
sometimes it just core dumps

@Elagoht
Copy link

Elagoht commented Apr 20, 2023

switching to prismlauncher-qt5-bin doesn't work on my machine!

i get this error, even after downgrading qt5-base and outright rebuilding qt5-styleplugins:

Cannot mix incompatible Qt library (5.15.9) with this library (5.15.8)

sometimes it just core dumps

Your issue is not related to this package. Remove qt5-styleplugins and be sure you deleted the cache files and re compile qt5-styleplugins.

@jwaxy
Copy link

jwaxy commented Apr 21, 2023

Have the exact issue

@famellad
Copy link

Updated Arch Linux today and I am experiencing this very same issue, switching back to the qt version as per @skep1337 's instructions works flawlessly

@Scrumplex Scrumplex changed the title Unable to start Incompatibility with Arch Linux Qt 6 Apr 26, 2023
@Scrumplex Scrumplex pinned this issue Apr 26, 2023
@Scrumplex
Copy link
Member

While the Qt 5 version of Prism Launcher receives the same amount of support as the Qt 6 version, this won't be the case forever.

@MightyPiggie
Copy link

While the Qt 5 version of Prism Launcher receives the same amount of support as the Qt 6 version, this won't be the case forever.

Yeah, but I don't think it's prism launchers fault, since something at qt6 broke it. I will take a look today at what exactly made it break and see if there's a fix for it. Otherwise I'll open a issue at qt6.

@txtsd
Copy link
Member

txtsd commented Apr 26, 2023

@Scrumplex Should we build Arch binaries in an Arch container? I can set it up.

@Scrumplex
Copy link
Member

@Scrumplex Should we build Arch binaries in an Arch container? I can set it up.

Dunno if we wanna do that. We could also download binary packages from chaotic aur and repackage those as the -bin package

@txtsd
Copy link
Member

txtsd commented Apr 26, 2023

Using a downstream build as an official source seems a little roundabout 😅

What's wrong with building it ourselves? GHA lets us do containers without invoking docker/podman etc.

@Scrumplex
Copy link
Member

What's wrong with building it ourselves?

Well, why just Arch? I mean, our binaries only work on other systems because of luck. The proper way to deal with this in the future would be to also ship our own Qt libraries with Prism Launcher.

We might be able to bring back what MultiMC called a full bundle here. Not sure how feasible it is, though. People should just use packages that were built for their distro.

@txtsd
Copy link
Member

txtsd commented Apr 27, 2023

What's wrong with building it ourselves?

Well, why just Arch? I mean, our binaries only work on other systems because of luck. The proper way to deal with this in the future would be to also ship our own Qt libraries with Prism Launcher.

We might be able to bring back what MultiMC called a full bundle here. Not sure how feasible it is, though. People should just use packages that were built for their distro.

The full bundle thing was packaging Qt and required plugins into the deployed directory structure. We could statically link Qt instead. Less of a hassle if it's just one executable instead of couple of directories for runtime and plugins.

EDIT: Downside is bloated build sizes either way. Arch container seems like the best solution atm.

@DioEgizio
Copy link
Member

What's wrong with building it ourselves?

Well, why just Arch? I mean, our binaries only work on other systems because of luck. The proper way to deal with this in the future would be to also ship our own Qt libraries with Prism Launcher.

We might be able to bring back what MultiMC called a full bundle here. Not sure how feasible it is, though. People should just use packages that were built for their distro.

Not really feasible with themes and with openssl versions. I think the problem here is just arch, it works everywhere else fine

@jwaxy
Copy link

jwaxy commented Apr 27, 2023

When I used the offical binaries it didnt work but when I compiled it myself it ran.

@jwaxy
Copy link

jwaxy commented Apr 27, 2023

qt5 already works btw

@InsaneJ
Copy link

InsaneJ commented May 7, 2023

Manjaro updated and PrismLauncher no longer works with the same GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS error posted above.

I'm using the prismlauncher-qt5-bin package as a workaround for now.

@ivanpu
Copy link
Contributor

ivanpu commented May 22, 2023

I've always used the prismlauncher package (not -bin), and it works fine with qt6.
Although I do have to rebuild it after some updates (most likely of qt, as I think about it now).

@0x8008

This comment was marked as abuse.

@Guanran928
Copy link

Only the -bin version is broken, manually built non-bin versions works for me. (both prismlauncher{,-git})
image

@Guanran928
Copy link

Another workaround if you are too lazy to build it yourself: use the Flatpak'ed version

@0x8008

This comment was marked as abuse.

@Scrumplex
Copy link
Member

Scrumplex commented Aug 4, 2023

Bin build should work, it's pathetic that this has been an issue since April and yet nothing is being done about it.

  1. Bin builds are at best a hack. Basically every package in the official repos is built from source. The fact that the Prism Launcher binary builds work is pure luck, as we almost fully rely on system libraries.

  2. Arch Linux is the only distribution that has opted to enable FEATURE_no_direct_extern_access for their Qt 6 builds. We would have to build a binary package specifically for Arch Linux's Qt 6 build. It is not hard to do, but we don't really want to maintain binary packages for different distributions.

Possible solutions:

  1. Use an alternative package. Chaotic-AUR, Flatpak and Nixpkgs are all available on Arch Linux and provide binary builds of Prism Launcher.

  2. Use prismlauncher-qt5-bin

  3. Ask Arch Linux TUs/developers if they can adopt prismlauncher into Arch repos. It has been in the top 10 packages of the AUR (by popularity score) for a while. It is simple to package and usually requires minimal changes between versions.

Just look how many binary distributions of Prism Launcher exist out there: https://repology.org/project/prismlauncher/versions
The only real outlier here is Arch Linux (and Gentoo, obviously).

Edit: I am also just going to block you from this organization for your comment about "mental issue banners"

@IGN-Styly
Copy link

Its an issue with the build. Will Fix in AUR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.