Revision: 141285 https://trac.macports.org/changeset/141285 Author: michaelld@macports.org Date: 2015-10-14 10:45:49 -0700 (Wed, 14 Oct 2015) Log Message: ----------- qt4-mac: + add patches to address tickets #43746, #46608, and #48516; + nothing critical for most users, so no rev-bump; + fix commented out error when trying to build +cxx11 using clang (my bad). Modified Paths: -------------- trunk/dports/aqua/qt4-mac/Portfile Added Paths: ----------- trunk/dports/aqua/qt4-mac/files/patch-src_corelib_io_qprocess_unix.cpp.diff trunk/dports/aqua/qt4-mac/files/patch-src_gui_dialogs_qfiledialog_mac.mm.diff trunk/dports/aqua/qt4-mac/files/patch-src_gui_kernel_qcursor_mac.mm.diff Modified: trunk/dports/aqua/qt4-mac/Portfile =================================================================== --- trunk/dports/aqua/qt4-mac/Portfile 2015-10-14 15:38:55 UTC (rev 141284) +++ trunk/dports/aqua/qt4-mac/Portfile 2015-10-14 17:45:49 UTC (rev 141285) @@ -249,6 +249,28 @@ patchfiles-append \ patch-src_gui_painting_qpaintengine_mac.diff +# (24) fix qcursor_mac; already committed upstream; see also: +# https://trac.macports.org/ticket/48516 +# http://code.qt.io/cgit/qt/qtbase.git/commit/src/plugins/platforms/cocoa/qcoc... +# https://developer.apple.com/library/prerelease/mac/documentation/Carbon/Refe... + +patchfiles-append \ + patch-src_gui_kernel_qcursor_mac.mm.diff + +# (25) avoid zombie processes; see also: +# https://trac.macports.org/ticket/46608 +# https://codereview.qt-project.org/#/c/61294/ +# approved by abandoned. + +patchfiles-append \ + patch-src_corelib_io_qprocess_unix.cpp.diff + +# (26) fix build on Leopard; see also: +# https://trac.macports.org/ticket/43746 + +patchfiles-append \ + patch-src_gui_dialogs_qfiledialog_mac.mm.diff + # error out if trying to build on a new OSX version (> 10.11). platform darwin { @@ -1037,7 +1059,7 @@ [string match *clang* ${configure.cxx}]} { ui_msg "\nERROR: C++11 support for Qt4 is not available when using Clang and libc++.\n" -# error "unsupported platform for C++11 support" + error "unsupported platform for C++11 support" } } Added: trunk/dports/aqua/qt4-mac/files/patch-src_corelib_io_qprocess_unix.cpp.diff =================================================================== --- trunk/dports/aqua/qt4-mac/files/patch-src_corelib_io_qprocess_unix.cpp.diff (rev 0) +++ trunk/dports/aqua/qt4-mac/files/patch-src_corelib_io_qprocess_unix.cpp.diff 2015-10-14 17:45:49 UTC (rev 141285) @@ -0,0 +1,16 @@ +--- src/corelib/io/qprocess_unix.cpp.orig 2015-10-14 13:02:18.000000000 -0400 ++++ src/corelib/io/qprocess_unix.cpp 2015-10-14 13:02:43.000000000 -0400 +@@ -1302,11 +1302,11 @@ + + // read a byte from the death pipe + char c; +- qt_safe_read(deathPipe[0], &c, 1); ++ qint64 readcount = qt_safe_read(deathPipe[0], &c, 1); + + // check if our process is dead + int exitStatus; +- if (qt_safe_waitpid(pid_t(pid), &exitStatus, WNOHANG) > 0) { ++ if (qt_safe_waitpid(pid_t(pid), &exitStatus, readcount > 0 ? WNOHANG : 0) > 0) { + processManager()->remove(q); + crashed = !WIFEXITED(exitStatus); + exitCode = WEXITSTATUS(exitStatus); Added: trunk/dports/aqua/qt4-mac/files/patch-src_gui_dialogs_qfiledialog_mac.mm.diff =================================================================== --- trunk/dports/aqua/qt4-mac/files/patch-src_gui_dialogs_qfiledialog_mac.mm.diff (rev 0) +++ trunk/dports/aqua/qt4-mac/files/patch-src_gui_dialogs_qfiledialog_mac.mm.diff 2015-10-14 17:45:49 UTC (rev 141285) @@ -0,0 +1,18 @@ +--- src/gui/dialogs/qfiledialog_mac.mm.orig 2015-05-07 10:14:43.000000000 -0400 ++++ src/gui/dialogs/qfiledialog_mac.mm 2015-10-14 12:02:40.000000000 -0400 +@@ -297,6 +297,7 @@ + CFURLRef url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, (CFStringRef)filename, kCFURLPOSIXPathStyle, isDir); + CFBooleanRef isHidden; + Boolean errorOrHidden = false; ++#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 + if (!CFURLCopyResourcePropertyForKey(url, kCFURLIsHiddenKey, &isHidden, NULL)) { + errorOrHidden = true; + } else { +@@ -304,6 +305,7 @@ + errorOrHidden = true; + CFRelease(isHidden); + } ++#endif + CFRelease(url); + return errorOrHidden; + #else Added: trunk/dports/aqua/qt4-mac/files/patch-src_gui_kernel_qcursor_mac.mm.diff =================================================================== --- trunk/dports/aqua/qt4-mac/files/patch-src_gui_kernel_qcursor_mac.mm.diff (rev 0) +++ trunk/dports/aqua/qt4-mac/files/patch-src_gui_kernel_qcursor_mac.mm.diff 2015-10-14 17:45:49 UTC (rev 141285) @@ -0,0 +1,17 @@ +--- src/gui/kernel/qcursor_mac.mm.orig ++++ src/gui/kernel/qcursor_mac.mm +@@ -319,9 +319,11 @@ + pos.x = x; + pos.y = y; + +- CGEventRef e = CGEventCreateMouseEvent(0, kCGEventMouseMoved, pos, 0); +- CGEventPost(kCGHIDEventTap, e); +- CFRelease(e); ++ CGEventRef e = CGEventCreateMouseEvent(NULL, kCGEventMouseMoved, pos, kCGMouseButtonLeft); ++ if (e != NULL) { ++ CGEventPost(kCGHIDEventTap, e); ++ CFRelease(e); ++ } + #else + CGWarpMouseCursorPosition(CGPointMake(x, y)); +
participants (1)
-
michaelld@macports.org