failure of wxWidgets to build (as dependency for py26-wxpython)
jbusser at interchange.ubc.ca
Wed Jan 20 02:12:40 PST 2010
On 2010-01-19, at 9:02 PM, Ryan Schmidt wrote:
> FYI you don't select platform variants like +darwin or +darwin_10 manually; MacPorts selects them for you automatically if they're necessary.
Thanks for the above. Maybe I misunderstood (having been pointed to ticket 22815) that I needed some way to install wxWidgets "non-universal" and yet I was unclear how to achieve that, having not actually requested +universal
I therefore wondered whether something already-installed dependency was causing it. That is why I uninstalled python26 and other ports. Moreover, believing it important to try some things (so as to not be seen as asking every step) is why I tried a manual selection of platform variants ( +darwin or +darwin_10) in case that was the means to avoid a universal build, so thanks for pointing out that platform selection is automatic.
Elsewhere in the prior reply was that the following
> ld: warning: in /opt/local/lib/libz.dylib, file is not of required architecture
> ld: warning: in /opt/local/lib/libexpat.dylib, file is not of required architecture
> ld: warning: in /opt/local/lib/libSDLmain.a, file is not of required architecture
> ld: warning: in /opt/local/lib/libSDL.dylib, file is not of required architecture
could have been prevented if I had first installed zlib, expat, and libsdl universal, as I was advised offlist (lack of posting from an alternate email) by Jyrki Wahlstedt
> Yes... installing zlib just like that
> sudo port -d install zlib
> makes it 64-bit, and wxWidgets needs 32-bit (because it does not build 64-bit, until 2.9.0 matures, that is). Unfortunately I have not had time to polish the port (thanks Ryan for help), but building wxWidgets currently needs 32-bit libraries (I'll add the archcheck file list hopefully soon), so if there are similar occasions with libX later on, you just make it universal, and after all are done, you should be ok. This wxWidgets thing is not good, I hope the upstream team gets the next release stable soon, but changing it from Carbon to Cocoa is a major one, and seems to take longer than expected, definitely longer than desired.
I gather that installing dependencies as +universal overrides what would have been Snow Leopard's default behaviour (of building just x86_64 bit) such that the resulting fat file will contain a 32-bit architecture which then allows the creation of a 32-bit wxWidgets?
I did reinstall zlib as +universal and as a result the architecture returned by 'lipo -info /opt/local/lib/libz.dylib' is
Architectures in the fat file: /opt/local/lib/libz.dylib are: x86_64 i386
and the -arch flags in DEBUG were
-arch x86_64 -arch i386
So in the end my questions are:
1. before trying again to install wxWidgets should I *first* install as +universal what appear to be my remaining missing wxWidgets dependencies
2. since Jyrki seems to be saying wxWidgets (2.8.9) will build only as 32-bit (and as there seems now no +universal option), does the following achieve to make a non-universal wxWindows?
sudo port install -d wxWIndows
3. shall I also then (to keep 32 bitness available) install +universal other ports that I will want / need:
4. and if I will also need py26-wxpython, is the lack of a universal variant a problem (if I would correctly understand Snow Leopard will want to build it x86_64 yet it will depend on a wxWidgets which will be 32-bit non-universal)?
More information about the macports-users