Building GNOME: The Epic Task

Copyright © Urpo Lankinen.

These are some of my notes about the compilation of GNOME and the problems that occurred during the compilation. I have also included comments from other people. (So, if you have anything to add, please send me your compilation notes.)

Sorry, I don't have the old (Pre-0.11) versions. I think I lost them somehow. (Kids, never let your cat(1) mangle your TODO file... felines are dangeours pets.)

WhAT th3 HELL 1z Th1Z FSCK1NG GN0M3 ANywAyZ?

Okay. So, what is this wondrous GNOME anyway? GNOME (GNU Network Object Model Environment) is a project that aims to build the greatest (and sexiest-looking) desktop environment for X Windowing System. The important parts are GTK+ (GIMP ToolKit, used to create the user interface) and Guile (GNU Scheme interpreter). Unlike KDE (K Desktop Environment), GNOME is based on completely free software. There will be some advanced features, such as internationalization, Drag-and-drop, advanced file management...

Currently, GNOME has some applications:

The project homepage is at <URL:http://www.gnome.org/>.

Gee, this intro is bloated.


"OK, enough hype. Time for the 'meat'."

I have Debian 1.3.1, and it only has Guile 1.0 as .deb package - GNOME requires 1.2, and it's only available on Debian 2.0... I had to build the Guile from GNU sources.

I ran configure thusly:

configure --libdir=/usr/local/lib/gnome-lib --bindir=/usr/local/bin/gnome

This is because the "make install" produces a large number of applications and shared libraries and I didn't wanted to clutter my already-pretty-full-o-miscellaneous-crap directories. I also added /usr/local/bin/gnome to my $PATH definition in and /usr/local/lib/gnome-lib to my /etc/ld.so.conf...

After I did that, it refused to find Guile from my system. Being clever, I added this line to config.cache (which was empty), so it assumed that it had already found it:

ac_cv_lib_guile_scm_boot_guile=${ac_cv_lib_guile_scm_boot_guile=yes}

and reran configure using the above mentioned command...

It complained about undef. reference to g_snprintf... ARGH! I had to upgrade GTK to 0.99.3 first. My fault. The problem is, GIMP will not work now. I expect a quick release of 0.99.18... (I certainly hope that "real soon now" means "REAL SOON NOW!")

Then it couldn't find libguile.h ... again, my fault. I had accidentally deleted it from /usr/local/include... I typed "make install" in my old Guile sources to reinstall the header.

Changed guile-gnome/Makefile (My copy - and other copies as well, it seems - needs qt linked separately...)

GUILE_LIBS = -lguile

to

GUILE_LIBS = -lguile -lqt

Also, I replaced -lguile in gnomeg_LDADD with $(GUILE_LIBS). And hey ho, it kept going... (Bill Thompson: I recommended adding -lqt, but I remembered it incorrectly - if you add -lqt before -lguile, it won't work. Sorry. But this way it works.)

programs/panel/Makefile: added -ldl to MYLIBS (As an old and experienced user / tottuneeda duunarina)

programs/gtt/Makefile:

CFLAGS = -g -O2  -I/usr/X11R6/include

to

CFLAGS = -g -O2  -I/usr/X11R6/include -I../../intl

Problems related to the old versions that were (fortunately) fixed

GNOME 0.11

Okay, one problem appeared: panel applet positions are not loaded. But they're saved. Funny.

GNOME 0.12

Problems:

Comments

Juhani Rantanen (misty@pao.fiba.tampere.fi) wrote [About 0.11]:

I use Redhat 4.2 and a self-compiled Guile 1.2. On my system, everything was detected fine, except that configure didn't find -lintl (or didn't add it to Makefiles), so I had to add -lintl to *every* Makefile manually:-(

0.09 compiled without any kludging, although I heard many horror stories from other people...

Disclaimer

I'm wrote the "What is GNOME?" chapter only 'cos someone-whose-name-should-not-be-mentioned used very, very abusive language in sfnet.atk.linux about this document.

As a result of this (and my preceding Usenet life), I lost my temper, removed this document from Web and cancelled the posting. (I know, I know... The nervous breakdown was bound to happen someday. The Usenet tends to do things like that.) However, someone really cared about this document, as it seems that there was a demand for it... I'm now putting it back, but please, oh please, don't flame me, or I will get really nasty.


[Index] [Up] [Main] [Urpo Lankinen]