Better Random Thoughts Than None At All
Published by vladimir September 9th, 2008 in MozillaA bunch of things have happened over the past few weeks, and if I didn't write about them now, chances are I would've given up and just dropped them on the floor. Shortly after returning from the Mozilla Summit — and surviving power outages (except for our wireless network, it stayed up, even though the rest of the hotel was out of power!), landslides, bears — I went to SIGGRAPH where I was on a panel as part of the cohosted Web3D Symposium. There were a few things that happened at the conference that I'm excited about, and I'll be writing about those soon.
After SIGGRAPH, Mozilla hosted a number of core Cairo developers at the first-ever Cairo Summit. It was great having everyone in the same room together (well, almost — Behdad was omnipresent by phone). Carl and others took some great notes about the discussions, where we were able to both solve existing problems as well as do some planning for future work.
One particular work item that I was able to start at the summit was to begin setting up a buildbot for Cairo, so that we have constant build and test runs on all the major platforms that Cairo supports. The initial plan is to set up a few flavours of Linux (Fedora and Ubuntu, as well as an x86-64 variant), Windows XP, and Mac OS X; in addition, Mozilla will be providing some Windows and Mac OS X machines that Cairo developers can use remotely for testing and development work on those platforms. Having the builders also means that we'll be able to provide nightly (and release) binary packages for those platforms, thus lowering the bar for new developers who wish to start working whit Cairo on non-Linux systems.
We've still got a lot of work ahead of us both in Cairo and in Mozilla's graphics layer, but at this point the main focus is going to be performance. This was the main outcome from the graphics session at the summit as well — Cairo and Thebes expose the right functionality, but the uncommon cases just need to be faster. Jeff's been focusing optimizing common paths in pixman for ARM, and we'll soon be able to start focusing on GL acceleration. We have some things to solve before we can go fully down the GL/DirectX route (plugins, compositor), but all that should come together.
Cairo's turned into a pretty solid cross-platform graphics library, and I'm excited that we've been able to contribute. Another graphics library, Skia, has recently appeared as part of the Google Chrome code drop. It's unfortunate that Google felt they needed to develop their own alternative in a closed fashion instead of joining an existing open source project. The Cairo project, and through it the many open source projects that depend on it, could have benefitted from the work that was done on Skia behind closed doors. Even worse, unlike most of the rest of the Chrome code, Skia is licensed under the Apache Public License v2.0. This creates difficulties in being able to reuse the Skia code in most projects. (From looking at the source, it seems like there's a private "upstream" for Skia as well, and that the Chrome version is just a copy... I guess maybe it'll get thrown over the wall at some point as well.) I'll certainly be taking a detailed look, though.
I've also been spending time working on some aspects of our platform's mobile story; I picked up a BeagleBoard a while ago, and it's been a fantastic platform for development and profiling of Gecko on ARM. That work deserves its own post, though, so I'll write up something later on this week. (That's two things that I've now set myself up for followup posts about; I'll probably blog more this week than I have in the last two months!)
There’s no problem with Apache-licensed code - all you need to do is update your LGPL/GPL minimum version to version 3.
I don’t understand the problem you suggest with the Apache licence v2 (’this creates difficulties in being able to reuse the Skia code in most projects’). It is just a permissive X11-style licence with an additional patent grant. It seems you could relicense the code under any terms you wanted (BSD, GPL, proprietary, whatever), and Wikipedia at least agrees with me, see :
“The Apache License does not require modified versions of the software to be distributed using the same license nor even that it be distributed as free/open-source software. The Apache license only requires that a notice is kept informing recipients that Apache licensed code has been used.”
Is there some legal opinion saying that the Apache licence v2 cannot be treated as a permissive licence? Does the Apache Foundation agree with that opinion?
Hasn’t Google BSDed the Chrome license? Anyway, I wonder how Cairo stands against Skia. Any benchmark?
2Funtomas
It’s Chromium license which is BSD…
But I’ve seen Chromium use many projetcs in folders and let theirs originals licences:
http://code.google.com/chromium/terms.html
So… the challenge with the Apache v2 license (unlike BSD or Apache v1) is that it includes both an explicit grant of the patents (no problem there), but also terminates that license to you if you sue the “granter” over patent infringements of those patents.
It seems pretty fair and clean to me - basically it says, you can have a license to our patents related to this code, but that license TO THE PATENTS (not the code or anything else) is revoked if you sue us over THOSE PATENTS we licensed to you.
So two problems: (1) it makes the lawyers nervous because its a not as “clean” as MPL, BSD, MIT, ZLIB, etc., and (2) the FSF considers the license incompatible with GPL v2 http://www.oss-watch.ac.uk/resources/apache2.xml
I think they’re nuts: even in their overview (link above) they mix the copyright, patent, and trademark clauses, but then again, I’m not a lawyer :)
The Apache foundation does NOT agree with the FSF on this, btw: http://www.apache.org/licenses/GPL-compatibility.html