Wireshark-dev: Re: [Wireshark-dev] [Wireshark-commits] master 5b62526: OK, try cmake -E copy.

From: Gerald Combs <gerald@xxxxxxxxxxxxx>
Date: Fri, 06 Feb 2015 09:25:38 -0800
Can you try building from scratch? This might be due to g2cae320 and
gdeabe64, which enabled then disabled running osx-app.sh on the
application bundle. osx-app.sh runs macdeployqt and install_name_tool,
both of which rewrite library paths.

I was hoping to bring the OS X build in line with the Windows build,
which is 1) portable, and 2) impervious to QTBUG-15234. Unfortunately
osx-app.sh slows down the build and leaves wireshark-gtk unusable.

[1] Qt loads shared libraries from hard-coded paths.
https://bugreports.qt.io/browse/QTBUG-15234.

On 2/6/15 7:21 AM, Evan Huus wrote:
> The last few days (possibly correlating with this commit or with some
> other cmake change) my out-of-tree cmake build on OSX has failed to
> launch the qt gui:
> 
> ---
> Application Specific Information:
> abort() called
> 
> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
> 0   libsystem_kernel.dylib            0x00007fff8c7b6286 __pthread_kill + 10
> 1   libsystem_c.dylib                 0x00007fff8e5aab53 abort + 129
> 2   org.qt-project.QtCore             0x00000001140a9159
> qt_message_fatal(QtMsgType, QMessageLogContext const&, QString const&)
> + 9
> 3   org.qt-project.QtCore             0x00000001140aa611
> QMessageLogger::fatal(char const*, ...) const + 161
> 4   org.qt-project.QtGui              0x0000000113afb307
> QGuiApplicationPrivate::createPlatformIntegration() + 6359
> 5   org.qt-project.QtGui              0x0000000113afb32b
> QGuiApplicationPrivate::createEventDispatcher() + 27
> 6   org.qt-project.QtCore             0x00000001142c4b11
> QCoreApplication::init() + 113
> 7   org.qt-project.QtCore             0x00000001142c4a87
> QCoreApplication::QCoreApplication(QCoreApplicationPrivate&) + 39
> 8   org.qt-project.QtGui              0x0000000113af879e
> QGuiApplication::QGuiApplication(QGuiApplicationPrivate&) + 14
> 9   org.qt-project.QtWidgets          0x00000001131cf3be
> QApplication::QApplication(int&, char**, int) + 206
> 10  org.wireshark.Wireshark           0x000000010dedb7d1
> WiresharkApplication::WiresharkApplication(int&, char**) + 33
> (wireshark_application.cpp:478)
> 11  org.wireshark.Wireshark           0x000000010dd39512 main + 690
> (wireshark-qt.cpp:629)
> 12  libdyld.dylib                     0x00007fff8d2125c9 start + 1
> ---
> 
> When I launch it by hand:
> 
> ---
> objc[16899]: Class NotificationReceiver is implemented in both
> /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets and
> /Users/eapache/src/wireshark.org/build/run/Wireshark.app/Contents/Frameworks/QtWidgets.framework/Versions/5/QtWidgets.
> One of the two will be used. Which one is undefined.
> objc[16899]: Class QCocoaPageLayoutDelegate is implemented in both
> /usr/local/opt/qt5/lib/QtPrintSupport.framework/Versions/5/QtPrintSupport
> and /Users/eapache/src/wireshark.org/build/run/Wireshark.app/Contents/Frameworks/QtPrintSupport.framework/Versions/5/QtPrintSupport.
> One of the two will be used. Which one is undefined.
> objc[16899]: Class QCocoaPrintPanelDelegate is implemented in both
> /usr/local/opt/qt5/lib/QtPrintSupport.framework/Versions/5/QtPrintSupport
> and /Users/eapache/src/wireshark.org/build/run/Wireshark.app/Contents/Frameworks/QtPrintSupport.framework/Versions/5/QtPrintSupport.
> One of the two will be used. Which one is undefined.
> QObject::moveToThread: Current thread (0x7fcaf9d1c9f0) is not the
> object's thread (0x7fcaf9c1e380).
> Cannot move to target thread (0x7fcaf9d1c9f0)
> 
> On Mac OS X, you might be loading two sets of Qt binaries into the
> same process. Check that all plugins are compiled against the right Qt
> binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of
> binaries are being loaded.
> This application failed to start because it could not find or load the
> Qt platform plugin "cocoa".
> 
> Available platform plugins are: cocoa.
> 
> Reinstalling the application may fix this problem.
> ---
> 
> So it looks like the build is now copying files into the frameworks
> folder and the app doesn't know which lib to pick?
> 
> On Wed, Feb 4, 2015 at 7:47 PM, Wireshark code review
> <code-review-do-not-reply@xxxxxxxxxxxxx> wrote:
>> URL: https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=5b6252654f173a79e5f4c31f9d584cc3870df1da
>> Submitter: Guy Harris (guy@xxxxxxxxxxxx)
>> Changed: branch: master
>> Repository: wireshark
>>
>> Commits:
>>
>> 5b62526 by Guy Harris (guy@xxxxxxxxxxxx):
>>
>>     OK, try cmake -E copy.
>>
>>     It didn't fail with cp, so maybe that's just random luck, or maybe the
>>     built-in copy functions have an issue, or maybe just copy_if_different
>>     has an issue (64-bit inode number issues?).  Try just copy, and see what
>>     happens.
>>
>>     Change-Id: I84abf3846af9305c19ad4a78d5c9df31b1e1e61e
>>     Reviewed-on: https://code.wireshark.org/review/6961
>>     Reviewed-by: Guy Harris <guy@xxxxxxxxxxxx>
>>
>>
>> Actions performed:
>>
>>     from  a2e48c6   On OS X, temporarily use cp to install some files.
>>     adds  5b62526   OK, try cmake -E copy.
>>
>>
>> Summary of changes:
>>  CMakeLists.txt |    2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> ___________________________________________________________________________
>> Sent via:    Wireshark-commits mailing list <wireshark-commits@xxxxxxxxxxxxx>
>> Archives:    http://www.wireshark.org/lists/wireshark-commits
>> Unsubscribe: https://wireshark.org/mailman/options/wireshark-commits
>>              mailto:wireshark-commits-request@xxxxxxxxxxxxx?subject=unsubscribe
> ___________________________________________________________________________
> Sent via:    Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx>
> Archives:    http://www.wireshark.org/lists/wireshark-dev
> Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
>              mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe
>