Wine/Cedega and fedora 3

Mike Hearn mike at navi.cx
Tue Dec 7 20:05:36 UTC 2004


On Mon, 06 Dec 2004 09:00:52 -0500, John (J5) Palmieri wrote:
> These are bug with the way Cedega works.

No, it's an incompatibility between the Linux VM layout and the Windows VM
layout. Up until the introduction of execshield there was no need to
enforce this, on any platform. There are no "bugs" here.

> Changing Fedora to work around a program's bugs would be wrong.

No, actually it wouldn't be wrong. Some bugs will never be fixed (think
unmaintained proprietary apps) and some bugs could be but a fix
won't be available for a while. Fedora is supposed to be useful, right? So
if an app which a lot of people need doesn't work, it's not being useful.

> Cedrega should be fixed.

You say that like it's a trivial 2 minute typo or something. It's not. The
current approach taken in WineHQ (which TransGaming can't easily use due
to the LGPL license not working with their business model) is the *third*
attempt at a working solution.

The first failed on systems with overcommit disabled, and didn't protect
all VM areas anyway.

The second blocked on a kernel bug. This is the PT_LOAD approach Jakub
suggested elsewhere in the thread. Unfortunately this bug was only
discovered *after* I had implemented it and found it didn't work. A fix
was developed for said bug, but it didn't work on some obscure CPU arch
the patch developer didn't have access to, and was dropped.

The third is what we use now, and it took many months to stabilise and
work out all the problems with vDSO kernels, aggressive compiler
optimizations, systems that ship TLS enabled static libcs, and a host of
other bugs I've probably forgotten about. Here is the code:

  http://source.winehq.org/source/loader/preloader.c

Pretty isn't it? If you can understand all of it on first reading, well
done, have a cookie. The Cedega team is much smaller than the WineHQ
community is (about 4-5 people). I did talk
to one of the TG guys about this and he strongly implied that they would
not be fixing this problem: switching off execshield/prelink would
continue to be the recommended way of making Cedega work. 

So this is one of these "bugs" that will probably never be fixed. Ever.

In short by the time a good solution was found for
Wine+execshield/prelink, over a year had passed. Most
of the work was done by CodeWeavers although much of the preliminary R&D
was done by me as a volunteer before I joined the company.

Unfortunately like a lot of Red Hatters you seem to see the world in black
and white. Especially you are very fast to blame others "buggy code" when
problems arise. This attitude is quite tiring: do you realise that every
single Red Hat/Fedora release from RH9 onwards has broken Wine in some
way? Every single one? Usually these were not simple things to fix. They
required extremely complex re-working of core code which few understand.

I'm not saying execshield or prelink or NPTL or the 4G VM patch or
anything else that broke it are bad technologies, they aren't and I am
very happy that we were able to find a solution that allows Wine to work
when they're active. But please, have a more considerate attitude for
those of us that have sunk months into dealing with these sparkly new
features instead of writing things off as "bugs" which "should be fixed".

thanks -mike




More information about the fedora-devel-list mailing list