Re: wine-license digest, Vol 1 #106 - 9 msgs

"Deven T. Corzine" <[email protected]>
Newsgroups gmane.comp.emulators.wine.license
Message-ID <[email protected]>
On Mon, 3 Jun 2002, Tony Lambregts wrote:

> >I said that I had an outside perspective.  I never claimed a complete one.  
> >I welcome any knowledge and information that pertains to the question at 
> >hand, and try to refine my thinking in light of it.  The allegation that 
> >Transgaming made promises to release code and never kept such promises -- 
> >that was news to me.  (I can only call it an allegation, since I never 
> >witnessed it, nor have I seen TG admit to such empty promises.)
> >
> No: you said as follows
> 
> <I am only an outside observer, seeking to supply some perspective untainted 
> by the history between the parties who seem to have long-running arguments 
> back and forth.  Now, because of the perspective I have, I'm necessarily 
> also naive about certain aspects of the debate -- that's intrinsic to being 
> an outsider to it all.  If I weren't naive to those aspects, I'd probably 
> have a predetermined opinion on the outcome and look to rationalize it -- 
> that's a normal human tendency, and the main reason why an unbiased outside 
> perspective is occasionally useful>
> 
> If you don't know whats going on, find out before you make an opinion. I 
> told you that lack of knowledge is not a good thing. Instead of being 
> helpfull you waste our time explaining... > 

I'm forming an opinion as I go, based on the discussion as it progresses.  
But I'm starting from a place of neutrality.  I'm not starting with any 
initial bias and looking to justify that bias.  It's a trade-off.  The more 
knowledge and information I have, the less neutral I become as I form a new 
bias based on what I've learned.  I'll have a more informed opinion, but it 
will carry a bias towards that opinion that will make it harder to shake.  

This happens to everyone; it's a natural tendency.  The longer you have 
held any given opinion, the harder it is to reverse it.  Even if something 
comes along that "should" reverse your opinion, you'll be suspicious of it, 
or not want to consider it at all.  This happens to me as much as you or 
anyone else.  My point was that an occasional outsider coming along with a 
neutral perspective can be helpful because they join the discussion with no 
preconceived notions.  The downside is that they also begin ill-informed.

I started out questioning the reasoning in just a pair of message; I wasn't 
claiming familiarity with the entire history of events.  That's why I made 
a point of saying that I was an outsider, so people would realize I only 
knew some of the story, not necessarily everything.

> You talk in circles...  the people are where the people are. (Perhaps 
> because of the licence? yes?)

I'm not talking in circles.  I'm saying that I believe that the codebase 
with the strongest community support will thrive the most, irrespective of 
the license chosed for that codebase.  Others have suggested that if the 
LGPL codebase thrives over the X11 codebase, that would represent a victory 
for the LGPL license over the X11 license.  This conclusion does not follow 
because it ignores the influence of the community.  If you want to prove 
that the conclusion is valid, you have to show why the community should be 
ignored in the equation.  Nobody has done so, nor are they likely to.

> His assertions are plausible. because that is the way he sees it. Like I 
> said it's his code he can do what he wants. I would prefer him not to 
> trade it.  

I never said his assertions were implausible.  I pointed out that there 
were alternative interpretations which wouldn't lead to dire conclusions, 
and asked why those alternatives were any less likely.

> That is all I have.  A couple of hours here and there.  "The world is a 
> poorer place if a person does nothing because he can only do a little"

I don't disagree with the notion, but if I only have a few hours to spend, 
doesn't it behoove me to spend them effectively?

[This is a digression from Wine, to illustrate the reason why a few hours 
here and there may not be useful to spend on a large, complex project...]

Let me give you an example regarding the Mozilla project.  There was a bug 
that I reported where an HTML page was being "reflowed" (reformatted) on 
the fly while clicking a link on the mozilla.org homepage itself, one which 
caused the link to move and no longer be under the cursor when the mouse 
button was released, so the link did not get followed.  Now, the second 
time you clicked on the link, it would stay still and work, but this was 
obviously not correct behavior.

I had a few hours available to spend, so I decided to investigate the code 
personally rather than wait for someone else to fix the bug.  I studied the 
reflow code, and fairly quickly determined that it was related to reflowing 
HTML tables, specifically.  Now, I had been told that a reflow was proper 
behavior, in that a button can have images, and the image for a clicked 
button could be of a different size.  (At least I think that was the idea.)  
Nobody would disagree that a simple link (which only changes color while 
being clicked) shouldn't cause anything to move on the page, but checking 
to see if anything should move was evidently not considered an error.

I finally determined that something strange was happening specifically when 
calculating the HTML table column widths the first time, which didn't make 
the same calculation on repeated attempts, causing the different results in 
some fashion.  I was getting down to the point of tracking exactly how each 
number was being calculated and where that number came from, when I ran out 
of time to work on tracking down the bug.

By this time, I had spent at least 10 hours over the course of a week or 
two, and I may have been 80% of the way towards finding the bug, but until 
my investigation was finished, it was of little value.  A few weeks later, 
I was going to try to finish the work, but the effect was no longer seen in 
the latest nightly builds.

Unfortunately, I don't even know if it was fixed correctly.  It may have 
been "fixed" as a side-effect of some other change that masked the effect 
of this bug without necessarily fixing it.  Then again, maybe someone found 
the bug and fixed it properly.  I don't know -- my bug (#7617) got marked 
as a duplicate of a later bug (#28212), which was resolved as WORKSFORME, 
which only means that nobody could reproduce the bug anymore.  This doesn't 
mean that the true source of the bug was necessarily fixed; it could have 
been masked.  (There have been other situations where bugs that seemed to 
be resolved got re-opened later because they were never actually fixed.)

Now, after the 10 hours or so I put in, the only certain information I had 
about the bug was that it occurred somewhere in the cross-platform HTML 
table code for incremental reflow.  Nevertheless, nobody was willing to 
change bug #28212 even to reflect the cross-platform nature of the bug, 
because they empirically assumed it was specific to the PC platform just 
because they didn't happen to have a confirmation of the bug from someone 
on a different platform.  This alone could have caused someone to look at 
the platform-specific code, where the bug would never be found.

Now, I could spend another 5-10 hours to verify whether this "WORKSFORME" 
bug was really fixed, or just seemed to be.  I hate to do it, since it 
seems to be a moot point -- it doesn't seem to be affecting the user now.  
Then again, I may do it for some closure on this investigation -- I don't 
know if it was really fixed, and I hate to close the book on it without 
knowing for certain.  After all, if the bug was masked and not really 
fixed, it could turn up again.  I've already done most of a root cause 
analysis; anyone else would have to repeat work I've already done.  If it's 
truly fixed, I could verify that and satisfy myself that the bug won't 
recur, and maybe get the bug changed to more accurately report the fix.

In practice, I'm reluctant to spend the additional hours chasing down the 
loose ends on this issue, especially since it seems likely that it doesn't 
matter anymore.  I may do it anyway, on general principle, eventually...

My point is this.  I spent at least 10 hours of my time working on a root 
cause analysis of this bug.  Mozilla is a large, complex project, with well 
over a million lines of code.  True, I was able to track down (within an
hour or three) what part of the code was misbehaving (the HTML table code
for incremental reflow), but that still left several thousand lines of code 
to analyze in great detail.  I learned a lot about how that portion of the 
code works, but my goal required more time than I had available.  Before my 
investigation was complete (due to lack of time available on my part), the 
codebase had changed enough that the bug was no longer exhibited.

[End of Mozilla digression, more or less...]

So how effective was the 10 hours I spend chasing this one bug?  The code 
was complex enought that it had a steep learning curve.  Yes, I learned a 
lot about that particular code, but what are the odds that the next bug I'm 
trying to track in Mozilla will be in the HTML table incremental reflow 
code, rather than somewhere else in the millions of lines of source?  That 
10 hours could have been spent much more productively on a smaller project 
more in need of help than Mozilla.  That's a large part of the reason why I 
haven't done much serious work on Mozilla since -- it doesn't seem like a 
good investment of my time if that's all the time I can spend.

For me to spend a few hours here and there on Wine would probably be even 
worse.  It's also a large, complex codebase which is a moving target, but 
it's based on the Windows APIs, and I have NEVER programmed anything to 
those APIs.  (As a matter of policy, I've chosen to avoid programming for 
the Microsoft platform.)  I'd have to deal with a very steep learning curve 
for the complexity of Wine's codebase AND the Windows APIs as well.  Most 
of my time would be spent climbing that learning curve, and little would 
benefit the project.  And without an abundance of time to spend on it, 
what's the point of starting up that learning curve, if I don't have the 
time to get to the top and start making worthwhile contributions?  That's 
not an effective use of my time, so I can't justify spending it that way.

Now, if there's some small area of Wine which doesn't require intricate 
knowledge of the codebase or much of the Windows APIs, maybe I could help 
in such an area.  It would probably have to be extremely low-level, since 
the higher-level code tends to build on the low-level stuff, requiring a 
deeper knowledge of the system.

For example, what's the state of the Windows IPC mechanisms?  I seem to 
remember being told that Windows IPC calls hadn't been implemented -- this 
surprised me, since it seemed like it should have been one of the easier 
things to implement.  If the Windows IPC calls are well-documented (which 
they may or may not be, I know _nothing_ about them), then I imagine it 
shouldn't be hard to implement them in terms of Linux IPC mechanisms that 
are available in the underlying OS.  That's the sort of thing I might be 
able to help with in the time I have available.  I don't know; I'd need 
some help just to learn if it's feasible or not...  (Any volunteers?)

> I said what I said. Look BSD/X11 are valid licences and sometimes things 
> work out to everybodys advanage. If thats the way you want to release 
> your code/patches fine but we went though this before in the original 
> licence debate.  LGPL give's a lot of leeway for proprietary components. 
> This trading however is designed to make the LGPL tree meaningless and 
> the reason for the licence switch was because things were not working out.

At least trading can force them to give back something, instead of just 
taking.  How much would depend on the parameters of the trades.

> But trading makes the LGPL go away...  catch 22...

Trading doesn't make the LGPL go away.  It does place you at a less 
demanding level than strict LGPL compliance does, which in turn places you 
at a less demanding level than strict GPL compliance.  It's all a question 
of degree.  At what point do you "take your ball and go home"?  When it's 
not to your benefit (e.g. LGPL + trading) or whenever someone disagrees 
with your methods at all (e.g. GPL), or somewhere in between (e.g. LGPL)?

> No. This is the time to say no.  "Come on just this once..." Does not 
> work for an argument.

The argument was effectively that making the trade this once would be a 
path to the dark side, and therefore it couldn't be risked.  I find it hard 
to believe that a trade or two could have such a corrupting effect.  Is it 
really so hard to refuse trades in the future, just because you accepted 
some before?  How is that any different, really, than switching to a more 
restrictive license after using a permissive one before?

> Brevity is the soul of...

Yeah, so why did you quote large sections of my message that you weren't 
even replying to?  At least I only quote the parts I'm replying to, for 
the sake of context...

Deven
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.