Ich habe diesen Beitrag im Oktober 2026 geschrieben und auf den 20. Oktober datiert, den Tag, an dem ich die beschriebene Entscheidung getroffen habe.
Ich mache zwei Mandala-Apps: Mandala Generator für macOS und Dahlia – Mandala Maker für Android, das als Portierung der Mac-App begann. Beide sind Open Source unter der GNU General Public License, Version 3. Beide werden auch verkauft oder sollen es werden: Dahlia ist auf Google Play kostenlos mit einer einmaligen Pro-Freischaltung, die Mac-App folgt vielleicht später. Das ist die Begründung, wie ich sie bei der Entscheidung festgehalten habe.
Wofür du bezahlst
Du bezahlst nicht für den Zugang zum Code. Der Code ist öffentlich, und jeder darf ihn lesen, ändern und bauen. Du bezahlst für eine fertige App: signiert, über den Store installiert, aktualisiert, wenn ich eine neue Version veröffentliche, mit Pro-Funktionen, die ein Kauf freischaltet statt ein Build-Schritt.
Warum die GPL und nicht MIT
Ich möchte, dass diese Arbeit offen bleibt. Mit MIT könnte jeder den Code nehmen, eine Funktion ergänzen und das Ergebnis als geschlossene App verkaufen. Die GPL erlaubt das nicht: Eine Kopie muss unter denselben Bedingungen offen bleiben.
Als ich das entschied, war ich der einzige Beitragende zu beiden Repositories. Ich konnte die Lizenz also frei wählen und kann sie für spätere Versionen ändern. Beiträge anderer kommen unter denselben Bedingungen herein; eine separate Vereinbarung für Beitragende gibt es derzeit nicht.
Warum die Android-App nicht geschlossen bleibt
Das Android-Repository war zunächst privat, während die Mac-App immer öffentlich war. Das so zu lassen hätte fast nichts geschützt: Neue Funktionen entstehen zuerst in der Mac-App und werden dann portiert, der öffentliche Code zeigte also schon, wie die App funktioniert.
Die zusätzliche Erlaubnis für App-Stores
Die GPL allein passt nicht gut zu App-Stores. Die Google Play Billing Library ist proprietär, und die Bedingungen des App Store fügen Einschränkungen für Nutzung und Kopieren hinzu. Als einziger Autor kann ich meine eigenen Builds ohnehin ausliefern; alle anderen dürften einen Build mit diesen Bibliotheken rechtlich nicht weitergeben. Deshalb kommt die Lizenz mit einer zusätzlichen Erlaubnis nach Abschnitt 7 der GPL: Du darfst das Programm mit der Play Billing Library und den Systembibliotheken von Android, macOS oder iOS kombinieren und es über App-Stores weitergeben, deren Bedingungen Einschränkungen hinzufügen. Die Datei LICENSE ist die unveränderte GPL-3.0; die Erlaubnis steht daneben in der README des Repositorys.
Was ich in Kauf nehme
- Jeder darf die App aus dem Quellcode bauen, Pro-Funktionen eingeschlossen. Ein Debug-Build zählt bereits als Pro. Der Store-Build ist der bequeme Weg, und den verkaufe ich.
- Jemand darf eine Kopie in einem Store veröffentlichen, solange sie unter der GPL bleibt. Meine Antwort darauf sind der Name der App und regelmäßige Updates, kein Lizenztrick. Eine Marke nur, falls es je darauf ankommt.
- Nichts davon ist Rechtsberatung. Vor einem größeren kommerziellen Start ist eine kurze Prüfung durch einen Anwalt günstig.
Ein Repository, nach einer Prüfung auf Geheimnisse
Die zweite Entscheidung desselben Tags war, das private Android-Repository in das öffentliche Mac-Repository zu überführen. Die meisten Änderungen betreffen beide Apps; eine Änderung, ein Review und ein Entscheidungsprotokoll decken jetzt beide ab. Das Mac-Repository hatte bereits die öffentliche URL, die Veröffentlichungen und seinen Stern.
Bevor etwas öffentlich wurde, habe ich die gesamte Android-Historie, 29 Commits und 448 Blobs, nach Schlüsseldateien, Signatureinstellungen, API-Schlüsseln, Zugangsdaten, E-Mail-Adressen und lokalen Pfaden durchsucht. Nichts dergleichen war je committet worden; das Einzige, was die alte Historie offenlegt, ist eine frühere Zitatsammlung, die im Mac-Repository bereits öffentlich war.
Beide Historien blieben ohne Rewrite erhalten: Jede App zog in einen eigenen Ordner, mac/ und android/, dann wurden die beiden Historien zusammengeführt. Commit-Hashes, Tags und Veröffentlichungen der Mac-App bleiben gültig, und kein öffentlicher Branch musste mit Force-Push überschrieben werden. Das private Android-Repository wurde danach gelöscht; seine ganze Historie lebt im gemeinsamen weiter.
Für Käufer und für Selbstbauer
Wenn du Pro kaufst, bekommst du den signierten Store-Build mit freigeschaltetem Pro und die Updates.
Wenn du selbst baust, klone morja/mandala-generator, baue die Mac-App in mac/ oder die Android-App in android/, und du hast die vollständige App, Pro eingeschlossen. Du darfst sie ändern und unter der GPL mit derselben Erlaubnis weitergeben, und Beiträge kommen unter denselben Bedingungen zurück.