I just want to make sure I understand the BSD license, correctly.
1. If I were to build a piece of software on, say, OpenBSD, would I have to open-source it? Even if I used gcc and the libraries that came with BSD, to compile it? Are there any specific components of BSD that, if I used them, I would have to?
2. When it says that a binary distribution must reproduce the license, does that just mean that it has to have a screen that shows the license information? Like a "click here to display license information" button?
3. Nobody can change the file, then use my name to endorse it. Does that mean nobody can change it and then say it's mine ("putting code in my mouth", if you will)?
4. Can I SELECTIVELY give out source code? For example, if I have a friend that programs, can I give him the code, even if I don't give it to everyone? (For example, if I need help tracking down a bug...)
5. I'm still not liable for accidental damage. If a bug somehow accidentally wipes your hard drive, I can't get sued, right?
I'm just trying to see if I understand this, correctly. I like the idea of giving away source code, but I don't want to be FORCED to give it away, before I'm ready.
I'm starting a program that I would like to eventually open-source. I'm just not comfortable giving the code away until the project has matured. (For example, I'd like my early beta versions to be binary-only.)
Thanks in advance!
Alex Cavnar, aka alc6379
10-22-2004, 02:37 PM
Okay... here's how I understand it:
Originally posted by mage492
I just want to make sure I understand the BSD license, correctly.
1. If I were to build a piece of software on, say, OpenBSD, would I have to open-source it? Even if I used gcc and the libraries that came with BSD, to compile it? Are there any specific components of BSD that, if I used them, I would have to?
The BSD license isn't as restrictive as the GPL in this sense. If you used BSD licensed code, you wouldn't have to open source it, but you would have to provide the BSD license text with the product.
2. When it says that a binary distribution must reproduce the license, does that just mean that it has to have a screen that shows the license information? Like a "click here to display license information" button?
Yup. Should suffice, I'd imagine.
3. Nobody can change the file, then use my name to endorse it. Does that mean nobody can change it and then say it's mine ("putting code in my mouth", if you will)?
AFAIK, yes. They can't take your code, improve/modify it, and then say that you did it. They could, however, release their own version, using your code, and give you no credit whatsover. All they're bound to provide is the text of the BSD Copyright. It's a double-edged sword-- there are no strings attached to the code (free as in beer, but not neccesarily in speech) , but that means that anyone can snarf it for any purpose.
4. Can I SELECTIVELY give out source code? For example, if I have a friend that programs, can I give him the code, even if I don't give it to everyone? (For example, if I need help tracking down a bug...)
5. I'm still not liable for accidental damage. If a bug somehow accidentally wipes your hard drive, I can't get sued, right?
Yes. You can selectively give out source code with the BSD license. That's different from the GPL, where if you give a binary, you have to give source. You can give it out in binary form, so long as you provide the license text and disclaimer. Also, that disclaimer is what protects you from liability. In fact, that's the whole disclaimer:
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS
``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 THE REGENTS OR CONTRIBUTORS 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.
I'm just trying to see if I understand this, correctly. I like the idea of giving away source code, but I don't want to be FORCED to give it away, before I'm ready.
I'm starting a program that I would like to eventually open-source. I'm just not comfortable giving the code away until the project has matured. (For example, I'd like my early beta versions to be binary-only.)
Thanks in advance!
With the BSD license, you're more than welcome to do as you've stated. Heck, if you really wanted to, make your own license for initial releases, and then you could always switch subsequent releases over to another license, should you so choose.
bwkaz
10-22-2004, 06:51 PM
Right -- nothing keeps you from dual-licensing code, or changing the license on it, as long as you own the copyright on it. You can make the first few releases binary-only (distributed under any license you choose), and then make subsequent releases be GPL or BSD or whatever.
The only thing that would keep you from doing that is if you didn't own the copyright (for example, if you had accepted patches from someone else). If you accept a patch from someone else, and you don't have them sign copyright hand-over documentation like the FSF requires contributors to do, then you're required to get their permission before changing the license on any program you distribute that contains that patch (and probably also anything based on it).
However, I would strongly caution against making the first release binary only. The reason is that you'll get a lot more and better help from other people if they can look at your source code, even if it's only the first pre-pre-alpha version. Most open source projects start out releasing version 0.0.1 with only the smallest bits of code in it. The important thing is to ensure that there's enough code there to make others think that it has the potential to do well -- because that way they'll help you more readily. It doesn't have to work, it doesn't have to be pretty, but it does have to have the potential to do either or both of those.
fatTrav
10-22-2004, 09:15 PM
Originally posted by mage492
(For example, if I need help tracking down a bug...)
My experience has been that other users will find and offer potential solutions to fix the bugs more than the initial developers. Afterall, those who developed it know what it can and can't do and don't often stress the code enough to get it to croak. They'll get it to puke in all kinds of interesting ways, and often those other users are some of the best ways to help make your program more secure (esp with a web-based product cos u're too busy workin on it and they're spending their time trying to hack/crack/break it).
Testing is (so darn important too!) awfully hard to simulate sometimes, a skill that isn't taught in many CS classrooms that I've seen/sat in/or heard about.
justlinux.com
Copyright Internet.com Inc. All Rights Reserved.