Re: WineX and the AFPL
Francois Gouget <[email protected]> Thu, 13 Jun 2002 16:36:25 -0700 (PDT)
| Newsgroups | gmane.comp.emulators.wine.license |
|---|---|
| Message-ID | <[email protected]> |
On Tue, 11 Jun 2002, Deven T. Corzine wrote: > On Wed, 5 Jun 2002, Francois Gouget wrote: > > > Any developper that stops working on a domain in disgust or because he > > feels his work is useless since it will soon be obsoleted will not > > compensate by working on another area. Thus it is a total loss for the > > project. > > True, if the demotivation effect slows their overall efforts, that's a > loss. However, it's probably a temporary loss, not a permanent one. As you said, Windows (or rather the set of APIs used by Windows applications) is not a stationary target. So even a temporary loss can have significant effects. > > If you think other areas are more important then I would encourage you > > to advocate them on wine-devel. Explain why they are important, what > > Wine has to gain from them, and generally try to convince others (while > > staying within reasonable limits of course). When you do this, then you > > will either convince developpers to switch to work on this area, or wou > > will convince new volunteers to start working on Wine which is even > > better. > > Yeah, or it could just as easily annoy developers to hear non-contributors > "directing" them in what areas they should work on. No thanks. It is much less likely to annoy them that if you tell them they are wasting their time working on the area they love. > > And yet, Windows was available, Wine did not support DirectDraw or > > OpenGL and still gamers cam and contributed to Wine. > > Hey, it was just a hypothesis. Don't take it too seriously. Then don't come up with ridiculous hypothesis that you present seriously. Your intent could easily be misinterpreted. > This is exactly the approach I would have taken with Wine. Start with all > the API documentation in hand, and implement it to the letter. Then, watch > for discrepancies and discover where practice differs from theory, and make I would still recommend to check early whether Windows really does things the way the documentation says (and preferably test at least one Win9x and one NT version). Otherwise you are going to waste a lot of time. What you say about how to implement standards makes sense, that's pretty much the way I would do it myself. But in the case of Wine it is less compelling because there is no independent standard and only implementation. Now I do think that it could be beneficial if someone would just say 'I am going to implement dll foo from a to z'. But then I realize that the timescale for a project would be quite long, that a lot of work would be spent on APIs that are never used and that a lot of code would be expended to conform to a documentation that does not describe what applications expect. So testing is needed but how do you find the one application that exercises the API you are implementing? Clearly this method does not work so you have to resort to writing your own tests which generates even more work. But then these tests could be very useful to Wine later so they would probably be worth it. But you need a test infrastructure and there was none (i.e. now there is one). So we are going into the right direction. But the important thing to remember is that neither way of doing things is the end all and be all of development for Wine. You need both and it is not easy to say where the balance lies (or even where the balance points to currently). > > out not to be. There is no way the kernel developper can test his driver > > with all the sound cards out there and it is only through the feedback > > of occasional contributors that his driver can finally work on a large > > enough portion of the soundcards out there. > > They're often stuck with complete reverse engineering, which makes their > job even harder than Wine's. At least there is documentation for the > Windows API, even if it's not complete or always obeyed... Not to criticize the kernel (or X11) hackers, but in many cases where there is strictly no documentation, Linux has no driver. For instance I would love to see hardware scaling for my laptop's NeoMagic graphics card. But there is no documentation, and there is correspondingly no X11 driver that supports it. That being said, their work is indeed very hard. But so is Wine's, especially because very often (more than you seem to suspect) there is no documentation at all. this is the case, for instance, for the interfaces between dlls since these are not supposed to be used by applications. Yet these interfaces are very important to Wine and there are more than 10.000 APIs. > > I don't think so. Microsoft has not come up with a compelling new API > > which is as radically different as Win32 was from Win16. NT/2000/XP are > > in that respect >90% identical to Win9x. The only 'threats' I see are > > Win64 and .Net but I don't see these having an effect in the near term. > > It doesn't matter how much is identical. What matters is the installed > base of users. Once Windows 95/98 users are a small minority (as 3.1 users > are now), nobody will care about backward compatibility anymore. Precisely, when that happens nobody will care about backward compatibility anymore. But given the current Win 9x install base this not going to happen any time soon, and it will not happen in a day either. It will be agradual evolution that will give us the time we need to adapt. Furthermore, concentrating on Win9x compatibility and doing things the Win9x way would be conterproductive as that is clearly not the platform of the future. If tried to be too closely compatible with Win9x (e.g. having a mixed 16/32bit GDI) we would end up having to do major reorganizations when we later try to be more compatible with the NT platform and we would have to throw away muh of our code. So we are basing Wine on the NT architecture already, which a much saner architecture anyway. > Even if there's 90% overlap, it's still making the job harder. If we already implemented the 90%, that only leaves us with 10% more to do. > Sure, everyone has different opinions on priorities. However, few would > argue against the goal of "run everything 100% as well as Windows 95 does". > If I can take Windows 95a, install IE, DirectX and other upgrades from > Microsoft, and run just about any application, it should be possible to do > exactly the same thing with Wine. No. Many applications that specifically target Win9x rely on VxDs which have to be loaded into the kernel. In Wine this would mean loading the VxDs inside the Linux kernel which is clearly unacceptable and would be outside the scope of Wine anyway (remember, applications, not Windows). DirectX is an example of such an 'application'. So it is better to focus on compatibility with the NT architecture (which does not support VxDs), which is what we already do. > All the models suck, each in > its own unique way. Offhand, I'm not sure WHO could navigate these waters > and truly chart an optimal route. Don't worry, nobody can. Not the developpers, not the marketers and not even the users (who may not know what they want, want too little or too much). > Saying they're "second-class" isn't the same as saying they're not valued. Please, check an encyclopedia and you will see that 'second-class' has strong derogatory connotations. > Good bug reports are valuable, but only if acted upon. I don't know how > well or poorly the Wine community acts on bug reports, but I know that it's I agree. The Wine community has handled bug reports (at least those made in the Bugzilla bug database) very poorly. Fortunately this has changed in the past few months thanks to the wonderful job done by Andryi Palamarchuk, Tony Lambregts and others. -- Francois Gouget [email protected] http://fgouget.free.fr/ In theory, theory and practice are the same, but in practice they're different.