Tayra, the GPL is about a lot more than merely providing modifiable sources.

GPL licenses specifically provide the freedom to modify and distribute GPL
sources *without "further restrictions"* being placed on developers beyond
the restrictions declared in the license itself.  This is completely
distinct from restrictions being placed on the *use of viewers* upon
connection to a service, in which the GPL has no interest at all.  Clause 6
of GPLv2 is particularly demanding:


   - *6. Each time you redistribute the Program (or any work based on the
   Program), the recipient automatically receives a license from the original
   licensor to copy, distribute or modify the Program subject to these terms
   and conditions. You may not impose any further restrictions on the
   recipients' exercise of the rights granted herein. You are not
   responsible for enforcing compliance by third parties to this License.*


These are fundamental freedoms provided by the GPL, and they cannot be
denied at the start nor taken away nor restricted.  You cannot provide
sources while imposing "*further restrictions"* on GPL developers and still
release under GPL --- that would be non-compliant with the license.

This is totally unrelated to LL placing restrictions on what viewers or
users can do when they connect to SL.  LL is entirely within its rights to
do that.  What they cannot do is to place restrictions directly on the
developers modifying and distributing the code under GPL --- that's not GPL
compliant.

The reason for this is easy to understand --- it's about allowing the
distribution chain to work freely.  Let me give you an example to illustrate
the point.


   1. SL developer A takes LL sources, compiles them with extra optimization
   turned on, and publishes binaries and sources on her website in full
   compliance with GPLv2 and also in full compliance with LL's rules.
   2. An SL user likes this release and wants it in his Linux distribution,
   so he sends it to his distro maintainers, B.  They give it a quick once-over
   with a security tool, notice a typical buffer overflow bug, fix it, and add
   the package and sources to their distro in .rpm format.  (They don't use
   SL.)
   3. A gaming distro developer C sees this client appear, rebuilds it and
   adds it to the packages in his distro in .deb format.  (He doesn't use SL.)
   4. User D of the gaming distro thinks this is a great base for his
   warfare game, adds a pile of ways to attack people, and submits it back to
   the gaming distro as a GPL derivative for warfare fans.  (He doesn't use
   SL.)
   5. Opensim user E notices this new viewer, and thinks the new weaponry is
   a great way of fuzz testing his private sims to find security holes.  He
   adds some more test-related menus to the code and sends the modified sources
   to a testers distro.  (He doesn't use SL.)
   6. Finally, SL developer F finds the viewer in the testers distro,
   notices that it still works with SL despite its odd path through the Linux
   world, recompiles it, and places binaries and sources on his website for
   users to try out.


So what does the GPL have to say about all this?  Easy:  if the code is
GPL-licensed, then all developers have the freedom to modify and distribute
the software *without further restrictions other than stated in the GPL
license*.   All of the above is therefore perfectly fine.

But what does LL have to say about all this?  According to the TPV document,
all of these developers have restrictions placed on them, because the TPV
document is so badly written that it talks about developers, viewers, and
users all mixed up together.  Also, it doesn't have a clear clause narrowing
the *scope* of all TPV terms to *usage* alone.  As a result, when describing
restrictions that apply to users and viewers in SL, these restriction end up
applying to GPL developers too.  That is simply not GPL compliant, because
it is a "*further restriction*" on the developer's right to modify and
distribute.

It doesn't even make *practical* sense, since people B-E above don't even
connect to SL.  However, it must be noted that the freedoms provided by the
GPL are not conditional on not using a particular service.  GPL developers
are granted those freedoms even if, as users, they later connect to SL
themselves (and maybe get themselves banned for it, which is fine).  Being a
developer and being a user are separate things, even if you perform both
roles.  (The GPL is not concerned with restrictions placed on you as a user
of course, those are not its business.)

What's more, LL states that they may request that developers modify their
software to suit the SL terms of service, with an implied  threat of
termination if they don't comply.  This might seem reasonable to LL, but if
it is a "*further restriction*" on the developer's freedom to modify and
distribute GPL code then it might well not be GPL compliant at all.  This is
a fine point that might have to be tested in court, because it's not obvious
if it's a restriction on the freedom to modify and distribute or a
restriction on usage.  Is the GPL developer being restricted in his
modification or distribution of the GPL program?  Well it seems like it, but
the best way of avoiding legal finessing is to simply declare all the
restrictions as applying at the time of connection to SL, and not at the
time of modification or distribution.

Being GPL-compliant is really a very simple matter of using the right
language, and making it clear that the restrictions are *usage restrictions*,
not development nor distribution restrictions.  Joe Linden demonstrated how
to phrase it perfectly last week.  As I said back then, if he were to
rewrite the TPV document, we could probably all go home early. ;-)

Unfortunately, there is yet another problem with the TPV document --- an
attempt to make developers liable for what happens when their viewers are
used in SL by others.  Apparently the two capitalized paragraphs of GPLv2
clauses 11-12 are not written in large enough letters:



   - *NO WARRANTY*


   - *11.* BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
   WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT
   WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
   PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
   OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO
   THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM
   PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
   CORRECTION.


   -
   - *12.* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
   WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
   REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
   INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
   OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO
   LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
   THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
   PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
   POSSIBILITY OF SUCH DAMAGES.



If the TPV document is claiming that GPL developers are responsible for
something that the "*NO WARRANTY*" clause explicitly disclaims, then this
would be yet another source of GPL non-compliance.  Unfortunately what the
TPV is claiming is quite unclear.


So, no Tayra, GPL compliance is not guaranteed simply by chucking the source
code at us.  The GPL has some very strong additional requirements for
compliance, and we're not in the clear yet.  This is why LL is seeking
specialist legal counsel that understands the GPL, we are told.  The first
draft seemed quite unaware of the GPL's requirements and guaranteed
developer freedoms.


Morgaine.





=================================

On Tue, Mar 9, 2010 at 8:12 PM, Tayra Dagostino
<tayra.dagost...@gmail.com>wrote:

> On Tue, 9 Mar 2010 14:47:35 +0000
> Morgaine <morgaine.din...@googlemail.com> wrote:
>
> > I believe that they're seeking better-informed legal counsel on GPL
> > compliance first, before redrafting the TPV.   The first version
> > conflated users, viewers and developers so terribly that GPLv2 clause
> > 6 was left in tatters.  Joe's phrasing is the only one that makes the
> > necessary separation so far.  I hope he has a hand in the redraft. :-)
>
>
> I think yoiu've misreaded the TPV policy, no GPL violation, viewer
> code is GPL, you can take a copy from svn, manipulate it, patch or
> mood, rename it, all GPL let u do with it (and consequential charges
> for a developer who work on a GPL code)
>
> TPV is like an addendum to TOS, if you want use Linden Lab grids you
> should follow some rules... this is server side, no viewer code
> involved... the Linden services aren't GPL...
>
_______________________________________________
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges

Reply via email to