Domanda

I'm working on a hobby Java project which is packaged into a .deb file containing several different JARs with different licenses, for example:

  • Google Gson (Apache License)
  • HSQLDB (Based on BSD)
  • Hibernate (LGPL)
  • (etc)

Even though I am really not ready to release or sell this idea/project/software, I was still wondering a bit about what is allowed and what is not allowed in general with these common licenses. For example, I've heard that GPL is the "worst" (not even allowing referenced/dynamically linked libraries without releasing everything wide open), but I don't know if it's true and I really don't know much about the other licenses.

For example, would any of the following scenarios be allowed if I would sell my software:

  1. Package all dependent JARs in a .deb package which is then distributed and installed by apt using a custom repository.
  2. Package only my code inside the .deb, and let the users install the dependent JARs by themselves (and specifying the class path to the JARs when starting my application).
  3. Sell pre-configured boxes with my software installed on it, together with a Linux distro and all the dependent JARs (only charge for the actual hardware costs, any extra charge would be for the software).

Thanks in advance!

È stato utile?

Soluzione

Just to be clear - I am not a lawyer, so your mileage may vary. If you're planning on making money from this... get a lawyer to deal with your licenses. However, this is my understanding of the GPL/LGPL

All of these scenarios are considered releasing the binary, so regardless of the method you are bound by the GPL/LGPL in the same way for all of them.

Under the GPL, you would in fact have to release your source code whenever you release the binaries (in this case the JAR files). You can always charge for a copy of your software - you just need to release the source code with it. Also, your code in this case would be required to be released under the GPL.

Under the LGPL, as to my understanding, you should be okay to bundle it with shared libraries (the library JARs) as long as you give the user the ability to replace those shared libraries with newer versions. You can, in fact bundle the shared libraries in your package as long as the license is included and the source for the libraries is available.

The google/bsd licenses are generally more permissive than the LGPL, but I don't have enough knowledge to give you a rough breakdown.

Altri suggerimenti

You should read each of the licenses and check that with your intended use. Most of the ones you've listed should not introduce too much extra work for you. If you don't want to release source-code of the derivative or compound work you create, you have to be careful to not use any code under a license that has copyleft, as those often require this in either full (GPL) or in part (LGPL). There could be also something similar to the classpath exception with some code licensed under the GPL family, so it really depends on the concrete terms.

The Apache or BSD-Like license have no copyleft (but they also have terms you must follow).

Best thing you could do is to read carefully each license and clarify specific questions you have with your peer group and legal support.

Otherwise you can consider to release your software as free software as well, which is normally a benefit for the whole community. But that's your decision.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top