[sane-devel] Please give me some help to solve the license issues in using sane

Olaf Meeuwissen olaf.meeuwissen at avasys.jp
Sun Jun 8 23:31:25 UTC 2008

Johannes Meixner <jsmeix at suse.de> writes:

> Hello,
> [snip]
> On Jun 6 Olaf Meeuwissen wrote (shortened):
>> If GPL'd code uses a non-compatible library via dlopen that's just as
>> much a violation as linking to it directly.  The code runs in the same
>> process space.  That makes the combined work a derivative, so, all the
>> terms of the GPL need to be met.
> ...
>> A good rule of thumb is to look at what happens at run-time.  If GPL
>> incompatible binary stuff and binary bits built from GPL'd source code
>> are used by a _single_ process (as jugded by PID), then that's a big
>> fat violation.  However, if both parts run as separate processes (so
>> they have different PIDs) and communicate via a socket or some other
>> IPC mechanism, using a trivial or open, well-documented protocol, then
>> that is not a violation.

> [snip]
> Nevertheless I like to try a proposal how it might be done.
> When the backend uses SANE I/O functionality (sanei),
> it must be under GPL.
> Because the license issue is at least not very clear,
> the backend cannot link with proprietary stuff.
> But the backend could fork a separated process which runs
> whatever proprietary executable and communicate with it
> via whatever IPC mechanism e.g. a socket or even via
> traditional pipes, see for example the IJS interface
> http://hplip.sourceforge.net/tech_docs/hpijs.html

HPIJS was designed explicitly to solve the licensing issue.

> Therefore only the part which does the basic I/O must be
> under GPL but e.g. data compression algorithms could run
> as proprietary executable in a separated process.

If you don't mind reimplementing the basic I/O yourself, there is no
need to put that under the GPL.

> A different case are image processing algorithms which
> should run in the frontend. Because of the exception in SANE
> this can be done in a proprietary frontend executable.

But only if the particular backend you use extends that exception.  If
I were to write a GPL'd backend ...

Hope this helps,
Olaf Meeuwissen                   FLOSS Engineer -- AVASYS Corporation
FSF Associate Member #1962           sign up at http://member.fsf.org/

More information about the sane-devel mailing list