GPL + non-free libraries

I have written several applications that I would like to release under the GPL, BSD, or Apache license, but they depend on my own third-party library.

My question is:

If I need to make calls to this third-party API, but I do not distribute third-party libraries as part of the project, can I say that the program is open source?

In addition, is there a possibility of legal problems showing third-party APIs in this case, even if their IP address is not distributed?

+4
source share
3 answers

The program is free and open source, but there is no combination of program and library, and the program itself may not work. It depends on what the library actually does, and how important it is to the functionality of the program.

If this is a library that is part of the operating system or is usually installed on your users' systems, users will already have it, and you will give them the FOSS program, like any FOSS application that runs only on Windows (for example, Miranda) or the FOSS plugin for a larger proprietary program.

Another case is when you have an additional function for interacting with a proprietary application in the system, for example, the FOSS communication program, which has functionality for accessing the address books of third-party applications, including proprietary ones, such as Outlook. In this case, the library is not required at all for the core functionality.

If, however, you create a stand-alone program, the main functionality of which depends on the proprieatry library (for example, all the functionality is in your own library, and only the GUI is FOSS), your application will be FOSS in theory, but not in practice, because the library is integral part of your application that cannot be removed.

Please note that you are likely to violate the GPL if you use any third-party GPL code or libraries, unless your own library is part of the operating system. Therefore, do not use third-party GPL code and third-party native code together. (Of course, if you do not distribute the library of third-party developers or use only your own code, this will probably be legal, but you would create a combination of software that would be illegal for distribution in working form.)

+1
source

The question itself is a bit confusing, partly because you are mixing terminology.

First, the GPL right away. The direct GPL requires that all who distribute the software also distribute all sources to everything related to it. Your users cannot do this, so they cannot spread. You can still distribute your code because you own the copyright to your code, but no one can.

Because of this, you really cannot claim that your program is free software .

BSD and Apache can be more forgiving. I do not use them, so I am not familiar with them. If you can or cannot distribute, perhaps this is more related to the license for this proprietary library (of which you did not say anything). For a proprietary license, it would be pretty easy to get you to work with Open Source Definition . All he needed to do was restrict the redistribution in any way or discriminate against the use of certian.

So, based on this and the comments that I see, I have to say no, it probably won’t qualify as free software or OpenSource. However, this does not prevent it from being useful to those people who have a license for a third-party library, so I do not think that any of these verbal technical characteristics should restrain you. It must be clearly stated that redistribution will be legal only in the form of source code. To redistribute the executable files, you will need to use a permissive license ( not the GPL ), and it will need to be distributed in accordance with the license of a third-party library to redistribute the binary files that it compiled into (probably not disassembling, etc.). This should also be understood.

+1
source

As for the GPL, your GPL has an answer to your question: Can I write free software that uses non-free libraries?

In short: you can use the GPL, but you will need to provide additional permissions to use non-free libraries.

Details described in What legal issues arise if I use GPL-incompatible libraries with GPL software?

If you want your program to link to a library that is not covered by the System Library Exclusion, you need to grant permission to do so. The following are two examples of license notifications that you can use to do this; one for GPLv3 and one for GPLv2. In any case, you must put this text in every file to which you grant this permission.

Only program copyright holders can legally release their software in accordance with these conditions. If you yourself wrote the entire program, then provided that your employer or school does not require copyright, you are the owner of the copyright, so you can allow the exception.

As for copy licenses (BSD, etc.), they do not prohibit linking with non-free libraries, so you can use them as is without special additions.

Of course, the overall level of freedom of your software package will be limited by the library licenses that are required for distribution with your software. So I would like to cite gnu.org again:

So please consider: can you find a way to do the work without using this library? Can you write a free replacement for this library?

If the program has already been written using a proprietary library, it may be too late to change the decision. You can also program, not release it. But please indicate in README that the need for a non-free library is a drawback, and propose the task of changing the program so that it does the same job without a free library. Please suggest that anyone who thinks to do substantial further work on the program, first free of charge depending on a proprietary library.

0
source

Source: https://habr.com/ru/post/1334207/


All Articles