Tuesday, April 29, 2014

Sailfish Silica - the half open sourced problem of Jolla

So in my first post we'll do some time traveling to the past events and a bit of detective work to look for answers whether Sailfish Silica components were supposed to be open source or not? We'll see what Jolla was saying about that on different occasions and how that was changing over time. But before we even start digging into the past let's briefly explain a bit (to those less oriented in topic) what are those components and how their current state in regard to open source looks like.

Sailfish Silica Components are actually GUI building blocks of native Sailfish OS apps. If you want to build an app that will integrate nicely with the look&feel of Sailfish OS you simply cannot avoid them. Those include for example pages, sliders, buttons, pulley/pushup menus and many, many other UI components that you find in the native apps. For full (or almost full) list see Sailfish Silica reference in the official documentation provided by Jolla.
What is their current state when it comes to the license? Well if we check the sailfishsilica-qt5 package on the latest version of Sailfish OS we see that license field contains... "TBD". That doesn't say much, but in practice the QML part of Silica components is on BSD license and the C++ part is closed source.

Now, let's shift in time to period when Sailfish Silica components name publicly appeared for the first time. It was FOSDEM 2013, during talk about QML components by Marko Matilla, one of Jolla employees. It's worth to notice that Jolla was on the event officialy - there were three talks by Jolla employees and there was even a Jolla stand in the corridor of one of the buildings. Seems like a very important moment and place for Jolla? If we notice their strong appearance on the event the answer seems to be a clear yes.
Anyway let's focus on the talk itself made by Marko and especially on his slides. So at some point a slide with Sailfish OS architecture appeared on the screen showing different layers and their elements, but even more interesting was the next slide that followed. The slide was titled "Sailfish OS - Open Source" and contained information what is open sourced and what is not in Jolla's operating system.
Marko Matilla presenting Open Source parts of Sailfish (photo by thp4, CC-BY-2.0)
What we clearly see on this particular slide and what was also some weeks later confirmed by Carsten Munk on IRC is that Sailfish Silica components will be open sourced. That was an important message to FLOSS community at that time and people noticed it very well. For example Czech association Openmobility mentions that fact in a blog post, also other people reacted with comments like "really good to see Sailfish Silica open source'd". Well, that shouldn't be much surprising as such important announcements gather a lot of attention in communities, especially in the FLOSS ones.

But how was it later? Well it got a bit more complicated. From a cold winter time in February 2013 let's fast forward half a year later to the summer. At beginning of July there was a question on IRC to the same Carsten Munk about status of Silica Components. This time we hear that QML part of components is on BSD license, but interestingly not a single word about status of the C++ part. It gets even more interesting about two weeks later on Akademy 2013 in Bilbao where Jolla is represented by Vesa-Matti Hartikainen (Veskuh), who gives a talk there. Nice thing that there is a recording from that event, so we can listen what exactly Veskuh said in mid-July. If you are not interested in the whole presentation I would recommend checking it from 16:00, when the architecture diagram appears (on side note there are some pretty interesting parts in the whole presentation, like the one when Nokia is called there "a coward" to which I'll probably come back in a separate post about how Nokia's past affects Jolla and their internal company culture). The most important from our perspective are the following sentences being said by Veskuh:

"I can say with high level of confidence that our QML Components set which is called Sailfish Silica will be out open sourced. The one we already distributed with Alpha SDK had the QML parts as BSD license, so I don't see any change in that and the native part will probably be open as well"

I don't know about how my readers feel, but I see here a serious contradiction between the first and the second sentence. In the first one we are informed with a high level of certainty that components will be out open sourced, but in the next one we hear that one of the parts (C++ part) will only probably be open. If we compare the second sentence to what was said half a year earlier on FOSDEM it gets even more confusing.

Then some time later - in September we have next important Jolla appearance on stage (just a week after famous company sailing near Helsinki). This time it's Katowice and SmartDevCon, where Jolla was showing their later prototype device, similar to the final device. Once again Veskuh speaking and he even has the same exact architecture slide he had at Akademy 2013. Does he says anything about open source status of Silica Component this time? For some reason he doesn't say a single word here about that aspect. Should that be a surprise? After all SmartDevCon is a conference about smart devices, so open source topics don't matter, right? Well, not really. Considering there were talks by Samsung, Canonical, Mozilla and Jolla (which rarely happens in one place) and the open source term was mentioned multiple times during the talks, then passing over in silence about open source status of Sailfish Silica components seems a bit like an intended move.
Well to be entirely precise, the Silica components are actually mentioned in  the open source context on David Greaves talk two days earlier. In his talk David talks more or less about the fact that Jolla is working on open source in the non-differentiating parts like Mer and their business model with Sailfish is based around the complimentary parts ("building around open source projects"). Sailfish Silica appears on his Sailfish parts slide, so is it a differentiating part and intended to be a closed part in the end? Unfortunately that isn't clear and wasn't explained during the David's talk.

Then we move again to FOSDEM 2014. This time Jolla has only one talk there (in comparison to three talks a year before). Its title is "Technical introduction to the deeper parts of SailfishOS, a Qt5-Wayland based mobile OS" and was done by Carsten Munk already mentioned earlier Jolla Chief Research Engineer. The talk as title suggests is mainly technical and Carsten (like title has promised) goes pretty deep into that. At some point he even shows kind of diagram where more or less all the software blocks/packages that Sailfish consists of appear. What we can notice there is that Silica components are appearing on the closed (right) side of the diagram that he calls "evil closed source". Besides that, he doesn't say a word about Sailfish Silica components and doesn't make even a small comment about year's earlier Jolla announcement at FOSDEM of them being open source.

Now that we went through such a long time journey I would like to ask some questions here, everyone can look for the answers themselves, maybe someone from Jolla would be willing to respond to all of them:

If the Sailfish Silica components are supposed to be open source anyway why to delay it further? Is the C++ part really so ugly and not ready for that? Or maybe Jolla wasn't sure at all whether it will be open source or not? If so, is it fair and ethical to make announcement about Sailfish Silica being open source on the biggest FLOSS event in Europe?

Comments welcome, but please stay on topic of the whole article - promised open sources of Sailfish Silica components. If you have any interesting observations in other areas or other topics that could be good to deal with on this blog - feel free to contact me via my private e-mail.

UPDATE (13.05.2014)

Having not received any answers to questions posted on my blog from anyone from Jolla (despite they were reading it) I brought up this topic on one of weekly IRC community meetings after Veskuh made such comment there:

<veskuh> fk_lx, you have been criticizing of us changing plans and now you again say that we should make unsure plans more public?

The question suggest that I've been criticizing someone for changing plans. Well, sorry Veskuh, but you got it wrong. I'm not criticizing anyone for changing plans, if I'm criticizing anything in my blogpost, then it is not keeping up promises given before FLOSS community. It's perfectly ok to be unsure about the future plans, but then let's say it in a fair way like "we don't know if it will be open sourced or not" from beginning, but Marko Matilla on FOSDEM said it will be open sourced, just like Carsten Munk on IRC. There is a big difference between words "will be" (certainty) and "we are thinking about it" and most of the people understand the difference. Also another Jolla employee David Greaves (mentioned in the post above) made a statement on this topic.

<lbt> I think one issue here is that it's hard to differentiate between desires and plans we may desire things to happen but find obstacles along the way some are things that are part of our opensource work - others are commercial and we need to work on how to communicate those with less confusion

Again, like it was later pointed in that discussion by me and a guy with nickname SK_work there is a huge difference between expressing desire and promising something. Anyway we get very interesting information from Veskuh on that meeting:

<veskuh> In silica's case engineering (me too) was saying open silica too soon, but we though it was happening faster. I can't go into reason, but now situation is not as simple anymore.

So from above statement we get that open sourcing Silica will happen slower than it was expected (in other words we get to know here that it will happen at some point). Reasons for that are unknown. There was also information from Carsten Munk on that meeting:

<Stskeeps> #info Silica is not open source currently. State is that there's no exception granted (see policy listed in the other meeting) for open sourcing the current codebase, which is BSD-licensed QML and closed source C++, but there is a desire. Work to get that exception is ongoing

So once again we are hearing only about desire and where did certainty went along the way? It is really confusing hearing from one person information that it will happen (but slower) and from another that it is only a desire (desires can simply go away). Also it's worth mentioning that Carsten Munk said on beginning that he is hat-less on that meeting, in other words not representing Jolla, so we cannot treat his statement here (in contrast to David's and Veskuh's ones) as official Jolla statement.

It's also worth to ask here why we cannot get more or less detailed information when the open sourcing will happen? 1 month, 1 year, 2 years, 10 years, 50 years? Without such information everyone can quite easily promise that they will open source something after 100 years when it will be totally irrelevant and useless, maybe except for IT historians. Moreover giving reasons for delaying open sourcing that C++ part would be useful.

UPDATE 2 (13.05.2014)

Carsten Munk has said on today's IRC meeting with community that it is official Jolla statement he presented on IRC last time and repeated it once again today.


  1. While I have no knowledge of the situation, it sounds like the C++ code is not owned by Jolla. So the idea to get the C++ code opened is similar to Maemo Council's attempt to get license to redistribute Nokia binaries. it might happen but only after hundreds of lawyers have looked into the matter, none of whom have an incentive to say yes. The initial statement that silica will be open source was probably the overly optimistic beliefs of developers who were not lawyers. then by the summer, reality had set in, and the facts were actually known. Worse it sounds like the C++ code rights holder has changed (MS buyout of Nokia?) and now they're dealing with a completely new set of lawyers which they have no familiarity with.

  2. Another point too is this, what would open sourcing the silica components do to the writer of this blog. He needs to be clear on what he want to achieve with the source code.

    The mere fact that Jolla is changing their tune after making public their aim to open source all the silica components, means they are facing some challenges that is not yet known.

    Give them some space. In this mobile industry where litigation is the second most talked about activity, they don't have the resources to be drawn out in the open and pay monies to any patent troll