C Board  

Go Back   C Board > Community Boards > General Discussions

Reply
 
LinkBack Thread Tools Display Modes
Old 06-20-2007, 11:53 AM   #1
Registered User
 
code2d's Avatar
 
Join Date: Nov 2006
Location: Canada
Posts: 87
Proprietary software and gnu linux

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
__________________
Compiler in use: MinGW

OS: Windows ME
code2d is offline   Reply With Quote
Old 06-20-2007, 11:59 AM   #2
C++ Witch
 
laserlight's Avatar
 
Join Date: Oct 2003
Location: Singapore
Posts: 11,288
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.
__________________
C + C++ Compiler: MinGW port of GCC
Build + Version Control System: SCons + Bazaar

Look up a C/C++ Reference and learn How To Ask Questions The Smart Way
laserlight is online now   Reply With Quote
Old 06-20-2007, 12:05 PM   #3
Disrupting the universe
 
Mad_guy's Avatar
 
Join Date: Jun 2005
Posts: 242
Quote:
Originally Posted by code2d View Post
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.
__________________
operating systems: mac os 10.6, debian 5.0, windows 7
editor: back to emacs because it's more awesomer!!
version control: git

website: http://www.nijoruj.org/~as/
Mad_guy is offline   Reply With Quote
Old 06-20-2007, 01:52 PM   #4
Senior software engineer
 
brewbuck's Avatar
 
Join Date: Mar 2007
Location: Portland, OR
Posts: 5,755
Quote:
Originally Posted by Mad_guy View Post
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.
brewbuck is online now   Reply With Quote
Old 06-20-2007, 08:47 PM   #5
Frequently Quite Prolix
 
dwks's Avatar
 
Join Date: Apr 2005
Location: Canada
Posts: 7,698
The word "static" only occurs once in the LGPL:
Quote:
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?
__________________
dwk

Seek and ye shall find. quaere et invenies.

"Simplicity does not precede complexity, but follows it." -- Alan Perlis
"Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
"The only real mistake is the one from which we learn nothing." -- John Powell


Other boards: DaniWeb, TPS
Unofficial Wiki FAQ: cpwiki.sf.net

My website: http://dwks.theprogrammingsite.com/
Projects: codeform, xuni, atlantis, nort, etc.
dwks is offline   Reply With Quote
Old 06-20-2007, 09:10 PM   #6
The Right Honourable
 
psychopath's Avatar
 
Join Date: Mar 2004
Location: Where circles begin.
Posts: 1,068
Quote:
Originally Posted by brewbuck
AND provided you do not link statically.
I was under this impression aswell.
__________________
Memorial University of Newfoundland
Computer Science

Mac and OpenGL evangelist.
psychopath is offline   Reply With Quote
Old 06-20-2007, 09:46 PM   #7
C++ Witch
 
laserlight's Avatar
 
Join Date: Oct 2003
Location: Singapore
Posts: 11,288
Quote:
The word "static" only occurs once in the LGPL
Within the preamble, so it does not really count, as I understand.

Quote:
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.
__________________
C + C++ Compiler: MinGW port of GCC
Build + Version Control System: SCons + Bazaar

Look up a C/C++ Reference and learn How To Ask Questions The Smart Way

Last edited by laserlight; 06-21-2007 at 11:47 PM. Reason: Typo: Changed "only static linking" to "only dynamic linking".
laserlight is online now   Reply With Quote
Old 06-21-2007, 04:31 AM   #8
Cat without Hat
 
CornedBee's Avatar
 
Join Date: Apr 2003
Posts: 8,492
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.
__________________
All the buzzt!
CornedBee

"There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
- Flon's Law
CornedBee is offline   Reply With Quote
Old 06-21-2007, 06:40 AM   #9
Registered User
 
code2d's Avatar
 
Join Date: Nov 2006
Location: Canada
Posts: 87
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
__________________
Compiler in use: MinGW

OS: Windows ME
code2d is offline   Reply With Quote
Old 06-21-2007, 06:51 AM   #10
Massively Single Player
 
AverageSoftware's Avatar
 
Join Date: May 2007
Location: Buffalo, NY
Posts: 141
Quote:
Originally Posted by code2d View Post
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.
__________________
There is no greater sign that a computing technology is worthless than the association of the word "solution" with it.
AverageSoftware is offline   Reply With Quote
Old 06-21-2007, 08:30 AM   #11
Cat without Hat
 
CornedBee's Avatar
 
Join Date: Apr 2003
Posts: 8,492
The simplest is probably the BSD license.
__________________
All the buzzt!
CornedBee

"There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
- Flon's Law
CornedBee is offline   Reply With Quote
Old 06-21-2007, 02:46 PM   #12
Frequently Quite Prolix
 
dwks's Avatar
 
Join Date: Apr 2005
Location: Canada
Posts: 7,698
Sorry to hijack this thread, but this Wikipedia entry contains this:
Quote:
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.
__________________
dwk

Seek and ye shall find. quaere et invenies.

"Simplicity does not precede complexity, but follows it." -- Alan Perlis
"Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
"The only real mistake is the one from which we learn nothing." -- John Powell


Other boards: DaniWeb, TPS
Unofficial Wiki FAQ: cpwiki.sf.net

My website: http://dwks.theprogrammingsite.com/
Projects: codeform, xuni, atlantis, nort, etc.
dwks is offline   Reply With Quote
Old 06-21-2007, 03:29 PM   #13
Cat without Hat
 
CornedBee's Avatar
 
Join Date: Apr 2003
Posts: 8,492
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.)
__________________
All the buzzt!
CornedBee

"There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
- Flon's Law
CornedBee is offline   Reply With Quote
Old 06-21-2007, 05:48 PM   #14
Frequently Quite Prolix
 
dwks's Avatar
 
Join Date: Apr 2005
Location: Canada
Posts: 7,698
Hmm, interesting. Thanks for the post. I'll have to do some research about this.

[edit] 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 [/edit]
__________________
dwk

Seek and ye shall find. quaere et invenies.

"Simplicity does not precede complexity, but follows it." -- Alan Perlis
"Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
"The only real mistake is the one from which we learn nothing." -- John Powell


Other boards: DaniWeb, TPS
Unofficial Wiki FAQ: cpwiki.sf.net

My website: http://dwks.theprogrammingsite.com/
Projects: codeform, xuni, atlantis, nort, etc.

Last edited by dwks; 06-21-2007 at 05:58 PM.
dwks is offline   Reply With Quote
Old 06-22-2007, 12:13 AM   #15
C++ Witch
 
laserlight's Avatar
 
Join Date: Oct 2003
Location: Singapore
Posts: 11,288
Quote:
The simplest is probably the BSD license.
MIT/Expat is arguably simpler, as are some of those public domain "licenses".
__________________
C + C++ Compiler: MinGW port of GCC
Build + Version Control System: SCons + Bazaar

Look up a C/C++ Reference and learn How To Ask Questions The Smart Way
laserlight is online now   Reply With Quote
Reply

Thread Tools
Display Modes

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Linux for GNU/Linux is not correct? password636 Linux Programming 8 03-31-2009 08:30 PM
Software optimization Scarvenger C++ Programming 34 12-14-2007 02:56 PM
A couple questions punkrockguy318 Tech Board 4 01-12-2004 10:52 PM
Text Editor (RH Linux) LittleJohn C Programming 10 12-15-2003 03:41 AM
Linux Media Player joshdick A Brief History of Cprogramming.com 43 09-07-2003 08:08 AM


All times are GMT -6. The time now is 12:17 PM.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22