Re: Relicensing tracepoints and markers to Dual LGPL v2.1/GPL v2,headers to Dual BSD/GPL

From: Mathieu Desnoyers
Date: Fri Oct 23 2009 - 13:02:15 EST


* Ingo Molnar (mingo@xxxxxxx) wrote:
>
> * Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxx> wrote:
>
> > Hi,
> >
> > I would like to re-license the tracepoint.c/marker.c files from GPL
> > to:
> >
> > * Dual LGPL v2.1/GPL v2 license.
> >
> > And re-license tracepoint.h/marker.h to:
> >
> > * Dual BSD/GPL v2 license.
> >
> > The goal is to allow sharing code between the kernel tracer and UST
> > (User-Space Tracer) project, which is a LGPL v2.1 library. Tracepoint
> > and marker headers might need to be included by proprietary or BSD
> > applications, hence the dual BSD/GPL v2 license for these two.
>
> We need a clean interface instead of some messy bindings - why do you
> need a different license to kernel/tracepoint.c?
>

The short answer is: I want to provide static userspace instrumentation
for fast and manageable userspace tracing. The infrastructure developed
for kernel tracepoints applies directly to userspace, but it needs to be
re-licensed to LGPL so we can trace non-GPL applications.


I'll re-spin the small text I sent to Steven, please tell me if it does
not answer your question:

The intent is to allow the tracer code developed both on the kernel-side
as part of Ftrace and LTTng and on the userspace side within UST to be
shared when appropriate. As a result, we can consider userland-only
solutions to user-space tracing without rewriting all the kernel
tracing infrastructure from scratch.

Tracing library has a small specificity though: if we want to be able to
allow tracing of non-GPL applications, we have to license the library
under a licence different from GPL. LGPLv2.1 seems like a very good fit
for that. It would allow proprietary, BSD and other applications to be
traced by linking dynamically to the LGPL tracing library. The intent is
to be able to provide an updated library version that can be dynamically
linked with these proprietary applications.

So, what I propose is to dual-license at the very least the TRACE_EVENT
generation code under GPLv2/LGPLv2.1 so the callbacks generated can be
used in a LGPL library. I plan to do the same for most of the LTTng
project.

I also plan to license the tracepoint.h header under a GPLv2/BSD-style
dual-license, so proprietary apps can include it. It would be the only
part that would not be relinkable. Note that it only involves the
tracing call sites declarations. I really want the probes generated by
TRACE_EVENT (with #CREATE_TRACE_POINTS) to be LGPL, so we can relink and
upgrade them when necessary.

Thanks,

Mathieu


--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/