Go Back   Second Citizen MK II > The Mainland: Second Life® > News and Information > Imprudence Viewers

Thread Tools Display Modes

Why doesn?t Imprudence have multilayers/inventory links/mesh rendering?
Old 09-27-2011, 03:10 PM   #1
Imprudence Bot

Imprudence Bot's Avatar
Join Date: Feb 2011
Posts: 107
Default Why doesn?t Imprudence have multilayers/inventory links/mesh rendering?

Other viewers have them, so why don’t we? Why would a developer purposefully avoid such useful features–ones that users clearly want?

The answer is something of a mixed bag, and to get into it I’ll first have to explain a little bit about licensing and how licensing works. If you already know this stuff, please bear with me as I’ll get to my point soon.

As many of you know, Imprudence is licensed under the GPLv2. The GPL stands for the GNU Public License, and it’s open nature is what allows us to easily share code with you and incorporate code from others in turn. We can’t do whatever we want with our code, though. The GPL has certain restrictions:

  • You cannot change the license of GPL code (unless you are the original author or hold copyright). When we get a patch submission, the author must license their code as GPLv2 in order for it to be compatible.
  • You may not distribute works based on GPL code that violate any part of the GPL itself. Doing so leaves you open to legal action.
You might say, so what’s the problem exactly? Imprudence is opensource. Second Life is opensource. Why can’t they work together? Here’s where the restrictions of the GPL come in: a bit over a year ago, Linden Lab decided to change the license for the Second Life viewer from GPL to LGPL–a similar-sounding but very different license. This put a massive hurdle in the way of anyone who wanted to backport a feature from the Second Life viewer.

For example, say someone submits an LGPL-licensed patch to Imprudence.

While the GPL and LGPL are considered “compatible” licenses in that they work together well, we don’t own the copyright on the LGPL code submitted to us. Thus, we cannot change the license of that source. Whatever code was licensed as LGPL must stay LGPL forever in order for us to comply, and that distinction must always be made clear wherever that code is used.

This might not sound like much of a hurdle (and at times it isn’t–we switched over to the LGPL version of our quicktime plugin ages ago) but consider the Inventory Links patch that’s currently in most other viewers. It contains ~43K lines of code, and is made up of an unknown mixture of GPL viewer 1 code and LGPL viewer 2 code. The two licenses are not made distinct, so the patch is clearly a violation. There’s no way we could legally use it as is.

But, if we could figure out which lines are compatible with Viewer 1 and which ones are compatible with Viewer 2, we could add the appropriate licensing and include the patch. Needless to say, this has felt like a daunting task to us, especially when we’ve been more focused on bug fixes and finalizing 1.4.0 (if you’re using 1.4 and aren’t on beta 2, I strongly recommend upgrading). But, these are features you guys need. We want to include them.

My plan is to start looking at these patches one by one and sorting out which lines we can use and which lines need refactoring. As I mentioned in a comment on the beta 2 post, any volunteers who can help us with this process are welcome. Codie and I will be starting on this later tonight, and we’ll see how far we get. If you’d like to join us, please email me at mccabe@kokuaviewer.org and I’ll tell you what you can do.

You might find yourself asking, why go through so much effort for something like a little licensing issue? Why be so concerned about it when other viewers aren’t?

Our answer to that question has always been–almost from the project’s inception–that while sometimes doing things the right way isn’t easy, these concerns are important enough. It’s thanks to licenses like the GPL, and the rules that accompany it, that opensource software has matured to the level it has. Because of free and open software, we had the ability to create Imprudence (and later Kokua) in the first place. We feel an obligation to respect that.

Anyway, I hope this clarifies for people where we’re coming from, and why Imprudence development’s been different.

Imprudence Bot is offline   Reply With Quote


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -4. The time now is 08:35 PM.

vBulletin skins developed by: eXtremepixels
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2020, vBulletin Solutions, Inc.
Second Life® and Linden Lab® are trademarks of Linden Research, Inc.
Second Citizen MK II Forums are not affiliated with or sponsored by Linden Research.
© 2009 - 2011 Second Citizen MKII [SC MKII]
| Home | Register | FAQ | Members List | Calendar | Today's Posts | Search | New Posts |