Re: [Pythonmac-SIG] C++ ABI 1002/102 incompatibility with wxPython on OS X
On 3/1/11 1:58 PM, Christopher Barker wrote: When I look at the one in : /usr/local/lib/wxPython-unicode-2.8.11.0/lib/ (which I got from a wxPython binary), I get: $ cat libwx_macud-2.8.0.dylib | strings | grep ABI 2.8 (debug,Unicode,compiler with C++ ABI 102,wx containers,compatible with 2.6) 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6) One more note: I just took a look at an app bundle I recently built with wx -- it has the right ABI versions. This is with: Python 2.6.6 (from Python.org) wxPython 2.8.11.0 (from wxpython.org) So it can be done. -Chris -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R(206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception chris.bar...@noaa.gov ___ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG
Re: [Pythonmac-SIG] C++ ABI 1002/102 incompatibility with wxPython on OS X
On 3/1/11 1:34 PM, Brendan Simon (eTRIX) wrote: An app that works on PowerPC and Intel 10.4.11. $ cat ./MyApp.app/Contents/Frameworks/libwx_macud-2.8.0.dylib | strings | grep ABI 2.8 (debug,Unicode,compiler with C++ ABI 102,wx containers,compatible with 2.6) 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6) This is presumably the PPC and Intel parts of the lib. IIRC, at one point (about two years ago), Robin did some machinations to build the PPC version of the binary with a different compiler version than the Intel version. I needed to go through the same machinations to build an extension that was linked against wxPython. I think that was required to get a build that would work on 10.3.9 PPC and recent Intel machines. Apparently, it's required for 10.4, too. I, unfortunately, don't have a 10.4 machine to test on anymore, so it' a bit hard for me to help. HOwever, looking at my ugly build script, it looks like I'm essentially doing: 1) build a regular old extension 2) using lipo to remove the PPc part 3) setting ENV varibles to use gcc3.3: # this builds the ppc version correctly export CXX="g++-3.3 -arch ppc -DMAC_OS_X_VERSION_MAX_ALLOWED=1040" export CC="gcc-3.3 -arch ppc -DMAC_OS_X_VERSION_MAX_ALLOWED=1040" export MACOSX_DEPLOYMENT_TARGET=10.3 4) pull the ppc part out of that build, and add it inot the original one. when I look at the dylib delivered with that app, I get: $ cat libwx_macud-2.8.0.dylib | strings | grep ABI 2.8 (debug,Unicode,compiler with C++ ABI 102,wx containers,compatible with 2.6) 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6) when I look at the one in /usr/lib, which I presume was supplied by apple, I get: 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6) 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6) (this is with OS-X 10.6). When I look at the one in : /usr/local/lib/wxPython-unicode-2.8.11.0/lib/ (which I got from a wxPython binary), I get: $ cat libwx_macud-2.8.0.dylib | strings | grep ABI 2.8 (debug,Unicode,compiler with C++ ABI 102,wx containers,compatible with 2.6) 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6) Which is what you want. I suspect that you're now using Apple's wx, by accident, or are you using a newer wxPython than 2.8.11 ? -Chris -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R(206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception chris.bar...@noaa.gov ___ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG
Re: [Pythonmac-SIG] C++ ABI 1002/102 incompatibility with wxPython on OS X
On 2/03/11 8:34 AM, Brendan Simon (eTRIX) wrote: > On 8/02/11 10:55 PM, Brendan Simon (eTRIX) wrote: >> On 1/25/11 1:20 AM, Brendan Simon (eTRIX) wrote: > I have a wxPython app that is built with py2app. A user recently > reported the following error when trying to run the app. > > Fatal Error: Mismatch between the program and library build versions > detected. > The library used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx > containers,compatible with 2.6), > and your program used 2.8 (no debug,Unicode,compiler with C++ ABI > 102,wx containers,compatible with 2.6). > Abort trap > logout >>> As others have informed me, the C++ ABI changed from gcc-3.3 to gcc-3.4 >>> (and beyond). >>> > > It turns out that previous builds of my application DO work on PowerPC > OS X 10.4, it's only recent builds > that fail with the ABI compatibility error. > > The app bundle is built with python.org 2.5.4 using pythonw > (/Library/Frameworks/Python.framework/Versions/2.5/bin/pythonw). It > contains a libwx_macud-2.8.0.dylib file which I think is the culprit. > I interrogated this file (strings and grep) and noted an ABI difference. > > An app that works on PowerPC and Intel 10.4.11. > > $ cat ./MyApp.app/Contents/Frameworks/libwx_macud-2.8.0.dylib | > strings | grep ABI > 2.8 (debug,Unicode,compiler with C++ ABI 102,wx containers,compatible > with 2.6) > 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible > with 2.6) > > An app that does NOT work on PowerPC 10.4.11 but does work on Intel > 10.4.11. > > $ cat ./MyApp.app/Contents/Frameworks/libwx_macud-2.8.0.dylib | > strings | grep ABI > 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible > with 2.6) > 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible > with 2.6) > > The latter has TWO identical lines with ABI 1002. i.e. it does NOT > have the ABI 102 for some reason. > > A search of my filesystem reveals that none of the wx libraries appear > to have ABI 102 in the wx libraries. > > $ find /usr -name "libwx_macud-2.8.0.dylib" -ls > 1412128 lrwxr-xr-x1 root wheel 27 15 Aug > 2009 /usr/lib/libwx_macud-2.8.0.dylib -> libwx_macud-2.8.0.5.0.dylib > 2271698288 lrwxr-xr-x1 root wheel 27 5 Aug > 2010 > /usr/local/lib/wxPython-unicode-2.8.11.0/lib/libwx_macud-2.8.0.dylib > -> libwx_macud-2.8.0.7.0.dylib > 24113538 lrwxr-xr-x1 root wheel 27 18 Jun > 2008 > /usr/local/lib/wxPython-unicode-2.8.4.0/lib/libwx_macud-2.8.0.dylib -> > libwx_macud-2.8.0.1.1.dylib > 24122618 lrwxr-xr-x1 root wheel 27 18 Jun > 2008 > /usr/local/lib/wxPython-unicode-2.8.4.2/lib/libwx_macud-2.8.0.dylib -> > libwx_macud-2.8.0.1.1.dylib > > $ find /usr -name "libwx_macud-2.8.0.dylib" | xargs strings | grep ABI > 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible > with 2.6) > 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible > with 2.6) > 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible > with 2.6) > 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible > with 2.6) > > I'm not sure what has changed to cause this. > > * OS X updates > * Code changes that use various interpreters, specified as: > python, pythonw, > /Library/Frameworks/Python.framework/Versions/2.5/bin/pythonw, etc. > * Installs of new pythons (e.g. python 2.7, python 3.x) > * Installs of newer wxPython ?? ANSI versus Unicode versions ?? > > > Any ideas as to why my wx library no longer has the ABI 102 > compatibility ?? > I'm thinking it is most likely a wxPython build or install problem. The other possibility is that the builds that do work may have been built on another Mac running 10.5, not my current Mac running 10.6. Will have dig up the old Mac and see if that makes a difference. ___ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG
Re: [Pythonmac-SIG] C++ ABI 1002/102 incompatibility with wxPython on OS X
On 8/02/11 10:55 PM, Brendan Simon (eTRIX) wrote: > On 1/25/11 1:20 AM, Brendan Simon (eTRIX) wrote: I have a wxPython app that is built with py2app. A user recently reported the following error when trying to run the app. Fatal Error: Mismatch between the program and library build versions detected. The library used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6), and your program used 2.8 (no debug,Unicode,compiler with C++ ABI 102,wx containers,compatible with 2.6). Abort trap logout >> As others have informed me, the C++ ABI changed from gcc-3.3 to gcc-3.4 >> (and beyond). >> It turns out that previous builds of my application DO work on PowerPC OS X 10.4, it's only recent builds that fail with the ABI compatibility error. The app bundle is built with python.org 2.5.4 using pythonw (/Library/Frameworks/Python.framework/Versions/2.5/bin/pythonw). It contains a libwx_macud-2.8.0.dylib file which I think is the culprit. I interrogated this file (strings and grep) and noted an ABI difference. An app that works on PowerPC and Intel 10.4.11. $ cat ./MyApp.app/Contents/Frameworks/libwx_macud-2.8.0.dylib | strings | grep ABI 2.8 (debug,Unicode,compiler with C++ ABI 102,wx containers,compatible with 2.6) 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6) An app that does NOT work on PowerPC 10.4.11 but does work on Intel 10.4.11. $ cat ./MyApp.app/Contents/Frameworks/libwx_macud-2.8.0.dylib | strings | grep ABI 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6) 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6) The latter has TWO identical lines with ABI 1002. i.e. it does NOT have the ABI 102 for some reason. A search of my filesystem reveals that none of the wx libraries appear to have ABI 102 in the wx libraries. $ find /usr -name "libwx_macud-2.8.0.dylib" -ls 1412128 lrwxr-xr-x1 root wheel 27 15 Aug 2009 /usr/lib/libwx_macud-2.8.0.dylib -> libwx_macud-2.8.0.5.0.dylib 2271698288 lrwxr-xr-x1 root wheel 27 5 Aug 2010 /usr/local/lib/wxPython-unicode-2.8.11.0/lib/libwx_macud-2.8.0.dylib -> libwx_macud-2.8.0.7.0.dylib 24113538 lrwxr-xr-x1 root wheel 27 18 Jun 2008 /usr/local/lib/wxPython-unicode-2.8.4.0/lib/libwx_macud-2.8.0.dylib -> libwx_macud-2.8.0.1.1.dylib 24122618 lrwxr-xr-x1 root wheel 27 18 Jun 2008 /usr/local/lib/wxPython-unicode-2.8.4.2/lib/libwx_macud-2.8.0.dylib -> libwx_macud-2.8.0.1.1.dylib $ find /usr -name "libwx_macud-2.8.0.dylib" | xargs strings | grep ABI 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6) 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6) 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6) 2.8 (debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6) I'm not sure what has changed to cause this. * OS X updates * Code changes that use various interpreters, specified as: python, pythonw, /Library/Frameworks/Python.framework/Versions/2.5/bin/pythonw, etc. * Installs of new pythons (e.g. python 2.7, python 3.x) * Installs of newer wxPython ?? ANSI versus Unicode versions ?? Any ideas as to why my wx library no longer has the ABI 102 compatibility ?? I'm thinking it is most likely a wxPython build or install problem. Thanks, Brendan. ___ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG
[Pythonmac-SIG] [SOLVED] How to exclude py2app Pygame icon
As often happens, forming confusion into an intelligible question yields the solution. I'll share my finding and would appreciate any feedback. This hack seems a lot of bother but any other fix evades. The issue was stated nicely some time ago, see http://www.mail-archive.com/pythonmac-sig@python.org/msg08548.html as desired. The follow-up reply (add --resources AppIcon.png) doesn't seem to help. Looks like this list has a tradition of revisiting this topic on an annual basis (ha) and I didn't see another answer. My question was the same as OP, how to recreate the .zip after hacking on it, today the attached seems to do the trick and at the expense of just a bit more work producing the .app: Recreate the problem: hg clone https://robertleach...@bitbucket.org/RobertLeachman/pythentene hg clone https://RobertLeachman@ bitbucket.org/RobertLeachman/pythenteneassets cp pythenteneassets/stuff/setup_mac.py pythentene cp pythenteneassets/stuff/gameIcon.icns pythentene/stuff cd pythentene python setup_mac.py py2app Works fine, produces dist/Pythentene.app but has the issue at hand: the Pygame icon flashes on the dock as the game starts. cd dist/Pythentene.app/Contents/Resources/lib/python2.6 mkdir x; cd x; unzip ../site-packages.zip; cd pygame rm pygame_icon* cp ../../../../../../../../stuff/gameIcon.icns pygame_icon.icns cd .. zip -r9 site-packages-new.zip * cd .. mv x/site-packages-new.zip site-packages.zip rm -rf x Success, no more pygame icon but instead a nice stable experience for the user. I'm sincere about wanting to talk about the subject line, but also can't resist... this is all go-forward from the 0.1a release of http://www.bitblaster.com/pythentene/ and I'm hungry for help or feedback. Let me know if you are interested in some open-source programming work, or just play this classic game and complete the survey if you will. Thanks! ___ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG