[sane-devel] External backend advice

scanf @dslextreme.com scanf at dslextreme.com
Thu May 12 17:05:25 UTC 2011

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.

My company currently offers a Linux driver library for our scanners.
It's released as a binary SO because it contains the fore mentioned
proprietary code. It consists of 100% user-land code sitting on top of
libusb. This works great for developers who are willing to write an
application which calls our API but we are often requested to provide
a backend that can be used with existing SANE programs.

You may think "Why not just update an existing open source backend to
work with your hardware and leave the sources open?" That would avoid
the license issue but it's not an option since the required changes
would reveal proprietary information about our hardware design.

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.

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.

Are we better protected by releasing a closed source backend? From
what I've read, we would have to avoid using any SANE code (e.g.
sanei_ functions, etc). Is that correct?

This backend would not be based on any other backend per se since our
library does the real work. That should mean it would not be
considered a "derived work". Correct?

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?

Thanks for your help.

More information about the sane-devel mailing list