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

depends: Update Qt to 5.15.5 #3291

Closed
wants to merge 14 commits into from

Conversation

alamshafil
Copy link
Contributor

This PR updates the Qt dependency to 5.15.5 and contains the necessary changes for it.
Qt 5.15.5 was chosen because it is a stable LTS release and is the same version used in Bitcoin.

The way I made this PR was cherry-picking each Bitcoin QT update starting from the version Dogecoin uses. Once I got to the final update, I separated the resulting diff into separate commits.

I have left both the ceb93fa and 6ad6276 commits under "[WIP]" because the Qt commit contains many changes that was merged into one. I also am not sure if the 6ad6276 commit was done properly since Bitcoin had completely reworked the file.

I am marking this PR as a draft because it contains many dependency updates such as OpenSSL that can be done seperatly and should be tested. Regrading OpenSSL, Qt 5.15.5 requires a min version of 1.1.1 and I picked 1.1.1s which was the latest at the time.

dogecoin-qt-5-15-5-test
dogecoin-qt-update-qa-test
dogecoin-qt-update

@patricklodder
Copy link
Member

I've added the qt tarballs to the cache on depends.dogecoincore.org so that it won't fail on download and have restarted the CI. Hopefully we'll get a complete list of everything that needs to be looked at re: backward compatibility.

@patricklodder
Copy link
Member

Re: missing patch files in CI run. This is a pretty annoying "feature" of a strategy where we're rejecting *.patch in .gitignore.

I've added an exception list with #3292 where depends/patches/**/*.patch is allowed, so that this becomes less of a pain in the behind.

@alamshafil
Copy link
Contributor Author

Looks like I got most of the CI to pass with a couple of failures.

x86_64-linux-nowallet Looks like Qt 5.15.5 breaks glibc compatibility (I found some features to disable in configure that could fix)

x86_64-macos
Qt 5.15.5 includes <os/log.h> which is only found on >=10.12. Looking further into it, it is trival to get Qt 5.15.5 to work on =10.11, since it requires syscalls only found on >=10.13.

x86_64-win-experimental
Is this failing because of bitcoin_qt.m4? Need to properly fix that file I believe.

@alamshafil alamshafil force-pushed the depends-qt branch 3 times, most recently from f066679 to 27eda47 Compare July 19, 2023 19:41
@alamshafil
Copy link
Contributor Author

@patricklodder

Since Qt 5.15.5 will not support macOS 10.11, should we try to get Qt 5.11.x working (supports 10.11) on 1.14.x or just move this to 1.21?

@patricklodder
Copy link
Member

Since Qt 5.15.5 will not support macOS 10.11, should we try to get Qt 5.11.x working [..]?

That could work, what benefits do we get, and which benefits of 5.15 do we not get?

I'd also recommend to do that without making changes to the symbol_check scripts, because these safeguard backward compatibility. Anything that breaks compatibility will have to go into 1.21, I commented on that, and alternatives, a while ago:

From a lifecycle management p.o.v., [breaking compatibility] can be solved by:

  1. Waiting for 1.21, or
  2. Do an intermediate major release (1.15?) where we retain 1.14 maintenance for a while, but do all feature development on a newer version that (across the board) has different backward compatibility targets.

I'd suggest opening a separate issue for this. If I hear nothing, I will default to option 1 and put all the eggs in the 1.21 basket.

@alamshafil
Copy link
Contributor Author

Since this will break backward compatibility, I will close this PR.

@alamshafil alamshafil closed this Jul 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants