GPL and LGPL open source licensing restrictions

I am having trouble understanding the usage permissions of open source. I read somewhere that GPL or LGPL enforces that software that uses GPL software must also be released open-source. I want to create an application that uses some open-source image recognition library. Can I sell this application or does it have to be open source?

Thanks!


LGPL allows you to use and distribute the open source software with your application without releasing the source code for your application.

GPL requires you to release the source code of your application if you choose to use and distribute the GPL licensed open source software with your application. In other words, your application must also be licensed under the GPL.


  • GPL

    Other developers can borrow and modify the code and re-distribute it as part of their own project, only if their entire project is also licensed under the GPL.

    This prevents the code from being used in proprietary software.

  • LGPL

    Other developers can borrow and modify the code and re-distribute it as part of their own project, provided that the portion used under the LGPL is re-licensed under the LGPL. Other portions of the project are permitted have other licenses.

    This allows the code to be used in otherwise proprietary software.

  • The LGPL has a number of additional conditions that need to be met in order to be able to distribute it in a project with another license. For example, it must be possible for any user of the finished software to modify, re-compile or replace the portion of the software that is licensed under the LGPL and use this modified code with the same software. If you are publishing otherwise proprietary software containing some LGPL code, one way of satisfying this requirement is to place the LGPL code into a separate dynamically linked library, and to distribute with your software the necessary header files and documentation required to re-compile the LGPL portion in such a way that it can still be linked and used with the software as provided. It is not acceptable to take steps to prevent modification of the LGPL code such as obfuscating the code itself or the API or header files.

    Note that the LGPL is compatible with the GPL: you can opt to "upgrade" the code to GPL and incorporate it in a wholly GPL licensed project as set out in my first bullet point if you wish. You can't however go the other way and re-license GPL licensed code as LGPL.


    IANAL, but the concepts are fairly straightforward.

    First, you and your lawyer must read the GPL and LGPL licenses. Second, you should read the GPL FAQ. As far as I understand, you can think of using GPL/LGPL libraries in this way:

  • If you link dynamically or statically with a GPL or LGPL library, you have created a derivative work.
  • If you use a library that is GPL, and you link with that library, your software must be released with a compatible license.
  • If you use a library that is LGPL, and you dynamically link with that library, your software does not have to be released with a compatible license, but you must still comply with the LGPL.
  • If you use a library that is LGPL, and you statically link with that library, your software must be released with a compatible license.
  • The GPL/LGPL licenses mean "free" as in "free speech", not "free beer". You can create a derivative work and sell it for large amounts of money, but you must comply with the GPL/LGPL.
  • 链接地址: http://www.djcxy.com/p/79510.html

    上一篇: 使用非GPL许可证的GPL代码的许可软件

    下一篇: GPL和LGPL开源许可限制