Tuesday, January 31, 2012

open beyond licensing

Use The Source!

When I first let the world in on our "little" project to create an open tablet there were some who wondered openly about the licensing of the software. It's an important question that deserves a clarifying answer:

We are not using the OS (Android, in this case) provided by the hardware manufacturer. We are also well aware that some of the people in the hardware supply chain are violating the terms of the GPL. This was amazingly frustrating for us and caused significant delays as we went in search of GPL friendly vendors. We found that in the market of affordable device makers in China, they just don't exist. There's a cultural as well as legal hurdles that have led to this unfortunate situation, and I personally think Google has a lot to answer for when they allow such companies open access to their app store while they must be aware of the license violations that are going on. So it's an unfortunate situation, but we're problem solvers, we're bad-ass Free software developers who see a problem and bang on it until it falls over, right?

We decided to go with Mer, the community continuation of MeeGo, as our base OSS. With the amazing help of the Mer community, we have been able to bring up a non-Android, built-from-source kernel on the device and even boot into Plasma Active. There is still work left, and we still do have some binary drivers, but this progress is already one massive crowbar that's prying open the doors that have been shut on the world of ARM based devices.

We're not the only ones working towards such a brighter future: there is Luc Verhaegen's work sponsored by CodeThink  on the Mali 400/200 GPU driver being announced as FOSDEM; there is the Rhombus-Tech project that is working on a GPL kernel with Allwinner for their products such as the A10 (a chipset we'd already been looking at for (near) future devices). These are all awesome projects, and I'm happy to be a small part of this growing wave of effort. Simply put: we need open devices, and this is how we're most likely to get them. Hopefully in the future it will become "the way it is done" by all vendors out there, but it takes some early movers to take the first steps and force change.

Since we're using Mer for the user space and Plasma Active for the user experience, all the code above the kernel and most of the kernel itself is already open and available for download right now.

Full disclosure: right now we're still stuck with a few binary drivers which is not a perfect situation. With time I'm confident we'll get the binary drivers out of the picture, one by one, even if it takes time, effort and some pain. We've already managed to get source for some drivers that were not previously available so the trajectory is right. If we wait for perfection, however, we'll never get anywhere because we need to release and push the status quo level of openness further inch my inch by making releases. It'll be incremental, but we're already further than others have gotten. It's been hard but rewarding work, and I hope we can all work together to make it go faster, bigger and further!

Open Beyond Licensing

I do think it is unfortunate that when I wrote about an open and unlocked device, so many people jumped straight to the topic of source code licensing. Free software is not about licensing. Let me pause while the shock of that idea sinks in for a moment. ;)

Free software is about freedoms. Licensing is an important part of the toolbox to ensure those freedoms are available, but they are only tools not the actual product being aimed for.

This is important to keep in mind because openness and freedom goes a lot deeper in Spark than just using GPL and BSD licensed code. For instance, the boot loader isn't locked so you can boot your own OS if you wish. You can install your own apps, you can even provide your own app delivery system. You can use the Open Build Service to deliver software on top of the Mer core. That is not a property of the open licensing, but of our desire to deliver devices that you not only purchase but wish you own.

The content store is also going to be interesting. On release, the client will be Free software and the APIs openly documented so others can write front-ends. Most interestingly, however, is the server side. It has been designed in such a way that other people with other devices or concepts can use that same back end to make their own stores. It supports the idea of a single, large set of content which can then be curated into any number of different stores with different focuses and delivery targets.

Think about the possibilities: a school district or educational board could decide to set up a "store" with learning materials and content with access granted to their students. They could offer both "free" and "pay for each download" content, even if only for bookkeeping purposes. Much like the wildly successful video game markets for gaming consoles, the Make Play Live content store uses a points system for transactions, so in such a scenario points could be handed out to students, schools and/or entire districts.

On release, we will be providing a guarantee that if the project dies or we all fall over, the back-end code for the store will be made immediately available for download under a Free software license. Hopefully it doesn't come to that, of course. Once we are happy with the implementation and scalability of it, we will be making the back-end open as well. We have chosen to delay that release as we don't want others setting up their own hosted stores before we are confident in the internal design ourselves.

Even Activities themselves, the core interaction concept in Plasma Active, embody the philosophies of freedom and openness. This is your device and it should become your personal thing reflecting you. You are not treated as a mere consumer for an app store, but given a tool to help you live your life in some small way.

I really urge people to think about openness and freedom, two amazingly important concepts, beyond the boundaries of simple software licensing. Licensing is important, and we take it pretty damn seriously .. but we ought to look at bigger picture and really think about how to make our digital tools open and free in all sorts of ways.

Tomorrow I Answer Questions

There were tons of really good questions asked on my blog, on tech news sites that carried it as well as by private messages. Tomorrow I will do my best to go through answer as many of them as I can with short, to-the-point answers. I will be covering information ranging from release time lines to pre-orders to more hardware details to .. well .. visit tomorrow to find out!

20 comments:

mick said...

Thanks for the informative update! I previously wrote to urge higher spec-ed hardware so I especially appreciated the part about struggling to find GPL-friendly hardware vendors. Also, I visited the Zenithink website and realize that you chose the only 7" tablet there, so I consider myself lucky since that is the largest size I would like to consider. Finally, I found a Zenithink forum at androidtablets dot net. There seem to be helpful people there. Many of the issues reported are not Android-related, so I imagine it may be a helpful resource for users of your tablet.

Jaroslav "Rezza" Reznik said...

Hey, thanks for all the work! Hope to get Spark soon :)

Btw. wouldn't it make sense to co-operate with other open source tablet UIs to get real open and free one? See for example Cordia - they hit the same issue as you - about violating GPL and ransoms to produce tablets for them, read more on http://cordiatab.com/

They also use Mer as a OS layer. Then people can be free to choose the UI of their taste, use the same tools (like the store backend with own client, and own selection of Hildon based apps, etc.).

Shmerl said...

Stskeeps from the Mer team said, that Mer itself doesn't deal with repositories, and this responsibility lies on distributions based on Mer:

http://talk.maemo.org/showthread.php?t=82001

I hope some common repositories can be collaboratively developed, to avoid the duplication of effort. It can concern various Mer based distributions (such as Plasma Active, Cordia, Nemo Mobile and etc.), as well as third party developers who would rather avoid deploying and maintaining their programs across multitude of repos. It'll also help discoverability for end users.

Aaron J. Seigo said...

@Jaroslav: "wouldn't it make sense to co-operate with other open source tablet UIs to get real open and free one?"

we are working with projects that are complimentary to our efforts. so, e.g. Mer, Maliit, etc.

and yes, i'm aware of Cordia, and i understand first hand the issues they ran into.

"Then people can be free to choose the UI of their taste"

they will be, but it's not our focus to try and support N different user experiences. we just don't have the resources for that, nor do i feel would our users be best served by such a thing. i'd rather have one good-as-we-can-make-it experience than a bunch of hacker prototypes. :)

@Shmerl: "Mer itself doesn't deal with repositories"

that's correct.

"I hope some common repositories can be collaboratively developed, to avoid the duplication of effort."

see my response to Jaroslav above.

"third party developers who would rather avoid deploying and maintaining their programs across multitude of repos."

they shouldn't need to. i honestly doubt we'll see many device projects with a large user base, though. however if the various efforts keep using OBS then it becomes a lot simpler for app developers even with diversity.

"It'll also help discoverability for end users."

how, exactly?

Shmerl said...

By discoverability I mean, that user will be able to review packages in one community repo (which can for example have some visual front end), and get an idea on which devices they can run.

Maintaining dependencies is always an issue. Imagine that some projects relies not only on Qt and few base libs from Mer, but on bunch of 3rd party libraries (boost, OpenAL or whatever else). How all those supposed to be maintained across multiple targets? So having some community repository infrastructure is a big plus.

bgreinfeld said...

Aaron, thanks for all your effort.

yokem55 said...

Curious, did you actually go to Shenzhen to set things up with the OEM? Or were you able to get it going remotely?

Also, I'm fascinated by how you were able to bankroll the project? From what I understand, the OEM's don't do production runs on these things without an upfront purchase of several thousand units. Unless they are letting you piggyback off of the C71 production run and just doing a different software load for you?

And are there prospects for getting a higher resolution display down the road? Supposedly Asus's new 7" Tegra tab will be 1280x800, so I can't imagine the better display would be THAT much more expensive..

Again, thanks so much for bringing this together and bringing some hope for the future of free & open computing!

Javi said...

Completely agree with you. We NEED open devices.

To that objective, one big step is getting rid of closed graphic drivers.

I'm convinced this scenario is changing and will be different in a few years, but we need projects like Spark to push forwards.

From my side, I'll do the only thing I think I could help... spreading the word, and buying Spark. ;-)

rahul said...

Really appreciate the blog post. I think the word "open" has been used and misused in various contexts. And sometimes it is easy to forget that being Open goes beyond just having the source available.

Really looking forward to Spark. Keep up the good work!

Alliance said...

Theoretically it could run Android apps. Am I wrong?

lm29 said...

Since this is the same exact tablet as the zenithink c71 will you release the software to flash a c71 to sparktab because zenithink really REALLY sucks at making roms

oiaohm said...

aseigo I hope you are aware of http://rhombus-tech.net/allwinner_a10/

They are working with the same chip as what is at the core of the tablet you are looking at.

Allwinner A10 chip is fairly new. The CPU maker is slowly but surely working with people to get into GPLv2 conformance.

Zenithink is not exactly stuffed as a option. I would say delayed.

rhombus stuff latter this year is planned to be volition free.

Something interesting A10 is if the usb ports are exposed downloading or rewriting the boot loader is always possible.

Really A10 is most likely the most open cpu in arm we have seen in a long time. There is no option to take it out of development mode.

So yes you should be able to make a generic install image for the A10 devices.

Source code of kernel slow to release unfortunate. GPU standard mali. So quite good devices. Chip Maker was not quite expecting them to go like hot cakes.

Aseigo you were just a little fast off the mark. Also in china is nothing un common for the source code to be release on a china only website. Great china firewall can be a complete pain in but.

So make sure you check with the maker and get someone who can read mandarin to read the site in mandarin. Source code links normally don't appear on the english site. Even that the source code will be all done in english in most cases.

oiaohm said...

A10 chips were design not to be brick-able even in the worse developers hands. So no efuses or anything like that to prevent boot loader replacement.

Maker was thinking they would be proto type only. So yes the A10 chips are quite good due to there design.

TDTwister said...

I would like to take this opportunity to thank you for your efforts. An interesting question I would like to ask the Chinese manufacturers is why they will not release the source code of the Kernel. After all most of it if not all should already be available. More over this does not give them any competitive advantage since all manufacturers have the ability to modify the Kernel for their own hardware. On the contrary by releasing the source code will help many communities develop their own software for that machine that later can take advantage of as they did with the Linux kernel.
God forbid Google decides that the Open Source policy they have does not serve them and more and decide to close source further releases of android they manufacturers will have a backup plan.
More over developers will start maintaining and patching the kernel removing the need of the manufacturer to maintain its own kernel.
Despise that releasing the source code of the kernel is their legal obligation I think that there are better ways to convince them. Any other thoughts?

Jos Poortvliet said...

Pretty awesome work, Aaron. I look forward to the release. Will it have PA 2 or 3?

And you talk about open appstore stuff, you mean OCS I suppose? Or did you guys build something new?

Aaron J. Seigo said...

@oiaohm: i am aware of both the A10 (have an A10 powered device on my desk at the moment even) as well the Rhombus Tech work. it's great stuff.

however, as you can imagine, we started this a bit before and the A10, while it looks very promising, is probably not an option for the first half of this year and perhaps not until next. we'll see. i really like the performance of the chipset and that there is a GPL-compliant effort with management support.

"Also in china is nothing un common for the source code to be release on a china only website."

i'm aware of that, and upstream chipset manufacturers do a better job of making sources available than downstream device manufacturers do. and there are deltas between the chipset company kernels and the kernels the ODMs use.

"So make sure you check with the maker and get someone who can read mandarin to read the site in mandarin."

i'm surprised you think we haven't done that :)

Aaron J. Seigo said...

@TDTTwister: "After all most of it if not all should already be available."

yes, but not their changes, which they perceive to be competitive advantages when not released.

we need to work with these companies to help them adjust their calculations and come to an understanding that there are more advantages in being open.

"manufacturers will have a backup plan."

it's called Mer and Plasma Active ;) seriously, i agree with all your points and it is precisely why we feel Mer + Plasma Active is so compelling for the industry, especially outside of the top tier companies where getting your voice heard is so much more difficult and resources are more scarce.

"Despise that releasing the source code of the kernel is their legal obligation I think that there are better ways to convince them."

as they are not distributing their devices directly into markets where these legal issues are actively policed, it does not overly concern them.

Makkie said...

Great job going on here.
Following ths for few days now but still no info on ordering the tablet etc.

Keep up the good work.

Bugs Bane said...

So..... Update? I'm guessing the questions answered thus far in the comments aren't all you're planning on telling us and it's the day after "tomorrow". :)

shackra said...

* The GNU/Linux distribution what you give with the Spark is compliant with the Free Software directives for free distributions?

* Should I use propretary drives in order to use the tablet with other GNU/Linux distribution?