I couldn’t quite manage to comment there, so I figured I’d share my thoughts here:

To the best of my knowledge (IANAL), the source code of roscpp can be published under any compatible license. The source code of roscpp is not a modified version of the LGPL work, nor is it a combined work. It is a new project (or work), written from scratch, which happens to make some calls into an LGPL library. That alone is not enough to qualify as combined or derived work.

With the GPL, any combined work must be distributed under the terms of the same GPL version. A linked program or library is a combined work (it literally contains all the linked works), so the binary version would have to be distributed under the terms of the GPL.

To my knowledge, the other license still applies. One license can not magically cancel the other. That means that the combined work is covered by both licenses. As long as the terms of these licenses do not conflict, there is no problem. If they do conflict, it is not allowed to distribute the binary.

But xmlrpcpp isn’t licensed under the GPL, it is licensed under the LGPL, which has a bit more to say on the topic of combined works in section 4:

  1. Combined Works.

You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: …

The important part here is: “under the terms of your choice”. So the combined work doesn’t have to be distributed under the same license, as long as the conditions of the LGPL are still honoured.

1 Like