Can I distribute my software (without source code) which uses a couple of components under GPLv3 and LGPL 2.1?

| | August 6, 2015

Lets say I have developed a desktop application which is making use of two components, a TextField and Editor – the TextField under LGPL 2.1 and the Editor under GPLv3. No modifications were done in the libraries themselves – simply linking binaries and using them. Under such circumstances am I free to distribute my application in the web without disclosing the source code of my application? If I have to disclose, which portion do I need to? I want the users to freely download and use the application but protect the source code of my application. Is this possible(if yes, under which license)??

My recent research tells me this should not be a problem as stated here:
Can I dynamically call a LGPL/GPL software in my closed-source application?

With all the legal twists it gets all confusing. The legal documents are lengthy and the more one reads the deeper one goes.

2 Responses to “Can I distribute my software (without source code) which uses a couple of components under GPLv3 and LGPL 2.1?”

  1. IANAL but a software developer, but you must respect the licenses you make use of. It looks like that you have questions about if and how the LGPL and the GPL apply to your software. However you have not given concrete examples which leads to generalization of which I think is outlined as the following answer. This is no legal advice and if you have concrete legal questions, you should consider contacting your legal support / team / department or just a lawyer on your behalf who might be able to clarify things:

    I have developed a desktop application which is making use of two components, a TextField and Editor – the TextField under LGPL 2.1 and the Editor under GPLv3.

    If you use third party software in your application, you need to fulfil the licenses requirements of all the used software components. The requirements are in the license texts:

    Both licenses are so called free software licenses with copyleft. That means both licenses are in the spirit to keep the source open as a measure to retain the freedom of the software.

    That includes, if you use, modify or extend the code and you offer the resulting binary for distribution, you need to offer sources as well, so the freedom is preserved.

    Where-as

    • the LGPL type of license only stretches over a specific component of it’s own – often a library. As with any terms in programming, library can mean a lot, so take a look in the license text itself which specifies the boundaries of such a work and the implications this has on interfacing with it.
    • and the GPL type of license stretches over the whole package at the time of distribution. That means, if you make use of some GPL code in your application and you create a binary out of it, you need to offer your package under GPL.

    No modifications were done in the libraries themselves – simply linking binaries and using them.

    Both licenses allow you to do modifications, so the question whether or not you made modifications is not making much of a difference.

    As for the GPL’ed software, it makes no difference whether it’s a library or some other type of work.

    Licensing requirements are effective with first use.

    Under such circumstances am I free to distribute my application in the web without disclosing the source code of my application?

    As you wrote that you create a desktop application I assume with “distribute my application in the web” you mean that you want to offer a download of the binary software package.

    As the GPL stretches over the full package at the time of distribution (copyleft), you need to preserve the freedom which means that you need to offer sources of your package.

    If I have to disclose, which portion do I need to?

    For the LGPL’ed code, you need to offer sources and interoperability for the library/component/submodule of your package.

    As you’re making use of GPL’ed code as well, you need to offer sources for the whole package.

    As you need to fulfil requirements for all components, this means that you actually need to distribute your own code and the LGPL’ed part under GPL. Doing so with the LGPL is normally not a problem (see this compatiblity matrix as an example).

    I want the users to freely download and use the application but protect the source code of my application. Is this possible (if yes, under which license)?

    No, that’s not possible. The source-code actually protects itself against such a practice because you would hinder the freedoms given with the code (use, share, study improve). Such a practice would for example hinder your users to study the source-code and improve it.

    The GPL effectively prevents this. So no.

    You would need to get into agreement with the original authors of the components you want to make use of in binary distribution and do an individual licensing-agreement if you still want to continue to distribute that software non-free.

    My recent research tells me this should not be a problem as stated here (Link) …

    I can not see that from the usage you outline in your question. If you feel different, you could clarify which concrete components you want to use (e.g. which TextField and Editor exactly). Also you could outline the type of use, do you compile the source-code and how for example. Are you invoking the editor only? How do you plan to distribute the components together etc. .

    This might be about mere aggregation, but not with what you have outlined in your question:

    With all the legal twists it gets all confusing. The legal documents are lengthy and the more one reads the deeper one goes :P

    That’s why there are lawyers that can explain all that for you ;)

    But as long as you relate to standard use-cases and you have a true motivation to respect the requirements of those licenses, it’s not difficult at all. The free software community has founded a sound basis of what is accepted and what not regardless of legal details or border-line cases. It does not have to be complicated at all.

    In your case as you don’t want to offer source-code, I’d say that you have first of all chosen the wrong components to build your software on top of it. Period.

    If you already finished your work, you can release your package under GPL-v3 and give a written letter that the user can get the source-code or distribute the source-code with it (which is often more easy), see the license text of the GPL for the details.

    If that does not match your personal requirements, you must remove the GPL’ed components from your software and distribute your desktop application w/o sources.

    If both is not an option for you, you might have asked this question too late. What should I say? Consider to release under GPL and feel good for sharing the freedom :P. However, I don’t know your application so I can’t judge about that, it’s your decision.

    Sometimes if you think twice what you actually need to protect, you find out that you’re driven by fear which is counter-productive. Get flexible. I personally profited from sharing my code more than from giving binary chunks. And yes I’ve done both.

  2. IANAL, but I have had to work with them for licensing an application before.

    As long as you don’t modify or statically link gpl code you should be fine. The danger there is that depending on how it’s used you could have been forced to release as gpl. You will need to decide what kind of license you want to use for your application BEFORE you release it though.

    Based on your needs, you may be able to write a standard boilerplate license for yourself along the lines of “This is copyright to me. There may be bugs which can cause serious issues. Not my fault, use at your own risk.” And any other language about what they’re allowed to do etc.

    If this is for a company, not hobby project, and there is money involved, you should ignore me completely and get someone qualified instead of ‘guy on the internet’.

Leave a Reply