[pulseaudio-discuss] Rust binding licensing

jnqnfe at gmail.com jnqnfe at gmail.com
Mon Aug 19 21:15:26 UTC 2019


I don't know if you remember me, but I'm the author of the Rust binding
(https://github.com/jnqnfe/pulse-binding-rust) for PA.

I am a little uncertain about licensing with regards to my binding,
specifically whether it in any way actually does fall under the concept
of "derived work" and thus is subject to LGPL, or whether it is simply
a copyright matter.

The things it all hinges upon I suppose is the fact that I've copied
much of the documentation, and since licensing is primarily concerned
with actual code and use of code in compiled form within
binaries/shared-libs/firmwares, I'm just not certain where I stand with
just the documentation aspect and got nowhere googling the topic.

I have outlined much of what needs to be said regarding licensing wrt.
my Rust binding in the project's main readme (

The big issue I have with LGPL is that in the Rust world the default
way "crates" (libraries) are consumed is static compiling (you just
specify the name of a crate as a dependency in your project and it is
just automatically downloaded and compiled in). Many Rust crates are
MIT+Apache licensed, meaning little or no impact regarding the
licensing of the end product they are built into. When it comes to LGPL
crates however, for compliance you must either make the product
GPL/LGPL or else compile the dependent crate (i.e. my binding here) as
a dynamic shared lib.

Since the default with Rust crates is static compiling, there's great
danger in people just plowing on ahead with using it in non-GPL/LGPL
work, not even realising they're breaking LGPL licensing requirements
(either directly, or indirectly as an inherited dependency from
something else). If they do follow the requirements, building as a
shared lib, then that becomes rather a pain to deal with and an
inefficiency issue, just for a thin binding layer in this case.

As discussed in the project readme, I leave open the possibility of
using my work under MIT+Apache under strict conditions, while
officially marking it in the crates as LGPL. It would be great though
to resolve the unanswered question.

If what I have done with copying the documentation *is* covered by the
LGPL such that it *is* a derived work and thus I am forced by default
to also use LGPL, then would you considered granting my project an
exception, specifically just for the aspects that apply, i.e. copying
the documentation? Such that my binding can freely be MIT+Apache
licensed and statically compiled, while not affecting the use of PA
libs themselves of course.


More information about the pulseaudio-discuss mailing list