On Tue, 3 Dec 2019 10:44:36 +0000 Primiano Tucci <primiano@xxxxxxxxxx> wrote: > Furthermore, from a pure technical viewpoint, dynamic linking is a major pain > for many cross-platform projects because has different subtleties on each > platform. Most projects just ship big statically linked monoliths. > Having a LGPL dependency in Perfetto means telling them "if you want to use > this tracing project you need to change your build rules / packaging strategy > and start dealing with dynamic linking on four different platforms > (Linux, Android, Mac, Windows)". This would be a show-stopper for our > project. > LGPL does not impose restrictions on having to be dynamically linked. You can legally statically link a LGPL project as well. There's no problem with that. You can do that with glibc too. The one reason I can see that Google wouldn't want to include it, is that you would also be required to maintain the library that you use. That is, if someone wants the source code of the library you are using, you must be able to provide it for them. That's the requirement that LGPL imposes. Now it is true that if someone wants to modify the LGPL library, enough must be distributed to allow the user to do that. But as your code is Apache, I'm guessing you can give people enough code to still do that. From: https://copyleft.org/guide/comprehensive-gpl-guidech11.html#x14-10100010.1 "There are, however, subtle differences and additions. For example not only is CCS required (as would be with normal versions of GPL), but also the CCS provided must enable a developer to regenerate the modified version of the entire combined work, using with a modified version of the LGPL’d work (as a replacement for the version a distributor provided). For example, LGPL’d code is statically linked to a non-copyleft executable, the required source code must also include sufficient material to split the distributed executable and relink with a modified version of the library." Thus, you are right that code licensed under LGPL is a "handle with care". But there's a lot of code under LGPL, I'm surprised that there's not better mechanisms to handle it. One solution I'm looking at is creating flex/bison templates to do the parsing. If we do this, those could be licensed under a different license that would make it easier for others to include this code. -- Steve