开发者

Correctly Applying an Open Source License [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accept开发者_运维知识库ing answers.

This question does not appear to be about programming within the scope defined in the help center.

Closed 7 years ago.

Improve this question

My question consists of multiple points that are inherently related, I apologize for that. I tried splitting it up a little more, but I would keep repeating myself.

  1. What exactly is required to apply an open source license to a code base that is my Intellectual Property?
  2. A lot of Open Source projects include a full copy of the license somewhere in a root directory but do also have some sort of file header including a license description, disclaimer and a copyright notice. Is that really necessary or does it depend on the license type?
  3. If someone else contributes changes to this file, does he need to be named in the copyright notice too?


Disclaimer
I am not a lawyer, so you should really consult with one to get absolutely correct answers here.

To the best of my knowledge...

Whenever you author something, whether it be code or anything else, you automatically become the copyright owner of that work (unless you've signed an agreement whereby it is "work for hire").

As the copyright owner, you can apply whatever license you like. The fact is that, if you don't give out a license, then no one has any right to use, copy, modify, distribute, etc. your coyrighted work. So, users need your license to have permission to use the project (if you don't give a license, it cannot, contrary to popular belief, be presumed public domain). So, you don't need to worry about people ignoring the license... if they can't point to a license where you grant them rights to use your software, as the copyright owner, you can sue them for using your copyrighted work without your express permission to do so.

It is typical in open source projects to place the license in a file named "LICENSE" or "COPYING" in the top-level directory of the project. I suggest that you stick to this convention, since that is where people will look for the license. It is also good to indicate what the license is on the project's website, so that people don't have to download your whole project before they know what the license agreement is.

It is not necessary to include a full copy of the license in each source code file, although this is fairly common practice. Keep in mind, though, that putting a full copy of the license (or at least some indication of copyright ownership and the name of the license, if it is a well-known license) in any header files that you install will avoid any confusion as to where the header files originated, so it is reasonable to do that.

If you own the project and others contribute in a fashion similar to "work for hire", then it is not necessary to name the contributors. However, you should make it explicit (and get a permanent record of an agreement from contributors) that you will remain the sole copyright owner of the project, despite contributions made. Otherwise, the contributors do have copyright ownership over the files/code that they contributed.

One last thing, not related to the question... I highly recommend that you avoid GPL and LGPL, and go for a more permissive license (e.g. MIT, New BSD, Simplified BSD), as the former will limit the adoptability of your code, and projects with more liberal licenses, if they do become adopted in the industry, have the potential to be backed by the industry (e.g. the Apache Foundation has strong industry support, because, unlike GNU/FSF which mistakenly views open source and closed source as enemies, sees them as collaborators, and so uses licenses that allow their projects to be widely adopted by the industry world).


Disclaimer: IANAL. That said, here are some random thoughts on the topic:

The term "Intellectual Property" bundles together many kinds of law: patent, copyright, trademark, and trade secrets, among others. Applying a license to a work you create will affect how your work can be used. Because each license allows for different uses of your code, how you apply the license is usually specific to which license you choose. For example, information about how to license your code under the Apache 2.0 license can be found at http://www.apache.org/licenses/. Note that projects managed by the Apache Software Foundation also require each contributor to grant the ASF copyright for the work. Granting of copyright is separate from the license.

I'd recommend reading Van Lindberg's "Intellectual Property and Open Source" to learn some terminology, and if you have significant commercial interests related to the code, spend a few hours with a lawyer.


Disclaimer: I am not a lawyer, the below is simply my understanding of OSS licensing. If I'm wrong, I'd appreciate any corrections.

  1. Clearly state (on your project website, in source code, documentation, splash screen, about dialog, etc.) that the project is licensed under whichever license you select.
  2. Considering the nature of open source, if a portion of your project is used in a different project owned by someone else (e.g. some useful utility class), having the "basics" of the license as part of your source code's header text makes it clear which license governs the use of that specific source file, and who owns the copyright on that portion of code in the project as a whole.
  3. Yes, unless they have supplied you with documentation stating that they have transferred copyright to you (I believe some larger projects require contributors to do this?).

For an example of applying an OSS license to a project, see http://www.gnu.org/licenses/gpl-howto.html


A license is simply the rules you expect others to abide by if they do anything (use it, modify it, post it, make fun of it, whatever) with your code.

a) You can put what you want, but to be taken seriously, you may use a license that is already nicely written and accepted ... check opensource dot org /licenses/category for a (loong) list b) To decide which type of license, check out this recent aricle: http://www.itbusinessedge.com/cm/community/features/guestopinions/blog/ringing-in-the-new-year-with-clean-intellectual-property/?cs=38892&page=1 . Common ones are GPL V2, LGPL, Apache, New BSD- check out the summary matrix on Page 2 of the article c) make sure your software doesn't include code from other open source or 3rd party, otherwise you'll be claiming theirs as yours- not a good idea! There are tools you can use on trial basis to scan your code. d) put the text of the license in a License.txt or Copyright.txt file in the folder. Also add a simple (or complex, if you wish) header to the source files as Kimvais mentions in the previous post.

Good luck.


Short non-lawyer answer;

  1. Nothing except making it clear to anyone that you, the sole author of the code, license the code under whatever terms.
  2. It is advisable to have the license file in the root directory. I would personally add in the "top comments" of all files the line Copyright 2010 <Your Name>. Released under <license name> in <Your country>. The last part is so that you can claim that the license was never meant to be interpreted under any other law than your local (so you can get a competent lawyer in your home country in the event that everything goes wrong)
  3. I would say that this depends on the license you choose

For further info, read this book - or consult a lawyer with experience of software licenses.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜