Re: [Pythonmac-SIG] C++ ABI 1002/102 incompatibility with wxPython on OS X

2011-03-01 Thread Christopher Barker

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

2011-03-01 Thread Christopher Barker

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

2011-03-01 Thread Brendan Simon (eTRIX)


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

2011-03-01 Thread Brendan Simon (eTRIX)
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

2011-03-01 Thread Rob Leachman
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