Status Update (December 6)

Hiyo, Imprudence fans! I know things have been pretty quiet around here lately, so I wanted to give you guys an update about what’s happening with Imprudence and Kokua.

A Brief Intermission

Unfortunately, McCabe and I are pretty burnt out and exhausted from all the work on Imprudence 1.4, planning Kokua, non-working plugins, and licensing headaches. We badly need a rest, so I’ve decided to put the Experimentals and our in-world developer meetups on pause for December. This will give us a chance to relax and recharge, and enjoy the holidays. We’ll still be around in the forums, IRC, and the mailing list, but we’ll be taking it easy.

We had been aiming to release Imprudence 1.4 by late November/early December, but that schedule isn’t realistic anymore, both because of the burnout, and because of unexpected difficulties with the new media system (the code used to play streaming video and audio). We hope to release a 1.4 beta version in mid-December, then take a break from Imprudence work until January.

Quicktime and VLC

One of our main goals for Imprudence 1.4 has been to replace the flakey old media system with a more stable one based on the media plugins from Snowglobe/Viewer 2. Since the plugins run as separate programs from the viewer, stream problems won’t crash the viewer any more, and it gives us more licensing options in terms of the libraries we can use. For example, it’s now possible to use Quicktime or VLC, neither of which could be used before due to licensing conflicts.

Our initial plan was to use the Quicktime plugin on Mac and Windows, since it has fairly good support for the most popular media formats, and the plugin code already existed. Plus, it would require less packaging/maintenance effort on our part, because we wouldn’t have to prepare or distribute the actual libraries, like we do with the old GStreamer-based system. However, we had erroneously assumed that the Quicktime plugin could handle both streaming video and streaming audio, but it turns out that it only handles video.

Since the Quicktime plugin was going to require a significant amount of work after all, we decided to put that effort into finding a better alternative. In the past, we have considered the idea of using VLC, but we never had the time or energy to devote to that. Thankfully, Robin Cornelius has stepped up and made it happen! (Thank you so much, Robin! Words cannot adequately express how grateful we are for that.)

Licensing Frustrations

The VLC plugin is pretty much done, but we ran into a licensing snag that took a while to untangle, and has created some extra work. The details of the snag are both confusing and boring, but I’ll try to summarize. The plugin currently depends on three pieces of software with different licenses: APR, VLC, and part of the viewer code. Because of the terms of the licenses, the viewer code can co-exist with either APR or with VLC, but not both at the same time. Likewise, VLC can co-exist with either APR or the viewer code, but not both at the same time. It’s a bit like a sadistic lawyer’s version of the old puzzle of the farmer carrying a fox, a goose, and a bag of beans across a river.

As you can imagine, it has been a headache even to understand this situation, let alone find a solution that respects all the licenses involved. Speaking for myself, these kinds of software licensing issues are the single most frustrating and demoralizing part of working on an open source project like Imprudence. Not only is it difficult to figure out what we can and cannot do, but often honoring the software licenses puts us at a significant disadvantage in terms of stability and functionality, and often creates a lot of extra work (e.g. finding or creating replacement software).

Why We Care About Licensing

It would be very convenient if we could just ignore the licenses, but we don’t. Why not? Of course, there are the obvious legal issues, but realistically there’s very little risk of any legal action stronger than a cease-and-desist letter. Much more important than the legal issues, are the moral ones. Each library’s license reflects the creator’s wishes about how their work should be used. By using the libraries, we are making a promise to respect those wishes, and we take that promise seriously.

We’re currently working on a solution that involves replacing both the viewer code and APR with code that has a compatible license. It has taken some elbow grease, but Robin is making great progress on it. Hopefully, we will be able to release an Imprudence 1.4 beta in mid-December with the VLC plugin for Windows, and perhaps even for Mac as well.

A Brief Update About Kokua

Finally, a brief update about the status of Kokua. Our focus has been mostly on Imprudence 1.4, but there has been a bit of activity on Kokua over the past month. The main source repository is available on GitHub (although currently the code there is identical to Viewer 2.2), and there are already several forked repositories with some interesting commits popping up (especially in Armin’s repository). And, I’m sure several of us will be playing with the Kokua source for fun while we recharge.

So, happy holidays, and we’ll see you around! :)

13 Responses to “Status Update (December 6)”

  1. Ener Hax

    i think you can take all the breaks you want (you earned the vacation time right?) =)

    it’s Hanukkah anyway, what are you doing working? it’s about time that Christians took Hannukah off just like we (me) take Xmas off. besides, once you find out it’s an 8 day holiday, well . . .

    good luck and thank you for making such a great product! =)

  2. zoebug

    Many thanks for the Update
    Have a deep well deserved rest.

    Great new about Robin Cornelius’ good work.

    Beaming all the team Positive Energy

  3. Stryker Jenkins

    Thanks for the update we really needed that! It is good to know you need a rest and I think you deserve it as well.

    At least now we know where we stand and what your planning in what time frame.

    Keep up the GREAT WORK guys… see you all (or download new stuff)) after the holidays.


  4. mimetic.core

    Enjoy your holiday and well deserved rest. Sorry to hear about all the licensing headaches and compatibility issues – always a kick in the pants but if anyone can figure it out, you can. I think the VLC route is a great idea.

    I’ll be keeping an eye open for 1.4b and lurking around the repos. Have a great holiday and happy New Year! Be well and safe. ^.^


    (@ener hax: I think we should ALL start taking each other’s holidays off until there’s just one continuous festival of good will and food ;D)

  5. Jamey

    I’m glad ya’ll are taking this break! It’s the Holiday Season, and ya’ll should get to enjoy it too. Personally, I think one of the advantages in switching from calling them “weeklies” to calling them “experimentals” was that you removed a certain amount of psychological pressure to get them out on a set schedule. This is, of course, both good and bad – most people need some kind of deadline to really get things done, but at the same time, you’re not getting paid for this, either. I figured it might be a good idea to stretch the experimentals out to every two weeks, instead of weekly. Still, and all, this is a magnificent project, and your attention to the licensing issues sets it off as the best TPV!

  6. Mimika Oh

    You say “Each library’s license reflects the creator’s wishes about how their work should be used.” but do you think they wanted to create this mess and unnecessary work? Were you able to ask?

  7. Jamey

    @Mimika – This licensing “mess” has been around far far longer than SL. In fact, if you read Richard Stallman’s discussions on why he created the GPL in the first place, you get the impression that yes, he *DID* in fact want to create something like this mess, as an incentive to encourage adoption of the GPL, or a license very similar to it. If a project has a single maintainer/developer, it’s relatively easy to e-mail them and ask for an exception license, or a complete relicensing – though many won’t, because they have what they feel are very good reasons for picking the license they did. Larger projects, with significant numbers of developers, both current and past, are much more difficult. It is essentially impossible to change the license on the Linux Kernel at this point, simply due to those issues.

  8. makomk

    I seem to recall that VLC is GPL2+, right? Seems fairly easy to solve; just replace the necessary parts of the viewer code with the newer LGPLed versions from Viewer 2.0 and use the relicensing provision of the LGPL to license the combined work as GPL2+ too.

    I even have a somewhat experimental patchset to compile the viewer against the appropriate LGPLed code, but you may need permission from Kitty Barnett to make it 100% above-board due to a couple of small RLVa-related changes in llcommon. An even easier option is to compile the plugins against a different version of the viewer code to the actual viewer and you don’t even need to do that.

  9. makomk

    Sorry, the end of that comment should be “don’t even need to modify the main viewer code”.

  10. Lomgren

    The problem is that they are trying to fix the plugin on the non-LGPL codebase – this is for Imprudence 1.4, not Kokua.

  11. makomk

    Lomgren: there’s not a huge difference between the version of (most of) the required code in Imprudence and the LGPL equivalent in Viewer 2; Imprudence can be fairly easily converted to use the viewer 2 code for some stuff.

    How practical this is depends on how much viewer code the plugin depends on; the plugin wrapper itself and the code it uses are relatively easy to replace with LGPLed equivalents, other code may be less so.

  12. zoebug

    Any chance of a short fresh update for the new year :))

  13. zoebug

    i meant info status update