blog · git · desktop · images · contact


Awesome, XCB und cairo in Arch Linux

2010-09-29

Vor kurzem ist cairo in der Version 1.10.0-2 im Extra-Repository von Arch angekommen. Das hat zur Folge, dass es für Benutzer des Awesome-Window-Managers in Zukunft wieder etwas holpriger wird.

Awesome setzt auf die XCB-Bibliothek anstatt auf die "traditionelle" Xlib zur Kommunikation mit dem X-Server. Das hat einige Vorteile wie asynchrone Kommunikation und dergleichen. Auf die Details möchte ich aber gar nicht eingehen, zumal ich damit auch nicht bis in den letzten Winkel vertraut bin.

Aus dem neuen cairo ist jedoch nun das XCB-Backend rausgeflogen. Leider gab es dazu bisher kein News-Item, weshalb sich erst einmal die Bug-Reports (noch mehr) häufen dürften -- aus der Zeit, als cairo-1.10.0 im Testing-Repository war, gibt es schon etliche davon. Spielt man unwissend die neue cairo-Version ein und startet dann Awesome, bekommt man nur noch folgendes zu sehen und landet dann wieder am VT:

awesome: symbol lookup error: awesome: undefined symbol: cairo_xcb_surface_create

Was muss man nun tun:

Im Moment ist Awesome noch im Community-Repo, das wird aber vermutlich jeden Moment rausfliegen. cairo-xcb wird es nicht parallel zu cairo in Community geben, wie xduugu im Forum schreibt. Für die Zukunft heißt das, dass man Awesome selbst bauen muss -- wenn es wieder freigeschaltet ist, wird es ein Paket im AUR geben.

– Nachtrag: Awesome ist jetzt im AUR.

Für pragmatische Menschen ist das Thema damit erledigt, so ganz sauber ist die Situation aber nicht. Das XCB-Backend ist nicht grundlos rausgeflogen. Jan de Groot schreibt auf der arch-dev-public-Mailingliste, dass XCB seitens cairo ein "unsupported and experimental feature" ist. Er verlinkt dort einen Bug-Report bei Red Hat, wo sich einer der cairo-Leute zu Wort meldet:

Cairo has a testsuite, running it with the xcb backend lead to wrong rendering and crashes, last I tried. You can increase the amount of crashes there if you use a non-standard X server (one without render support or pseudocolor visuals).

Also, everybody upstream knows that the xxcb backend is far from ready, I don't think more bug filing will help the situation.

What is missing is a dedicated upstream maintainer for the xcb backend. And I don't think that will happen anytime soon as xcb is really not all that it's cracked up to be.

Cairo mit XCB läuft also nicht rund, hat Bugs und die Maintainer-Frage ist auch nicht so wirklich geklärt. XCB selbst stuft er als "far from ready" ein, außerdem hat es die Erwartungen nicht erfüllt. Auf diese Einschätzung beruft sich Jan de Groot mehrfach, so auch in einem Bug-Report von Uli Schlachter (einem der Awesome-Entwickler -- zu "Authors" scrollen), der die Bitte enthält, das XCB-Backend wieder zu aktivieren. Es wird also in absehbarer Zukunft wohl kein XCB-Backend in cairo und damit kein Awesome in Community geben -- außerdem heißt das, dass es nicht ganz undenkbar ist, dass man auf "unvorhergesehene Probleme" stößt, wenn man cairo-xcb nutzt. Sprich, will man Awesome nutzen, sitzt man -- im Moment -- automatisch so ein bisschen in der Pampe.

Wirklich Sorgen macht mir aber das, was Julien Danjou in seinem Blog zu X schreibt (ich hoffe, der Link bleibt mal mehr als 2 Tage lang gültig). Das Posting ist so lang, das liest man sich am besten selbst durch. Auf mich wirkt es so, als sei X mit allem Drumherum heute extrem wackelig und könne sich nur gerade so über Wasser halten. Ich hoffe nur, dass er mit dieser Einschätzung hier nicht Recht haben wird:

I'm curious to see where all of that will lead in the upcoming years. I've been walking in the X world hallways for about 3 years now, and I feel desktop alternatives to KDE and GNOME will all die sooner or later. The time were you could choose between a dozen "modern" window managers has passed away.

Comments?