Linked by Eugenia Loli-Queru on Mon 15th Sep 2003 20:37 UTC
Original OSNews Interviews Today we feature a very interesting interview with Havoc Pennington. Havoc works for Red Hat, he is heading the desktop team, while he is well known also for his major contributions to GNOME, his GTK+ programming book, plus the freedesktop.org initiative which aims to standardize the X11 desktop environments. In the following interview we discuss about the changes inside Red Hat, Xouvert, freedesktop.org and Gnome's future, and how Linux, in general, is doing in the desktop market.
Permalink for comment
To read all comments associated with this story, please click here.
Re: Re: DirectFB is the better alternative to X11
by oGALAXYo on Mon 15th Sep 2003 08:06 UTC

"I have the above, can I load GNOME in the framebuffer out of the box or do I have to re-compile GNOME to use the framebuffer."

Actually NO - or better NOT yet. Most distributions sent their GNOME Desktop out compiled against X11 libraries.

GTK the widgetset used by GNOME has the advantage to use different GDK backends such as X11, DirectFB (recently replaced old framebuffer) and Win32. So what you need to do is:

a) enable FrameBuffer in the Kernel,
b) enable Fusion in the Kernel,
c) compile DirectFB,
d) compiler GTK with the DirectrFB backend.

... after this point you can compile nearly all native GTK+ applications and play with them e.g. gtk-demo or the DirectFB tools itself ... simply boot Linux, Login and then enter './gtk-demo' in the console ;)

I have tried to compile GNOME a bunch of times using DirectFB but the developers seem to not care for the GTK backend correctly and thus they often:

#include <gdk/gdkx11.h> rather than
#include <gdk/gdkfb.h>

I hacked around in the GNOME code for a while and replaced a bunch of these includes to proceed with compiling. This usually works perfectly and I was able to compile 45 out of 80 Tarballs (which makes an entire GNOME Desktop) without any problems. But there are a few libraries such as startup-motification and libbonoboui who makes usage of direct X11 calls (libbonoboui for example SOCKS calls) which is hard to bypass. I wrote empty functions for it to wrap it only to continue compiling GNOME.

So the status of GNOME is

a) developers do not care for including the GDK backend correctly e.g. through proper checks in the configure scripts.
b) they use a few direct X11 calls to achieve some easy goals.

What needs to be done is to fix a) and b). Point a) looks rather easy it's just an #ifdef in the code and an correct configure.in (.ac) check to determine which backend is used. After that the few X11 library calls made needs to get wrapped or replacement libraries to use the DirectFB engine. It sounds a bit complicated and theoretically now and may scare the one or other away but once this is done you do not notice any complicate things anymore because it's really trivial to compile GNOME then. The same value it takes right now.

"Also what would the command be from the console to launch GNOME in the framebuffer instead of X ?"

./gnome-session &

Probably. Dunno yet.