Wine developer frustration (was Re: ntdll: Improve stub of NtQueryEaFile.)

Jeremy White jwhite at
Tue Jun 16 11:37:57 CDT 2015

Hi all,

On 06/15/2015 02:32 PM, Michael Müller wrote:
> Hi Jeremy,
> I actually intended to send the following response to wine-devel, but
> the other Wine Staging developers feared that this might continue the
> flamewar. Nevertheless, I think the ideas should still reach you, just
> treat them as my personal opinion. In case you are comfortable with the
> content, feel free to forward or respond to it on wine-devel.

I thought these were all interesting points, and wanted to respond publicly.

> I think it is too easy to blame Alexandre for all Wine problems. He is
> involved in some of them, but there are also other ways to improve Wine
> which are completely unrelated to him. I think even CodeWeavers could
> make Wine more community-friendly simply by being more transparent.
> Here are two examples of what I mean:
> 1. CodeWeavers adds a lot of hacks to Crossover to get applications to
> work, in case a proper fix would be too much work. From what I have
> heard those hacks are only added after the problem has been analyzed and
> documented in your bug tracker. I don't understand though why no one in
> the Wine community access to this analysis (i.e. why are these bugs not
> documented in the public bug tracker)? It seems to be a waste of energy
> if the Wine community needs to debug the problem a second time.

I think that breaks down into two issues.

First, yes, we do have hacks in CrossOver, but I think 'a lot' is
unfair.  We really try to avoid those hacks, and we work hard to
eliminate them.  For example, I reviewed our tracker that lists our
hacks.  We have about 100 outstanding; in the last 6 months, we removed
4 with upstream fixes, and added 1 new one.  Further, we have long felt
that our diff with winehq was tragically large.  But nicely, I can now
compare it to wine-staging, and claim that it is relatively modest
<grin>.  We touch 28K lines in 228 files versus 100K lines in 509 files
for wine-staging [1].

Second, for bugs, yes, we do have our own bug tracker, and it is
(mostly) private.  That's appropriate for CrossOver only bugs, and we do
have a lot of customers with whom we have confidentiality agreements, so
it's necessary in that case.

We do have an official company policy that any Wine related bug in our
tracker is supposed to have a related WineHQ bug, and we are supposed to
bias our troubleshooting and work in favor of WineHQ.

That is true for all bugs, including ones that are hacks.

In doing a spot check of that, it looks like we don't do that great a
job of adhering to that policy; maybe 30% of the time (although we do
have a number of staff members who are particularly good at mostly using

I have to agree that this is arguably less than ideal, and I will exhort
our staff to do better.

But my gut sense is that the perception may be that we have this magical
treasure trove of extra information, and the reality is fairly far from

> 2. CodeWeavers seems to act like a black box from my point of view. It
> is not really clear what you guys are working on and therefore a lot of
> Wine developers (who are not part of CW) try to avoid touching the same
> areas of Wine. As far as I know CW is currently working on Office 2013
> for example, but there is not a single bug in the WineHQ bug tracker
> about this. On the other hand I talked with some CW developers on the
> IRC and I had the impression that they wouldn't mind help from the
> community to fix certain issues. We all profit from having those bugs
> fixed faster.

Ouch.  I'm not sure how to respond to that.  I think we've been accused
of being a bit opaque in the past, and I think I've promised to try to
do better.  Looks like I failed.

We do tend to get a lot of NDAs and things that make us careful with
information, but we also just have a lot of the strong silent types on

But the very last thing I want to do is suppress any work on Wine.  My
thinking, though, has long been the opposite of yours.  That if we
advertise an area of work, we risk a 'chilling' effect.  There are far
more bugs with 'Office' than we could ever handle by ourselves; I would
never want someone to stay away from a bug that looked interesting or
fun, just because we tend to do a lot of the work on Office.

I always thought the perk of being a non CW Wine hacker is that you get
to pick and choose the fun parts.  I get to make the CW hackers do the
yucky, nasty, stuff... <evil grin>.

Further, we really do just about all of our work on wine-devel; you can
tell what we're working on just by seeing the patches there.

For the record, we are working on Office 2013, which is right now mired
in a lot of work on dwrite, I believe.  If you look at Henri and
Nikolay's recent patches, you'll see the work on it.  We have lovely
purple blobs in Excel instead of readable text (although I'm told I can
have those blobs in any color I like).

Beyond that, our work is all over the map.

I guess the action item here remains the same - for us to do a better
job of communicating, so we no longer seem mysterious or opaque.  I'll
work on that.

> Alexandre needs to find a way how to improve the patch acceptance
> process in a way he feels comfortable with, but before everyone starts
> blaming him for all problems, there are also other areas which can be
> improved. Don't get me wrong, I don't want to say that CW is root of all
> evil (I think its very great that you guys keep Wine alive), I just
> thought you might be interested in these ideas, especially because these
> are things where you have influence on.

Yes, thank you - this is very helpful.  I think there is clearly a
problem, a problem that has gotten worse lately, and it would be great
if we can find a way to improve matters.  Again, there is far more than
enough work to do; to lose any energy to misunderstanding or inter
personal friction is just stupid and inefficient.

One issue you didn't raise that I want to elevate as a straw man, and
then knock down, is the perception that an email
address is some sort of guarantee of patch acceptance.  Trust me, I am
painfully aware that it doesn't help  :-/.  It is true that I tend to
hire people that Alexandre trusts (which makes sense, if you think about
it), but that's a different way of coloring the situation.

And I can tell you that Alexandre is a man of deep integrity, and he is
both personally committed to keeping his work on Wine separate from his
work for CodeWeavers, and CodeWeavers is contractually bound to allow that.

> Not directly related to the previous mail, but I think its not
> sufficient to hope that WineConf will automatically solve all problems.
> The WineConf might be a good place to discuss individual ideas, but we
> may want to start collecting them in advance.

Agreed; hence my desire to make sure to get this down in the email
archives as well, and my hope that we can articulate the concerns and
possible improvements now as well.

But there is something really powerful about meeting face to face that
is very nice.  It's particularly nice when you can go to the bar to
curse Alexandre over beers later <grin>.



[1] This was my methodology, which may be flawed:

wine-staging git, removing outsized fonts-Missing_Fonts patch:

[~/xfer/wine-staging/patches] grep -h '^diff' */00*.patch  | sort | uniq
| wc -l
[~/xfer/wine-staging/patches] cat */00*.patch | wc -l

CrossOver stats:
[~/w/crossover/wine] git diff wine-1.7.45 | grep -h '^diff' | wc -l

[~/w/crossover/wine] git diff wine-1.7.45 | wc -l

More information about the wine-devel mailing list