Why distributions shouldn’t ship development versions

At Desktop Summit Lubos asked me what openSUSE has to do that I will switch back to SUSE. I replied that I am satisfied with Kubuntu and so I don’t see any need to switch the distribution. So what has changed since July?

Kubuntu will ship the Plasma Netbook Shell in their next release. Of course the Netbook Shell is under heavy development and will be shipped in KDE 4.4 for the first time. Given the current release plan we can consider the current state as pre-alpha. But that seems not to be any problem for Kubuntu – they even are able to support it for 18 months as it is in the main repository. They are even able to ship a recent SVN revison: the current package is svn rev 1016996. So quite decent and no problem at all, isn’t it? Well no, KDE 4.3 got branched way before and since then trunk is KDE 4.4 and code in trunk may depend on trunk. But if there were a dependency it would break at compile time, wouldn’t it?

But couldn’t there be runtime dependencies? No way, that’s totally impossible. It’s a plasma netbook shell, not a KDE workspace netbook shell! So it’s totally impossible that KWin added changes to improve the netbook shell. So we have in the netbook shell a commit with this commit message:

Activate present windows by setting a property instead of faking keys. Requires kwin svn rev 988110

Of course a distribution checks all the svn log entries and knows about such issues. So they will probably use the old code, which was just a placeholder to be replaced as soon as trunk becomes 4.4 as happened. So I downloaded the source package and woops it contains my commit. Hmm so there is still the possibility that KWin was patched. That would be really bad as present windows received lots of changes at the beginning of 4.4 release cycle. Which is great but shouldn’t be shipped in a distribution before it has been tested probably. So I thought, let’s check the patches in bazaar. Well there is no such patch to KWin. So the applet is basically broken in the Kubuntu edition. Kubuntu will not only ship and advertise a development snapshot, they will be shipping broken software. (which btw is not the first time that Kubuntu ships development snapshot unsuited for usage – just remember the NetworkManager Plasmoid).

Update: Kubuntu assured that the Plasma Netbook Shell will only be published as a tech preview and that it will communicated as that. This makes of course the points mentioned above invalid.

While browsing the patches in bazaar I found a different patch which really upset me. It is a patch which was discussed on kcd last week and was rejected by all workspace developers who replied to that patch. So a patch which is not good enough for KDE is good enough for Kubuntu. I though Kubuntu wants to be the best KDE distribution. Sorry, that isn’t. I am disappointed and I think it is a bad sign if decisions by the upstream project are ignored (the change to package kdebase-workspace was commit after the discussion started on kcd). I objected to the patch for technical reasons and there was agreement to improve the notification instead of stepping back to present nag dialogs.

For quite some time I am disappointed by the developments of Kubuntu. With 4.3 packages the translations broke again (as every half year) and that is just the worst which could happen to user experience. Because of that problem I stopped to recommend Kubuntu to my friends. But now I see a development in Karmic which I do not want to use myself. There is a broken development snapshot of the netbook shell, an alpha release of k3b is shipped, which is not even shipped by Fedora, because it “isn’t quite ready, and not recommended for use by upstream” and Karmic will ship an additional notification system, which doesn’t support actions, to “test” how KDE users will get along with it. I don’t have any problems with Canonical deciding to develop and ship a different notification system but as soon as it degrades the KDE workspace it has to stop. By shipping that patch there is a degeneration of the user experience as a dialog is shown instead of a notification. If you doubt that the change was done just because of the Ayatana notifications please read this mail. I do not want to know how many additional changes there are breaking user experience.

Update: Scott stated in the comment section that the patch is controversial in the Kubuntu community and it has not yet been decided if the patch will be shipped.

So to me this is the end. It’s time to part from Kubuntu after four years of usage as I cannot say any more that it is a good KDE distribution and satisfies my needs. I won’t update to Karmic and instead will install a different distribution. I do not yet know which one I will choose, maybe I return to openSUSE, maybe I will use Debian testing/unstable or switch to Gentoo. Probably Debian will win as I do not want to learn a different packaging system.

14 Tage im September

In den letzten zwei Wochen habe ich etwas gemacht, was ich eigentlich immer für mich ausgeschlossen hatte: ich stand in der Innenstadt und habe für Stimmen bei einer Wahl geworben. Nun ich denke es ist nicht schwer zu erraten für welche Partei ich geworben habe – bin aber (noch) kein Mitglied. Auch wenn es am Ende nicht für den eigenen Balken gereicht hat, blicke ich positiv auf diese zwei Wochen zurück und bin mit dem Ergebnis zufrieden. Meine persönlichen Highlights waren zum einem ein Rentner, dem ich erklären konnte, dass man löschen und nicht sperren muss, sowie eine Studentin, die an den Stand kam mit der Aussage, dass sie auf dem Weg zum Wählen im Rathaus ist und überzeugt werden möchte. Am Ende hat sie Infomaterial für ihre Mitbewohner mitgenommen.

Insgesamt hab ich (gläsernes Mobil miteingeschlossen) an fünf Infoständen teilgenommen. Jedes Mal war es an einem anderen Ort und jedes mal war es anders. Es ist interssant wie in einer Stadt wie Mannheim ein einzelnes Quadrat ein komplett anderes Publikum anzieht.

Von den Erfahrungen vom Infostand hätte ich bedeutend mehr Stimmen für die Piraten erwartet. In der Innenstadt kamen wir an die fünf Prozent ran, in der Neckarstadt konnten wir sie sogar knacken. Dennoch hätte ich bedeutend mehr erwartet. Andere Parteien hatten bedeutend kleinere Infostände, mit weniger Personal besetzt und auch nicht die komplette genehmigte Zeit, sondern nur ein paar Stunden. Wobei man anmerken muss, dass zumindest die SPD gewandert ist, daher schwer zu sagen, wie lange sie tatsächlich als standen.

An den Infoständen konnten wir bedeutend mehr Leute anziehen. Viele sind auf uns zugekommen und haben direkt gesagt, dass sie Piraten wählen werden. Viele – vor allem ältere – haben uns für unser politischen Engagement gelobt. Vielleich doch für einige überraschend, dass die eigentlich als politikverdrossen geltende Jugend sich für Bürgerrechte und Grundgesetz einsetzt.

Nun zurückblickend mit dem erzielten Ergebnis denke ich, dass ich eine selektive Wahrnehmung hatte. Ich sah wie fast jeder, der zu uns an den Stand kam uns sagte, dass er Piraten wählt und ich sah, wie sich zum Beispiel bei den Linken niemand für den Stand interessiete. Es scheint wohl doch sehr viele Wähler zu geben, die in ihrem Lager wählen und nicht in der Innenstadt den Wahlkampf besuchen.

An einem Infostand zu stehen und den Leuten immer wieder das gleiche zu erklären ist doch bedeutend anstrengender als ich erwartet hatte. Aber ich hab an mir selbst gemerkt, dass ich zu Ende bedeutend sicherer die Ziele der Piratenpartei erklären konnte und auch mit den kritischen Themen wie Tauss und Junge Freiheit besser zurecht kam. Tauss war sicherlich eines der am schwierigsten zu vermittelnden Themen. Viele Leute konnten nicht verstehen wie man jemanden in die Partei aufnehmen kann, obwohl er verdächtigt wird bzw. angeklagt wurde. Eigentlich beängstigend für wie viele die Unschuldsvermutung bei einem Thema wie Kinderpornographie nicht mehr gilt. Manche konnten sich das komplexe Thema erklären lassen, für andere sind die Piraten unwählbar, wegen der Personalie Tauss. Persönlich denke ich, dass Tauss langfristig für die Partei ein Gewinn ist, auch wenn es bei der ersten Wahl vllt. ein paar Stimmen gekostet hat.

Nun wie geht es weiter? Die Piraten haben (zum Glück) den Einzug in den Bundestag nicht geschafft. Es wäre natürlich interessant gewesen und mMn die gerechte Strafe für Frau von der Layen, aber genau betrachtet wäre die Partei darauf nicht vorbereitet gewesen. Nun gilt es also den Schwung der Partei mitzunehmen und zu bewahren. Einen klaren Erfolg haben die Piraten sicherlich erreicht: Guido Westerwelle nennt die Bürgerrechte wieder als ein Ziel für seine Regierung. Klar sieht er die zwei Prozent und denkt sich “das könnten meine sein” und nun hat er die Chance zu beweisen, dass er es Ernst meint. Die Piraten werden ihn bewachen und am Ende ihn an seinen Taten messen und somit Material für den nächsten Wahlkampf haben. Sollte wider Erwarten die FDP sich wirklich für die Bürgerrechte einsetzen und somit die Piratenpartei obsolete machen, habe ich auch kein Problem damit. Mir geht es in erster Linie um die Sicherung des Grundgesetzes und der Bürgerrechte.

Wenn ich mir das Wahlergebnis – insbesondere das Ergebnis der SPD – anschaue, so stelle ich fest, dass endgültig die Zeit der Volksparteien vorbei ist. In BW liegt sie nur ein Prozent vor der FDP. Das zeigt dass der Bevölkerung einzelne Themen bedeutend wichtiger sind und sie Parteien mit einer “Kernkompetenz” wählen. Von diesem Standpunkt aus betrachtet scheint der wenige Themenwahlkampf der Piraten eigentlich langfristig die richtige Strategie zu sein. Dennoch muss die Partei zur nächsten Wahl ein umfassendes Programm ausarbeiten – die Leute auf der Straße verlangen danach. Die Ausrede “junge Partei” zieht vllt. bei der ersten Wahl, bei der zweiten sicherlich nicht mehr.

Lockdown Systeme mit KIOSK

Ich hab heute meinen Rechner einmal komplett dicht gemacht und möchte mal vorstellen, wie man so etwas machen kann. Die Anforderungen waren: es soll möglich sein eine statische HTML Seite zu benutzen und mehrere Videos anzuschauen. Es soll unmöglich sein andere Anwendungen zu starten oder irgendwelche Dateien zu öffnen. KDE bietet mit dem KIOSK Framework im Prinzip alles was man braucht.

Ich habe natürlich einen extra Nutzer welcher mein Home Verzeichnis nicht einsehen darf. Damit sind schon mal sämtliche Dateien geschützt.

Die Idee war nun Konqueror entsprechend zurecht zu manipulieren. Moment Konqueror? Einen Dateimanager so verändern, dass man keinerlei private Daten sehen kann? Ja KDE macht’s möglich 😉 Über eine Fensterspezifische Regel wird Konqueror in den Vollbildmodus gezwungen. Da es eine Regel ist, kann man diesen auch nicht mehr beenden. Globale Shortcuts werden auch geblockt, somit ist es nicht möglich über Alt+F2 neue Anwendungen zu starten oder über Alt+F4 oder Strg+Alt+Esc Konqueror zu beenden. Zusätzlich werden alle wichtigen Shortcuts deaktiviert. Also zum Beispiel Strg+Q zum Beenden. Damit ist es über die Tastenkürzel nicht mehr möglich aus Konqueror rauszuwechseln.

Nun muss natürlich noch mehr bearbeitet werden, zum Beispiel die Werkzeugleisten. Hier kann man die Adressbar entfernen und somit das Wechseln in ein Verzeichnis verhindern und plötzlich ist Konqueror kein Dateimanager mehr.

Aber es ist ja immer noch möglich die Konfiguration wieder aufzurufen und alles rückgängig zu machen. Hier kommt nun KIOSK zum Einsatz. Man muss nur eine systemweite kdeglobals Datei bearbeiten und kann dann einige Restriktionen definieren. Z.B. das Starten der Konsole unterdrücken oder das Konfigurieren der Shortcuts verhindern. Damit sind die Werkzeugleisten und Shortcuts abgesichert.

Aber über das Menü kann man ja immer noch Konqueror beenden. Schlecht, also muss man auch noch mal dran. Zum Glück kann man die Menüs über XML Dateien verändern. Also einmal die ~/.kde/share/apps/konqueror/konqueror.rc anfassen und sämtliche Einträge entfernen und TATA es gibt kein Datei Menü mehr. Konqueror lässt sich nicht mehr beenden.

Last but not least muss man noch ein bißchen weiter schauen, da Konqueror auch weitere Programme startet. So zum Beispiel konnte ich den Quellcode zeigen Menüpunkt nicht entfernen. Also noch mal eine Regel für KWrite anlegen und globale Shortcuts definieren. Anwendung selbst ist auch über KIOSK sicher. Gleiches für den Video Player.

Damit ist das Ziel erreicht: Konqueror ist auf den minimalen Bereich eingeschränkt, welcher über die Startseite vorgegeben ist. Es lassen sich die Videos öffnen, aber keine anderen als die vorgegebenen.

Sicherheitshalber sollte man noch Plasma beenden, damit nicht plötzlich der KMenü Button in den Vordergrund kommt. Wenn man wirklich nur eine Anwendung braucht, könnte man auch noch den Fenstermanager ausschalten. Aber da der Videoplayer gestartet werden soll, geht das in diesem Fall nicht.

Das war das erste Mal, dass ich KIOSK eingesetzt habe und die Mächtigkeit ist einfach gigantisch. Mir war durchaus bewusst, dass KDE ein gutes Lockdown System hat, hatte es aber noch nie getestet. Und mit dem Wissen, dass das ganze in der kommenden Version weiter ausgebaut wird, kann man wirklich sagen, dass KDE eine gute Grundlage für den Einsatz in Unternehmen hat um z.B. ein Corporate Design durchzudrücken äh einzusetzen.

Opt Out Day

Heute ist der Opt Out Day. Die Meldebehörden haben das Recht persönliche Daten weiterzugeben, z.B. an Parteien für Wahlwerbung oder sogar für Direktwerbung. Diesem kann man natürlich Widersprechen und wem informationelle Selbstbestimmung wichtig ist, sollte dies auch machen. Dafür wurde heute der Opt Out Day angesetzt. Eigentlich sollte die Weitergabe ja ein Opt In sein, aber lieber ein Opt Out als gar keine Möglichkeit sich dagegen zu wehren. In den Einwohnermeldeämtern gibt es Formulare, zum Teil sogar online verfügbar. Also ausdrucken, unterschreiben und heute beim Meldeamt vorbeibringen oder wenn man keine Zeit hat, die 55 Cent für mehr informationelle Selbstbestimmung investieren.

Für Mannheimer Leser: heute um 16 Uhr findet eine gemeinsame Übergabe der unterschriebenen Forumulare vor dem Einwohnermeldeamt in K7 statt.

Quick tiling and TabBox updates

During the last weeks quite some work has gone into KWin, which is great and needs to be mentioned here. First of all a big thanks to Hugo Pereira for his work on Nitrogen. You might have heard that we imported Nitrogen from kde-look.org to replace Ozone. Lots of work and realy great improvements has gone into it and it’s just awesome that we can provide the two highest rated window decorations from kde-look in the next KDE release. If you want to see some screenshots have a look at the web gallery. I hope we will finally merge Nitrogen back into Oxygen and only provide one decoration.

As already mentioned in the dot story I worked on a feature known as “Aero Snap” during Tokamak. (Btw. big thanks to Mario for the great event and thanks to the Plasma crew for the invitation. You are a great group of people 😀 And I hope I will find the time to go to next Tokamak.) Currently a new contributor, Robin, is working on adding keybindings to quick tiling, so it will rock even more. It’s difficult to show it in a screenshot, but here it is:

Von KWin

Finally (un)loading effects does not result in flicker any more. This is a real improvement but it feels strange when you are used to the flicker as indication that the changes were successfully applied. The fix will be backported to 4.3.2 and thanks a lot to Robin for the help on that one.

One of the biggest changes for 4.4 so far is the new TabBox which has been merged into trunk today. I already blogged about it but some things have been improved since last time. It’s now possible to have two independent switchers with different shortcuts. So you can have for example alt+tab with windows from all desktops and meta+tab with windows only from current desktop. It’s also possible to assign different effects to the two switchers which allows to use both the “normal” TabBox as well as a fancy switcher (when effects are disabled it will of course fall back to the normal switcher). Most improvements went into the classic switcher so far, but some will be implemented in the effects as well. E.g. switching with cursor keys might be useful if you use Present Windows. One of the nice new features is that you can close a window with middle click on the entry in the list.

Since my last blog post I improved the KCM as well. The layout bits were moved into an own dialog with a live preview (sorry for the black border, it worked correctly yesterday evening):

Von TabBox
Von TabBox

Wie ein PPA das Upgrade zerstören kann

Auf Grund der neuen Richtlinie des ubuntuusers Wikiteams zu PPAs möchte ich einfach mal ein Beispiel geben, wie leicht es sein kann durch ein PPA sein System in einen Zustand zu bringen, dass man nicht auf die neuste Version aktualisieren kann.

Als Beispiel nehme ich die KDE Fensterdekoration Aurorae. Sie ist für KDE 4.3 und es gibt noch keine Pakete für Jaunty. Es befindet sich in den Paketquellen für Karmic als kwin-style-aurorae und in Karmic+1 wird dieses Paket entfernt werden, da Aurorae Bestandteil von KWin in KDE 4.4 ist. Das ist wichtig im Verlaufe dieses Blogposts zu erinnern.

Angenommen ich hätte mit der Veroffentlichung von Aurorae auch ein Paket gebaut und in ein PPA gestellt. Zu dem Zeitpunkt hätte es noch kein Paket von Kubuntu gegeben und ich hätte mein Paket einfach mal aurorae genannt. Das Namensschema ist mir nicht bewusst. Ich hätte natürlich das PPA in den passenden Artikeln im ubuntuusers Wiki eingestellt. Ist ja nach den neuen Richtlinien abgedeckt, ich bin ja der Entwickler und weiß was ich tue.

Nun denke ich sollte das erste Problem schon erkennbar sein. Wenn ein Nutzer Karmic verwendet und die PPA Quelle freigeschaltet hat, dann hat er plötzlich zwei Pakete für die gleiche Software:

  • aurorae
  • kwin-style-aurorae

Diese Pakete enthalten exakt die gleiche Version und exakt die gleichen Dateien. Wenn man das Changelog mit den Maintainern entfernt, müsste – wenn ich korrekt gebaut habe – sogar die MD5 Summe übereinstimmen.

Mittlerweile existiert Karmic und ich biete die PPA Quelle nicht mehr an. Es befindet sich ja in den Paketquellen. Nun hab ich plötzlich einen schwerwiegenden Crash in der Dekoration festgestellt und behoben. Das ganze wird in trunk eingespielt und (weil wichtig) aktualisiere ich auch den tarball auf kde-look sowie informiere ich meine wichtigsten Downstreams (openSUSE und Kubuntu), damit sie neue Pakete bauen. An meine alte Paketquelle für Jaunty denke ich nicht mehr – ich bin unter Stress.

Das Problem dürfte recht erkennbar sein: wer das Paket aus den offiziellen Quellen installiert hat, bekommt automatisch das Update. Wer das Paket aus dem PPA hat, jedoch nicht. Bugs werden nicht mehr behoben.

Nun dreht sich das Rad der Zeit weiter. Weitere sechs Monate sind vergangen und das Upgrade auf Karmic+1 steht an. Aurorae wurde Ende Januar/Anfang Februar in KDE aufgenommen. Die Kubuntu Maintainer wissen das und passen ihre Abhängigkeiten entsprechend an. kwin-style-aurorae wird ein virtuelles Paket und kdebase-workspace hat die Abhängigkeiten so gesetzt, dass das Paket entfernt wurde. Ein Upgrade verursacht kein Problem. An Aurorae wurde seit dem ersten Paket jedoch kaum noch gearbeitet. Insbesondere heißen die Dateien noch gleich und werden an die gleichen Stellen wie zuvor installiert.

Nun gibt es immer noch User, die mein Paket aus der Zeit von Jaunty verwenden. Was wird passieren? Sie machen ihr Upgrade. Die Kubuntu Entwickler haben ihre Abhängigkeiten angepasst, von meinem komischen Paket was ich seit Monaten nicht mehr anbiete, wissen sie jedoch nichts oder denken nicht dran. kdebase-workspace wird also mein Paket nicht ersetzen. Nun wird das Upgrade durchgeführt. Irgendwann wird kdebase-workspace aktualisiert und schwups haben wir ein Problem. Das Paket enthält Dateien, die schon exisitieren! Nämlich die Dateien aus dem Paket aurorae. Das Upgrade schlägt fehl. kdebase-workspace ist nicht installiert. Der Anwender sieht den Fehler und installiert erst mal munter weiter. Passiert ja mal, dass ein Paket nicht funktioniert. Dann macht er den Neustart – wie aufgefordert. Er meldet sich an, der Splash Screen kommt, der Splash Screen geht und der Hintergrund ist schwarz. Aber warum? Nun ganz einfach: kdebase-workspace wurde nicht aktualisiert. Also kein Plasma, kein kwin – kein Desktop und kein Fenstermanager. Man kann auf dem System keine Anwendung aus der grafischen Oberfläche starten. Man kann keinen Browser aufmachen um im Forum nachzufragen wie das Problem behoben werden kann. Man hat für den Normalanwender ein zuerstörtes System.

Ich hoffe ich konnte mit diesem kleinen Beispiel ganz gut aufzeigen warum PPAs und Fremdquellen im Allgemeinen ein riesiges Problem beim Update darstellen können. Wer sicher sein will, nimmt entweder keine PPAs oder nur die von den Maintainern, da diese ihre Abhängigkeiten anpassen.