GPL questions about closed-source Juce apps / plugins on Linux

Hi there,

I have a few questions about running closed source plugins or standalones on a Linux system (well, about SELLING said plugins and standalones). For the sake of argument, let’s presume that the plugins / standalones are created by someone that owns a full, perpetual Pro Juce license.

  • If you are using ALSA (LGPL license), does linking to ALSA require the source code of the plugin/standalone to be disclosed under the terms of the GPL?

  • If you are using Jack (GPL license), does “linking” to Jack require the source code of the plugin/standalone to be disclosed under the terms of the GPL?

  • Do the “linking” terms of the GPL license apply to closed-source applications that are using GPL audio APIs to communicate with the sound card / codecs?

I am not a lawyer, but I figure that some lawyers must have figured this out for Juce, hence the questions.

Thanks in advance,

Sean Costello

Jack specifically says what you want to do is allowed:

JACK is free software; you can redistribute it and/or modify it under the terms of the GNU GPL and LGPL licenses as published by the Free Software Foundation, http://www.gnu.org. The JACK server uses the GPL, as noted in the source file headers. However, the JACK library is licensed under the LGPL, allowing proprietary programs to link with it and use JACK services.

See the bottom of this page: https://jackaudio.org/api/

ALSA is LGPL as well. In general, you can link to LGPL code from closed source code as long as you do dynamic linking so the user has the ability to upgrade to the latest version of the library or make changes to the library and use the updated version with your program.

There is a specific exemption here that using Linux syscalls is allowed from non-GPL programs into the GPL Linux kernel: https://github.com/torvalds/linux/blob/master/LICENSES/exceptions/Linux-syscall-note

GPL audio APIs to communicate with the sound card / codecs

Which libraries are these? If you are using Linux sys calls to access the sound card, then you are ok. If you are using a specific wrapper library or library that ads extra functionality, then you will need to read the license of that specific library.

3 Likes

All the linux audio apis (Alsa, Jack, Pulseaudio) are under the LGPL. =>

If you statically link those libraries into your application/plugin, you must disclose the source.
If you dynamically link your application/plugin against those libraries, you don’t have to disclose the source.

So, just use dynamic linking and you’re fine. It’s as easy as that.