BitKeeper Love Triangle: McVoy, Linus and Tridge
erktrek writes "NewsForge has given a brief interview to the parties involved in the (inevitable?) BitKeeper debacle." Here is some of our previous coverage.
← Back to Stories (view on slashdot.org)
I wouldn't excatly call it love.
...to make a better statement.
This kind of thing looks bad to the entire community and makes corporations question their liability if it's found their products in use have been copied. OSS doesn't need this kind of anchor around it's neck.
I hope this addressed openly and completely in the near future.
Curiouser and curiouser.
And, incidentally, since Larry is so offended by Tridge's reverse engineering, I take it that he's taken the moral stand, and backed up his strong principles by making sure that none of BitMover's employees use Samba, either at work or in their spare time.
Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
Reverse engineering is perfectly legitimate, and excellent products have emerged because of it, such as Samba.
What is interesting is if other open-source projects will follow Linus' footsteps. KDE, I believe, still uses BK.
It seems that Larry McVoy has a fine line between a replacement and reverse-engineering (in this case compatibility?).
From the article (Torvald's statement):
" What Larry is _not_ fine with, is somebody writing a free replacement by just reverse-engineering what _he_ did."
I always am sympathetic to reverse engineering efforts, because frankly interoperability is ultimately a good thing. I am not sure what sort of principle we can follow if reverse-engineering is bad in this case. Where is the line? Is it a property line?
You've put together the friggin' _kernel_. This is a lot more complicated than creating a version control system. Just take Monotone (which I like as it is), and make a BitKeeper killer out of it. Have Tridgell do it with a few other gurus. Yeah, it's probably gonna take half a year, but the benefit to the open source community will be immense.
And thereby create a free version of BitKeeper that uses BitKeeper's protocol and does everything BitKeeper does on BitKeeper's trees, without actually being BitKeeper.
Why not just write a free alternative if Tridge is so concerned about non-free tools?
Here is what Linus himself said, quoted from the article. I can't help but agree with it:
Quite... if McVoy really thinks reverse-engineering a 100% compatible substitute is "free-loading" I'd hate to see what he regards as "hard work". Maybe programming directly in machine code by hovering a very accurate magnet over the HD by hand? :)
the layman's guide to computer science
He was most likely asked or forced to sign some form of Non-disclosure agreement. This is even more likely if lawyers were or are involved (in which we'd have no way of knowing if all involved parties keep silent).
Regards,
Steve
Once again, Linus shows he more of a practical guy than a political ideologue. He recognized the cost to BitMover and suggested the rational solution for them. I think Linus' role in this is being underreported--he appears to have been on McVoy's side all through this.
No, you don't need to agree to IIS's license. But when you use someone else's site/servers, you do need to respect them. Perhaps even honor a license When someone puts something on the web just to be nice, we should be equally polite and decent about accepting it. Please remember that while Larry did do some of this to help Linus and Linux, and it helped him with marketting, it was still done pro bono.
I don't think that tridge did anything illegal here, but it was wrong. And if he tested using bitkeeper's servers, he might be guilty of unauthorized access.
And FWIW, I wish that there had been a better FOSS package for Linus to consider a few years ago and this whole issue could have avoided.
- doug
On the other hand, I see plenty that is ugly about BitMover trying to impose the terms of their license on a guy who apparently didn't even use their software to build a free replacement for it.
"Then this 'Tridge' guy comes along, and is *so* opposed to BK that he is determined to fight against it using tactics that are legal, but not especially moral, ethical, or friendly."
Yes. And why can't he? What's immoral or unethical about trying to interoperate with a program which performs a task very well, is popular and has restrictions attached to its usage that someone sees as making the program inaccessible to themselves, completely within the bounds of the law?
"Then, while a temporary cease-fire is arranged so that the matter can be discussed and resolved maturely, he violates this truce."
The "ceasefire" was temporary while the situation was being resolved. (BTW: Where was the "war" and/or who was threatening it? It was more an investigation into the situation). Obviously, there *wasn't* any sort of resolution and people have squarely placed the blame on Tridge.
How? He (I assume) agreed not to reverse engineer the program as part of his work. You can't stop him, or guilt him into stopping, from performing a perfectly legitimate activity in his own personal time.
"So now that so much happiness and productivity has been ruined, are the license zealots happy? I hope so."
Lost happiness is questionable, lost productivity is probably undeniable. However, how much more productive could someone be with an OS or otherwise free version of this same tool, with all of the custom additions they require?
Linus himself has always said that he'd love to be able to use some OS equivalent of BitKeeper but that one did not exist. Tridge was obviously taking steps towards creating something along those lines, or at the very least building a helpful tool to improve BK's usage.
The problem is not licensing choice, or zealotry. The problem stems from people's perception that somehow emulating a good tool is blasphemous, immoral, illegal and generally bad. Of course, having an OS equivalent of BK will not be in BK's own interest because they would probably see some dip in sales, hence the clash of personalities that we've seen in this case.
However, people always knew that this point was going to turn up and that there would be controversy. Somehow, McVoy is being depicted as some sort of spurned hero and, in a way, that may be correct. He's got a good tool that is well-crafted, no doubt, but at all points it was obvious that the more popular it got, the more people would emulate its functionality.
McVoy isn't a hero. He's a good programmers. Tridge isn't some sort of villain. He's legally emulating functionality that he can't enjoy under his own terms any other way.
Somebody modded a perfectly good comment down as a troll. Perhaps they took it the wrong way. If I had mod points, I'd bump it back up. I don't, so I'm reposting it:
I'm going to disagree with you. It is immoral to reverse engineer while relying on the goodwill of the people you are reverse engineering. If you can't see that, I can't explain it any more clearly. -- winkydink
This seems pretty reasonable to me. I can understand how people have different opinions than BitKeeper's author, but his position isn't unreasonable. He went out of the way to support Linux kernel development, and he feels that having OSDL pay somebody to copy his work is a betrayal of his generosity.
Once I waive the cloud of zealot spray away from my face a bit, I still have the same question: How is reverse engineering BK right when the company he worked for said it wouldn't in a legal agreement? Isn't this what happned? moral or immoral doesn't count. BK had a standard clause (look at any software licence and you'll probabaly see it) that said you can use our product as long as you don't use the product against us. OSDL agreed (through Linus I believe) that they wouldn't reverse engineer. They said so in a legal agreement (licence). There is someone under thier pay reverse engineering it.
Argue on the right and wrong of such an agreement in the first place. Argue on the details of how far the agreement reaches. The first is about something in the past. The second is about somethign going on now. But, They are really different arguments. And to claim no problems exists seems kinda funny to me since the licence doesn't just go away because you don't like it.
AB HOC POSSUM VIDERE DOMUM TUUM
- - - a guy who apparently didn't even use their software...
I'd imagine it to be hard to create a piece of software that interacts with BK repositories without actually using BK first. Or are the specs available for download?
What are the limitations with the various obvious candidates ? Is support for merging binaries the killer feature ?
What made BitKeeper so special in the first place ? Shouldn't a really good SCM server system have a standardized, controlled interface that can allow simple, third-party clients, anyway ? If Tridge had limited his client to doing check-outs, and had avoided modifying the source tree with it, would the BitKeeper folks have been OK with _that_ amount of reverse engineering ? And who works with the leaders in open-source software while being so against reverse engineering ?? That seems odd.
But ignore that last set of questions. Really, I just want everyone in this thread to tell me what the really, really good open source SCM system I'm not using is. Unless it's Subversion, in which case I want you all to tell me what to look out for.
a) Corruption. BK is a complicated system, there are >10,000 replicas of the BK database holding Linux floating around. If a problem starts moving through those there is no way to fix them all by hand. This happened once before, a user tweaked the ChangeSet file, and it costs $35,000 plus a custom release to fix it.
I really don't get how a single ChangeSet file could wreak havoc to all those repositories out there.
"(Ironically, many users and distributions are likely to actually not mind slightly slower development for a while. One of the most common worries for users is just the fact that 2.6.x has continued to be developed at a very high rate thanks to just how smoothly it's been working, so I bet some people are both upset and gratified by this all. ;)"
I just have one thing to say: About fucking time.
I'm on an out of date 2.6 kernel right now because every 2.6 kernel I've used has replaced one set of show-stopping bugs with another. I'd rather just stick with the show-stoppers that I've worked around (in this case, I use a Promise IDE card because the kernel doesn't support an SATA hard drive and a CD drive on the same chipset) than get a whole new set of show-stoppers that I may not be able compensate for.
I rarely criticize things I don't care about.
Larry McVoy says in the interview that one problem with reverse-engineering BK is "Corruption. BK is a complicated system, there are >10,000 replicas of the BK database holding Linux floating around. If a problem starts moving through those there is no way to fix them all by hand. This happened once before, a user tweaked the ChangeSet file, and it costs $35,000 plus a custom release to fix it."
This would make me feel so good about using BK for my commercial project. Apparently, if anyone corrupts their own personal changeset store, the whole system is screwed.
I agree with McVoy at this point: Tridge shouldn't reverse-engineer BK. Instead, he should create a more robust and maintainable clone of Monotone or OpenCM, which attempt to handle distributed changesets in a trustworthy fashion using cryptographic signatures. Thank goodness the kernel is coming out of BK---I had no idea.Linux is basically a reverse engineered Unix.
A bit of pickiness is in order here. Strictly speaking, linux was an independent implementation of POSIX, not Unix(TM). Yes, POSIX was a rubber-stamping of Unix Sys/V as an industry standard. But the distinction is important, legally and ethically. When governments require that you follow an official standard if you are to sell to them, it's really not right to tell me that I can't follow the standard without getting into legal trouble with some corporation. Publishing a spec as an official standard should give me permission to build tools to the standard. This is what Linux did, and everyone outside SCO seems to agree that it was legal.
Saying it's "reverse engineering" to implement a published, official standard stretches the meaning of the phrase so far that it becomes nearly meaningless. Next I expect to hear that if I use meters or grams, I'm "reverse engineering" a measurement system.
Of course, this doesn't really apply to the current discussion, since BK isn't exactly a published standard.
I'm still looking for an explanation of exactly what Tridge did that qualifies as "reverse engineering". TFA and other supposed explanations don't seem to explaining anything. I can't tell what the offending code actually did, and why it's considered "reverse engineering". Tridge seems to say that it did something that BK didn't do already. Or am I misreading something?
Those who do study history are doomed to stand helplessly by while everyone else repeats it.
And in fact I have a lot of respect for Linus for dropping BK now right on the spot, when the problems it created were becoming too big -- after he had been unimpressed by 3 years of anti-BK flaming...
Indeed. I've been staying out of this as I know too much about what really happened to comment publicly.
But one thing I will say is that tridge has done *nothing* wrong in this matter.
As for his short reply to the question, unfortunately this is for reasons outside his control.
Jeremy Allison,
Samba Team.
I read the entire article and several associated links, thanks. He didn't say that he didn't use BitKeeper. He said he didn't use it for his reverse engineering. I think we're going to find out that although he didn't use the BitKeeper tool "at home" during his reverse engineering, he had to use the BitKeeper tool at work, and thus was bound (whether he knew it or not) by the license, which I'm sure includes a "no reverse engineering" clause. There's all kinds of arguments going back and forth about how "reverse engineering" is or isn't illegal, or is or isn't immoral. The truth is that it's not illegal and you can probably argue both sides of immoral. But it is definitely a violation of the license agreement, and therefore subject to civil law. The only way he could avoid this is if he truly never used _any_ of the BitKeeper tools while at work, and if he obtained a BitKeeper database (upon which to experiment) from some source completely unconnected with his employment. I seriously doubt this is the case, and because of this I believe he implicates either himself or OSDL. Maybe I'm wrong. For his sake, I truly hope so.
GreyPoopon
--
Why is it I can write insightful comments but can't come up with a clever signature?
If I disasemble your code to find out how you did something and then make my own version that is probably a clear case of reverse engineering.
If I use your product for a period of time and keep notes of all it's features (and bugs!) and then create a work alike based on my notes is that also reverse engineering?
Samba was clearly reverse engineered, and it HAD to be done that way because M$ dosen't publish any details on the workings of their net protocols necessary to build a work alike. Does M$ gain anything from Samba? Perhaps they don't lose some sales of Office and Windows OS because by having Samba available a customer can choose to keep their windows desktop sytems and applications while using Unix for their inferstructure.
I cannot fault BK for having an anti-reverse engineering clause in their eula for the 'free' version of the product. As long as someone had purchased the 'enterprise' version I would think some form of functional reverse engineering (not necessarly disassembly and copy) would be fair game.
I expect that in the future I will be able to give a more detailed response, but for now I can only tell you the following:
I'm sorry, but there is no way to write "a tool that is interoperable with BitKeeper" without using BitKeeper. How in the world did he test his tool? How does he know it's interoperable? Well, the only way is to actually try it. Which means his comment "I did not use BitKeeper at all" is a completely lie.
And the men who hold high places must be the ones who start
To mold a new reality... closer to the heart
He possibly couldn't as his previous employer might well would have a claim to such patents.
Larry quite possibly formulated most of his bitkeeper ideas during the course of developing an SCM for a previous employer. I use that SCM a lot, and its like a primitive version of bitkeeper - SCCS underneath, push/pull distributed SCM around it on top. From what I read of Bitkeeper it seems very much the next logical iterative step from this "earlier version".
Lesson #1:
From what I can tell, BitMover got involved with the Linux kernel for very little or no money. Expecting a return from giving your product away for free and expecting return in the form of corporate profit is a huge mistake when it appears the business model is product (not support/integration service) oriented.
Lesson #2:
Every good idea gets reversed engineered. Take it as a compliment that your software is being reversed engineered. In this article and judging by some of the comments, it's not viewd as complimentary and it might land the parties in court. (I won't get started with the problems with American IP)
Personal Opinion and Off-Topic:
(Here's where I get modded down) Reverse engineering should be valued as an accomplishment in American culture. A reverse-engineered product is typically lower in cost and innovates because more consumers can afford it.
http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
Watch network traffic between the client and the server, and reimplement it based on what you see. It's easy enough. You don't have to be the one running the client - you just tap off of someone else.
That other person doesn't even have to know that you're doing it. Just plug the server into a hub, plug another computer into another port, and spy on all the traffic - all of which is completely legal.
Here, he's avoiding the bnetd problem, where they reimplemented it based on what they saw when they ran the game, which means they agreed to the Battle.net licenses. Tridge never saw, never knew of, and never agreed to the license.
It's even easier because Tridge knows fundamentally what the client is doing - accessing the Linux kernel and adding patches, for which the source code is available in both cases.
Bitmover hosts the project for you and instructs you to use their client to work with the server.
Wait a second, that is how BitKeeper works? _They_ host the server and you use a non-free client to access it? And Linux uses _that_ as its main repository? Someone wake me please.
Of course it runs NetBSD. BTC: 1NT7QvbetmANwaMzhpVL6
It is a bit disturbing, isn't it? Almost as disturbing as these various people trying to claim that Tridge is immoral and/or evil for reverse-engineering Bitkeeper's file format(s) and/or network protocol(s). Bizarre.
I've lost a fair chunk of respect for Linus over this. Mind you, Linus has a hell of a lot of my respect he can easily afford to lose :), but the cheek of him slagging off Tridge (when Tridge almost certainly did nothing wrong) is pretty offensive.
I'm glad it's finally over and Larry has taken his bat and ball and gone home to sulk. Maybe he can buy himself a few new toys with that half a million per year (or whatever) he'll now be saving in free-bitkeeper-maintenance costs *roll of eyes*.
As an aside, (begin sarcasm) I've often wondered how it is that FreeBSD can possibly maintain a kernel even remotely comparable to the Linux kernel. After all, they use CVS, which is the crappiest source control system there is... right? :-)
Well once again we see the wisdom of RMS's position that you try for 100% non-proprietary software.
Time and again, he has been proven correct, and others (like me) who are willing to compromise or cut corners proven wrong.
MP3 -> ogg-vorbis
KDE/QT -> Gnome
BitKeeper -> ???
Others I prob don't know about.
The article cites Torvalds summarizing McVoy's position:
Compatibility is honest competition and it requires understanding protocols to work as a drop-in replacement. There is nothing so original about BitKeeper that it would pass the criteria of this statement. But the next statement from Torvalds underscores a theme on why we should not place Torvalds in the position of "posterboy" for a long-term movement:
Well, I can, and Torvalds ought to be able to. In science and art (and perhaps those categories draw an artificial difference which is much more blurry in reality) everyone rides someone's coat-tail. Again, the work done by the speaker would not pass the test suggested by these statements. The Linux kernel does a lot of things that are not original. One of the major reasons it was able to become a practical kernel is because of its design--HURD developers talk of the difficulty of debugging a multithreaded kernel replacement which slows down their development progress. A monolithic kernel, it has been said, is easier to debug and faster to add new features to. The GNU/Linux operating system benefits from Samba and OpenOffice.org which are built on reverse engineering Microsoft's underdocumented and changing protocols and file formats.
This is part of why I believe Linus Torvalds is about to make the same mistake twice, choosing a non-free program for Linux kernel maintenance because he values popularity and short-term technical gains like more than software freedom.
Digital Citizen
While the agreement was made between Linus and McVoy, Tridge positioned Linus in the middle of the shit.
I think that everyone just needs to take a moment and look at what actually happened here.
Bitkeeper created a truly exceptional source management software. Linus had a problem with what he was currently using, and was in search of a new tool. Bitkeeper provides Linus with a free version which allows him to use the tool, thus providing two things: (1) an exceptional source management tool for Linux, (2) unbelievable publicity for Bitkeeper by having perhaps the most famous developer in the world using and advocating his product.
Fast foward 3 years. Bitkeeper has established itself as a solid company on its own right, and spends a considerable amount of money maintaining the relationship with Linus. An open source developer starts developing an open source version of the Bitkeeper product, which is essentially happening because the product is being given away for free. Essentially, what is happening here is that McVoy is spending money to provide a free version that is actively being used to create an open source competitor to his product.
As much of an open source fan as I am, I have to see McVoy's stance on this. Why should he spend money to indirectly support the creation of a competitor to his product? Because he's got a good heart and knows that it is good in the long run? He's also not stupid, and realizes that the open source version will get along just fine w/o his indirect funding.
Now let's find a villian, shall we?
Option 1: Linus. Linus has done no wrong. He used the best tool at his disposal. It wasn't open source, but it was a small amount of evil for a greater amount of good (linux kernel moved along quite well with bitkeeper). Now he's looking for another solution. Villian? I don't think so. Opportunistic? Definitely.
Option 2: McVoy. McVoy provided Bitkeeper free of charge for 3 years and kept up development on the free version. Changed his mind when Tridge wouldn't quit developing the open source version which essentially reverse engineered the work he had done and created a valid competitor. Made the proper business decision, lost his best marketing tool. Villian? Don't think so. Opportunisitic? Definitely.
Option 3: Tridge. Didn't like using the proprietary software, and decided to reverse engineer what had already been created. This caused McVoy to have problems with the business relationship. Result is that Linus has to find a new SCM solution, but also that new energy will be thrown into SCM in an open source way. Villian? Not at all. Opportunistic? Definitely.
My conclusion? There is no villian here. The entire relationship was doomed to fail eventually. Everyone got something out of it while it lasted. Linus got great source code management. McVoy got _amazing_ advertising. Tridge got to create an open source version of one of the best SCM systems out there. Who is the winner? Probably everyone. Who is the loser? I can't think of one right now.
http://www.theregister.co.uk/2005/04/11/torvalds_a ttack/
Probably something to do with the fact that while the horse was giving rides to one Linus it was also biting bystanders, kicking anyone who ever even thought about getting another horse and kept leaving copious amounts of manure on various people's front lawns. Not to mention that after a short while it became apparent that the "gift horse" was not in fact a horse at all but an obnoxious ass named Larry dressed up in horse-skin who concocted the whole sharade in order to satisfy his greed and pitiful need for accolades for his "unique" and oh-so-impossibly-clever Capital Horse Idea(tm). So after the ass was indeed beaten and its teeth pulled before it run away heehoing, Linus was left with a decaying horse-skin of sentimental value to him and a lot of people with clean lawns and out of range of hoofs and thus much better for it. And the world kept on turning...
http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PT O2&Sect2=HITOFF&p=1&u=/netahtml/search-bool.html&r =5&f=G&l=50&co1=AND&d=ptxt&s1='Sun+Microsystems'.A SNM.&s2=skinner.INZZ.&OS=AN/%22Sun+Microsystems%22 +AND+IN/skinner&RS=AN/%22Sun+Microsystems%22+AND+I N/skinner
I believe Larry thinks he should be listed as co-inventor (and he probably should), but that isn't what the patent says. I don't really care for the purposes of this dicussion, but just wanted to verify that my memory isn't completely gone. Note that there was a fair amount of prior art leading up to this.
On a side note, maybe I'm being paranoid, but if Linus has magical scripts that can get data out of BitKeeper, it might be wise to ignore them and continue reverse engineering. The reason being McVoy could, X years down the line, say "Hey, I wrote part of those scripts; the copyright belongs to me. Cease and Desist and trash your current repository."
Ok, that probably won't ever happen, though I can see McVoy turning into the next SCO.