X on Wayland

A rather cool feature on Weston compositor is xwayland, to support X11 native applications on Wayland. It’s a quite important feature because gives the compatibility with the “old” windowing system, so say you have an application written on Motif/Xt or even something more “fancy” like a Web browser all tied with GTK2 and whatever dependency, then you better not bother yourself re-writing it to native Wayland or porting to a modern toolkit — it should just work seamlessly on it. Hence, X on Wayland fits pretty well with our overall transition plan.

The architecture behind and the mechanisms are a little tricky though, let’s take a look.

Once Weston is started, it launches the xwayland module which creates an X socket, adds it to the main Weston loop and waits for X clients to be connected into. When the first client gets connected, it triggers Weston to fork and exec one X server. Weston continues its normal execution but unregister itself that socket.

The X server, with the Wayland backend on it (xwayland), keeps listening Weston via a special Wayland protocol interface. Weston binds such interface and announces back the socket that X clients will be connecting to (xserver_send_listen_socket event) and the first X client that was just connected (xserver_send_client event). The idea is to give now to X the responsibility of clients trying to be connected, naturally. Worth to mention that this lazy initialization method was intentionally designed in order to avoid extra lags at Weston start up and memory overhead when X11 applications are not being used. So the X server is started on demand, only when actually needed.

At this point now, Weston also starts its own X Window Manager. In short, the main task of it is to proxy X applications built based on those old WM standards, such as EWMH and the jurassic ICCCM, and plumb them into the shiny Wayland desktop shell interface. In other words, the idea is to map different type of X windows on Wayland surfaces (xserver_set_window_id request), and specially give some meaningful user-interface policies on X Windows to the desktop shell, for instance making a surface to get maximized, or say to resize/move it around.

Other tasks the Weston X window manager performs are embed a pretty decoration frame around windows and also make sure the client-to-client communication such as copy and paste (selection) and eventually drag and drop work nicely. Remark that the X protocol doesn’t define policy but the WMs, and this is a challenge for Wayland, that does define. So the Weston X WM has to come up with the right amount of salt to fit perfectly the policies that were already straighten up by Wayland’s desktop shell… hmm way too philosophical.

All X windows created from now on will be redirected to offscreen pixmap and stored on a DRM buffer (via the xwayland video driver); that’s how compositing works on Wayland. The idea is that a X client will behave very likely as a regular Wayland client. Therefore, there’s no protocol calls or any major task involved on xwayland and all happens seamlessly, with the protocol “conversion” penalty close to nil.

The architecture for input handling looks good already as well. At X init time, it’s created fake devices, the keyboard and the pointer, and the concept goes the other way around of window creation: it gives the input devices capabilities from Weston to Xorg. We’re still shaping the cursor settings, the complex logic of client and surface grabbing, among other features, but the basics are most definitely in place already.

So the video is there for demoing what we’ve got until now. You can see in practice all these rather cool building blocks I mentioned. It’s rather cool.. specially for developers; one has to have the know-how on X11 and Wayland protocols, Xorg and Weston internals, X Window Manager standards, etc. Lot of fun!!!

starting on Wayland development

Do you wanna contribute to a funky open-source project? Are you tired of your nerdy and boring community of developers? Are you the one that wants to get rid of X because it’s a giant, old and fat dinosaur in your system? :) Cool, I have a project to solve your problems!

While there’s still lot of churn in the protocol, and yet our goal is soon to wrap up all we’ve been doing to a steady and settle-on-the-stone one description, there’s a lot on the implementation side that needs love. And that mainly concern Weston compositor, which is becoming the de facto compositor on several systems targeting Wayland.

In past months I was accumulating a TODO list for Weston and libraries that I think wouldn’t require any exceptional knowledge on core graphics or Wayland internals. These are good items for people that want start hack or just do some contribution on Wayland:

1. log facility (easy)

Back in July, I had already warmed up a discussion how we could log on Wayland. So now we spit everything to stdout but we want to do it similarly as Xorg, i.e. redirecting to its own file. It turned out that we might want only on Weston compositor and implement our own way of logging for sake of simplicity. Ideally it has to be very simple, without verbosity levels probably, etc. This task should be quite easy to finish.

2. launcher for Weston (medium)

Weston is meant to run as a normal user. Now we have to set manually input devices, DRM and tty with root permissions, so Weston can happily be started. Ideally we should have a setuid helper script doing all this tricky, and in fact I started something here. For a real system though, we need to enhance a bit this program with the policykit, specially for dealing with hotplugs. Probably zero understanding on Wayland internals is needed but an overall knowledge of OS is required.

3. libxkbcommon X merge (medium)

Actually that’s not much Wayland work, but it most definitely would help its development. xkbcommon is the library that exposes the keyboard mapping logic to clients, converting keycodes in keysyms. Weston clients are using for evdev convertion. The library is an adaptation of a bunch of X11 modules to fit in a non-X11 world and as such, it still requires xproto, kbproto and libX11. One task would be to untie such dependencies with X and the other to proper merge libxkbcommon with Xorg. I’d classify as medium-size task due the involvement with the community and the hairy understanding of XKB in general, although Daniel, Kristian and other guys already made a nice progress there.

4. xwayland on X (hard)

xwayland is the implementation on Xorg to make it run as a Wayland client. That works well on Intel chipsets and might work as well with other drivers through the shm X driver. In principle, basic X11 applications work with some WM control lacking, input grab as well and things like Xrandr don’t. One would also forward port xwayland and driver to upstream, once the work is shaped up. I bet WM developers would have an ecstasy and delight themselves hacking around.

Hopefully you get excited with some of the items. I definitely can give a hand with any, so just poke me on #wayland at freenode.

Qt on wayland: howto

To run Qt applications on Wayland is fairly simple nowadays. Thank to Qt developers, they are following up quite well our last changes on Wayland protocol and updating accordingly on Qt5 code base — by the way, the fresh and just released Qt 4.8 does not ship the latest protocol additions, so that’s not the one I’m referring.

So, today I’ve set up the last bits of Qt environment on my Intel Pine-Trail pretty easy (yeah, I compile on my tablet :-O). You don’t need to clone the whole data base for starting hacking on it. Let’s see.

first, you have to clone qtbase:

# mkdir qt; cd qt
# git clone git://gitorious.org/qt/qtbase.git

Before start the compilation steps, I like to set up my testbed in a different directory than what the ordinary system uses, so I include this on my .bashrc:

export QTVER=qt5
export QTDIR=/opt/qt/$QTVER
export PATH=$QTDIR/bin/:$PATH
export QT_PLUGIN_PATH=$QTDIR/lib/plugins/

and don’t forget to re-run your bashrc! Now, when developing a Wayland application it’s quite useful to check if your app is behaving nicely, so for doing so I like to compare it with Qt’s XCB backend. Then you’ll need the following — I’m under Ubuntu 11.10:

# apt-get install libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync0 libxcb-sync0-dev libxcb-xfixes0-dev

you should be ready now to go for the configuration:

# ./configure -confirm-license -opensource -no-qt3support -no-multimedia -no-webkit -no-phonon -no-v8 -debug -qpa -xcb -wayland -egl -opengl es2 -nomake examples -prefix ${QTDIR}

and now, the compilation — which took approximately 1hr and half in my system:

# make

install it:

# make install

At this point you got all Qt libraries, and needed tools to compile qtwayland platform. So go back one directory and clone that:

# cd ../
# git clone git://gitorious.org/qt/qtwayland.git

You need Wayland protocol libraries now in your system, and that’s the very late ones, which means the stock packages from your distro won’t work. Get and
build them using the following:


You might want to develop Wayland on the top of X, so before compile you’ll need this:

# apt-get install libxcomposite-dev

Jørgen Lind, updated me with: “the default buffersharing to use is wayland_egl. To be able to use the xcomposite stuff you need to export the environment variable QT_WAYLAND_GL_CONFIG to be either xcomposite_egl or xcomposite_glx”. So in order do to Wayland on X you will need to tweak it as well.

and then:

# cd qtwayland/
# qmake
# make && make install

To run now a Qt app, I first set the XDG directory that compositor and clients use to talk under Wayland. You better to watch out, cause some distros already have this set somewhere. Anyway, I put this on my .bashrc:

# export XDG_RUNTIME_DIR=$HOME/.xdg
# mkdir $HOME/.xdg

and re-ran .bashrc. Finally the Qt app running and voilà:

# cd ../qtbase/examples/opengl/hellowindow
# qmake
# make
# wayland-compositor &
# ./hellowindow -platform wayland

Kudos to Thiago Macieira for reviewing the content!

X characterization for MeeGo

Actually this is not a big news but it’s nice to see on practice X being used on the advanced age :) Here I’ve played with some UI configuration settings, browsed for while, toyed with facebook, opened some photos in the viewer and etc, all for about 5 minutes:


and zooming in the X11 core slice we have:


Moral of the story: as showed on the last figure, most of the traffic from the core protocol is related with window management, window state changes and notifications of positioning for clients. Actual drawing doesn’t happen on the core X11 at all. Everything goes through GL, GLES and similar APIs where DRI2 manages in some way them. And well, XRender is something to be deprecated soon on modern UIs. Its big slice part there is due a bug on Qt for not proper disabling glyphs for font rendering still. Another interesting fact (not on those figures) is that compositor manager is taking ~15% of the total interaction with X server – so then again, not big news for us.

This doesn’t necessarily need to use the recent Erkki and Rami’s XRes additions for doing client tracking in the server side, but for who likes to hack on the server side, it’s quite easy to do. The hack I’ve done with Pauli’s help and using XRes version 1.2 is on this branch.

X Census (for 1.10)

Following is the census of 1.10 window for all X infrastructure – raw numbers here. I did it in a similar way as the previous version. Worth to mention that there’s almost no relation between the cycles of development from each of the components listed below, which can lead to some misunderstanding. Anyway, still a nice indicative to see and evaluate how the free desktop community behaved.

Numbers for X implementation (xserver, proto, lib and xcb repositories):

Processed 1258 csets from 93 developers
70 employers found
A total of 139275 lines added, 58982 removed (delta 80293)

Developers with the most changesets
Alan Coopersmith 243 (19.3%)
Gaetan Nadon 193 (15.3%)
Peter Hutterer 121 (9.6%)
Adam Jackson 94 (7.5%)
Jon TURNEY 43 (3.4%)
Keith Packard 37 (2.9%)
Jeremy Huddleston 36 (2.9%)
Jesse Adkins 34 (2.7%)
Pauli Nieminen 29 (2.3%)
Jamey Sharp 28 (2.2%)

Developers with the most changed lines
Matt Dew 57959 (35.7%)
Jeremy Huddleston 25002 (15.4%)
Fernando Carrijo 16739 (10.3%)
Gaetan Nadon 15750 (9.7%)
Alan Coopersmith 11850 (7.3%)
Adam Jackson 4273 (2.6%)
Keith Packard 2754 (1.7%)
Jesse Adkins 2516 (1.5%)
Peter Hutterer 2083 (1.3%)
James Jones 1876 (1.2%)

Developers with the most lines removed
Jeremy Huddleston 3726 (6.3%)
Adam Jackson 3617 (6.1%)
Jesse Adkins 2489 (4.2%)
Jamey Sharp 1497 (2.5%)
Søren Sandmann Pedersen 757 (1.3%)
James Cloos 187 (0.3%)
Adrian Bunk 184 (0.3%)
Tiago Vignatti 118 (0.2%)
Jon TURNEY 116 (0.2%)
Chris Wilson 72 (0.1%)

Developers with the most signoffs (total 1429)
Alan Coopersmith 315 (22.0%)
Peter Hutterer 191 (13.4%)
Gaetan Nadon 174 (12.2%)
Keith Packard 133 (9.3%)
Adam Jackson 96 (6.7%)
Jon TURNEY 52 (3.6%)
Jeremy Huddleston 36 (2.5%)
Jesse Adkins 34 (2.4%)
Pauli Nieminen 30 (2.1%)
Jamey Sharp 29 (2.0%)

Developers with the most reviews (total 882)
Alan Coopersmith 83 (9.4%)
Daniel Stone 78 (8.8%)
Peter Hutterer 76 (8.6%)
Julien Cristau 73 (8.3%)
Keith Packard 61 (6.9%)
Adam Jackson 49 (5.6%)
Mikhail Gusarov 41 (4.6%)
Jeremy Huddleston 38 (4.3%)
Colin Harrison 38 (4.3%)
Chase Douglas 35 (4.0%)

Developers with the most test credits (total 48)
Colin Harrison 16 (33.3%)
Gaetan Nadon 6 (12.5%)
Cyril Brulebois 5 (10.4%)
Alan Coopersmith 3 (6.2%)
Jeremy Huddleston 2 (4.2%)
Julien Cristau 1 (2.1%)
Aaron Plattner 1 (2.1%)
Luc Verhaegen 1 (2.1%)
Dirk Wallenstein 1 (2.1%)
Simon Thum 1 (2.1%)

Developers who gave the most tested-by credits (total 48)
Jon TURNEY 16 (33.3%)
Peter Hutterer 8 (16.7%)
Alan Coopersmith 7 (14.6%)
Dan Nicholson 4 (8.3%)
Michel Dänzer 2 (4.2%)
Gaetan Nadon 1 (2.1%)
Jeremy Huddleston 1 (2.1%)
Julien Cristau 1 (2.1%)
Aaron Plattner 1 (2.1%)
Luc Verhaegen 1 (2.1%)

Developers with the most report credits (total 21)
Julien Cristau 2 (9.5%)
Justin Mattock 2 (9.5%)
Peter Hutterer 1 (4.8%)
Aaron Plattner 1 (4.8%)
Cyril Brulebois 1 (4.8%)
Simon Thum 1 (4.8%)
Thierry Vignaud 1 (4.8%)
meng 1 (4.8%)
Sebastian Glita 1 (4.8%)
Bartosz Brachaczek 1 (4.8%)

Developers who gave the most report credits (total 21)
Peter Hutterer 7 (33.3%)
Julien Cristau 3 (14.3%)
Jamey Sharp 3 (14.3%)
Alan Coopersmith 2 (9.5%)
Eamon Walsh 2 (9.5%)
Michel Dänzer 1 (4.8%)
Gaetan Nadon 1 (4.8%)
Kristian Høgsberg 1 (4.8%)
Jesse Barnes 1 (4.8%)

Top changeset contributors by employer
Oracle 244 (19.4%)
Red Hat 225 (17.9%)
memsize@videotron.ca 193 (15.3%)
Nokia 122 (9.7%)
Intel 46 (3.7%)
jon.turney@dronecode.org.uk 43 (3.4%)
Apple 36 (2.9%)
jesserayadkins@gmail.com 34 (2.7%)
NVidia 30 (2.4%)
jamey@minilop.net 28 (2.2%)

Top lines changed by employer
matt@osource.org 57958 (35.7%)
Apple 27540 (17.0%)
fcarrijo.lists@gmail.com 16729 (10.3%)
memsize@videotron.ca 16611 (10.2%)
Oracle 14567 (9.0%)
Red Hat 8089 (5.0%)
Intel 4574 (2.8%)
Nokia 3153 (1.9%)
jesserayadkins@gmail.com 2528 (1.6%)
jon.turney@dronecode.org.uk 2110 (1.3%)

Employers with the most signoffs (total 1429)
Oracle 315 (22.0%)
Red Hat 293 (20.5%)
memsize@videotron.ca 174 (12.2%)
Intel 144 (10.1%)
Nokia 127 (8.9%)
jon.turney@dronecode.org.uk 52 (3.6%)
Apple 36 (2.5%)
jesserayadkins@gmail.com 34 (2.4%)
NVidia 29 (2.0%)
jamey@minilop.net 29 (2.0%)

Employers with the most hackers (total 96)
Red Hat 8 (8.3%)
Nokia 8 (8.3%)
Intel 7 (7.3%)
Canonical 3 (3.1%)
VMWare 3 (3.1%)
Oracle 2 (2.1%)
NVidia 2 (2.1%)
memsize@videotron.ca 1 (1.0%)
jon.turney@dronecode.org.uk 1 (1.0%)
Apple 1 (1.0%)

Development of X input drivers and input event processing tools (xf86-input-*, xkbcomp, xkeyboard-config repositories):

Processed 293 csets from 33 developers
29 employers found
A total of 34645 lines added, 26556 removed (delta 8089)

Developers with the most changesets
Peter Hutterer 152 (51.9%)
Sergey V. Udaltsov 32 (10.9%)
Alexandr Shadchin 21 (7.2%)
Alan Coopersmith 17 (5.8%)
Gaetan Nadon 12 (4.1%)
Trevor Woerner 6 (2.0%)
Nikolai Kondrashov 5 (1.7%)
Chase Douglas 4 (1.4%)
Simon Thum 4 (1.4%)
Joe Shaw 3 (1.0%)

Developers with the most changed lines
Sergey V. Udaltsov 30425 (79.0%)
Peter Hutterer 3377 (8.8%)
Alexandr Shadchin 1263 (3.3%)
Alan Coopersmith 806 (2.1%)
Chase Douglas 572 (1.5%)
Denis 'GNUtoo' Carikli 180 (0.5%)
Simon Thum 133 (0.3%)
Gaetan Nadon 110 (0.3%)
Bryce Harrington 99 (0.3%)
Nikolai Kondrashov 81 (0.2%)

Developers with the most lines removed
Alexandr Shadchin 1239 (4.7%)
Alan Coopersmith 739 (2.8%)
Chase Douglas 418 (1.6%)
Peter Hutterer 183 (0.7%)
Gaetan Nadon 61 (0.2%)
Peter Korsgaard 51 (0.2%)
Nikolai Kondrashov 35 (0.1%)
Jesse Adkins 16 (0.1%)
Javier Acosta 6 (0.0%)
Adam Jackson 6 (0.0%)

Developers with the most signoffs (total 304)
Peter Hutterer 197 (64.8%)
Alan Coopersmith 25 (8.2%)
Alexandr Shadchin 21 (6.9%)
Gaetan Nadon 11 (3.6%)
Trevor Woerner 6 (2.0%)
Nikolai Kondrashov 5 (1.6%)
Thomas Hellstrom 5 (1.6%)
Chase Douglas 4 (1.3%)
Simon Thum 4 (1.3%)
Joe Shaw 3 (1.0%)

Developers with the most reviews (total 126)
Trevor Woerner 37 (29.4%)
Alan Coopersmith 25 (19.8%)
Benjamin Tissoires 11 (8.7%)
Chris Bagwell 9 (7.1%)
Daniel Stone 9 (7.1%)
Chase Douglas 8 (6.3%)
Adam Jackson 7 (5.6%)
Cyril Brulebois 6 (4.8%)
Matt Turner 5 (4.0%)
Peter Hutterer 3 (2.4%)

Developers with the most test credits (total 25)
Alan Coopersmith 23 (92.0%)
Benjamin Tissoires 1 (4.0%)
Abdoulaye Walsimou Gaye 1 (4.0%)

Developers who gave the most tested-by credits (total 25)
Peter Hutterer 24 (96.0%)
Gaetan Nadon 1 (4.0%)

Developers with the most report credits (total 2)
Dave Airlie 2 (100.0%)

Developers who gave the most report credits (total 2)
Peter Hutterer 2 (100.0%)

Top changeset contributors by employer
Red Hat 155 (52.9%)
svu@gnome.org 32 (10.9%)
alexandr.shadchin@gmail.com 21 (7.2%)
Oracle 18 (6.1%)
memsize@videotron.ca 12 (4.1%)
twoerner@gmail.com 6 (2.0%)
Canonical 6 (2.0%)
spbnick@gmail.com 5 (1.7%)
simon.thum@gmx.de 4 (1.4%)
VMWare 3 (1.0%)

Top lines changed by employer
svu@gnome.org 30437 (79.1%)
Red Hat 4428 (11.5%)
alexandr.shadchin@gmail.com 1263 (3.3%)
Oracle 825 (2.1%)
Canonical 713 (1.9%)
gnutoo@no-log.org 180 (0.5%)
simon.thum@gmx.de 133 (0.3%)
memsize@videotron.ca 113 (0.3%)
spbnick@gmail.com 93 (0.2%)
jacmet@sunsite.dk 59 (0.2%)

Employers with the most signoffs (total 304)
Red Hat 199 (65.5%)
Oracle 26 (8.6%)
alexandr.shadchin@gmail.com 21 (6.9%)
memsize@videotron.ca 11 (3.6%)
Canonical 6 (2.0%)
twoerner@gmail.com 6 (2.0%)
spbnick@gmail.com 5 (1.6%)
VMWare 5 (1.6%)
simon.thum@gmx.de 4 (1.3%)
joe@joeshaw.org 3 (1.0%)

Employers with the most hackers (total 33)
Red Hat 3 (9.1%)
Oracle 2 (6.1%)
Canonical 2 (6.1%)
alexandr.shadchin@gmail.com 1 (3.0%)
memsize@videotron.ca 1 (3.0%)
twoerner@gmail.com 1 (3.0%)
spbnick@gmail.com 1 (3.0%)
VMWare 1 (3.0%)
simon.thum@gmx.de 1 (3.0%)
joe@joeshaw.org 1 (3.0%)

for userspace video drivers (libdrm, mesa and all xf86-video-*):

Processed 5223 csets from 131 developers
100 employers found
A total of 452414 lines added, 289531 removed (delta 162883)

Developers with the most changesets
Brian Paul 579 (11.1%)
Eric Anholt 512 (9.8%)
Vinson Lee 432 (8.3%)
Dave Airlie 357 (6.8%)
Marek Olšák 324 (6.2%)
Chia-I Wu 252 (4.8%)
José Fonseca 247 (4.7%)
Kenneth Graunke 210 (4.0%)
Luca Barbieri 210 (4.0%)
Ian Romanick 190 (3.6%)

Developers with the most changed lines
Brian Paul 70178 (13.0%)
Luca Barbieri 58946 (10.9%)
Kenneth Graunke 35433 (6.5%)
Chia-I Wu 34790 (6.4%)
Ian Romanick 30961 (5.7%)
Jerome Glisse 28641 (5.3%)
Eric Anholt 27906 (5.2%)
Christoph Bumiller 22352 (4.1%)
Dave Airlie 21625 (4.0%)
Alex Deucher 19210 (3.5%)

Developers with the most lines removed
Kenneth Graunke 19727 (6.8%)
Matt Turner 3052 (1.1%)
Henri Verbeet 1398 (0.5%)
Kristian Høgsberg 832 (0.3%)
Adam Jackson 248 (0.1%)
Jesse Adkins 161 (0.1%)
Nicolas Kaiser 43 (0.0%)
Andre Maasikas 34 (0.0%)
Pierre Allegraud 17 (0.0%)
Patrice Mandin 17 (0.0%)

Developers with the most signoffs (total 930)
Chris Wilson 181 (19.5%)
Jerome Glisse 99 (10.6%)
Brian Paul 82 (8.8%)
Dave Airlie 81 (8.7%)
Alex Deucher 59 (6.3%)
Tilman Sauerbeck 44 (4.7%)
Thomas Hellstrom 40 (4.3%)
Alan Coopersmith 30 (3.2%)
Jakob Bornecrantz 29 (3.1%)
Daniel Vetter 28 (3.0%)

Developers with the most reviews (total 69)
Jakob Bornecrantz 23 (33.3%)
Ian Romanick 10 (14.5%)
Eric Anholt 9 (13.0%)
Julien Cristau 6 (8.7%)
Mikhail Gusarov 4 (5.8%)
Brian Paul 2 (2.9%)
Alex Deucher 2 (2.9%)
Matt Turner 2 (2.9%)
José Fonseca 2 (2.9%)
Michel Dänzer 2 (2.9%)

Developers with the most test credits (total 6)
Guillermo S. Romero 1 (16.7%)
Michel Hermier 1 (16.7%)
Sitsofe Wheeler 1 (16.7%)
Bjørn Mork 1 (16.7%)
Michal Marek 1 (16.7%)
Manoj Iyer 1 (16.7%)

Developers who gave the most tested-by credits (total 6)
Chris Wilson 2 (33.3%)
Guillermo S. Romero 1 (16.7%)
Xiang, Haihao 1 (16.7%)
Xavier Chantry 1 (16.7%)
Jesse Barnes 1 (16.7%)

Developers with the most report credits (total 23)
Julien Cristau 2 (8.7%)
Matthias Hopf 2 (8.7%)
Jeff Chua 2 (8.7%)
Sitsofe Wheeler 1 (4.3%)
Bjørn Mork 1 (4.3%)
Michal Marek 1 (4.3%)
José Fonseca 1 (4.3%)
Daniel Vetter 1 (4.3%)
Cyril Brulebois 1 (4.3%)
Peter Clifton 1 (4.3%)

Developers who gave the most report credits (total 23)
Chris Wilson 19 (82.6%)
Xiang, Haihao 2 (8.7%)
Ian Romanick 1 (4.3%)
Kenneth Graunke 1 (4.3%)

Top changeset contributors by employer
VMWare 1582 (30.3%)
Intel 1292 (24.7%)
Red Hat 546 (10.5%)
maraeo@gmail.com 324 (6.2%)
LunarG 252 (4.8%)
luca@luca-barbieri.com 210 (4.0%)
e0425955@student.tuwien.ac.at 158 (3.0%)
AMD 156 (3.0%)
hverbeet@gmail.com 65 (1.2%)
currojerez@riseup.net 60 (1.1%)

Top lines changed by employer
Intel 132677 (24.5%)
VMWare 105087 (19.4%)
Red Hat 87373 (16.1%)
luca@luca-barbieri.com 67407 (12.5%)
LunarG 38973 (7.2%)
e0425955@student.tuwien.ac.at 22548 (4.2%)
AMD 19690 (3.6%)
maraeo@gmail.com 14329 (2.6%)
richard@richard-desktop3.(none) 12426 (2.3%)
noviktor@seznam.cz 11676 (2.2%)

Employers with the most signoffs (total 930)
Intel 235 (25.3%)
Red Hat 215 (23.1%)
VMWare 159 (17.1%)
AMD 59 (6.3%)
tilman@code-monkey.de 44 (4.7%)
Oracle 30 (3.2%)
daniel.vetter@ffwll.ch 28 (3.0%)
jesserayadkins@gmail.com 24 (2.6%)
currojerez@riseup.net 18 (1.9%)
mattst88@gmail.com 12 (1.3%)

Employers with the most hackers (total 138)
Intel 17 (12.3%)
VMWare 13 (9.4%)
Red Hat 7 (5.1%)
Canonical 4 (2.9%)
Novell 2 (1.4%)
AMD 1 (0.7%)
tilman@code-monkey.de 1 (0.7%)
Oracle 1 (0.7%)
daniel.vetter@ffwll.ch 1 (0.7%)
jesserayadkins@gmail.com 1 (0.7%)

Pixman library (pixman):

Processed 223 csets from 15 developers
12 employers found
A total of 10985 lines added, 6139 removed (delta 4846)

Developers with the most changesets
Søren Sandmann Pedersen 124 (55.6%)
Siarhei Siamashka 64 (28.7%)
Andrea Canciani 11 (4.9%)
Dmitri Vorobiev 5 (2.2%)
Rolland Dudemaine 4 (1.8%)
Cyril Brulebois 2 (0.9%)
Jon TURNEY 2 (0.9%)
Liu Xinyun 2 (0.9%)
Maarten Bosmans 2 (0.9%)
Benjamin Otte 2 (0.9%)

Developers with the most changed lines
Søren Sandmann Pedersen 6335 (45.3%)
Siarhei Siamashka 3119 (22.3%)
Liu Xinyun 1318 (9.4%)
Jonathan Morton 721 (5.2%)
Andrea Canciani 586 (4.2%)
Dmitri Vorobiev 62 (0.4%)
Benjamin Otte 62 (0.4%)
Maarten Bosmans 56 (0.4%)
Rolland Dudemaine 32 (0.2%)
Mika Yrjola 7 (0.1%)

Developers with the most lines removed
Liu Xinyun 1318 (21.5%)
Maarten Bosmans 11 (0.2%)
Rolland Dudemaine 2 (0.0%)

Developers with the most signoffs (total 7)
Cyril Brulebois 2 (28.6%)
Jon TURNEY 2 (28.6%)
Liu Xinyun 1 (14.3%)
Alan Coopersmith 1 (14.3%)
Chen Miaobo 1 (14.3%)

Developers with the most reviews (total 1)
Matt Turner 1 (100.0%)

Developers with the most test credits (total 0)

Developers who gave the most tested-by credits (total 0)

Developers with the most report credits (total 0)

Developers who gave the most report credits (total 0)

Top changeset contributors by employer
Red Hat 126 (56.5%)
Nokia 64 (28.7%)
ranma42@gmail.com 11 (4.9%)
Movial 7 (3.1%)
rolland@ghs.com 4 (1.8%)
jon.turney@dronecode.org.uk 2 (0.9%)
kibi@debian.org 2 (0.9%)
mkbosmans@gmail.com 2 (0.9%)
Intel 2 (0.9%)
Oracle 1 (0.4%)

Top lines changed by employer
Red Hat 7969 (57.0%)
Nokia 3156 (22.6%)
Intel 1318 (9.4%)
Movial 805 (5.8%)
ranma42@gmail.com 619 (4.4%)
mkbosmans@gmail.com 57 (0.4%)
rolland@ghs.com 40 (0.3%)
tml@iki.fi 7 (0.1%)
jon.turney@dronecode.org.uk 6 (0.0%)
kibi@debian.org 2 (0.0%)

Employers with the most signoffs (total 7)
Intel 2 (28.6%)
jon.turney@dronecode.org.uk 2 (28.6%)
kibi@debian.org 2 (28.6%)
Oracle 1 (14.3%)

Employers with the most hackers (total 15)
Movial 3 (20.0%)
Red Hat 2 (13.3%)
Intel 1 (6.7%)
jon.turney@dronecode.org.uk 1 (6.7%)
kibi@debian.org 1 (6.7%)
Oracle 1 (6.7%)
Nokia 1 (6.7%)
ranma42@gmail.com 1 (6.7%)
mkbosmans@gmail.com 1 (6.7%)
rolland@ghs.com 1 (6.7%)

X11 comformance’s XTS, taken from Peter’s repository:

Processed 36 csets from 2 developers
2 employers found
A total of 3114 lines added, 3339 removed (delta -225)

Developers with the most changesets
Peter Hutterer 21 (58.3%)
Aaron Plattner 14 (38.9%)

Developers with the most changed lines
Peter Hutterer 3242 (90.0%)
Aaron Plattner 136 (3.8%)

Developers with the most lines removed
Peter Hutterer 264 (7.9%)

Developers with the most signoffs (total 35)
Peter Hutterer 21 (60.0%)
Aaron Plattner 14 (40.0%)

Developers with the most reviews (total 4)
Joe Kain 2 (50.0%)
Adam Cheney 2 (50.0%)

Developers with the most test credits (total 0)

Developers who gave the most tested-by credits (total 0)

Developers with the most report credits (total 0)

Developers who gave the most report credits (total 0)

Top changeset contributors by employer
Red Hat 21 (58.3%)
NVidia 14 (38.9%)

Top lines changed by employer
Red Hat 3402 (94.4%)
NVidia 200 (5.6%)

Employers with the most signoffs (total 35)
Red Hat 21 (60.0%)
NVidia 14 (40.0%)

Employers with the most hackers (total 2)
Red Hat 1 (50.0%)
NVidia 1 (50.0%)

X documentation (doc repository):

Processed 108 csets from 7 developers
7 employers found
A total of 28556 lines added, 212807 removed (delta -184251)

Developers with the most changesets
Alan Coopersmith 57 (52.8%)
Gaetan Nadon 45 (41.7%)
Matt Dew 2 (1.9%)
Peter Hutterer 1 (0.9%)
Samuel Thibault 1 (0.9%)
Jesse Adkins 1 (0.9%)
Marc Balmer 1 (0.9%)

Developers with the most changed lines
Gaetan Nadon 146676 (67.0%)
Matt Dew 59191 (27.0%)
Alan Coopersmith 6927 (3.2%)
Samuel Thibault 7 (0.0%)
Jesse Adkins 7 (0.0%)
Peter Hutterer 3 (0.0%)
Marc Balmer 3 (0.0%)

Developers with the most lines removed
Gaetan Nadon 129581 (60.9%)
Matt Dew 52738 (24.8%)
Alan Coopersmith 1932 (0.9%)
Jesse Adkins 7 (0.0%)

Developers with the most signoffs (total 109)
Alan Coopersmith 59 (54.1%)
Gaetan Nadon 47 (43.1%)
Jesse Adkins 1 (0.9%)
Peter Hutterer 1 (0.9%)
Samuel Thibault 1 (0.9%)

Developers with the most reviews (total 28)
Alan Coopersmith 17 (60.7%)
Gaetan Nadon 4 (14.3%)
Peter Hutterer 2 (7.1%)
Daniel Stone 1 (3.6%)
Dan Nicholson 1 (3.6%)
Julien Cristau 1 (3.6%)
Matt Turner 1 (3.6%)
Adam Jackson 1 (3.6%)

Developers with the most test credits (total 0)

Developers who gave the most tested-by credits (total 0)

Developers with the most report credits (total 0)

Developers who gave the most report credits (total 0)

Top changeset contributors by employer
Oracle 57 (52.8%)
memsize@videotron.ca 45 (41.7%)
matt@osource.org 2 (1.9%)
Red Hat 1 (0.9%)
marc.balmer@arcapos.com 1 (0.9%)
samuel.thibault@ens-lyon.org 1 (0.9%)
jesserayadkins@gmail.com 1 (0.9%)

Top lines changed by employer
memsize@videotron.ca 152747 (69.7%)
matt@osource.org 59195 (27.0%)
Oracle 7088 (3.2%)
samuel.thibault@ens-lyon.org 7 (0.0%)
jesserayadkins@gmail.com 7 (0.0%)
Red Hat 3 (0.0%)
marc.balmer@arcapos.com 3 (0.0%)

Employers with the most signoffs (total 109)
Oracle 59 (54.1%)
memsize@videotron.ca 47 (43.1%)
samuel.thibault@ens-lyon.org 1 (0.9%)
jesserayadkins@gmail.com 1 (0.9%)
Red Hat 1 (0.9%)

Employers with the most hackers (total 7)
Oracle 1 (14.3%)
memsize@videotron.ca 1 (14.3%)
samuel.thibault@ens-lyon.org 1 (14.3%)
jesserayadkins@gmail.com 1 (14.3%)
Red Hat 1 (14.3%)
matt@osource.org 1 (14.3%)
marc.balmer@arcapos.com 1 (14.3%)

About Nokia and Microsoft alliance? I was deeply shocked yes, but well, I guess I’m cool and over it now. I’m sure MeeGo is not dead by any chance though… Nevertheless, Nokia’s contribution to X11 development will be obviously diminishing. It’s sad. Our Graphics Team were just feeling the first effects of the new introduced culture for pushing whatever work (well the ones we are allowed) to upstream and now all was cracked down. So, unfortunately this won’t happen with the same volume anymore and the collected numbers of 1.10 is definitely a mark for Nokia.

X.Org Foundation elections

I am a candidate for the elections 2011 of the board of directors :) Following are my answers based on the questionnaire formulated by the members. You can check other candidates answers here.

1) In the last year, the membership gained a lot more insight in the activities of the board. What is your opinion on this new-gained transparency? Do you see options for improvement?

What happened in the recent past when people started to demand logs and open meetings from X.Org was great and should be always supported. The board reacted relatively quickly which was nice also. As a open organization, the Foundation has to work to improve more this, specially regarding the financial aspects which is being subject of discussions lately.

2) In the past, X.org financials have been dealt with in a less than optimal way, but in the last year a lot of effort has been put into creating solid financial records for the last 5 years, so that incorporation can happen. This work is still underway. What is your opinion about this, where do you see room for improvement?

As I elaborated before a bit, this is a must. I believe the current directors made already the necessary effort to dig the past records. At the same time, and obviously, mistaken happened there due not finding all of those, so there is room for improvement. Therefore, all we can do now is to focus on the current and next financial logs and for that not only the directors but also members can help guaranteeing everything is going well.

3) As stated in the X.org Foundation bylaws, only a maximum of 2 of the 8 board seats can be taken by employees of the same company. In the past there was a situation where there were more than two of the same company on the board, after some board member changed affiliation. What is your opinion about this, how would you prefer to resolve such a situation?

Although is entirely board’s fault, all members must help when the bylaw is not being followed correctly and some aspects are interpreted wrongly.

4) What is your opinion about the past and the current X.org board elections. Do you have any suggestions for improvement?

Lately the elections have chose candidates with a known background in X.Org community. This is enough to say that the election process works.

5) This years X.org conference was held in Toulouse, France. Did you have the chance to visit this, or any previous conferences? For 2011 one proposal was already made to hold the conference in Chicago. Opinions/Suggestions/Proposals?

Conferences have to be hold in countries where is affordable to fly, the bureaucracy with foreigns visiting is okay and where we have a good host setting up the organization. Fortunately I never experienced anyone failing in this last point, but I saw already people not going for conferences because of lack of visa. Although USA is not a visa friendly country, I honestly believe that Michael Larabel can influence this, expediting invitation letters for instance in an eventual Chicago’s conference. Oh, of course that all attendees want also to have fun, which is very important!

6) A big chunk of spending goes to travel sponsorship. When he learned about the practices of the more recent years, the current treasurer voiced that, when the X.org foundation was formed, travel was usually not sponsored for those gainfully employed to work on X.org related topics. What is your opinion on this?

Anyone doing any work related with and surrounding X should be eligible. For a conference for instance, we define a given budget based on the donations we get and current available money, and then set priorities to see who deserves it given the involvement of such the person.

7) Now, a topic quite close to the heart of the author of this questionnaire: FOSDEM. 4-5000 free software users and developers over a weekend in winter, join up in the center of Europe. X.org used to have a hugely popular Developers Room there. But the interest from the X.org community has dwindled now. Why do you think this is so? Should this be different? Do you have any suggestions?

The interest for X was never that big. Just a few geeks are interested in hacking on drivers or spending hours debugging a complex code of a compositor manager interacting with a X server and its non-trivial window stack. The past experience shown that is not easy to attract developers for X development and very likely a newbie will rather go learn a SDK high level before.

X conferences have been very small, with deep and long technical discussions in which several times hardly more than 3 persons in the room can talk about. Although these discussions are good and productive, they also tend to be boring for someone not involved in the subject. One alternative to improve this is to bring the annual conference of X.Org co-located with big events such as FOSDEM.

8) The topics of an X.org trademark and a new X.org logo have been talked about since the formation of the current X.org foundation. Are these really important topics for the X.org board? What is your opinion, do you have any suggestions?

To promote X.Org trademark is for sure very desired by the board. This topic is considered “important” but not “really important”, I would say, so that is the reason why the current directors are not paying much attention at this moment. But then again, this is something that with just a little kick from the board, the members and the community could do the rest of the work. A more proactive director could do this.

9) Coordinating Google Summer of Code is another initiative supported by the X.org board. There have also been follow-up initiatives started by the board. What is your opinion about these initiatives and their results? Any suggestions?

I guess it is not fair to myself talk about this because I was one that got leveraged by Summer of Code within X community :) So obviously it is important to ramp up newcomers and the Foundation’s Vacation of Code, although without not being that popular still, was a brilliant initiative from the board. We should advertise it better though.

10) X.org hosting infrastructure has had its hiccups over the past few years. The loss of all users home directories on freedesktop.org and the breach of trust through defamation of a driver repository by former board members come to mind. What is your opinion about the current situation, how would you want to improve it?

The situation is not good. There are room for improvements throughout the whole infrastructure: management of machines, creation and handling of repositories, administration of accounts and all other activities.

For the repositories, one problem I noticed is that freedesktopers are not seeing us with good eyes, sometimes even abandoning and going instead for gitorious, linaro.org, google, github and many others. These services mostly have the same interests in open-source and I am sure we could centralize the efforts in one single place, thus reducing the overall maintenance costs.

11) The membership of the X.org foundation is not completely representative with respect to its contributing audience, and it is hard to motivate people to become a member of the X.org foundation. Some people suggest linking commit access with membership. What is your opinion, and do you have any further suggestions?

We are doing good already. We are trying to create a culture of development process where the “commit access” is irrelevant. There is one or a few numbers of people only responsible to the final commit; this final commit is based on the reviews that got from the mailing list by any other hacker. It’s truly open and focusing in stability. So, in short, everyone should be able to create repositories at freedesktop, but patches are pushed to repositories upon review only. Membership is a bit different.

12) Are there any topics that were overlooked in this questionnaire? Is there something else that you would like to talk about now and/or work on during your term on the board?

Pretty much covered good points. Thank you for elaborating.

13) What do you think about this questionnaire? Should this initiative be repeated, and do you have any suggestions for such future repeats?

My suggestion is that it should get opened and announced before the elections to all members discuss a bit the best questions. Also, to limit the number of questions would be better.

14) How do you feel about the size of the Xorg board?  Should it be changed?

I don’t have the experience inside the board to tell this, but it seems to be working okay from outside.

15) Some have argued that the current election process is flawed.  Do you agree?  What do you think is flawed and how can it be improved in the future?

It is not flawed.

16) The Xorg Foundation has been working on getting 501(c)3 non-profit status for a while now.  Would you be interested in getting involved with this work?

I am pretty sure there are other directors or even members with more expertize in this kind of paper work, specially the ones living in USA. If needed, I could help of course.

17) It has been brought up in several board meetings that we should donate some money to the SFLC (Software Freedom Law Center) for their help various legal matters.  Do you agree with this?

I honestly don’t see much difficulties lately happening where lawyers should be involved. But of course, both X.Org and SFLC are sister organizations and they should help each other anyway. It all depends of the current cash of Foundation.

18) Non-profit corporations have certain requirements with respect to where their funding comes from depending on the type of non-profit they are. Should the Xorg Foundation actively solicit donations from the community to fund it’s activities (developer conferences, travel expenses, infrastructure expenses, etc.)?

Other open-source organizations are doing this repeatedly. We should invest some time on it also.

19) If you agree with the soliciting funding from the community, would you be interested in taking on a role to help reach that end?  If so, what ideas do you have for soliciting these donations?  If you don’t agree, where should the Xorg foundation look to get it’s funding?

Yes, definitely I’m willing to help. Last year, when I was trying to raise up funds from my company, I asked the Board for a formal letter that I could emit asking for budget contribution. There was none. We could start from this idea for instance.

20) With new platforms such as android and programs like wayland, some would say X is becoming less relevant.  Do you agree with that statement?  Where do you see X going in the future?

X evolved a lot through the years already with its protocol extensions. Everyone is amazed to see a protocol completing one fourth of century of birthday, where initially was designed for a much simpler environment with different hardware requirements. At the same time, we haven’t been deprecating unused parts of the protocol and this led us to a very big open source implementation that we have nowadays. The productization of it is not practical and the development happens quite slowly. So we have to move on and I guess that is the big technical challenge the board will have to face next.

Although the Foundation states explicitly the support for X, it also supports all siblings technologies such as DRI, Mesa, Linux kernel, now Wayland and a dozen of others. So it is important to emphasize that the community remains the same, i.e., of hackers shaping the core of graphics towards a free and open-source desktop experience.