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

Raise minimum supported Qt version to 6.5 #19394

Merged
merged 1 commit into from
Aug 7, 2023
Merged

Conversation

glassez
Copy link
Member

@glassez glassez commented Jul 31, 2023

No description provided.

@glassez glassez added Project management Code cleanup Clean up the code while preserving the same outcome labels Jul 31, 2023
@glassez glassez added this to the 5.0 milestone Jul 31, 2023
@glassez glassez requested review from a team and sledgehammer999 July 31, 2023 14:08
@xavier2k6

This comment was marked as resolved.

@glassez

This comment was marked as resolved.

@glassez glassez merged commit a0fa170 into qbittorrent:master Aug 7, 2023
13 checks passed
@glassez glassez deleted the qt6 branch August 7, 2023 04:19
@Piccirello
Copy link
Member

@glassez The latest version of Ubuntu (24.04) has Qt 6.4.2, making it difficult to build qBittorrent's master branch on Ubuntu. Is the Qt version available in Ubuntu's package manager a factor when deciding on the minimum Qt version? If not, should it be? I'm curious how other devs are building qBittorrent locally. I have a vm where I've built Qt 6.6 using Qt's online installer, but it was a real pain to get working, and isn't something I'd expect most users to do.

@glassez
Copy link
Member Author

glassez commented Jun 12, 2024

@Piccirello
The qBittorrent 5.0+ development course has been discussed here and there for quite some time. This PR is just the embodiment of the decisions made. I'm sorry, I have no desire to recall all the details 10 months after it was finally done. Therefore, I will answer briefly.

Is the Qt version available in Ubuntu's package manager a factor when deciding on the minimum Qt version? If not, should it be?

No longer.
We want to use more recent libraries than they provide.

I'm curious how other devs are building qBittorrent locally.

I don't believe devs have any serious problems with this.

I have a vm where I've built Qt 6.6 using Qt's online installer, but it was a real pain to get working,

I've been using Qt's online installer (both on Windows and Linux) for years. I don't understand what problem (aka "pain to get working") you're talking about. IMO, this is one of the simplest ways to use Qt for development purposes.

and isn't something I'd expect most users to do.

Compiling software from sources isn't something I'd expect most users to do in 21th.

@Piccirello
Copy link
Member

I've been using Qt's online installer (both on Windows and Linux) for years. I don't understand what problem (aka "pain to get working") you're talking about. IMO, this is one of the simplest ways to use Qt for development purposes.

Wanting to use a more recent library is completely fair. However I'd like to highlight some of the challenges I faced due to this decision (and why it may deter other users from building the master branch, like in this case).

Here's my Dockerfile for compiling qBittorrent's master branch for testing. There are two aspects that are particularly annoying/tricky:

  1. Compiling Qt from source requires having a qt.io account, and requires passing your credentials during install. I've opted to mount the qtaccount.ini file. Compilation is very slow, and figuring out which libraries were needed for compiling Qt6 (listed here) was very tedious.
  2. qBittorrent/Qt6 has various runtime dependencies that are installed automatically when installing the Qt6 packages libqt6network6t64, libqt6sql6t64, and libqt6xml6t64. I couldn't find an explicit list of the required runtime dependencies, which meant that even with Qt6 compiled, there were runtime errors related to packages like libglib2.0-0t64. I've worked around this by installing the aforementioned outdated libqt6 packages (to get the dependencies for free) and then removing them immediately after. This is an ugly hack but is working for the time being.

Neither of these challenges was insurmountable, but they're a lot more friction than just using the Qt packages provided by Ubuntu. For reference, you can see my simpler Dockerfile used for compiling qBittorrent 4.6 here.

@glassez
Copy link
Member Author

glassez commented Jun 19, 2024

Wanting to use a more recent library is completely fair. However I'd like to highlight some of the challenges I faced due to this decision (and why it may deter other users from building the master branch, like in this case).

If you want to report that there are any inconveniences associated with this, then there is no point in that. As I said above, this issue has been discussed for some time, and such inconveniences were on one side of the scale, but the other still outweighed that time.
If you want to change something in the future, then you should start a new discussion.

@glassez
Copy link
Member Author

glassez commented Jun 19, 2024

  1. Compiling Qt from source requires having a qt.io account

It looks like you're confusing something... it does not require Qt account. You can just download the sources from GitHub. Perhaps an account is required if you need commercial Qt modules. It is also required if you use the official Qt installer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Code cleanup Clean up the code while preserving the same outcome Project management
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants