NPAPI plugins & GPL XULRunner

View: New views
6 Messages — Rating Filter:   Alert me  

NPAPI plugins & GPL XULRunner

by Stephen Lau-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I have a question regarding GPL'd XULRunner apps (my specific case
being Songbird, but I think it generally applies to any XULRunner app
that uses the GPL)

My understanding of the GNU FAQ is that the NPAPI interface for
loading browser plugins qualifies as "dynamic linking" (it's certainly
more complex than just a fork()/exec() or an invocation of a `main`),
and that thus any use of a non-GPL-compatible browser plugin (such as
Adobe Flash) with a GPL'd XULRunner app (like Songbird) violates the
GPL.  (Note that this isn't/shouldn't be an issue for MPL'd XULRunner
apps)

So my question is regarding license exceptions.  GStreamer
applications suffer from this problem as well, where GPL'd apps
convert GStreamer from LGPL up to GPL and thus can't be distributed
alongside/bundled with non-GPL-compatible GStreamer plugins (which is
a problem for any distributor who wants to build a *nix distribution,
let's say, that has MP3 codecs and GStreamer and the GPL'd app).  The
GStreamer folks have typically used a license exception (detailed here
http://gstreamer.freedesktop.org/documentation/licensing.html) to get
around this which basically boils down to: "This application is GPL'd
but we explicitly allow the distribution of non-GPL-compatible
GStreamer plugins to be distributed alongside this app"

Can we do this with NPAPI plugins as well?  I talked to Gerv about it,
and he seemed to think that we couldn't since the XULRunner code is
obviously copyrighted by the Mozilla contributors, and that we
couldn't relicense it as GPL + exception.  But the more I look at it,
the more this seems analogous to the GStreamer situation with the key
difference being that we take XULRunner under the GPL instead of LGPL.

Is that the only difference?  If we took XULRunner under the LGPL,
then it seems like an identical situation to the GStreamer issue, and
that we should be able to explicitly allow for the distribution of
Songbird under the GPL alongside non-GPL-compatible NPAPI plugins such
as Flash.

Sorry for the long-winded post, I hope that made sense.  Any
clarification/guidance would be greatly appreciated.

cheers,
steve
_______________________________________________
legal mailing list
legal@...
https://lists.mozilla.org/listinfo/legal

Re: NPAPI plugins & GPL XULRunner

by Benjamin Smedberg :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

stevel wrote:

> My understanding of the GNU FAQ is that the NPAPI interface for
> loading browser plugins qualifies as "dynamic linking" (it's certainly
> more complex than just a fork()/exec() or an invocation of a `main`),
> and that thus any use of a non-GPL-compatible browser plugin (such as
> Adobe Flash) with a GPL'd XULRunner app (like Songbird) violates the
> GPL.  (Note that this isn't/shouldn't be an issue for MPL'd XULRunner
> apps)

I am not a lawyer. The only advice I'm offering is quotations and personal
interpretations of the licenses in question. You really really have to
consult a lawyer.

There are multiple questions here:

1) If you distribute the flash plugin under a proprietary license
independently of (Songbird), does it have to be GPL licensed?

Absolutely not. The Flash plugin was compiled against tri-licensed headers,
not GPL headers. By itself it has no license taint.

2) Can an end-user install the flash plugin into Songbird?

Certainly. The GPL doesn't limit what you can do with the GPL software. It
only limits how you can redistribute it. So an end-user can install any
plugin they want, as long as they don't redistribute it.

3) Can (Songbird) distribute Flash with their application (assuming they
have a license from Adobe)?

This is the tricky question. The relevant paragraphs of the GPLv2 are:

***

These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Program, and can be
reasonably considered independent and separate works in themselves, then
this License, and its terms, do not apply to those sections when you
distribute them as separate works. But when you distribute the same sections
as part of a whole which is a work based on the Program, the distribution of
the whole must be on the terms of this License, whose permissions for other
licensees extend to the entire whole, and thus to each and every part
regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your
rights to work written entirely by you; rather, the intent is to exercise
the right to control the distribution of derivative or collective works
based on the Program.

In addition, mere aggregation of another work not based on the Program with
the Program (or with a work based on the Program) on a volume of a storage
or distribution medium does not bring the other work under the scope of this
License.

***

So... if you distribute (Songbird) on CD, and include the Flash installer on
the CD, that should be ok. Flash is still an independent program aggregated
on the install disc.

What if you archive the flash installer and the Songbird installer in one
archive (self-extracing .exe, mac DMG, or .tar.bz2? Is this archive a
"volume of a storage or distribution medium"? I don't know. The license
itself doesn't define the term.

Or, what if you distribute XULRunner + Songbird under the MPL, and include
the gstreamer installer as a separate application under the GPL?

What if the (Songbird) installer installs the app, and then downloads and
runs the Flash installer as a second step? I think this would avoid license
taint, because it makes it clear that Flash is an independent program.

> Is that the only difference?  If we took XULRunner under the LGPL,
> then it seems like an identical situation to the GStreamer issue, and
> that we should be able to explicitly allow for the distribution of
> Songbird under the GPL alongside non-GPL-compatible NPAPI plugins such
> as Flash.

Who is "we"? The Mozilla codebase is already licensed. You can choose to
redistribute it under the MPL, the LGPL, or the GPL, but you cannot choose
to redistribute it under the GPL + exceptions, because it isn't licensed
that way, and relicensing it requires the consent of every contributor,
which is... basically impossible.

--BDS
_______________________________________________
legal mailing list
legal@...
https://lists.mozilla.org/listinfo/legal

Re: NPAPI plugins & GPL XULRunner

by Stephen Lau-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Apr 15, 8:12 am, Benjamin Smedberg <benja...@...> wrote:
> 1) If you distribute the flash plugin under a proprietary license
> independently of (Songbird), does it have to be GPL licensed?
>
> Absolutely not. The Flash plugin was compiled against tri-licensed headers,
> not GPL headers. By itself it has no license taint.

Agreed

> 2) Can an end-user install the flash plugin into Songbird?
>
> Certainly. The GPL doesn't limit what you can do with the GPL software. It
> only limits how you can redistribute it. So an end-user can install any
> plugin they want, as long as they don't redistribute it.

Agreed

> 3) Can (Songbird) distribute Flash with their application (assuming they
> have a license from Adobe)?

Not just Songbird... but can a third party (e.g. a distributor such as
Ubuntu, Fedora, OpenSolaris, etc. etc.) distribute Songbird alongside
Flash.

> So... if you distribute (Songbird) on CD, and include the Flash installer on
> the CD, that should be ok. Flash is still an independent program aggregated
> on the install disc.

Agreed

> What if you archive the flash installer and the Songbird installer in one
> archive (self-extracing .exe, mac DMG, or .tar.bz2? Is this archive a
> "volume of a storage or distribution medium"? I don't know. The license
> itself doesn't define the term.

More specifically I'm thinking of the case for Sun, which distributes
Flash ("already installed" in /usr/lib/firefox/plugins) such that
Flash works out of the box for Firefox.  We're wondering about the
legality of doing the same for Songbird.

> What if the (Songbird) installer installs the app, and then downloads and
> runs the Flash installer as a second step? I think this would avoid license
> taint, because it makes it clear that Flash is an independent program.

Agreed.  But in the case for Sun which already distributes Flash -
they certainly won't take it out (thus breaking Firefox's Flash
capabilities, or at least making the user jump through an extra
installation hoop) on Songbird's account.

> > Is that the only difference?  If we took XULRunner under the LGPL,
> > then it seems like an identical situation to the GStreamer issue, and
> > that we should be able to explicitly allow for the distribution of
> > Songbird under the GPL alongside non-GPL-compatible NPAPI plugins such
> > as Flash.
>
> Who is "we"? The Mozilla codebase is already licensed. You can choose to
> redistribute it under the MPL, the LGPL, or the GPL, but you cannot choose
> to redistribute it under the GPL + exceptions, because it isn't licensed
> that way, and relicensing it requires the consent of every contributor,
> which is... basically impossible.

"we" being Songbird.  Let me rephrase since my sentence wasn't
clear... if Songbird took XULRunner under the LGPL, we wouldn't be
relicensing XULRunner (since, as you point out, we can't :)).  We
would be relicensing the Songbird-unique GPL code as GPL + exceptions
(for GStreamer & NPAPI plugins).

This seems like the exact same case as the GStreamer exception:
* GPL app (e.g. Songbird vs. Rhythmbox/Totem/etc.)
* LGPL framework (XULRunner vs. GStreamer)
* non-GPL-compatible plugin (Flash vs. MP3 codec)

To be clear, I'm fine with either answer (I'm certainly not trying to
circumvent licensing in anyway) - I'm just trying to get clarification
since the GStreamer guys seem to say that GPL+exception case is okay.

Thanks for the input... realising of course, none of us (I think) are
lawyers - but I was hoping to find as much input as possible from Moz
folks before I go bleed myself dry on our lawyers.
_______________________________________________
legal mailing list
legal@...
https://lists.mozilla.org/listinfo/legal

Re: NPAPI plugins & GPL XULRunner

by Benjamin Smedberg :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

stevel wrote:

> Not just Songbird... but can a third party (e.g. a distributor such as
> Ubuntu, Fedora, OpenSolaris, etc. etc.) distribute Songbird alongside
> Flash.

IANAL, again ;-)

But yes... they are distributing flash and songbird as two separate
programs. The fact that songbird goes looking for a flash plugin and loads
it is incidental to the licensing.

--BDS
_______________________________________________
legal mailing list
legal@...
https://lists.mozilla.org/listinfo/legal

Re: NPAPI plugins & GPL XULRunner

by Stephen Lau-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Apr 15, 8:57 am, Benjamin Smedberg <benja...@...> wrote:

> stevel wrote:
> > Not just Songbird... but can a third party (e.g. a distributor such as
> > Ubuntu, Fedora, OpenSolaris, etc. etc.) distribute Songbird alongside
> > Flash.
>
> IANAL, again ;-)
>
> But yes... they are distributing flash and songbird as two separate
> programs. The fact that songbird goes looking for a flash plugin and loads
> it is incidental to the licensing.

(not trying to flog the thread more, but...)

... I'm not sure that it is incidental.  The GStreamer folks seem to
see it as intimately involving the license, as does the FSF's GPL
FAQ.  Sigh.  I suppose it's time to drag the lawyers in, and maybe
just add the exception to Songbird's GPL license to be safe.

Thanks for the comments/thoughts!
_______________________________________________
legal mailing list
legal@...
https://lists.mozilla.org/listinfo/legal

Re: NPAPI plugins & GPL XULRunner

by Gervase Markham :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

stevel wrote:

> "we" being Songbird.  Let me rephrase since my sentence wasn't
> clear... if Songbird took XULRunner under the LGPL, we wouldn't be
> relicensing XULRunner (since, as you point out, we can't :)).  We
> would be relicensing the Songbird-unique GPL code as GPL + exceptions
> (for GStreamer & NPAPI plugins).
>
> This seems like the exact same case as the GStreamer exception:
> * GPL app (e.g. Songbird vs. Rhythmbox/Totem/etc.)
> * LGPL framework (XULRunner vs. GStreamer)
> * non-GPL-compatible plugin (Flash vs. MP3 codec)

Except doesn't Songbird also include some GPL-only code, e.g. media
codecs or something? Or is all your code either 1) owned by you, 2)
LGPL, 3) BSD-equivalent, or 4) Mozilla code and therefore tri-licensed?

Gerv
_______________________________________________
legal mailing list
legal@...
https://lists.mozilla.org/listinfo/legal
LightInTheBox - Buy quality products at wholesale price!