I’m considering using libpijul, and possibly sanakirja, in a Rust project I’m
working on. This project, Intermodal, is not itself GPL-licensed, but is
permissively licensed under the CC0.
The legal ramifications of combining GPL-licensed code with non-GPL-licensed
code is complex. And, some concepts, like what constitutes a combined or
dervied work, are ambiguous.
So, I wanted to give my interpretation of the situation that using libpijul in
my project would create. This is both so that anyone who is more familiar with
the GPL can correct me, if am mistaken in my interpretation, and to get some
feeling for if what I would be doing is acceptable to the Pijul developers in
terms of the spirit in which the GPL is applied to the Pijul project.
Of course, any changes to libpijul itself would be themselves licensed under
the GPL and contributed upstream.
So, the situation is this:
Intermodal is a library and a binary licensed under the all-permissive CC0
public domain dedication and fallback license.
Intermodal is written in rust and statically links to all its dependencies.
Let’s call Intermodal’s source code imdl-src, and Intermodal’s binary imdl-bin.
imdl-src is currently licensed CC0. imdl-src links to a number of dependencies,
with a variety of permissive licenses. These are, 0BSD, Apache-2.0, MIT,
Apache-2.0 WITH LLVM-exception, BSL-1.0, MIT, Zlib, BSD-3-Clause, CC0, MIT,
Unlicense, and disjunctive combinations (A OR B) of these licenses.
My understanding is that the statically linked imdl-bin is a “combined work” of
all of these dependencies, and so, roughly speaking, is restricted by the
conjuction of these licenses. Since these are all fairly permissive licenses,
this is a relatively uncomplicated situation, and there are no restrictions on
the distribution of imdl-bin.
So, let’s consider a hypothetical future version of imdl-src, imdl-src’, that
depends on libpijul.
My understanding is that imdl-src’, because it does not contain libpijul, and
only calls API functions from libpijul, is not a derived or combined work with
respect to libpijul, and thus can continue to be licensed under CC0.
However, I believe that imdl-bin’, a statically-linked binary built from
imdl-src’, and its dependencies, including libpijul, would be considered a
combined work , and thus would be restricted by the conjunction of the licenses
above, and the GPL, due to the addition of libpijul as a dependency.
As I understand it, the restrictions of the GPL would then trigger if I
distributed imdl-bin’, for example by offering pre-built binaries built from
imdl-src’ for download.
I believe that these provisions would be easy to comply with. I read the GPL
2.0, and I think that it would impose two additional restriction on me, the
distributor of imdl-bin’.
One would be a requirement to make imdl-src’ available for download, which I
already do and continue to keep doing indefinitely.
The second would be that I would required to distribute copies of the GPL along
with imdl-bin’, which I could easily do.
Am I correct in my interpretation of the GPL? Also, would doing this be
acceptable to the pijul authors and community?