I want to sell a closed-application that depends upon a certain command line tool. Am I allowed to distribute my software including this command line tool?

For example, as a separate binary accompanied by the proper NOTICE file and if needed the source code.

Do I need to explain how I call this binary, so the user could swap it?

  • 2
    Depends on it in what way? How is the LGPL code invoked? – cpast Dec 11 '14 at 19:49
  • To preserve spitit of LGPL, you should also allow the user to override the command-line tool if he wants (i.e. not check the signature or checksum of the tool). – Vi0 Dec 12 '14 at 10:02

Do consult a lawyer for this, anything you get from this site (such as the answer that follows) will not free you from any liability nor guaranteed that you will be safe from prosecution. This site is most definitively NOT a proper replacement for any sort of legal advice.

Now to the matter at hand, from what I understand, LGPL will allow inclusion of a licensed library if the user of your proprietary software can replace, on his own, the LGPL components with his own. This implies that either you used it directly without modifications or provide the source code with your modifications to the component and that you provide sufficient means for the customer to perform the modifications.

In other words the LGPL must guarantee that the customer remains free to do whatever it pleases to the LGPL covered parts that are shipped with your application without going though you first.

The wikipedia page is a pretty good place to get started to understand this http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License

you could try browsing groklaw see if they covered the subject


Again this is NOT legal advice in anyway do get yourself a lawyer to help you through this properly.

Thanks to GpN to fin this FAQ that pretty much covers what you are looking for.

  • 1
    So a command line tool counts as a library? – Nick Russler Dec 11 '14 at 16:33
  • @NickRussler: It's LGPL anyway. The "arms length" stipulation only applies to GPL. – Robert Harvey Dec 11 '14 at 16:35
  • 3
    I think it would yes, akin to a dynamically loaded DLL, just more loosely coupled (Thus easier to respect the LGPL's terms). – Newtopian Dec 11 '14 at 16:35
  • @Newtopian, AFAIK, the nature of the linking does not influence if something is a dependent work or not, nor does the structuring in two or one executable. (That may help meeting the licensing requirement though, especially in the case of the LGPL). – AProgrammer Dec 11 '14 at 17:15
  • 1
    There is an additional constraint involving the ability to "swap-out" the LGPL tool for another one. This is trivially achieved by having the path in a config file. – Joshua Dec 11 '14 at 18:32

LGPL allows you to link or embed binaries without opening your own source, so long as you provide the source code for the binaries and publish any changes you make to the libraries.

You must also deploy your application in a way that allows someone to replace the LGPL'd library, if they so choose. In practice, this means that you must dynamically link to the library, so that a compiler and your source code are not required to perform the linking.

  • So you think i don't need to explain to my user how to exchange the binary? E.g. by explaining the params i use to call the binary. – Nick Russler Dec 11 '14 at 16:35
  • 3
    No, that's not a requirement of the LGPL, AFAIK. – Robert Harvey Dec 11 '14 at 16:35
  • 1
    No need to explain how it works: the purpose of the lgpl is to allow someone to take the source to the lgpl component, modify and recompile it, and then use the modified version with your program. It's assumed that in order to do this they'll need to understand how the original lgpl component works, but not how your program does. – Jules Dec 11 '14 at 18:58
  • 2
    @RobertHarvey: You missed one requirement that the LGPL puts on you: It must be possible for the end-user to replace the LGPL code with a compatible version of his/her own. – Bart van Ingen Schenau Dec 12 '14 at 10:04
  • 2
    @Newtopian: That is right, and because it is such a hassle to replace a static library, the LGPL for all practical purposes requires dynamic linking with a non-GPL application. – Bart van Ingen Schenau Dec 12 '14 at 19:35

The text of the LGPL is complex, as it attempts to define the term 'link', since the LGPL is intended to cover libraries. So it's a completely open legal question as to whether incorporating an LGPL executable (which is not a library) as part of a larger work is:

  1. the creation of a derivative work exempted from GPL provisions by the LGPL.
  2. the creation of a derivative work not exempted from GPL provision by the LGPL.
  3. the creation of a 'mere aggregation', and so not subject to the terms of the license at all.

It would depend on how a court decided to construe the exemption in the LGPL and how that same court would view what you've constructed. It may depend on exactly, technically, how you combine that executable with the rest of your stuff.

In case (1) or (3), you only have to make the source of the command itself available. In (2), you'd have to make all your source available.

In short, if there's a lot of money on the line here, you'll need legal advice.


AFAICT it is not forbidden to sell (L)GPLed software, as long as you provide a way to get its source; e.g. Red Hat does exactly this. I assume you don't make any modifications to the (L)GPLed tool, so linking to the canonical source code should be fine.

It looks like the tool is specifically designed to be included as a part of a non-GPL derived work. At least, so it works for LGPL libraries that you can link to a non-GPL binaries.

Note: IANAL.

  • 3
    The question is not about selling. – Robert Harvey Dec 11 '14 at 16:22
  • 1
    Nor is it about GPL but LGPL. – Cody Piersall Dec 11 '14 at 16:24
  • 3
    @RobertHarvey: The question is basically whether the closed-source program is a 'derived work'. If the tool is covered with LGPL (not plain GPL), it looks like it is specifically designed to be included as a part of a non-GPL derived work. At least, so it works for LGPL libraries that you can link to a non-GPL binaries. – 9000 Dec 11 '14 at 16:25
  • @9000 exactly, but the main point of your answer seems to be that "it is not forbidden to sell [...] as long as you provide [...] its source". You also suggest that modifying the (L)GPLed tool would change the situation. It doesn't, it's the exact same thing, you have to distribute the source code for the tool. – GnP Dec 13 '14 at 19:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.