Jump to content

How do I tell MacPorts to upgrade all the dependencies of an uninstalled port?

bjepson's Photo
Posted Nov 09 2009 07:17 PM
5688 Views

Like matt, the author of this helpful post that I wish I'd read before trying to install Wine on Snow Leopard, I tried to do a port install wine without the +universal option.

When MacPorts finished installing all the dependencies and tried building Wine, I got this error:

Error: wine 1.0.1 is not compatible with Mac OS X 10.6 or later. Until wine 1.2 is released, please install wine-devel instead.
Error: Target org.macports.fetch returned: incompatible Mac OS X version
Error: Status 1 encountered during processing.


This seemed simple enough, but when I tried installing wine-devel, I got:

Error: You cannot install wine-devel for the architecture(s) i386
Error: because /opt/local/lib/libexpat.dylib only contains the architecture(s) x86_64.
Error: Try reinstalling the port that provides /opt/local/lib/libexpat.dylib with the +universal variant.
Error: Target org.macports.extract returned: incompatible architectures in dependencies
Error: Status 1 encountered during processing.


Basically, I had all the dependencies installed, but without the 32-bit support needed by Wine. So, like matt, I'm going through each dependency by looking at the error messages I get from trying to install wine-devel, and typing:

sudo port upgrade --enforce-variants PORTNAME +universal


Is there any way to tell MacPorts to simply do this for all of wine-devel's dependencies?

Tags:
2 Subscribe


2 Replies

+ 3
  bjorn_swift's Photo
Posted Nov 16 2009 01:50 PM

There is probably a better way of solving this, but the following worked for me.

Get a list of ports that wine-devel depends on:

$ port deps wine-devel
Full Name: wine-devel @1.1.33+darwin_10
Build Dependencies:   pkgconfig
Library Dependencies: expat, fontconfig, freetype, jpeg, libiconv,
                      libxml2, libxslt, ncurses, openssl, zlib,
                      xorg-libsm, xorg-libXcursor, xorg-libXi,
                      xorg-libXinerama, xorg-libXrandr,
                      xorg-libXxf86vm, mesa


Enforce +universal on these ports:

for p in expat fontconfig freetype jpeg libiconv libxml2 libxslt ncurses openssl zlib xorg-libsm xorg-libXcursor xorg-libXi xorg-libXinerama xorg-libXrandr xorg-libXxf86vm mesa; do sudo port upgrade --enforce-variants $p +universal; done


And finally install wine-devel:

sudo port install wine-devel +universal


Hope this helps,
Bjorn Swift
 : Nov 17 2009 07:46 AM
Worked like a charm, Bjorn!

Now I just need to get SWATH working...