Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile under OSX, Psi+.app is damaged or incomplete #677

Closed
klou opened this issue Feb 16, 2017 · 15 comments
Closed

Compile under OSX, Psi+.app is damaged or incomplete #677

klou opened this issue Feb 16, 2017 · 15 comments

Comments

@klou
Copy link

klou commented Feb 16, 2017

I'm attempting to compile a Qt5 version of Psi+, using HomeBrew to fill the dependencies. Unfortunately, it looks like webkit is not available (especially under Qt5), so "--enable-webkit" doesn't seem to work.

Anyways, the resulting Psi+.app (or psi-plus.app) won't launch, with the error message You can't open the application "Psi+" because it may be damaged or incomplete.

Any ideas on what the problem might be?

OSX 10.12.3
XCode 8.2.1
Qt 5.8.x from Home Brew
QCA 2.1.1 from Home Brew

Configured with ./configure --enable-webkit --enable-whiteboarding.

After make, /psi-plus.app and src/psi+.app both show the same error when trying to launch.

Also, make -C mac/ dmg correctly creates a dmg, but the included app is still faulty.

@Vitozz
Copy link
Member

Vitozz commented Feb 16, 2017

Webkit is deprecated and it was removed from Qt5 since 5.6 version

@Ri0n
Copy link
Member

Ri0n commented Feb 16, 2017

It should fail even to compile. strange.
for qt-5.8 a new version is in development, and I hope @stigger will help us when ready :)

@klou
Copy link
Author

klou commented Feb 16, 2017

Well, it doesn't detect webkit, so that part isn't essential.

I went back and applied all of the patches/mac (some of these had to be done manually), but still the same result.

@Ri0n
Copy link
Member

Ri0n commented Feb 16, 2017

We need some Mac expert here. I have no idea.
I believe @stigger compiled Psi for Mac just few days ago. Maybe w/o patches, but it doesn't matter.

@klou
Copy link
Author

klou commented Feb 16, 2017

Well, I'm trying to get a pre-Haswell build (per #651), and also incorporate patch from #625.

@wadealer
Copy link
Member

Apk produced with make is not ready for use. You need copy all the dependencies into apk. Instead you should use our scripts from maintanence repo.

@klou
Copy link
Author

klou commented Feb 16, 2017

Quickly reading through macosx/psibuild, requires install Qt from source? Guess I'll get back to you guys in a few days ...

@stigger
Copy link
Contributor

stigger commented Feb 16, 2017

Here is the build of master with #625. Qt should be installed using brew install qt5 --with-qtwebkit, configuration is ./configure --qtdir=/usr/local/opt/qt5 --with-qca-lib=/usr/local/Cellar/qca/2.1.1/lib --enable-webkit --disable-qdbus --disable-xss --release.

The .app bundle was assembled manually, I'll take a look at the scripts later.

There seems to be a qt5-related issue where psi/psi+ cannot connect to the server. Switching offline/online several times usually helps. This does not reproduce when built with qt4.

@klou
Copy link
Author

klou commented Feb 16, 2017

Thanks for uploading this, but it still has problems on < 2011 Macs. I'll try to assemble the app bundle with my binary later tonight (from a 2011 11" i7 MBA), as I recall there were some missing pieces like the Framework directory. The included log is from a White Unibody Macbook 2010 (C2D 2.4)

Process:               psi-plus [65624]
Path:                  /Volumes/VOLUME/*/psi-plus.app/Contents/MacOS/psi-plus
Identifier:            org.psi-im
Version:               Psi 0.16.571.637 [2017-02-15] (0.16.571.637 [2017-02-15])
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           psi-plus [65624]
User ID:               1362438137

Date/Time:             2017-02-16 09:42:25.150 -0800
OS Version:            Mac OS X 10.12.3 (16D32)
Report Version:        12
Anonymous UUID:        05C4D047-DA46-22D2-E337-5A1822FD48E1

Sleep/Wake UUID:       05FA201C-BB25-4E27-86AF-B960BEFF84AB

Time Awake Since Boot: 200000 seconds
Time Since Wake:       410 seconds

System Integrity Protection: enabled

Crashed Thread:        0

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    DYLD, [0x1] Library missing

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  Library not loaded: @rpath/libidn.11.dylib
  Referenced from: /Volumes/VOLUME/*/psi-plus.app/Contents/MacOS/psi-plus
  Reason: image not found

Binary Images:
       0x103e88000 -        0x104624ffb +org.psi-im (Psi 0.16.571.637 [2017-02-15] - 0.16.571.637 [2017-02-15]) <C379CB46-AA51-312E-9135-B87B667CCD8C> /var/folders/*/psi-plus.app/Contents/MacOS/psi-plus
       0x10491c000 -        0x1049b3ff7 + (??? - ???) <0049A3DA-32FB-3030-9230-AED98F9A2A10> /var/folders/*/psi-plus.app/Contents/Frameworks/qca-qt5.framework/Versions/2.1.1/qca-qt5
       0x1092fb000 -        0x109338267  dyld (421.2) <947FC440-80F9-32F7-A773-6FC418FE1AB7> /usr/lib/dyld
    0x7fffa12ba000 -     0x7fffa208cff3  com.apple.AppKit (6.9 - 1504.81.100) <0CCB2E18-076E-3D8A-A777-A6E57EF2570A> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
    0x7fffa2d26000 -     0x7fffa2d26fff  com.apple.Carbon (154 - 157) <1BF9C0EB-45A0-3584-85DC-F64A9914F40D> /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
    0x7fffa374c000 -     0x7fffa3be0ff7  com.apple.CoreFoundation (6.9 - 1348.28) <0F1FAA52-1C06-327E-A170-382B48B1846D> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
    0x7fffa5749000 -     0x7fffa57deff7  com.apple.framework.IOKit (2.0.2 - 1324.30.13) <163BE7FA-B29A-348F-8B5F-E301F2E8C964> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
    0x7fffb84d7000 -     0x7fffb88ac127  libobjc.A.dylib (706) <47104A1B-13E8-369F-BC36-27FF465809FD> /usr/lib/libobjc.A.dylib
    0x7fffb8ccf000 -     0x7fffb8ce0ff3  libz.1.dylib (67) <46E3FFA2-4328-327A-8D34-A03E20BFFB8E> /usr/lib/libz.1.dylib

Model: MacBook7,1, BootROM MB71.0039.B0E, 2 processors, Intel Core 2 Duo, 2.4 GHz, 4 GB, SMC 1.60f6
Graphics: NVIDIA GeForce 320M, NVIDIA GeForce 320M, PCI, 256 MB
Memory Module: BANK 0/DIMM0, 2 GB, DDR3, 1067 MHz, 0x80CE, 0x4D34373142353637334648302D4346382020
Memory Module: BANK 1/DIMM0, 2 GB, DDR3, 1067 MHz, 0x80CE, 0x4D34373142353637334648302D4346382020
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x93), Broadcom BCM43xx 1.0 (5.106.98.100.24)
Bluetooth: Version 5.0.3f1, 3 services, 27 devices, 1 incoming serial ports
Network Service: Ethernet, Ethernet, en0
Serial ATA Device: Crucial_CT128MX100SSD1, 128.04 GB
Serial ATA Device: MATSHITADVD-R   UJ-898
USB Device: USB 2.0 Bus
USB Device: USB 2.0 Bus
USB Device: Built-in iSight
USB Device: USB Bus
USB Device: USB Bus
USB Device: BRCM2070 Hub
USB Device: Bluetooth USB Host Controller
USB Device: Apple Internal Keyboard / Trackpad
Thunderbolt Bus: 

(I can install libidn from homebrew on this test C2D machine, but I kind of think that it should be included.)

@stigger
Copy link
Contributor

stigger commented Feb 16, 2017

Sorry, I forgot to include it. Just copy the binary into psi-plus.app/Contents/Frameworks and you should be good to go.

@klou
Copy link
Author

klou commented Feb 17, 2017

Thanks. This app bundle (with libidn) works at home when I have all of the external dependencies already installed (though I needed to rip out and re-install qt5 from homebrew to get it to also install QtWebkit).

However, it still looks for QtCore in /usr/local/opt/qt5/lib/QtCore.framework/Versions/5/QtCore even though it exists within psi-plus.app/Contents/Frameworks on my test machine w/o homebrew dependencies.

Is there a conflict between installed libraries and bundled ones?

@wadealer
Copy link
Member

Sorry, I forgot to include it. Just copy the binary into psi-plus.app/Contents/Frameworks and you should be good to go.

Its not enough. You should change dependencies inside apk with install_name_tool. Also, apk should include ALL the dependencies, including Qt Frameworks, plugins etc. Look at our script and you will see the work you should do to make standalone package. This is not so easy

@wadealer
Copy link
Member

Here is the link from Qt documentation http://doc.qt.io/qt-5/osx-deployment.html
Its a good place to start

@stigger
Copy link
Contributor

stigger commented Feb 17, 2017

@wadealer Yes, I know that and I did that:

$ otool -L psi-plus                                                                                                                                                                                   
psi-plus:
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1348.28.0)
	/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 157.0.0)
	/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1504.75.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
	@rpath/qca-qt5.framework/qca-qt5 (compatibility version 2.0.0, current version 2.1.1)
	@rpath/libidn.11.dylib (compatibility version 18.0.0, current version 18.16.0)
	@rpath/QtNetwork.framework/QtNetwork (compatibility version 5.8.0, current version 5.8.0)
	@rpath/QtCore.framework/QtCore (compatibility version 5.8.0, current version 5.8.0)
	/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
	@rpath/QtGui.framework/QtGui (compatibility version 5.8.0, current version 5.8.0)
	@rpath/QtXml.framework/QtXml (compatibility version 5.8.0, current version 5.8.0)
	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
	@rpath/QtWebKitWidgets.framework/QtWebKitWidgets (compatibility version 5.8.0, current version 5.8.0)
	@rpath/QtWidgets.framework/QtWidgets (compatibility version 5.8.0, current version 5.8.0)
	@rpath/QtWebKit.framework/QtWebKit (compatibility version 5.8.0, current version 5.8.0)
	@rpath/QtMultimedia.framework/QtMultimedia (compatibility version 5.8.0, current version 5.8.0)
	@rpath/QtConcurrent.framework/QtConcurrent (compatibility version 5.8.0, current version 5.8.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.4.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)
	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 775.9.7)
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1349.25.0)

What I forgot to do is to perform the same manipulations on qca-qt5.framework.

@Ri0n
Copy link
Member

Ri0n commented Jun 11, 2017

Ok. it's proven we can compile for mac and it works. our maintenance repo now has scripts for that.
An experimental build is here https://sourceforge.net/projects/psiplus/files/Mac-OS-X/psi-plus-1.0.9.835-webkit-qt5-git-2017-06-11-macosx.dmg/download
It has some other probems so.. for other bug reports..

@Ri0n Ri0n closed this as completed Jun 11, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants