Sailfish OS: Wie frei ist das Jolla Phone?
Grundsätzlich wars mir bisher relativ egal: Persönlich steht für mich nicht im Vordergrund, wie viele Pakete unter einer freien Lizenz stehen. Mich interessiert, welche es sind, an welcher Stelle in System man also auf freie, wo auf proprietäre Elemente trifft. Bei Sailfish OS war das immer ziemlich einfach:
- Die oberste Schicht, das User Interface und die Basisausstattung an Programmen, besteht aus einer Mischung beider Welten. Wo für Jolla eine Differenzierung geschäftsnotwendig ist, enthält die Benutzeroberfläche proprietären Code. Standardprogramme sind großteils aus rechtlichen Gründen nicht frei: Nicht alles wurde von Jolla selbst entwickelt. Hier „ganz oben“, im User Interface, kann ich geschlossenen Code tolerieren: Das ist so etwas wie die Glasur auf der Torte. Hübsch, aber nicht lebenswichtig.
- In der mittleren Schicht, den Kernbestandteilen des Betriebssystems, findet man zu 100% freie Software. (Wobei man streiten kann, was alles zu dieser Schicht gehört: Jolla selbst zum Beispiel bezeichnet die Android-Emulation und die Synchronisation mit Microsoft Exchange als nicht-freie Bestandteile dieser mittleren Ebene; beide Pakete sind aber optional und müssen gar nicht installiert sein.) Das ist der Bereich, der für mich das Um und Auf ist. Hier findet sich alles, was der Computer - und ein Smartphone ist ein Computer - kann, inklusive aller Konfigurationsmöglichketen. Was Sailfish OS hier ausmacht ist nicht nur die freie Software auf dieser Ebene, sondern die freie Standardsoftware. Kaum etwas wurde extra zurechtgeschustert, überall findet man die aus dem Desktop-Bereich bekannten Standardlösungen.
- Ganz unten ist der Teil des Betriebssystems, der an die Hardware andockt: der Linux-Kernel mit seinen Treibern und die für den Betrieb als Telefon notwendigen Systemelemente und Codecs. Dort findet man auch wieder eine Mischung verschiedenster Lizenzen: Zwar ist Linux, der Kernel, an sich natürlich freie Software. Der Hardware-Hersteller rückt den Quelltext für die Chip-Treiber aber nicht raus. Hier würde ich mir viel, viel mehr Offenheit wünschen - die gabs aber nie, da ist die Industrie einfach zu stark. (Tatsächlich muß man realistischerweise eingestehen, daß man auch im Desktop-Bereich gerade an der Schnittstelle zur Hardware immer wieder auf proprietäre Komponenten trifft.)
Jolla selbst hat auf der Sailfish-Homepage eine grafische Übersicht über die Lizenzsituation zusammengestellt.
Wenn mans jetzt aber doch genau wissen will - wie zählt man? Weils jetzt so früh finster wird, hab ich mir einen Moment Zeit genommen und bin nach folgender Methode vorgegangen:
Zuerst habe ich alle am Jolla Phone installierten Pakete mit Herkunft und Lizenz aufgelistet und in eine Datei geschrieben. Folgender Befehl macht das für mich:
rpm -qa --queryformat \ '%{name};%{distribution};%{license}\n' \ >> packages.csv
Am PC hab ich die CSV-Datei dann in LibreOffice importiert und zunächst alle Pakete gelöscht, die ich manuell aus dem Store oder von Openrepos.Net installiert habe. (Dabei war mir egal, ob die Programme von Jolla oder einem Drittanbieter stammen: Was optional und nicht Teil des Betriebssystems ist, fliegt raus.) Die restlichen Pakete hab ich dann, je nach Lizenzinformation, in „frei“ und „nicht frei“ eingeteilt … wobei ich mir, ganz gegen meine sonstige Art, eine tiefergehende Differenzierung zwischen „wirklich frei“ und „nur open source“ erspart habe.
Vom Ergebnis hab ich dann eine Pivot-Tabelle gezogen und siehe da: Nur 19% des Betriebssystems sind noch proprietär, die restlichen 81% tatsächlich frei. Bei den freien Lizenzen überwiegt die LGPLv2.1 mit ganz, ganz großem Vorsprung, danach kommt die GPLv2.
Natürlich ist die reine Paketzählung nur bedingt aussagekräftig: Eine quelloffener Browser wird hier genauso als ein Paket gezählt wie ein unfrei lizensiertes Hintergrundbild. Außerdem hab ich sicher auch das eine oder andere Programm mitgezählt, das ich selbst auf dubiose Weise installiert hab und das eigentlich nicht Teil des Betriebssystems ist. Bei insgesamt über 700 Paketen sollte das aber im Ergebnis keine Welten mehr bewegen: Sailfish ist frei! Zu etwa 80% jedenfalls … :)