[KDE/Mac] Trouble applying QSP patch from Qt's codereview

Marko Käning mk-lists at email.de
Sat Feb 14 10:58:36 UTC 2015

Hi Jeremy & René,

today I finally wanted to upgrade my OSX/CI system to Qt 5.4.1, as Linux/CI stands
there already since quite a while. :-D

I somehow couldn't easily download the patch from Qt’s codereview [1] as a patchfile,
like one can do it on reviewboard. Well, I (thought I) managed to create a patch by
$ git fetch https://codereview.qt-project.org/qt/qtbase refs/changes/77/103277/4 && git format-patch -1 --stdout FETCH_HEAD
to my checked-out sources for Qt 5.4.1 - which had been pulled by the Ben’s CI scripts
in the first place...

BUT, there are two things now:

 1) Once again your patch contains the file


    which I do NOT see here in my source tree when the CI scripts want to apply
    the patches. If I create the patch like shown above the file IS seen by git,
    otherwise it wouldn’t be able to create the patch, right?!

    Check this out:
    $ pwd
    $ git status
    HEAD detached at 209a75f
    nothing to commit, working directory clean
    $ ls src/corelib/io/qstandardpaths_mac*
    src/corelib/io/qstandardpaths_mac.cpp <<<<<---------------- NO .mm but .cpp !!!    WHY ???
    $ git format-patch -1 --stdout FETCH_HEAD
    Change-Id: Ia78a97d8f9d6c5cd9218204f0942e8edeaabac8e
     src/corelib/io/io.pri                |  1 +
     src/corelib/io/qstandardpaths.cpp    | 27 +++++++++++++++++
     src/corelib/io/qstandardpaths_mac.mm | 47 ++++++++++++++++++++++++++++++
     src/corelib/io/qstandardpaths_p.h    | 56 ++++++++++++++++++++++++++++++++++++
     4 files changed, 131 insertions(+)
    diff --git a/src/corelib/io/qstandardpaths_mac.mm b/src/corelib/io/qstandardpaths_mac.mm
    index 4cd71d7..7207213 100644
    Why is this always happening?

    (So, I had to change the extension to *.cpp!)

 2) But secondly - and more importantly - this patch currently doesn’t apply
    successfully at all, as seen down below.

    The 1st hunk in src/corelib/io/io.pri must indeed fail, as the patch file
    is NOT in correspondence with the 5.4.1 sources as pulled by the CI scripts.

    (Obviously my patch-creating as shown above doesn’t produce the correct
     patch for 5.4.1, right!?)

I guess, I am missing some rebasing to 5.4.1? Is the "git format-patch” call
wrong? How can I solve this??

Also I tried René’s patch for qt5-mac-devel [2], but since that is based on
Qt's version 5.4.0 it’s doomed to fail applying as well. :-/ 

This all seems due to a lack of git expertise on my behalf… ;-(


[1] https://codereview.qt-project.org/#/c/103277/
[2] https://trac.macports.org/attachment/ticket/46536/fix-qstandardpaths.patch

patching file qtbase/src/corelib/io/io.pri
Hunk #1 FAILED at 32.
1 out of 1 hunk FAILED -- saving rejects to file qtbase/src/corelib/io/io.pri.rej
patching file qtbase/src/corelib/io/qstandardpaths.cpp
Hunk #1 succeeded at 609 (offset -29 lines).
patching file qtbase/src/corelib/io/qstandardpaths_mac.cpp
Hunk #1 FAILED at 32.
Hunk #2 succeeded at 177 (offset -8 lines).
Hunk #3 FAILED at 221.
2 out of 3 hunks FAILED -- saving rejects to file qtbase/src/corelib/io/qstandardpaths_mac.cpp.rej
patching file qtbase/src/corelib/io/qstandardpaths_p.h

KDE Continuous Integration Build
== Building Project: qt5 - Branch 5.4.1
== Build Dependencies:
==== cmake - Branch master
==== dogtail - Branch master

== Applying Patches
=== Applying: /Users/marko/scripts/patches/qt5/kf5-qt5/patch-QSP.diff

Applying patches to project qt5 failed.

More information about the kde-mac mailing list