Hi all,

Thanks to a hint from the MacPorts Wine Portfile[0] 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"[1]) 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"[2], 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?

Sjors

[0] https://trac.macports.org/browser/trunk/dports/x11/wine/Portfile
    (Wine constantly crashed in various weird ways, except when the option 
-Wl,-no_pie was given to the linker...)

[1] http://wiki.winehq.org/Wine64

[2] http://wiki.debian.org/Multiarch
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2d-oct
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
List archive:
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to