SDR Touch and licensing

Sylvain Munaut 246tnt at
Thu Jan 24 20:37:06 CET 2013


> Since SDR Touch and rtl_tcp are completely separate works, and the user is
> aware of the license of rtl_tcp_andro and has access to its source code, SDR
> Touch does not violate GPL2+. It is true they reside in the same installer
> before being installed on the device, but this is allowed in GPL3 and is
> called an aggregate.

That's where our opinions differ. For me the way the package is currently
distributed doesn't qualify as an aggregate.

The fact they are separate binaries and that rtl_tcp_andro by itself
is properly released is of course a good part of the work toward
compliance, but it's not sufficient.

You compared the .apk to an "installer", but I really don't see it
that way (AFAIK .apk are not even uncompressed, some files might
be cached but they mostly stay bundled). It's not like you have two
independent packages that are pulled together, here you have a single

And if you want to compare it to something, it's much closer to the
OSX way of distributing application where even though on the file system
the application is several files, the whole bundle only represent a
single larger "Application" and everything else is completely hidden from
the user.

I mean a single ELF file is split into sections and 'installed' into
distinct RAM pages but it'd be hard to argue it's not a single application
because that's just a technicality of the way that platform work.

Same thing for Android: For all intents and purposes, an APK _is_ a
single application.

Let's look at the relevant section covering "aggregation" in the GPL:

End of Section 2 of GPLv2:

> In addition, mere aggregation of another work not based on the Program
> with the Program (or with a work based on the Program) on a volume of
> a storage or distribution medium does not bring the other work under
> the scope of this License.

End of Section 5 of GPLv3

> A compilation of a covered work with other separate and independent
> works, which are not by their nature extensions of the covered work,
> and which are not combined with it such as to form a larger program,
> in or on a volume of a storage or distribution medium, is called an
> "aggregate" if the compilation and its resulting copyright are not
> used to limit the access or legal rights of the compilation's users
> beyond what the individual works permit.  Inclusion of a covered work
> in an aggregate does not cause this License to apply to the other
> parts of the aggregate.

So basically for this to apply, what's bundled with a GPL Program must not
be either "work based on the Program" or "not combined with the Program
to form a larger Program".

I really don't see how you could not describe the "SDR touch" application
in its whole as not a combination fully including the rtl-sdr code when
more than half the description on Google Play describes functionality
provided by the rtl-sdr code.

Theses clauses were meant for things like distributions or when shipping
installed systems that just happen to contains GPL part among many and
I really don't see its applicability here where you only have two parts:
 - The GPL covered work
 - A independent application that heavily relies on the GPL work to do
   what it's supposed to.

> Is there anything I can do so we can settle this issue once and for all?

As was suggested elsewhere, a good step towards compliance and gesture of
good faith would be:

 - Distribute rtl_tcp_andro as a separate Android application
 - Make sure that second application has the LICENSE both in the package
   and visible to the user through the interface somewhere.

This would also nicely allows other application to share the device and
would probably make it easier for the user to replace rtl_tcp_andro
with a self compiled / updated version or whatever. (after all the ability
of the user to use a modified version in place of the distributed one without
undue hassle, is also a requirement, 'anti-tivoization' stuff, but I'm
not familiar enough with android ecosystem to see if applicable here)

Now, this is not perfect and one could argue that the heavy reliance of
the java app on the rtl-sdr (contrary to some other application that
would support a lot more data source) could be construded as "derivative".
But when the application are really split in two independently installed
and distributed packages, this becomes a whole lot less clear to me and
a definitive answer could only be given by a judge in a court of law.



Obligatory disclaimer:

Of course, IANAL, this doesn't constitute legal advice and the opinions
expressed here are my own, I have no right whatsoever to speak for anyone
else than myself ...

More information about the osmocom-sdr mailing list