Change History (6)
comment:1 by , 22 months ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:2 by , 22 months ago
comment:4 by , 22 months ago
Well, qt-5.15.10 has been out for 6 days now, and still no rebasing of the kde patchset. Let me try to do it myself:
- First clone the repo:
git clone https://invent.kde.org/qt/qt/qt5.git && cd qt5
- Switch to the patchset branch:
git switch kde/5.15
- Clone the submodules:
git submodule init git submodule update
- Rebase each submodule:
git submodule foreach 'git rebase v5.15.10-lts-lgpl'
There will be merge conflicts. They are of two kinds: (a) content conflict or (b) modify/delete conflict.
- (b) is the easier: it means a file has been modified in the patchset, but is now deleted in 5.15.10. just git rm it. Note that you need to change to submodule directory. Here is an example for qtbase:
CONFLICT (content): Merge conflict in tests/auto/tools/moc/allmocs_baseline_in.json CONFLICT (modify/delete): tests/auto/tools/moc/task189996.h deleted in 669d75e177 (Fix tst_moc for C++17) and modified in HEAD. Version HEAD of tests/auto/tools/moc/task189996.h left in tree. Auto-merging tests/auto/tools/moc/tst_moc.cpp CONFLICT (content): Merge conflict in tests/auto/tools/moc/tst_moc.cpp error: could not apply 669d75e177... Fix tst_moc for C++17
Then just do:
cd qtbase git rm tests/auto/tools/moc/task189996.h
- Now for (a): edit the conflicting file and look for "<<<" start of conflict. You have to think a little. For the example above, a test is removed, so HEAD should be removed too in both conflicting files. Note that the other part of the conflict is empty.
- When done with all the conflicts,
git add
the modified files, then typegit rebase --continue
. Don't edit the new commit message, and just exit the editor that gets launched for this new commit.
Another example:
Auto-merging src/plugins/sqldrivers/mysql/qsql_mysql.cpp CONFLICT (content): Merge conflict in src/plugins/sqldrivers/mysql/qsql_mysql.cpp error: could not apply 379b907916... MySQL: treat the MYSQL_FIELD as read-only
Let's look at the faulty file:
<<<<<<< HEAD ======= int i; const MYSQL_FIELD *fieldInfo; >>>>>>> 379b907916 (MySQL: treat the MYSQL_FIELD as read-only)
Looking at the patch for qt-5.15.9, it was adding the const keyword. This is now done upstream, so let's keey upstrem (the part after ===). Do the same for the second conflict in the same file. git add
it, and continue rebase.
Do the same for other conflicts, keeping upstream everywhere, actually. When you are done with conflicts within a submodule cd
back to the superproject directory, then
rerun the git foreach
command. You can get another error:
ntering 'qtcanvas3d' fatal: invalid upstream 'v5.15.10-lts-lgpl' fatal: run_command returned non-zero status for qtcanvas3d
This just means qtcanvas3d (for example) is not used in the qt-5.15.10. Remove it from the submodules:
git submodule deinit qtcanvas3d
and rerun the git submodule foreach
command.
There is a merge conflict that is less easy to solve:
Entering 'qtconnectivity' Auto-merging src/bluetooth/qlowenergycontroller_bluezdbus.cpp CONFLICT (content): Merge conflict in src/bluetooth/qlowenergycontroller_bluezdbus.cpp error: could not apply 5aae4f64... Fix Bluez BT LE battery reading
Problem is the patch for qt-5.15.9 has no mention of this file. The conflict is:
<<<<<<< HEAD QBluetoothUuid::ServiceClassUuid::BatteryService) { ======= QBluetoothUuid::BatteryService) { >>>>>>> 5aae4f64 (Fix Bluez BT LE battery reading)
Then I look at https://github.com/qt/qtconnectivity/blob/5.15/src/bluetooth/qlowenergycontroller_bluezdbus.cpp,
and it has the ServiceClassUuid
name. So let's keep it.
When done, generate the patch with (in the top most dir):
git diff v5.15.10-lts-lgpl --submodule=diff | tee ../temp.patch
Remove freetype, the mime database, and zlib as before.
comment:5 by , 22 months ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Eventually, upstream did the rebase themselves. Patch committed at commit fad1caf0 in the patches repo. Ticket fixed at commit 2c5e96fbee.
Qt 5.15.10 release is a patch release made on the top of Qt 5.15.9. As a patch release, Qt 5.15.10 does not add any new functionality but provides bug fixes and other improvements.
Important Changes qtbase
qtwebengine
More details at https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/5.15.10/release-note.md