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

CI: Build AppImage #18200

Merged
merged 2 commits into from
Dec 14, 2022
Merged

Conversation

sledgehammer999
Copy link
Member

Upload an AppImage artifact on CI builds. This AppImage is a simplified version of the official one. It is meant to help with debugging PRs that fix issues.

@glassez glassez changed the title [CI Ubuntu] Build AppImage CI: Build AppImage Dec 10, 2022
@glassez glassez added the CI Issues/PRs related to CI label Dec 10, 2022
@sledgehammer999 sledgehammer999 force-pushed the ci_appimage branch 4 times, most recently from c1bcefd to c9922f2 Compare December 10, 2022 17:15
@sledgehammer999 sledgehammer999 marked this pull request as ready for review December 10, 2022 18:35
@sledgehammer999
Copy link
Member Author

AppImage is disabled for nox builds. It requires an icon and .desktop file to be present in order to build the appimage. However, we don't have a *.desktop file for the nox build and I can't be arsed to output a dummy one for that in the script.

@sledgehammer999 sledgehammer999 added the OS: Linux Issues specific to Linux distributions label Dec 10, 2022
@glassez
Copy link
Member

glassez commented Dec 11, 2022

This AppImage is a simplified version of the official one.

What are the differences between them?

I tried it on two Linux systems. It seems to be working... But several times it caused a crash, it seems to be related to openssl.

P.S. Why Ubuntu CI is still uses Qt 6.2?

glassez
glassez previously approved these changes Dec 11, 2022
@glassez
Copy link
Member

glassez commented Dec 11, 2022

Maybe offtopic... I noticed a strange thing.
The official AppImage shows the correct tray icon:
003

AppImage from CI does not display an icon, somewhere it looks like a completely empty area, somewhere it displays some kind of placeholder, like the following:
002

My custom build run under QtCreator displays nothing on some system (Artix Xfce) and some 3rd party icon on Linux Mint:
001

@xavier2k6
Copy link
Member

P.S. Why Ubuntu CI is still uses Qt 6.2?

#16888 (comment)

@glassez
Copy link
Member

glassez commented Dec 11, 2022

P.S. Why Ubuntu CI is still uses Qt 6.2?

#16888 (comment)

Ok. Another question is could we increase minimum supported version of Qt6? @sledgehammer999?

@glassez

This comment was marked as off-topic.

@sledgehammer999
Copy link
Member Author

sledgehammer999 commented Dec 12, 2022

I pushed a new version. Now it also builds AppImages for the nox version.

AppImage from CI does not display an icon

Fixed now. I included part of my startup script which setups the env. It now setups the paths looked by Qt to discover icons.

What are the differences between them?

Official:

  1. Packaged on Ubuntu 20.04. You generally want to package in a version old enough to cater to most distros out there. If your base is too new, chances are that the appimage won't work properly on older distros.
  2. Packages qt6ct and the rest of the setup script tries to detect if the user's env has set QT_QPA_PLATFORMTHEME/QT_STYLE_OVERRIDE to gtk2. If yes it sets QT_QPA_PLATFORMTHEME to use qt6ct and unsets QT_STYLE_OVERRIDE. Basically this means the user expects Qt applications to use gtk2 theming and probably has gtk2 libs installed too. The appimage doesn't package gtk2. If gtk2 is expected but not found, Qt falls back to the default platformtheme.
  3. Tested on for Qt6, lt 1.2.x and 2.0.x and openssl 1.1.x

Another question is could we increase minimum supported version of Qt6?

IMO, not yet. Ubuntu 22.04 is quite recent and only supports 6.2.

@glassez
Copy link
Member

glassez commented Dec 12, 2022

Another question is could we increase minimum supported version of Qt6?

IMO, not yet. Ubuntu 22.04 is quite recent and only supports 6.2.

It turns out that if Qt 6.2 is not stable enough for us to drop support
of Qt 5, then we will again be dependent on Ubuntu in this matter?.. I believe that at this rate it will take at least two more years.

@sledgehammer999
Copy link
Member Author

And why isn't Qt6.2 stable enough?

@sledgehammer999
Copy link
Member Author

Another question is could we increase minimum supported version of Qt6?

IMO, not yet. Ubuntu 22.04 is quite recent and only supports 6.2.

It turns out that if Qt 6.2 is not stable enough for us to drop support

Let me revise it.
I think we can drop Qt 6.2 on master. Because the next Ubuntu release will be in April. Until then our next stable release won't create problems with "current distros".

@sledgehammer999
Copy link
Member Author

I think we can drop Qt 6.2 on master. Because the next Ubuntu release will be in April. Until then our next stable release won't create problems with "current distros".

FYI, currently latest Ubuntu version has only Qt 6.3.

@glassez
Copy link
Member

glassez commented Dec 12, 2022

And why isn't Qt6.2 stable enough?

I don't know, it's not my personal opinion. But according to my feelings, mentions of some shortcomings that prevent the transition to Qt6 constantly surfaced on our bug tracker. @qbittorrent/bug-handlers are more aware of this.

glassez
glassez previously approved these changes Dec 13, 2022
@glassez
Copy link
Member

glassez commented Dec 13, 2022

Maybe also rename resulting archive? Currently its name starts with build-info which doesn't seem to be needed anymore since it contains not only build info.

Upload an AppImage artifact on CI builds. This AppImage is a
simplified version of the official one. It is meant to help
with debugging PRs that fix issues.
@sledgehammer999
Copy link
Member Author

Maybe also rename resulting archive?

Done. I used the same naming scheme as in the Windows CI.

@sledgehammer999 sledgehammer999 merged commit 3cf0004 into qbittorrent:master Dec 14, 2022
@sledgehammer999 sledgehammer999 deleted the ci_appimage branch December 14, 2022 08:17
@xavier2k6
Copy link
Member

xavier2k6 commented Dec 19, 2022

@glassez @sledgehammer999

Very very quick check (may be more)

#15941 & #16733 - Fixed by Qt 6.2.5+ (Qt 6.2.5 is commercial only for now!)

  • It's not available on any repo or available to our CI - Qt action

#17716 - Fixed by Qt 6.3.2+
#17249 - Fixed by Qt 6.2.4, Qt 6.3.2 & Qt 6.4.0

Qt 6.2 Series shouldn't be our minimum requirement at least on master

Qt 6.3.2 which brings fixes for #17716 & #17249 doesn't seem to be available on many repos & is now also EOL

Qt 6.4.0+ is available & I'd suggest/recommend that Qt 6.4.0 be the new minimum requirement (for now) at least on master as it has the necessary fixes for all 3 issues above & review again upon Qt 6.5 Series release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI Issues/PRs related to CI OS: Linux Issues specific to Linux distributions
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants