Opened 22 months ago

Closed 22 months ago

Last modified 20 months ago

#18144 closed enhancement (fixed)

qt5-5.15.10

Reported by: Bruce Dubbs Owned by: pierre
Priority: normal Milestone: 12.0
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description

New point version.

Change History (6)

comment:1 by pierre, 22 months ago

Owner: changed from blfs-book to pierre
Status: newassigned

comment:2 by pierre, 22 months ago

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

8975b7c2b0 Update bundled zlib to version 1.2.12 zlib was updated to version 1.2.12.

da52a120dc QBuffer: fail early in seek() beyond QByteArray's max capacity Fixed silent data corruption on 32-bit platforms when seek() fails due to position > INT_MAX.

9c60c8b122 Upgrade PCRE2 to 10.40 PCRE2 has been updated to 10.40.

qtwebengine

d6512f48b Enable Apple Silicon support Apple Silicon universal- and cross-builds on macOS are now supported.

More details at https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/5.15.10/release-note.md

comment:3 by pierre, 22 months ago

Waiting for kde-qt to include qt-5.15.10...

comment:4 by pierre, 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 type git 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 pierre, 22 months ago

Resolution: fixed
Status: assignedclosed

Eventually, upstream did the rebase themselves. Patch committed at commit fad1caf0 in the patches repo. Ticket fixed at commit 2c5e96fbee.

Last edited 22 months ago by pierre (previous) (diff)

comment:6 by Bruce Dubbs, 20 months ago

Milestone: 11.412.0

Milestone renamed

Note: See TracTickets for help on using tickets.