Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm looking into potentially releasing some infrastructure code (related to automated builds and deployments) as OSS and I'm curious about how the various OSS licenses effect it.

Specifically, LGPL prevents the code itself (part/whole) being modified into a commercial product (which is what I'm after), but allows it to be "linked to" in the creation of commercial products (also ok).

How does the "linked to" clause relate to infrastructure code, which is not deployed with the product itself? Would the application still be required to provide "appropriate legal notices" (which I'm not fussed over)?

Would I be better off looking at the Eclipse Public License?

share|improve this question
    
The product can be commercial, you just have to ship the appropriate sources so it can be rebuilt if needed. –  user1249 Sep 4 '12 at 8:24
add comment

3 Answers 3

up vote 1 down vote accepted

I assume your code is something roughly comparable to the make tool.

Since your code is not distributed with the final product, just use the GPL if you do not want to have your code turned into a proprietary product (or a part thereof). Using the GPL for your tool does not affect the license of the program built with your tool in any way. You could also choose the LGPL, but that would allow your code to become part of a proprietary product (although that part would still be free as in speech).

Disclaimer: IANAL

share|improve this answer
add comment

Not a lawyer, but...

For infrastructure code, I'm not really sure the license makes a difference -- copyright covers redistribution not purpose; you can't make a copyright saying that they can't read it if they have bad intent (whatever you define as bad). You can restrict their ability to incorporate your work as part of their distributable work but not prevent them from using it to level a desk or beat someone over the head with it, nor from making modifications to it and then using that to level a *desk.

Copyright gives you the power to impose limitations on distribution of a derivative work, but not the creation of the derivative work, so you can't even produce half of something useful and prevent them from adding the other half unless they use the LGPL.

*altough you might be able to claim that applying it to someone's head was distribution... :D.

share|improve this answer
add comment

Disclaimer: I am not a lawyer. I would strongly recommend you speak to one if you are considering licensing software, particularly if you want to use it in a commercial product now or in the future.

If you want your software to be freely used by all, the best licenses are ones like BSD and MIT. These claim no responsibility for the code except for copyright and allow modification. People and organizations can use it in their products will relatively little concern other than including an attribution and the license text. This will get your code maximum coverage but gives you the least rights.

Licenses like the Apache, Eclipse and the Common Distribution and Development License (CDDL) are a middle ground. They are more detailed and stricter that the MIT and BSD licenses but place fewer restrictions on what the user can do than GPU license.

Lastly, you have licenses like Gnu Public License (GPL) and Lesser Gnu Public License. The GPL is particularly onerous because it requires any modifications to also be open source. If you want to prevent your product being used in commercial software, use GNU.

Before choosing a license consider:

  1. Do I own the source code? This may be harder to answer than it first appears. Have you copied an example from a web site? Are you using other open source software? If you do not own the code, open sourcing it could violate copyright or other agreements.
  2. Does the source code contain patents, trade secrets or protectable intellectual property? If yes, open sourcing it may reduce or eliminate the protection offered.
  3. Am I ever going to want to sell this source code? If yes, open sourcing it means others can too. Open sourcing software can be a great way to get assistance from the wider community, educate others and help customers find bugs. It can also shut down a revenue stream and expose any security flaws in the product. Depending on the license, open sourcing a component may be effectively saying "I going to make money from services or something else other than selling this software".
  4. Am I happy with other selling or modifying the source code? If not, a more restrictive license such as GNU may be in order. Alternatively, you can always provide the source code to paying customers with a license that prevents them from distributing it. Maybe a custom license is on order.

Whether your code is infrastructure or not is incidental. This is as much a business decision as ideological.

Remember that licenses are written by lawyers and certain terms may have specific or ambiguous definitions. Take the term "distribution". I create a web site and the code is housed on the web servers only does that count as distribution? Another legal concern surrounds the term "use" or "integrate" because the boundaries of some modules are unclear.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.