Thread: Proprietary software and gnu linux

  1. #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

  2. #2
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    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.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  3. #3
    Disrupting the universe Mad_guy's Avatar
    Join Date
    Jun 2005
    Posts
    258
    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://0xff.ath.cx/~as/

  4. #4
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    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.

  5. #5
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    Location
    Canada
    Posts
    8,057
    The word "static" only occurs once in the LGPL:
    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.

  6. #6
    The Right Honourable psychopath's Avatar
    Join Date
    Mar 2004
    Location
    Where circles begin.
    Posts
    1,071
    Quote Originally Posted by brewbuck
    AND provided you do not link statically.
    I was under this impression aswell.
    M.Eng Computer Engineering Candidate
    B.Sc Computer Science

    Robotics and graphics enthusiast.

  7. #7
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    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.
    Last edited by laserlight; 06-21-2007 at 11:47 PM. Reason: Typo: Changed "only static linking" to "only dynamic linking".
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  8. #8
    Cat without Hat CornedBee's Avatar
    Join Date
    Apr 2003
    Posts
    8,895
    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

  9. #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

  10. #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.

  11. #11
    Cat without Hat CornedBee's Avatar
    Join Date
    Apr 2003
    Posts
    8,895
    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

  12. #12
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    Location
    Canada
    Posts
    8,057
    Sorry to hijack this thread, but this Wikipedia entry 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.
    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.

  13. #13
    Cat without Hat CornedBee's Avatar
    Join Date
    Apr 2003
    Posts
    8,895
    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

  14. #14
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    Location
    Canada
    Posts
    8,057
    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]
    Last edited by dwks; 06-21-2007 at 05:58 PM.
    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.

  15. #15
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    The simplest is probably the BSD license.
    MIT/Expat is arguably simpler, as are some of those public domain "licenses".
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

Popular pages Recent additions subscribe to a feed

Similar Threads

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