[sane-devel] SANE license interpretation (was Re: SANE-Backend for Brother PDS-series scanner)
paddy-hack at member.fsf.org
Mon Sep 19 03:26:56 UTC 2016
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
>> 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
libraries are programs with multiple entry points
and the GPL FAQ on "aggregation" and "modified versions", 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.
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