[sane-devel] External backend advice

Olaf Meeuwissen olaf.meeuwissen at avasys.jp
Thu May 12 23:32:55 UTC 2011

"scanf @dslextreme.com" <scanf at dslextreme.com> writes:

> Hi sane-devel,
> I'm sure most of you are developers, not lawyers but I'm hoping
> someone can point me in the right direction. I'm trying to figure out
> the best way to release a SANE backend that complies with the GPL
> while protecting the proprietary code it relies on.
> [snip]
> Instead, I have proposed we develop a SANE backend that uses our
> driver library to control the scanner. It would not contain any
> proprietary code so we could release the backend portion as source
> code. Reliance on binary code excludes it from the SANE distribution
> but that's not a problem. The main issue is the software license. I
> have read the license, copyright notice and Information for
> Manufacturers page but our situation is still unclear.

Have you gone through the GPL FAQ[1]?  Especially the bit about the
legal issues that come up if you use GPL-incompatible libraries with GPL
software[2] and writing free software that uses non-free libraries[3]?

  [1] http://www.gnu.org/licenses/gpl-faq.html
  [2] http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs
  [3] http://www.gnu.org/licenses/gpl-faq.html#FSWithNFLibs

> Here's the big question: If we release our backend as source, does
> that expose our driver library to the GPL so its sources would also
> have to be released? In case it matters, the proposed backend would
> use runtime dynamic linking for the library.

The way I understand it, you own the copyright of this SANE backend you
proposed so you get to pick the license.  If you really want to go with
the GPL (which I think is great!), you can add an exception that allows
linking with your proprietary code.  You could also look at other, more
lax licenses.  The list of GPL-compatible licenses[4] is a good start.

 [4] http://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses

> I looked for existing external backends with binary code to see how
> other companies handled the licensing issue. The links I checked on
> the External Backends list were broken or outdated. Can you refer me
> to an existing backend similar to what I've proposed?

The epkowa backend did the same and still does something similar.  In
the past it linked dynamically against proprietary interpreters for a
scanner model of two.  The number of interpreters grew (we've got ~15
now :-(), so we switched to on-demand dynamic loading instead.  This
doesn't really make a difference for the licensing issues but it made
the backend free-as-in-freedom for those users that have scanner models
that do not need an interpreter.

Hope this helps,
Olaf Meeuwissen, LPIC-2           FLOSS Engineer -- AVASYS CORPORATION
FSF Associate Member #1962               Help support software freedom

More information about the sane-devel mailing list