Open ronaldoussoren opened 7 years ago
Original comment by Ronald Oussoren (Bitbucket: ronaldoussoren, GitHub: ronaldoussoren).
The problem is indicated in this part of the error output:
dlopen(/Users/sunburst/Sunburst/Software Development/IOOS/Client/wxtest.app/Contents/Resources/lib/python2.7/lib-dynload/wx/_core_.so, 2): Symbol not found: _clock_gettime
Referenced from: /Users/sunburst/Sunburst/Software Development/IOOS/Client/wxtest.app/Contents/MacOS/../Frameworks/liblzma.5.dylib (which was built for Mac OS X 10.12)
Expected in: /usr/lib/libSystem.B.dylib
in /Users/sunburst/Sunburst/Software Development/IOOS/Client/wxtest.app/Contents/MacOS/../Frameworks/liblzma.5.dylib
2017-05-09 09:54:46.500 wxtest[76637:5020059] wxtest Error
liblzma.5.dylib uses a symbol from libSystem that is present on OSX 10.12, but isn't present on OSX 10.11. This can happen when building binaries on 10.12: most opensource packages use autoconf to detect which APIs are present and unless you're very careful you can end op with binaries that won't run on earlier versions of the OS (even setting MACOSX_DEPLOYMENT_TARGET often does help).
The easiest workaround for this is to build binaries (that is, anything for which you need to use a (C) compiler) on the oldest OSX release you want to support, then deploy those on the rest of the systems. You can still build the application bundle using py2app on macOS 10.12.
It is possible to do all development on the latest macOS release, but that takes a lot of care.
Original comment by dbpodrasky (Bitbucket: dbpodrasky, GitHub: dbpodrasky).
Thanks, Ronald. I'll work on this per your advice and post a reply with what worked to the thread on bitbucket.
Best,
Dave
Original comment by dbpodrasky (Bitbucket: dbpodrasky, GitHub: dbpodrasky).
The only way I was able to generate a build using py2app that would work on multiple OS versions (both 10.11 and 10.12 subversions) was to build on a machine with 10.11.x version. Not exactly the most sophisticated solution, but at least it generates a viable product.
Original comment by Ronald Oussoren (Bitbucket: ronaldoussoren, GitHub: ronaldoussoren).
Great to hear you were able to build a bundle that works fine. There's nothing I can do about this in py2app: it basically collects pre-existing binaries into the app bundle, and the problem is that those binaries didn't work on 10.11.
Btw. How did you install python and the extensions that you use? Do you use homebrew?
Ronald
-- On the road, hence brief.
Original comment by dbpodrasky (Bitbucket: dbpodrasky, GitHub: dbpodrasky).
You had previously mentioned building binaries on the oldest OSX version and deploying them to systems with newer releases. Can you point me to resources explaining how this could be done?
The python I use is installed with macports and I use pip for most extensions.
Original report by dbpodrasky (Bitbucket: dbpodrasky, GitHub: dbpodrasky).
I'm trying to develop a GUI with wxPython. All seems to go fine during development and testing, but when the app is distributed to other machines it terminates immediately with an error window.
Building on OS 10.12.3, distributing to 10.11. Running Python 2.7.13, wxPython 3.0.2.0, py2app 0.12
Do I need to amend my setup.py file (below)??
Running from terminal, I receive the following:
The following test code demonstrates the problem:
Thanks for any help.