Thinstuff Android and iOS Ports Announcement
I have an exciting announcement to make, and I’m sure you’ll be excited by it as well. For quite some time already I have been working with Thinstuff on the development of FreeRDP ports to Android and iOS. I have been working and coordinating with Thinstuff employees for both ports, with me in charge of software architecture. This is one of the reasons why I developed libfreerdp-gdi, a highly-portable GDI library which we’re using for the mobile ports, among other things. If you were to start a new port from scratch today you’d notice that the code is already portable, since I’ve been keeping mobile devices in mind all that long.
Thinstuff has a precedent in open source mobile application development: iRdesktop, an iOS port of rdesktop (http://www.irdesktop.com/). When Thinstuff originally found out about FreeRDP, they contacted me to see if we could collaborate on mobile ports. We agreed that the code would eventually be open sourced, but we did not have a precise idea at that time of a possible timeline and licensing. Since I owned an Android phone and had some basic Android development experience, I got started on the Android port, which would be followed by the iOS port. There is almost two years of work that went into those ports, with both me and Thinstuff employees actively working on it. If there’s something I learned from this experience is that mobile application development is really hard to get right and it is also very time consuming. The environment is highly restrictive, and making a usable application is nowhere near trivial. These ports are not simple applications which display a windows desktop, they are full-blown applications that have the potential to compete with current commercial alternatives. If many companies would be tempted to keep those ports proprietary, I am really proud to say that Thinstuff strongly believes in open source and is willing to stick to their principles. I take my hat off to Michael Gibson and Norbert Federa from Thinstuff for their sustained support of FreeRDP.
That being said, the licensing question wasn’t an easy one to figure out, and Thinstuff’s experience with iRdesktop lead to some interesting reflections. The world of application stores is completely different from other environments: users basically browse through a catalog of apps which they barely know and can buy any of them very easily. The problem is that many try to profit from this distribution model by ripping off existing open source software and rebranding it to make it look like a completely different app which is supposedly worth buying, while claiming that the code was all theirs. There is nothing wrong with companies developing commercial derivatives from FreeRDP, especially since we’re using licensing which is friendly to such use, but there is definitely something wrong when people try claiming an application was all written by them and refuse to credit the original authors. This is real, and it unfortunately happened on multiple occasions with iRdesktop.
For many reasons, I have advised Thinstuff to license the ports under the Mozilla Public License (MPL) 2.0. The 2.0 version of the MPL is fairly recent, and addresses many issues which were found in the more commonly known MPL 1.1. It is compatible with most popular licenses like Apache and GPL, yet it is still very commercial-friendly. The MPL is a weak copyleft license, meaning it requires the redistribution of MPL sources, but does not require the distribution of other sources. The conditions which describe which sources should fall under the terms of the MPL are weak: if you modify a file under MPL, it remains MPL. If you use an MPL code snippet within a new file, then that file is also covered under the terms of the license. This also means that you can easily add your own source files under a completely different license if they do not contain MPL code, making commercial derivatives trivial even though it’s copyleft. You can find more information about the Mozilla Public License 2.0 here: http://www.mozilla.org/MPL/
The MPL 2.0 license was chosen for its high compatibility with application stores and existing licenses. The goal is to have legal ground to ask that apps using the MPL code be required to redistribute it, making it much easier for us to get application developers to credit the original authors properly. If the mobile ports were under the Apache license like the rest of FreeRDP, we could not ask that application developers redistribute the sources, making that task harder. Cheap rip-offs are simply impossible to prevent, but we can at least attempt to get the work credited. This is the trade-off that was made in order to reduce the risks associated with distribution in application stores. Please note that the MPL only covers the port-specific code, and that the rest of FreeRDP remains Apache.
As for a timeline, there is still some preparation work to be done. We wish to release initial betas of the ports at about the same time as we open source them. From there, we invite all community members to collaborate on improving the ports. Trust me, you will definitely like what you will see We believe we will be able to release the sources no later than the end of April, so be patient, we’re almost there!