PDA

View Full Version : Proprietary software and gnu linux



code2d
06-20-2007, 11:53 AM
I have been wondering a question for the longest time which for me is only about 2 days...about the gnu license. It seems the gnu is a license to make software free.
Not possibly without charge but the freedom of open source. Would this mean making software for the gnome desktop on linux that is proprietor software which does not release the source, would be breaking the gnu license?

Any thoughts are welcome

-thanks

laserlight
06-20-2007, 11:59 AM
It depends on the situation, but generally no. Even if you used GTK+, development of proprietary software should be no problem since that is under the LGPL.

Mad_guy
06-20-2007, 12:05 PM
Not possibly without charge but the freedom of open source. Would this mean making software for the gnome desktop on linux that is proprietor software which does not release the source, would be breaking the gnu license?

No. If you use for example, a lbrary that is licensed under the LGPL, it allows the library to be used in a proprietary work, providing credit is given and the license is copied. So proprietary software with something like an LGPL'd piece of code (a library) isn't really a problem.

The GPL itself is a little different. If you make any sort of derivative works or use a piece of GPL'd code in your own work, you must provide the source to your code and you must also release it under the GPL as well.
There're other stipulations than that, however, so I suggest you check the wikipedia article (http://en.wikipedia.org/wiki/GPL).

brewbuck
06-20-2007, 01:52 PM
No. If you use for example, a lbrary that is licensed under the LGPL, it allows the library to be used in a proprietary work, providing credit is given and the license is copied.

AND provided you do not link statically. This ridiculous requirement, IMHO, renders the LGPL a useless piece of crap.

dwks
06-20-2007, 08:47 PM
The word "static" only occurs once in the LGPL (http://www.gnu.org/licenses/lgpl.html):

When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library.
And the word "dynamic" does not occur at all.

The LGPL is at version 2.1, whereas the GPL is at version 2, so perhaps they have fixed this? Can you elaborate?

psychopath
06-20-2007, 09:10 PM
AND provided you do not link statically.
I was under this impression aswell.

laserlight
06-20-2007, 09:46 PM
The word "static" only occurs once in the LGPL
Within the preamble, so it does not really count, as I understand.


The LGPL is at version 2.1, whereas the GPL is at version 2, so perhaps they have fixed this? Can you elaborate?
That only dynamic linking is allowed by the LGPL is the common interpretation, I believe. The FSF has not "fixed" this, but rather now recommends the GPL even for libraries to try and give "free software developers an advantage over proprietary developers".

On the other hand, some (including Larry Rosen) have argued that linking creates a collective work, not a derivative work, in which case it may be legal to (at least dynamically) link a library licensed under the GPL to proprietary code.

Disclaimer: I am not a lawyer, this is not legal advice/opinion.

CornedBee
06-21-2007, 04:31 AM
The issue with the LGPL is that it still requires of you that you distribute your application in such a way that an updated version of the LGPL library can be used instead of the one the program is currently linked with, provided that the updated version doesn't introduce any incompatibilities, of course.

For dynamically linked libraries, this is simple. Just replace the shared object.

For statically linked libraries, it is not. If you want your non-LGPL/GPL program to statically link against an LGPL library, you must provide a way to re-link your application against a new version of the library. Typically, this means distributing all object files along with the final executable, but it also means distributing additional libraries you link against, and if these are commercial, you might not have the licence to do so.

code2d
06-21-2007, 06:40 AM
I see. Thanks for clearing the matter up everyone. I finally I believe I have a clue. I can see that the gpl/gnu license is not a simple license. Well... I can't say that because it is the first license I actually tried to read lol.

-thanks everyone

AverageSoftware
06-21-2007, 06:51 AM
I see. Thanks for clearing the matter up everyone. I finally I believe I have a clue. I can see that the gpl/gnu license is not a simple license. Well... I can't say that because it is the first license I actually tried to read lol.

-thanks everyone

Try reading some other licenses and you'll see that the GPL is one of the simplest out there.

CornedBee
06-21-2007, 08:30 AM
The simplest is probably the BSD license.

dwks
06-21-2007, 02:46 PM
Sorry to hijack this thread, but this Wikipedia entry (http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License) contains this:

A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

CornedBee
06-21-2007, 03:29 PM
I believe this is a misunderstanding, but of course I'm no lawyer. If I remember the arguments correctly, though, the term "work that uses the library" only applies to the source code of the program that uses the library, as well as object files created from the source code, but not to executables linking against the library because, even if it is shared linking, the resulting executable (at least when it is loaded by the executing computer) is a derivative work and thus subject to the license.
Clause 6 of the license handles the case of derivative work that is a combination of the library and separate source code. (I.e. executables, but also object files containing long inline functions from the library. This is particularly important in C++, as, because of the way templates work, an LGPL template library will cause most of the object files compiled with the library's headers to be derivative works. This, because of the terms of clause 6, means that you'll have to provide the source code for these files.)
Clause 6 says that you're allowed to distribute these works, but only if one of two conditions is satisfied (paraphrased - the license text actually splits it into 5):
Either you use dynamic linking. If you distribute the library (instead of demanding that it is otherwise obtained), you have to follow the license, i.e. make the source of the library available.
Or you provide the means to relink the library with your "work that uses the library" so that the user can change the library (for which you must make the source available) and use it with your work.
This, by the way, is the crucial point regarding C++ templates above. Since the implementation of templates becomes part of the object files, you must provide a way to regenerate the object files after the user has changed the templates (which he is entitled to, under the LGPL). Effectively, this means providing the source code.

Good thing the GNU C++ Standard Library is under the full GPL, huh? ;)
(Which, by the way, is interesting and good to know. You can't use the default C++ library of GCC for commercial software. You have to replace it, most likely with STLort.)

dwks
06-21-2007, 05:48 PM
Hmm, interesting. Thanks for the post. I'll have to do some research about this. :)

It looks like there are some licenses that are basically identical to the LGPL, but modified to allow static integration into proprietary programs, such as this one: http://www.wxwidgets.org/about/newlicen.htm
or http://www.opensource.org/licenses/wxwindows.php

laserlight
06-22-2007, 12:13 AM
The simplest is probably the BSD license.
MIT/Expat is arguably simpler, as are some of those public domain "licenses".

code2d
06-22-2007, 03:54 PM
I actually have read the wxwidgets license in full. The only license ever in full I think. I guess because the freedom of multiplatform. Infact the reason for this post is because I installed ubuntu (linux) 2 days ago. Thats means over 3 computers I have windows me,xp,mac, and linux.

Although I have heard from others that the bsd license is simpiler I have not read one.

dwks
06-23-2007, 02:33 PM
You can read many open source licenses here: http://www.opensource.org/licenses/alphabetical

code2d
06-24-2007, 09:09 PM
Thats very cool.Its not all the licenses but a large amount of them. Many I didn't now of there existence...till now. Thanks my fellow Canadian (:

laserlight
06-24-2007, 11:14 PM
Thats very cool.Its not all the licenses but a large amount of them.
Actually, the OSI thinks just the opposite :p

Too many licenses, hard to choose, more difficult to manage should projects merge or use various libraries. They went to the extent of having a license proliferation committee to try and stem the problem, though most of what I see they have done is just group the licenses, heheh.

Kennedy
06-27-2007, 09:44 AM
If I port my program to GNU/Linux, does that mean I have to release it as Free Software under the GPL or some other Free Software license?
In general, the answer is no--this is not a legal requirement. In specific, the answer depends on which libraries you want to use and what their licenses are. Most system libraries either use the GNU Lesser GPL, or use the GNU GPL plus an exception permitting linking the library with anything. These libraries can be used in non-free programs; but in the case of the Lesser GPL, it does have some requirements you must follow.

Some libraries are released under the GNU GPL alone; you must use a GPL-compatible license to use those libraries. But these are normally the more specialized libraries, and you would not have had anything much like them on another platform, so you probably won't find yourself wanting to use these libraries for simple porting.

Of course, your software is not a contribution to our community if it is not free, and people who value their freedom will refuse to use it. Only people willing to give up their freedom will use your software, which means that it will effectively function as an inducement for people to lose their freedom.

If you hope some day to look back on your career and feel that it has contributed to the growth of a good and free society, you need to make your software free.

Found here (http://www.gnu.org/licenses/gpl-faq.html#PortProgramToGL). Basically, if you make software for a FSF/GPL OS eg Linux (is that enough acronyms? ;)) you have the right to keep the code proprietary. The only issue is that you MUST give anything that is FREE to the end user. The source code for the FREE parts also must be included into the package. The final note is that you also have the obligation to site that you are using the free code in your program.

As you can see in the above, they highly discourage this.