So far, the Android Open-Source Project has been set up such that
contributions were being considered primarily for their
appropriateness in Google-Experience devices (those are the devices
where Google gets the most involved), secondarily for their usefulness
in the ecosystem as a whole.
There are some positive aspects in that setup:
-it guarantees that the vast majority of contributions accepted into
the Android Open-Source Project master branch eventually make it into
Google-Experience devices, and from there into official tagged release
branches of the Android Open-Source Project. Google's internal eclair
branch incorporates about 9 months worth of accepted contributions.
-it helps control the drift between the master branch and the official
tagged releases.
There's one big negative aspect in that setup:
-it can't deal with changes that are valuable in home-brewed builds
but not in Google-Experience devices.
I'd like to find a way to resolve the negative aspect without damaging
the positive ones.
I'm thinking that creating a community branch in the Android
Open-Source Project could solve that: the master branch would still
hold its current properties, but the community branch would be able to
take in some of the more "bleeding-edge" changes (and even host
additional modules that don't make sense at all for Google-Experience
devices).
License-wise, this is my opinion of how it'd have to be set up:
-the licenses on the existing modules aren't changed, so that the
changes done in the community branch for those modules can be brought
back into the master branch (and from there into official releases).
-new modules that are brought in from existing open-source projects
keep their license (see below about GPLv3), so that changes can be
contributed upstream into those projects.
-new modules created from scratch should be under ASLv2 if they could
potentially be integrated into the master branch, ASLv2 or (L)GPLv2 if
they're fundamentally replacements for Google apps. BSD-like could be
considered for special cases where it's more appropriate than ASLv2.
-(L)GPLv3 is out of the question in all circumstances - it scares the
phone industry so much that we'd be hurting the entire Android
ecosystem if such code made it anywhere into the Android Open-Source
Project.
JBQ
--
Jean-Baptiste M. "JBQ" Queru
Software Engineer, Android Open-Source Project, Google.
Questions sent directly to me that have no reason for being private
will likely get ignored or forwarded to a public forum with no further
warning.
"Fast" isn't a criterion I would recommend if you want to create an NPO
from scratch. That's not the sort of thing you get a "do-over" for easily.
So long as the process does not drag out terribly long, copyright can be
fixed via (joint) copyright assignment at a later point. It really
becomes painful when you can no longer find the contributors (witness
the suffering Mozilla went through to switch from MPL to MPL/GPL/LGPL,
years after their initial license plan), but that's unlikely to happen
in the next few months.
We could consider the Software Freedom Conservancy
(http://conservancy.softwarefreedom.org/), an offshoot of the Software
Freedom Law Center (Eben Moglen, et. al.). Quoting from their Web site:
"One of the principal benefits of joining the Conservancy is that member
projects get all the protections of being a corporate entity without
actually having to form and maintain one."
--
Mark Murphy (a Commons Guy)
http://commonsware.com | http://twitter.com/commonsguy
_Android Programming Tutorials_ Version 1.0 Available!
Here are the sticky points that came up:
-This would need to be set up in a way that would make it very clear
that changes in the community branch (which would probably need to be
called "experimental") aren't reviewed and approved by Google and
aren't meant to ship "as is" on consumer devices.
-Anything GPL-related is scary, even v2. Not all of the worry might be
justified. A big part of the concern is to make sure that having GPL
apps doesn't turn the entire system into GPL.
-Gerrit at the moment isn't designed to allow per-branch access rights
(only per-project), so that feature would need to be implemented first
before a community-maintained experimental branch would make sense.
-Contributors to the experimental branch would need to agree to the
standard AOSP CLA.
JBQ
This brings a question, though: who should own the copyright on those files?