FLOSS community concerns about the Linden Lab policy on third-party viewers

__NOTOC__ 
Note. Also see Linden Lab Official:Third Party Policy and Viewer Directory FAQ that was published after the TPV policy publication.
==Preamble==
"any third-party software client, regardless of its source code, that logs into our servers"
* This could read as applicable to any software that has the capability to log into the service.
** If this is the case, then people who have written clients years ago are suddenly and retroactively covered by this policy.
** There is no way to create a client that is unable to log into Second Life and yet is compatible with OpenSim
** Is a disclaimer that a client "should not be used with Linden Lab's service" enough to make someone not subject to this policy? Is a developer responsible for what their users do with the software?
** This policy becoming "agreed to" by developers through the vicarious actions of end users is probably weaker than the weakest "browse wrap" agreement. There is no meeting of the minds... the developer may not even be aware this policy exists.
==1 "Required Functionality and Disclosures" ==
===a===
"compatible with the protocol of Linden Lab’s viewers as it is documented in our source code"
*The obvious problem here is that the source code is constantly changing.
*Also, Implementation isn’t documentation
===c===
"On your software download page or in another location that a user must visit before installing the Third-Party Viewer, you must disclose the following:"
* As was raised by Robin, this is an onerous requirement for linux package maintainers where installation is largely unattended, and would push Second Life out of the main repos and into "non-free"
** In the revision online on March 20, the following was added:
*:"For Linux distributions where there is no opportunity to provide the disclosures before installation of the software, you can comply with this requirement by having your software client present the required disclosures or a link to them in a dialogue box that the user must close before entering login credentials for the first time through your software."
===h===
"The services we provide through our viewers, for example, our Land Store, the LindeX exchange, and the Xstreet SL marketplace, are designed to enhance Residents’ shared experience. We may ask you to make changes to your Third-Party Viewer if it disables certain of our services [...] If we do, you agree to make the changes we request."
*It was pointed out on the mailing list that text-only clients and many alternative clients should not and will not offer these "shared experiences". 
** This subsection has been completely removed as of March 20.
==2 "Prohibited Features and Functionality" ==
===b===
"You must not use or provide any functionality that Linden Lab’s viewers do not have for exporting content from Second Life unless the functionality verifies that the content to be exported was created by the Second Life user who is using the Third-Party Viewer. [...]" This must be done for all content in Second Life, including content that may be set to “full permissions.”"
*This is one of the most objectionable requirements.
**Megaprims are all created by other people, so you can't export them
**Invisiprims, same deal
**Automated building assistants which use their own primitives. (There are quite a few of these.)
**Can't collaborate with someone on a project and then export it to other grids, since it will fail the creator check
**Can't build on an alt and then export it on your main... less of an issue since you can export on the alt but still very annoying. 
**Can't use textures uploaded on alt when building on main, and vice versa.
**Effectively bans all export, since it's impossible to check the creator of textures, which are referenced only by UUID.
*Probably effectively bans all CC-SA-By licensed content, since such content forbids the imposition of restrictions on the right to redistribute the content.
===e===
"You must not use or distribute features or functionality that transmit Second Life usernames or passwords anywhere except to Linden Lab servers. Third-Party Viewers must not retain a user’s username or password anywhere except on the user’s own system." 
Action: For this not to contradict 2(a), 2(b) and 2(e). Please remove "usernames or". 
Why? so that a user can export the content he or she has created and owns to the server of his or her choice and use it however he or she wishes. User content is NOT Owned by Linden Labs. Users have the right to export their creations to any server they wish.
2(a).ii states:
You must not alter content metadata like the Second Life creator name or the Second Life owner name.
2(b) states that a third party viewer may export content on behalf of a user as long as the user's name is also the creator's name. But given that, 2(e) forbids the transmission or storage of a user's name to or on any server but those of Second Life, a third party viewer cannot export any prims. 2(a).ii makes it clear that exported prim data must retain the creator name and owner name. 2(e) as it is written states that a TPV may not store user names. The contradiction is obvious and does need to be fixed ASAP.
==7 "Your Responsibility for Third-Party Viewers" ==
===a===
"You are responsible for all uses you make of Third-Party Viewers, and if you are a Developer, you are also responsible for all Third-Party Viewers that you develop or distribute."
*Developers can't be responsible for what happens with their software. The GPL specifically disclaims liability. You shouldn't try to give it back to the developers.
** The developer-specific part has been removed as of April 20.
===c===
"Violate or promote violation of any applicable law or the rights of any individual or entity"
*This clause is way way too vague. The laws of which state? Which country? Sharia law? What rights? EU rights? Constitutional rights? Copyrights?
** "applicable" was added as of March 20.
===d===
"You assume all risks, expenses, and defects of any Third-Party Viewers that you use, develop, or distribute."
* The developer-specific part has been removed as of April 20.
==8 "Policy Changes, Enforcement, and Termination" ==
===c===
"You acknowledge and agree that we may require you to stop using or distributing a Third-Party Viewer for accessing Second Life if we determine that there is a violation."
*How is this reconciled with the new clause that this doesn't limit the rights under the GPL?
===d===
"If we believe that your Third-Party Viewer is not in compliance, we may request that you add, modify, or remove features, functionality, code or content, and you agree to comply with the request within a reasonable timeframe specified by Linden Lab."
*No developer is going to allow Linden Lab the power to assign them development work that must be completed in a certain timeframe. That's a basically unlimited liability for the developer.
==9 "Definitions" ==
===c===
"By “Third-Party Viewer,” we mean any third-party software client on any device that logs into our servers that support Second Life. Third-Party Viewers include software for viewing Second Life, any chat clients, utilities, bots, and proxies as well as applications that may not be listed in our Viewer Directory."
*This goes back to the preamble. Apparently just creating software compatible with Second Life makes you liable for this agreement/policy. Keep in mind that the Second Life protocol has been submitted to standards bodies for standardization. The only way to opt-out of this agreement seems to be to somehow break compatibility with the Second Life service.
* The policy never defines what "third-party software" means. Presumably, "third-party" refers to a person or entity who is neither Linden Lab nor the person who must agree to the policy. So, does "third-party software" it mean software distributed by such an entity? Or is it software created by such an entity? (In which case, both the official SL viewer and Snowglobe would be third-party software, because parts of them were created by non-LL contributors.) Or does it mean something else? This ambiguity needs to be resolved; no one can be certain that they are complying with the policy, if they aren't sure what software the policy applies to.
** Update: Joe Linden has said in IRC that it means "not released by Linden Lab".