Nach der Veröffentlichung einer Alpha-Version im Juni und einer ersten von insgesamt vier Beta-Versionen im Juli und zwei abschließenden RCs gab die Qt Company das Framework Qt 6.2 heute in stabiler Version frei. Die Veröffentlichung weist zwei wichtige Merkmale auf. Sie ist die erste Version mit Langzeitunterstützung im sechsten Zyklus für kommerzielle Lizenznehmer und sie weist zudem Qt 6 6.2 Funktionsgleichheit mit Qt 5.15 auf. Die Entwickler schreiben, die Parität reiche aus, damit die meisten Anwender zu Qt 6.2 migrieren könnten.
Qt Quick 3D
Qt 6.2 bietet zahlreiche neue Funktionen, wie zum Beispiel 3D-Particles, ein API, das es ermöglicht, mit Qt Quick 3D neue 3D-Benutzererlebnisse zu schaffen. Zusätzlich zu den neuen Funktionen bringt Qt 6.2 die Unterstützung weiterer zusätzlicher Module zurück, die bisher in Qt 6 noch nicht verfügbar waren.
Annähernd Parität bei den Modulen
Dabei handelt es sich um die 12 Module Qt Bluetooth, Qt Multimedia, Qt NFC, Qt Positioning, Qt Remote Objects, Qt Sensors, Qt Serialbus, Qt Serialport, Qt Webchannel, Qt Webengine, Qt Websockets und Qt Webview. Dabei wurden einige Module erweitert, allen voran Qt Core, Qt Quick und Qt Qml. Die API für diese Module ist größtenteils abwärtskompatibel mit Qt 5 und erfordert nur geringfügige Anpassungen des Anwendercodes bei der Portierung auf Qt 6. Die neu aufgenommenen Module sind mit ihren Änderungen im Wiki ausführlich beschrieben.
Qt Creator und Qt Design Studio
Das Tooling für QML hat mit Qt 6.2 einige größere Verbesserungen erfahren. Es gibt jetzt eine öffentliche CMake-API, die den Prozess der Erstellung eigener QML-Module erheblich vereinfacht. Ecken und Kanten vermeldet die Ankündigung noch bei Qt Multimedia, mit dessen API die Entwickler im fünften Zyklus nicht zufrieden waren. Viel Arbeit ist auch in Qt Creator und Qt Design Studio geflossen, um sicherzustellen, dass sie erstklassige Unterstützung für Qt 6.2 bieten. Qt Creator 5 soll alles enthalten, was für die Entwicklung für Qt 6.2 benötigt wird.
In der letzten Zeit war das Verhältnis von KDE zu The Qt Company (tQtC) durch die Tatsache getrübt, dass ab Qt 5.15 langfristig unterstützte Versionen (LTS) und das Offline-Installationsprogramm von Qt nur noch für kommerzielle Lizenznehmer verfügbar sind. Jetzt haben beide Parteien gemeinsam für einen gesicherten Übergang bei KDE von Qt 5 auf das bereits veröffentlichte Qt 6 gesorgt.
Probleme beim Umstieg auf Qt 6 vermeiden
Um Probleme mit der neuen Lizenzregelung ab Qt 5.15 zu vermeiden und den Übergang auf Qt 6 zu erleichtern haben die KDE-Entwickler gestern die Qt 5 Patch Collection angekündigt. Dabei handelt es sich um eine Reihe von Git-Repositories, die auf den letzten frei verfügbaren Commits für Qt 5.15-Zweige basieren und einer zusätzlichen kuratierten Sammlung von Patches, um sicherzustellen, dass Open-Source-Produkte wie die des KDE-Projekts durchgängig verwendet werden können, bis die Umstellung auf Qt 6 vollzogen ist. Weitere technischer Details sind im KDE Wiki zu finden.
Keine neuen Funktionen
Die Patches sollen Sicherheitslücken schließen, Abstürze beheben und defekte Funktionen reparieren, bieten aber keinerlei neue Funktionalität. Jeder kann zuvor upstream akzeptierte Patches im jeweiligen Repository einreichen. Werden sie akzeptiert, stehen unter der gleichen Lizenz wie das Modul der Qt Open Source Edition, für das sie gelten. Die Patch-Sammlung wird so lange beibehalten, bis sie durch die stabile Einführung von Qt 6 in KDE-Software obsolet wird.
tQtC gibt sich handzahm
Tuukka Turunen, der bei tQtC die Abteilung Forschung und Entwicklung leitet, machte in einer Stellungnahme klar, dass man bei der Patch-Sammlung mit dem KDE-Projekt zusammen gearbeitet hat und lies unterschwellig durchblicken, dass dies nicht als Beginn eines Forks angesehen wird, wie er gelegentlich als letzte Möglichkeit diskutiert wird, falls Qt die Daumenschrauben bei der Lizenz weiter anziehen sollte:
Die Qt Company und KDE haben bei der Entwicklung von Qt 6 aktiv zusammengearbeitet und KDE ist gut aufgestellt, um auf Qt 6 zu migrieren. Auch wenn es unser Ziel war, die Portierung auf Qt 6 einfach und unkompliziert zu gestalten, verstehen wir, dass bei einem großen Framework wie KDE die Portierung auf Qt 6 einige Zeit in Anspruch nimmt, und eine solche Patch-Sammlung kann helfen, den Übergang zu bewältigen
Im Frühjahr 2020 hatte The Qt Company ihre Roadmap für das Qt-Framework 2020 bekannt gegeben. Dort wurde festgelegt, dass ab Qt 5.15 langfristig unterstützte Versionen (LTS) und das Offline-Installationsprogramm von Qt nur noch für kommerzielle Lizenznehmer verfügbar sind. Zudem benötigen jetzt auch Open-Source-Anwender einen Qt-Account, um Qt-Binärpakete herunterladen zu können. Quellpakete sind weiterhin auch ohne Qt-Account zugänglich.
Unterschiedlich eingeschätzt
KDE-Entwickler Albert Astals Cid sah damals in seinem Blog keine allzu großen Auswirkungen auf das KDE-Projekt und Distributionen, die dessen Software nutzen. Andere Entwickler blickten mit sorge auf die Entwicklung. Aufgrund der darauffolgenden Berichterstattung in der Presse veröffentlichte das Unternehmen ein wenig aussagekräftiges knappes Dementi.
Nun ist es soweit, gestern wurde auf der Mailingliste des Qt-Projekts eine Notiz veröffentlicht, die bekannt gab, dass Qt 5.15 in die LTS-Phase eintritt. Alle bestehenden 5.15-Zweige bleiben öffentlich sichtbar, sind aber für neue Commits und Cherry-Picks geschlossen. Einzige Ausnahmen sind Qt WebEngine und das veraltete Qt-Script, die eine LGPL-Abhängigkeit von einem Drittanbieter haben.
Nach dem 5. Januar gehen die Cherry-Picks in ein anderes Repository, das nur für die kommerziellen Lizenznehmer verfügbar sein wird. Der Repository-Zugang steht kommerziellen Lizenzinhabern offen, so dass es möglich ist, zusätzlich zu den offiziellen Releases diese Repositories zu nutzen. Das erste rein kommerzielle Qt 5.15.3 LTS-Patch-Release wird voraussichtlich im Februar veröffentlicht.
Mitten im Zyklus
Befremdlich wirkt dabei die Entscheidung, diese Lizenzänderung mitten im Qt 5.15-Zyklus einsetzen zu lassen. Entwickler, die an Korrekturen für Regressionen aus früheren Qt 5.15-Punktversionen gearbeitet haben, sehen jetzt keine öffentliche Version mit diesen Regressionskorrekturen. Das erste Qt 6 LTS-Release wird erst mit Qt 6.2 in knapp einem Jahr erscheinen, was eine große Lücke für Distributoren und im Endeffekt Anwender hinterlässt, die dazu neigen, nur Qt LTS-Release-Serien ausliefern oder nutzen. Wie Qt 5.15 wird auch Qt 6.2 ein weiteres rein kommerzielles LTS nach dem gleichen Verfahren sein. Auf die offizielle Ankündigung folgte ein Bugreport, der fordert, dass in allen Repositories, die gesperrt sind, ein Zweig mit dem Namen 5.15-free des letzten öffentlichen 5.15-Commit abgezweigt wird.
Was bedeutet das nun für KDE? Offensichtlich wird KDE irgendwann auf Qt 6 umsteigen müssen, aber das wird eine Weile dauern. Der Umstieg zu Plasma 5 erfolgte, als Qt bei 5.3 stand. Nimmt man das als Maßstab, so ist KDE vermutlich für mindestens 18 Monate auf Qt 5.15.2 ohne weitere Bugfix-Versionen fixiert.
Die beiden Debian-Entwickler Lisandro Pérez Meyer und Dmitry Shachnev gaben bekannt, dass sie mit dem Erscheinen der im Dezember 2020 erwarteten neuen Version Qt 6.0 von der Betreuung des Frameworks für Debian zurücktreten. Sie werden aber weiterhin die Pflege der in Debian verfügbaren Pakete von Qt 5 übernehmen.
Wenig Zeit, schwache Hardware
Als Gründe geben beide neben zunehmend fehlender Zeit auch eine nicht ausreichend potente Hardware-Build-Infrastruktur an, die eine adäquate Betreuung der riesigen Paketbasis von Qt erschweren. Pérez Meyer betont auf Nachfrage ausdrücklich, die Code-Qualität habe nichts mit der Entscheidung zu tun – Qt sei im Gegenteil ein großartiges Projekt.
C++ vorausgesetzt
Die beiden Entwickler werden Betreuern, die die Arbeit übernehmen möchten, unter die Arme greifen und auch für eine Weile deren Uploads übernehmen, falls nötig. Neue Betreuer für das Qt-Framework sollten Erfahrung in der Paketierung bei Debian mitbringen und mit C++ und Symboldateien (PDB-Dateien) umgehen können. Da Qt 6 beim Build-Prozess von qmake auf cmake wechselt, sind Erfahrungen damit ebenfalls von Vorteil.
Plasma schlecht unterstützt
Dass beide Betreuer zuletzt nicht mehr genügend Zeit für die adäquate Betreuung von Qt aufbringen können, war bereits länger erkennbar, wenn aktuelle Updates erst verspätet in Debian Unstable erschienen. Darunter leidet auch die Aktualität des Plasma-Desktops, der in Unstable derzeit als Plasma 5.17 vorliegt, während bereits im Juni Plasma 5.19 freigegeben wurde. Im Oktober wird Plasma 5.20 folgen, die das in Debian noch nicht verfügbare Qt 5.15 voraussetzt.
Alternative
Wer in Debian einen stets aktuelles Plasma in Testing oder Unstable haben möchte, dem bleibt außer dem Selbstbau derzeit nur das inoffizielle Projekt von Debian-Entwickler Norbert Preining, das derzeit Plasma 5.19.4, KDE Frameworks 5.73 und KDE Apps 20.08 installiert. Durch den Rückzug der beiden Entwickler steht zu befürchten, dass sich die Aktualität von Qt und KDE in Debian weiter verschlechtern wird.
Gestern hat The Qt Company, die an der Börse als Qt Group notiert ist, ihre Roadmap für das Qt-Framework 2020 bekannt gegeben. Dort gibt die Tochtergesellschaft von Digia ihre Pläne einschließlich der Einführung von Qt 6 bekannt. Was dort nicht steht ist, dass sich TheQt Company in letzter Zeit zunehmend von KDE und seiner Community distanziert.
Schrittweise Distanzierung
Bereits im Januar gab The Qt Companyerste Einschränkungen des mehrfach lizenzierten Frameworks bekannt. Demnach sind ab Qt 5.15 langfristig unterstützte Versionen (LTS) und das Offline-Installationsprogramm von Qt nur noch für kommerzielle Lizenznehmer verfügbar. Zudem benötigen jetzt auch Open-Source-Anwender einen Qt-Account, um Qt-Binärpakete herunterladen zu können. Quellpakete sind weiterhin auch ohne Qt-Account zugänglich.
Generell gutes Verhältnis
In einer neuen Ankündigung wird die Distanzierung von KDE und anderen freien Gemeinschaften, die Qt einsetzen noch deutlicher. Das geht aus einem Eintrag auf der Mailingliste von KDE-Entwickler Olaf Schmidt-Wischhöfer hervor. Darin beschreibt er das Verhältnis von Qt Company, dem freien Qt-Project und der KDE Free Qt Foundation als über die Jahre durchaus fruchtbar und zum Vorteil aller Beteiligter.
Diese für alle positive Ausgangssituation sei jedoch durch die Einschränkungen vom Januar gefährdet. Auf einem persönlichen Treffen im März sei dann aber das Grundgerüst für eine weitere Zusammenarbeit gelegt worden.
Corona als Vorwand?
Dem widersprechen die neuesten Informationen, nach denen KDE e. V. und KDE Free QT Foundation informiert wurden, The Qt Company sehe sich angesichts der Corona-Krise gezwungen, kurzfristig mehr Umsatz zu generieren und deshalb künftig alle Qt-Veröffentlichungen für 12 Monate nur kommerziellen Lizenznehmern zugänglich zu machen.
Strategien für den Ernstfall
Auch wenn diese Ankündigung noch nicht festgeklopft ist, sieht sich die KDE-Community veranlasst, Strategien zu entwickeln, falls Qt Company dies durchsetzt. Einen Mittelweg scheint es hier nicht zu geben, ein Fork scheint in diesem Fall unabwendbar, die Entwicklung von KDE auf der Basis von Qt zu schützen.
KDAB bietet wichtige Unterstützung
Alle Beteiligten sind sich der Tragweite einer solchen Entscheidung angesichts der Komplexität des Qt-Frameworks bewusst. Die KDE-Gemeinschaft wird bei diesem Unterfangen von dem einflussreichen Qt-Consulting-Unternehmen KDAB unterstützt, dessen Berliner Statthalter sich dahin gehend auf der Mailingliste äußerte.
Viele Projekte betroffen
Neben KDE gibt es viele weitere Projekte, die auf dem freien Software-Repository von Qt basieren und durch diese Entscheidung, wenn sie sich manifestiert, in ihrer Entwicklung beschnitten werden. Zu nennen sind hier VLC, Spotify, VirtualBox, Kolab, Mathematica, Mumble, Skype, TeamSpeak, Google Earth, Telegram und andere.
Eine lange Geschichte
KDE und Qt verbindet eine lange Geschichte, die anfangs dazu führte, dass GNOME die Oberhand bei den Desktop-Umgebungen für sich beanspruchen konnte. Mit der Veröffentlichung von KDE 1.0 im Jahr 1998 kam nämlich Kritik an der Verwendung des damals unfreien Qt-Frameworks als der Basis von KDE auf.
Qt-Entwickler Trolltech reagierte und stellte Qt in einer speziellen, freieren Version unter der QPL-Lizenz zur Verfügung. Da hatte GNOME aber bereits einen Vorsprung und wurde im frisch gegründeten Unternehmen Red Hat zum Standard-Desktop. Jahre später wurde Qt dann der GPL unterstellt.
Von Trolltech zu Nokia zu Digia
Durch die Nutzung von Qt als Basis für KDE-Software bildeten sich schnell engere Beziehungen zur mittlerweile von Nokia übernommenen Firma Trolltech. Im Juni 1998 gründeten KDE e. V. und Trolltech gemeinsam die KDE Free Qt Foundation, um den Fortbestand von Qt als freie Software sicherzustellen. Trolltech begann zudem damit, KDE-Entwickler einzustellen. Die Qt-Entwicklungsabteilung von Nokia wurde 2012 vom finnischen Software-Unternehmen Digia übernommen, die die Qt-Entwicklung dann 2016 in die Tochtergesellschaft The Qt Company auslagerte.
Abschließend bleibt zu sagen, dass, auch wenn diese Maßnahmen im Endeffekt nicht Realität werden, ist schon durch die Ankündigung klar, dass The Qt Company das KDE-Projekt als größten Nutzer des freien Qt-Frameworks nicht wertschätzt und glaubt, auf die Qt-Community verzichten zu können. Der Schaden ist entstanden und beabsichtigt.