Thanks to a hint from the MacPorts Wine Portfile I've got Wine working on OS X Lion. A 64-bit Wine is practically useless (only runs 64-bit Windows applications), so usually on x86_64 one mixes a 32-bit Wine with a 64-bit one (they call this "WoW64") to have working 32-bit /and/ 64-bit binaries. At the moment, this new Wine is 32-bit-only, but I think adding 64-bit support now will be easy.
However, of course, for building a 32-bit Wine one needs 32-bit dependencies. For this, I have created freetype219-x86 (maintainers of freetype219 CC'd) and libpng15-x86 (maintainer of libpng15 CC'd). However, before I commit any of this, I want to discuss with you guys where the files of both packages will be placed. This is what I think Debian calls the issue of "multiarch", which supposedly has been discussed before and voted against -- but this would have the consequence of never having Wine and other x86-only apps on Lion and higher, and I'm not sure we want to go with that.
Currently, freetype219 looks like this:
%p/lib/freetype219 <-- contains everything
%p/bin/freetype-config -> %p/lib/freetype219/bin/freetype-config
%p/include/freetype2/freetype/*.h -> %p/lib/freetype219/include/freetype2/freetype/*.h
%p/lib/freetype.dylib -> %p/lib/freetype219/lib/libfreetype.dylib
Ergo, practically everything is installed in %p/lib/freetype219, and outside of that directory everything is linked. In this case, I've chosen the same approach: freetype219-x86 installs everything in %p/lib/freetype219-x86 -- but the package creates no links to the outside. In Wine, I hardcode the path of %p/lib/freetype219-x86/bin/freetype-config which will return the correct link values for linking against the 32-bit freetype.
libpng15 doesn't have this structure at all, and simply installs in %p/bin, %p/include, %p/lib. For libpng15-x86, I've chosen to adher to this closely, and the package installs at %p/bin/libpng15-config-x86 and %p/lib32 -- it has no %p/include, because it would have the same contents as libpng15. Therefore, if a package Build-Depends on libpng15-x86, it should also Build-Depend on libpng15.
There are some other libraries which Wine optionally wants in 32-bit mode: libsane, libv4l, libgphoto but also more important ones like libtiff, libxml2, libgettext and libjpeg. This, however, was for now enough of a test case for me to see that it works. The question now remains: where are we going to place the 32-bit versions of the libraries? Is -x86 the right naming approach? Is it better to have Type: arch (x86 x86_64) and Package: libpng15-%type_pkg[arch] ? Or do you have other suggestions?
(Wine constantly crashed in various weird ways, except when the option -Wl,-no_pie was given to the linker...)