There is an interesting debate going on in the open source community about the use of code under the BSD license with code under a GPL license. If you actually read the BSD license, or better yet have your lawyer read it, you will see that certainly is allowed. If you follow the BSD license to the letter, and include the BSD license with the BSD code you are using then you can certainly use BSD code within a GPL project. What confuses me is the fact that die-hard BSD fanatics have no problems with BSD code being uses in commercial projects from which no code is returned to the open source community, yet have a problem with the code being used within a GPL project.
The issue, I believe, is that the GPL is a more restrictive license than the BSD license because it forces you to share changes. This means that GPL code can not be used within BSD programs due to the basic fact that the code sharing requirements are not covered by the BSD license. This means that any changes to the BSD code within the GPL project would be under the GPL license. While someone could strip out all the GPL code and be left with BSD licensed code, they would not get the improvements. As the BSD license does not require sharing of improvements, this is a non-issue. If the author of the code wanted to make sure that improvements had to be shared, then they should have gone with a license that requires this, such as the GPL.
I tend to be a NIH (Not Invented Here) type programmer meaning that I tend to want to write as much of the code myself as possible. While I have no problem using the libraries that are a standard part of a language, I tend to avoid using third party libraries whenever possible. This is largely a result of bad experiences with closed source libraries. As code complexity continues to grow this is becoming less possible to not use third party libraries and I suspect that future projects will likely be built on top of other peoples code so issues like the one above are going to become increasingly important to me. My thoughts are that if changes are made to a third party chunk of code, those changes should be offered to the original project.
There are al lot of BSD fanatics who seem to live in an alternate universe where big businesses are honest and give back to the community as much or more than they take. My experience with big business is quite the opposite which is why most of my projects tend to be released under the GPL or LGPL for the very simple fact that I want any source code that I release to stay open. I think that most people who do go with a GPL license feel the same way which is why there is such a vast amount of projects that are licensed under it.
Showing posts with label BSD. Show all posts
Showing posts with label BSD. Show all posts
Tuesday, September 18, 2007
Monday, August 27, 2007
FLOSS - BSD Problems
In my last installment (yes, it has been a while) you may have noticed that I referred to the license as the new BSD license. Why the distinction? Older versions of the BSD license had an advertising clause that required people using the source code to include notices in their advertising if the ads mentioned a feature that was derived from BSD code. Of course, this clause was changed to reflect the organization that used the license, so if you used a lot of BSD code - likely in the form of function or class libraries - then your ads may have to contain dozens of notices. This flaw was removed from the license in 1999.
The big problem with the BSD license is that the source code does not need to be distributed. More importantly, changes to the code do not need to be distributed. This means that you can take a BDS licensed program and make improvements to it then distribute the enhanced program without source code. While people would still be able to find the original version of the source code if they searched hard enough, they would have to re-create the enhanced features from scratch.
While it is certainly possible to argue that you have no obligations to release your changes, the creators of the original code you are using were also not under any obligations. The fact that people could use BSD code without having to give anything back to the community is one of the reasons that other open source licenses were created and used, with the most prolific of these being the GPL. Of course, to properly understand the GPL, you first need to know a little bit about it's creator Richard Stallman.
The big problem with the BSD license is that the source code does not need to be distributed. More importantly, changes to the code do not need to be distributed. This means that you can take a BDS licensed program and make improvements to it then distribute the enhanced program without source code. While people would still be able to find the original version of the source code if they searched hard enough, they would have to re-create the enhanced features from scratch.
While it is certainly possible to argue that you have no obligations to release your changes, the creators of the original code you are using were also not under any obligations. The fact that people could use BSD code without having to give anything back to the community is one of the reasons that other open source licenses were created and used, with the most prolific of these being the GPL. Of course, to properly understand the GPL, you first need to know a little bit about it's creator Richard Stallman.
Wednesday, August 8, 2007
FLOSS - New BSD License
There are many times when people don't care if other people make money off their work or not. All they really care about is that they are given credit for their work. This is especially true of students who quite often want their work spread as far as it can so that potential future employers can see their work. This is especially true in the software field. Copyrights prevent the easy spread of ones work, while releasing something to the public domain means that while other people can see your work, they are under no obligation to tell people about the fact that the work is freely available or that you were the person to create the work. They can (and often do) take full credit for the work for themselves.
This is where it would be nice to have a middle ground between copyright and public domain. Guess what? You can already do this. Copyrights allows you to dictate what rights you give a person. You do this by creating a license for your work. The interesting thing is that unless a person has a license to use a copyrighted work, they are not allowed to distribute that work. The creators of copyrighted materials give permission to people by licensing their work to them. Open source licenses work the same as other licenses, but are granted to anybody who wants to agree to the terms of the license. In fact, because copyrights forbid anybody from using the work without the owner's permission, unless the distributor of the copyrighted material agrees to the license being offered to them by the copyright holder, they can not distribute the material.
One of the simplest of the various open source licenses is the BSD license. BSD stands for Berkeley Software Distribution and was named after the Unix variation that the Berkeley University released. The simplicity of the license helped to make it a fairly popular license among open source developers due to the fact that it is a very short license that gets right to the point.
Copyright (c),
All rights reserved.
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 nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Even non-lawyers should have no trouble understanding what that means. The license lets anybody distribute or change the software as long as the source code or documentation contains the license, which means that credit will be retained if the source code is distributed with the software.
This is where it would be nice to have a middle ground between copyright and public domain. Guess what? You can already do this. Copyrights allows you to dictate what rights you give a person. You do this by creating a license for your work. The interesting thing is that unless a person has a license to use a copyrighted work, they are not allowed to distribute that work. The creators of copyrighted materials give permission to people by licensing their work to them. Open source licenses work the same as other licenses, but are granted to anybody who wants to agree to the terms of the license. In fact, because copyrights forbid anybody from using the work without the owner's permission, unless the distributor of the copyrighted material agrees to the license being offered to them by the copyright holder, they can not distribute the material.
One of the simplest of the various open source licenses is the BSD license. BSD stands for Berkeley Software Distribution and was named after the Unix variation that the Berkeley University released. The simplicity of the license helped to make it a fairly popular license among open source developers due to the fact that it is a very short license that gets right to the point.
Copyright (c)
All rights reserved.
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
THIS SOFTWARE IS PROVIDED BY
Even non-lawyers should have no trouble understanding what that means. The license lets anybody distribute or change the software as long as the source code or documentation contains the license, which means that credit will be retained if the source code is distributed with the software.
Subscribe to:
Posts (Atom)