[License-discuss] GPL and proprietary WebAPIs

Clark C. Evans cce at clarkevans.com
Tue Dec 27 20:49:28 UTC 2011


Thank you for your reply.  

On Tue, Dec 27, 2011, at 11:18 AM, John Cowan wrote:
> > Does the GPL prevent the distribution of M if the 
> > work it relies upon, P, isn't compatibly licensed?
> Web browsers "rely on" web servers to provide most of their function
> (take it from someone who was recently cut off from the Internet for
> three whole days), and also on the entire Internet infrastructure of
> routers and so on.  Most of this infrastructure, and many web servers,
> runs proprietary software, but nobody argues that a GPLed web browser
> can legally interact only with GPLed servers using GPLed infrastructure.

I'm not arguing for this interpretation, this would be a 
restriction on how software may be used (clearly non-free).

You offered earlier a thoughtful remark:

| Microsoft grants explicit permission to use its SDKs to 
| construct software that is intended to run on Windows.  
| If it happens to run on non-Windows systems such as 
| ReactOS or Wine, that is not the developer's fault. 

So, I look at it in a similar manner: if a derivative work
in the form of a shim/adaptation can be used as advertised
using only free software, then the requirement that the
"whole work" be licensed in a compatible manner is met.
That the shim or adapter might work with a proprietary 
implementation of that same free software is an acceptable
outcome.  It is the user's right to operate their copy of
the software with a proprietary implementation.

With this view, if a derivation (shim or adaption) requires
proprietary software (with no open source substitutes) in
order to function as expected, then "the whole of the
work, and all its parts, regardless of how they are
packaged" has not been compatibly licensed.  In this case,
while the author may wish to distribute their "improvement" 
under the GPL, they are barred from doing so under 5(c)
since their "improvement" effectively requires that one
obtain a proprietary license to enjoy the derived work.

So, back to your question.  Given my interpretation, the
only issue with a GPL'd web browser might be the inclusion
of features that only work in combination with a proprietary 
web server (and lack an open source implementation).  In
this case, there are three options: (a) make an exception
in the license, this is what the "System Libraries" stuff
is all about, (b) implement the quirks/features of the 
proprietary web server as a derived work from an open 
source web server, or (c) use a different license.  

I think that (b) is a very fair tradeoff.  If a vendor
would like to add support for proprietary webserver
features to a GPL'd web browser, they should be willing to
provide a reference implementation with the complete
functionality they wish to incorporate.  How else could
one only using free software take advantage of the feature
they have added to the web browser?  How else could you
maintain this addition to the commons and know it works?

On Tue, Dec 27, 2011, at 02:49 AM, John Cowan wrote:
> > My question involves 3 works, not 2.  We have a original 
> > work O, a "derived" work D (O + a shim/adapter), and an 
> > independent proprietary work P; where D derived from O 
> > under copyright law, D relies upon P for its operation, 
> > and where P has no substitutes.  I am assuming that by 
> > copyright law the author of O can restrict the distribution 
> > of D.  Let's further assume that P has no substitutes, so
> > that its functionality is not available under a license
> > compatible with the GPLv3.  So, my question is if the GPLv3 
> > would restrict the distribution of D due to its dependence 
> > on this independent and proprietary work P.
> As a worst case, the behavior of P can be reverse engineered,
> since it is communicating openly with D in a way that can be
> analyzed.

I think this misses the point entirely.  If it's easy
enough to embed proprietary functionality via shims
without providing an open source implementation of the
complementary functionality, then copyleft doesn't really
serve much purpose, except for being a nuisance.  The shim
you'd get would be a minimal conversion from your data
structures to something that could be then converted into
theirs... how'd that be useful to reverse engineering?
Why should the burden of reverse engineering be placed
on the one contributing free software to the commons?

> If you don't know about the Affero GPL3, you should look into it.  

Yes, but the AGPLv3 addresses a completely different problem;
it also faces the same challenge I'm outlining.

I appreciate the the thoughtful engagement, I don't see why
the proprietary Internet infrastructure has anything to do
with what I'm discussing since I could create & test just 
about anything using a set of networked virtual machines.



More information about the License-discuss mailing list