[sane-devel] SANE license interpretation (was Re: SANE-Backend for Brother PDS-series scanner)

Olaf Meeuwissen paddy-hack at member.fsf.org
Mon Sep 19 03:26:56 UTC 2016

Hi Allan,

m. allan noah writes:

> On Sun, Sep 18, 2016 at 6:25 AM, Olaf Meeuwissen
> <paddy-hack at member.fsf.org> wrote:
>> Hi Allan,
>> I just dashed off a rather long explation to James and the list.
>> m. allan noah writes:
>>> I personally am of the opinion that Brother is in violation of our
>>> license. However, our license is not strictly GPL, and the differences
>>> were clearly not written by a lawyer. You could argue that we give
>>> some space for a company to steal our work, and keep it from their
>>> users.
>> The sane-backends source code contains files that are GPL and some that
>> are GPL with an exception.  The exception is similar in spirit to what
>> the LGPL allows and was, IIRC, added before (or around) the LGPL was
>> introduced.  As long as they only used GPL with exception code (based on
>> library symbols, I they did), there isn't really anything you can object
>> to (unless you also object to using LGPL'd code ;-).
> Well, I disagree on that point.

I believe we have disagreed on this point in the past ;-)

Not trying to start a flame, just would like to arrive at a common point
of view for SANE.

> In my mind, the key words in the exception are 'an executable'.

My thinking on this has been influenced by the libtool documentation
which says[1]:

  libraries are programs with multiple entry points

and the GPL FAQ on "aggregation" and "modified versions"[2], which says:

  If the modules are included in the same executable file, they are
  definitely combined in one program.  If modules are designed to run
  linked together in a shared address space, that almost surely means
  combining them into one program.

  [1] https://www.gnu.org/software/libtool/manual/libtool.html#Libtool-paradigm
  [2] https://www.gnu.org/licenses/gpl-faq.html#MereAggregation

I basically regard libraries and programs (do these cover executables?)
as the same thing and draw a border at the process boundary.  From that
point of view, I don't think that non-free third party backends linking
with libsanei violate the "SANE exception".

# I would like to arrive at the opposite conclusion, though.

# BTW, like all SANE backends, the Brother backend links statically with
# libsanei/ so only parts of it are included and used.  From what I saw
# in terms of library symbols all of those parts are GPL+exception.  I
# didn't notice any SANE parts outside of sanei/.

Whether my interpretation corresponds with the thinking of the people
who added that exception, I don't know.  Perhaps we should ask?

> At the time the exception was added,
> many people believed that free OS's were the way of the future, but we
> would still be using large numbers of closed-source, shrink-wrapped
> apps. The exception seems to have been intended to allow userspace
> programs like StarOffice to initiate scanning. This is different from
> linking SANE to a library, even if that library acts as a SANE
> backend. I think it is a stretch to call Brother's usage in a backend
> 'an executable'. Yes, a library contains executable code, but it
> cannot be started from the command line without a front-end.

If that front-end would be a closed-source, shrink-wrapped app, would
Brother be off the hook in your opinion?  Does that depend on how the
app links with the backend (directly or through libsane-dll)?

Approaching things from the opposite end, what about GPL'd front-ends
(think scanimage and saned; they carry no exception) using a non-free
backend such as Brother's?  Would that be okay?  Wouldn't that be kind
of misleading users of these frontends?  They're using a GPL'd app but
under the covers they might unwittingly be using non-free backends.

>> Personally, I wished that more of the sane-backends code is GPL, making
>> it harder for folks to take what we share without sharing back.
> I also wish we could change it, but it is too late. There have been
> too many authors over too many years. There is a good chance that a
> few of the authors have died. It would be very difficult to identify
> entire files which could have their license changed.

I know, I've read the LICENSE file ;-)
Doesn't stop me from wishing, though.

Talking about that file, perhaps we should add a clarification about the
use of libsanei.  Now, the file only mentions the SANE backends.

> When I added sanei_magic, I seriously debated making it GPL. But, I
> decided that I could not find a way to convert my backends (which
> needed to use it) to the GPL as well.

Have you considered making it LGPL rather than GPL+exception?  It might
be a good idea to suggest that license for *new* code.  Just an idea.

Hope this helps,
Olaf Meeuwissen, LPIC-2            FSF Associate Member since 2004-01-27
 GnuPG key: F84A2DD9/B3C0 2F47 EA19 64F4 9F13  F43E B8A4 A88A F84A 2DD9
 Support Free Software                        https://my.fsf.org/donate
 Join the Free Software Foundation              https://my.fsf.org/join

More information about the sane-devel mailing list