[Wine] Re: MacOS X cocoa and carbon for Linux?

Richie wineforum-user at winehq.org
Tue Dec 23 09:47:41 CST 2008

James McKenzie wrote:
> hahomir4ev wrote:
> You might find a friendly discussion somewhere else on the 
> implementation of Cocoa/Carbon on Linux, but this is not a topic of 
> discussion here.
> James McKenzie

Of cource it would be a completely unrelated project. Therefore the wine forum is not the right place for such a project.
BUT: Up to now there is no McWine or MINE project. GNUStep is a gnu implementation of OpenStep but not of cocoa. It implements some parts of cocoa but it's far from complete. And as far as I know it is not there main goal to reach cocoa compatibility. And if they have some compatibility it is only at source code level not on binary level (as wine has for windows binaries).
And this is where wine comes in: WINE is very unique in providing binary compatibility. People see wine and what it can do. As Mac OS X gets more popular they demand for something similar for mac applications. But they cannot find something useful on the net and so they start asking here in the forum. I think you will get more of these questions in the future (Maybe an FAQ entry might be useful?). Perhaps some day there will be a project that you can link to (and get rid of these people  :) ).
I have looked myself what is out there and what might be useful to read for people that might start such a project. Here are some links:
GNUStep (http://www.gnustep.org/) - provides a GPL implementation of OpenStep (predecessor of Cocoa)
Cocotron (http://www.cocotron.org/) - wants to implement full source code compatibility with cocoa for compiling mac applications for windows (MIT License)
Darwinux (http://lkml.indiana.edu/hypermail/linux/kernel/0703.3/1852.html) - Kyle Moffett has worked on a linux kernel patch for loading MACH-O binaries on PowerPC64
COMPAT_DARWIN (http://hcpnet.free.fr/applebsd.html) - MACH-O loading on net bsd
First step would be to implement a mach-o loader and implement the darwin system calls. As I found out it might be easier to implement loading x86-64 mach-o binaries first because the ABI for x86-64 is the same on linux and mac os x. (And the system call numbers don't collapse thus could be separated from each other). This step would allow running 64-bit command line programs.
Next step would be building GnuStep or Cocotron in such a way that it could be used by mac os x applications. And then it would be a long way until version 1.0 is released (As you all know wine took 15 years).

I think a first cool goal would be running Mac games on linux. They all use opengl and do not require much cocoa. And they do not require installation, just copying the files. WINE will always have problems with copy protection based on window kernel drivers but mac games do not have such copy protection afaik.

PS: Sorry James McKenzie, but I think it is currently the best place to write all this down.[/b]

More information about the wine-users mailing list