Wednesday, February 06, 2008

BSD impact ; take two.

Jimmy left a response on the GPL and BSD impact entry that I've been sitting on while I figured out how to address it. So, lets get started. My comments are in italics, Jimmy's responses in bold,
#4: Everybody who modifies the source code must submit the changes back to the original author

If I _distribute_ the changed software, I must make the sources available.
I am not forced to send my private changes back to the author.
Problem here is that that my original entry was not talking about private modifications. The examples and scenarios I gave dealt with the redistribution of a modified program, or inclusion in commercial software with a price tag. So, I'm not really sure what Jimmy is on about here. The licensing style of the GPL is designed to protect authors from having their code stolen or re-used. The BSD style license offers no such protection. Again, that is great if you don't care who uses it. It's perfect for items like the Ogg encoding formats where you will run into a lot of other licenses really quickly.
#5: Anybody can relicense modified code

With a BSD-Style license, while code can not be stolen, rights of ownership cannot be enforced either.

In fact, whoever made the changes could theoretically relicense the music program under a new license that would prevent Amarok from every implementing the performance fixes... even if they reversed engineered the fixes.

Further, the BSD license does not allow the licensed code to be re-licensed. It may, however, be included in a larger work which has a different license.
This is one of those comments where I'm not really sure the BSD communities and supporters really understand the implications of the BSD license style. Fact is, Microsoft has taken the BSD TCP/IP stack, has implemented into Windows, and has a restrictive license covering that usage. Fact is, once the BSD style licensed code is entered into another overall project with another license, that BSD style licensed code has effectively been relicensed. Sorry, that's reality. That's what has happened. Again, because of the terms of the BSD licensing style, whoever takes, modifies, and redistributes the code can effectively steal the code, and there is nothing the original author can do.

I'm not saying that is a bad thing. There are many cases in software where ownership of the code and contribution changes are deprecated points. I've already mentioned the Ogg Media formats. Another good case in point is the GATOS project. While it's been dead for a few years, it could not be merged into the X.org ATi drivers until it was relicensed under a BSD-Style license.
If you released your GPLv2 program at a cost, only people who have paid for the product have access to your source code.

Yeah, but if I buy your program I am allowed to make the binary and source available to everyone else, at no cost, if I want to.
Already went into this back with Auto Assault. Yes, you can make the binary and source code available to anybody else, but what about trademarked branding? The case in points are FireFox and MySql.

In the case of FireFox, only source code compiled into binaries by Mozilla can be distributed as FireFox. Binaries not compiled by Mozilla must be distributed with another name. There are also restrictions on the artwork. Which is why you have projects like SwiftFox and IceWeasel. Not that I'm a fan of wikipedia, but they do have a somewhat neutral write-up on the subject Ice Weasel.

The point is, despite relatively anybody being able to republish the FireFox source code with modifications once the branding is stripped, the source code spin-offs only have minor percentages of the overall FireFox market.

The real interest though is MySql. MySql charges for the enterprise edition, and ended public distribution of the Enterprise Edition source code. You can only get the code if you are a purchaser of the Enterprise Edition.

Ergo, the theory has already been put to the test. Only MySql clients buying the Enterprise Edition can get the code. Yes, somebody else could take it, and redistribute it, but they couldn't call it Enterprise Edition, could not call it MySql. Any changes made to the redistributed version would have to be submitted back to MySql themselves. Now I'm repeating the competitive advantage point I made in the initial run.

Now, I could go on and examine CentOS, or Sun's take on a branding stripped Linux, but I think the point has been made. Redistribution by a 3rd party isn't a big deal as long as the code changes keep flowing back. A GPL style license ensures that changes are at least submitted and known.

BSD? Doesn't do it. If that's what you want? It's there.

1 comment:

Unknown said...

"Problem here is that that my original entry was not talking about private modifications. The examples and scenarios I gave dealt with the redistribution of a modified program, or inclusion in commercial software with a price tag. So, I'm not really sure what Jimmy is on about here."

That was not clearly stated.
You make it sound as if the changes must be sent back to the author directly.

There would be less risk of misunderstanding if you write
#4: Everybody who modifies the source code and distributes the changed software, must make the changed source code available as well.

By the way, does the Gpl really guarantee that the original author get the changes back?
This quote from your other post: "If you released your GPLv2 program at a cost, only people who have paid for the product have access to your source code."

That does not include the original author, does it?

"Again, because of the terms of the BSD licensing style, whoever takes, modifies, and redistributes the code can effectively steal the code, and there is nothing the original author can do."

Well, that is the meaning of the license.
What I mean is that you cannot do things like these: http://undeadly.org/cgi?action=article&sid=20070829001634

Here is the license itself, minus the warranty disclaimer:
Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the organization nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.


Those are the conditions in all their glory:
You may use this code however you want, but you must, both in binary and source, have the copyright notice, conditions and disclaimer visible.

Here is some more on it: http://www.groklaw.net/article.php?story=20070114093427179

For the selling of gpl programs:
Sure, trademarks can be used, and can be ripped out.

Now, what is the big difference between: Mysql, Redhat and a game(Firefox is already free of charge so it does not fit in the comparison)?

Mysql and RHEL are used mostly by companies. For them, the extra security of using the Enterprise Edition is important.

Further, if one buys the Enterprise edition of something, it is probably for business. Now, why should he share the software with his competitors?

A gamer, on the other hand, has nothing to lose by sharing the game with others.

Most gamers do not really care if they are using the Genuine Auto Assault, as long as it is free, legal, and works just as the real thing does.
In this case, the possibility of getting hold of changes would not be very important for the creators, if the other party just re-brands and releases.

Then we could go into multi-player games and think up a scheme where only buyers of the original game are given the possibility to login to official servers, but that is also a fragile solution.

My point is just that it might be possible, but not many companies would risk their income on such a gamble as releasing a game under the gpl when that would not bring them many benefits, and they have a model that works already.

Anyway, my comment to your other post was not intended so much to argue with you, as to clear up some things stated in a way that they could be misunderstood.