Zen and the art of GNOME Building

Introduction

The GNOME Family Tree

Getting the Source

GNOME – the vfolder view

GNOME Build Tools

GNOME Bugzilla

GNOME Teams

Jeff and James Demo

Q&A

Introduction

“At the end of the day – whenever that is since an equal number of programmers will be passed out at any given time – or really whenever someone happens to think about it, someone might type 'make' on some machine somewhere, with mixed results. Generally nothing happens, so he/she shrugs his/her shoulders and wanders off to look for someone who might have more pink/black striped pills”

Some day, some time you might want to be like this. If you do, it's pretty essential you can build GNOME. So...

Introduction

Are you a lean, mean GNOME Building Machine?

Introduction

Statistics that give LFS users warm fuzzies -

There are 80+ modules in the GNOME Desktop and Developer Platform

A typical GNOME installation takes up 1.5 GB

Building GNOME requires up to 3.0 GB

JDS takes about 4 hours to build on an LX50

Statistics that give GNOME developers warm fuzzies -

99.99% of LFS users are complete wankers

The GNOME Family Tree

It's okay, you don't really have to know this

“ The GNOME Platform Libraries “
Malcolm Tredinnick
Wednesday, January 14th 2:30pm

Getting the Source

If you want to contribute to GNOME, it's generally a good idea to get the vanilla GNOME sources, rather than the distribution sources

ftp.gnome.org

http://ftp.gnome.org/pub/GNOME/desktop/2.6/

http://ftp.gnome.org/pub/GNOME/sources

cvs.gnome.org

CVSROOT=':pserver:anonymous@anoncvs.gnome.org:/cvs/gnome'

http://cvs.gnome.org/bonsai

GNOME – a vfolder view

With every GNOME module, there are a few key files to know about

HACKING	Describes the maintanance policy for this module, in
terms of who can commit back changes.

autogen.sh	The build engine script, that call all the
autotool/voodoo stuff.

ChangeLog	Lists the changes made to a given module.

NEWS	The file that maintainers fail to keep up todate,
which generally should list the latest key changes
and bugfixes.

README	The path to enlightenment. Mostly.

configure.in	Run as part of the build, it contains checks which try
to determine whether you have the libraries needed to
build the module.

Makefile.am	Describes what needs to be built and how

GNOME Build Tools

Building GNOME is actually a pretty simple process -

Get the source

Go into the top level directory

If using CVS source, do
./autogen.sh --prefix=/gnome/INSTALL
make; make install

If using FTP tarballs, do
./configure –prefix=/gnome/INSTALL
make; make install

Sacrifice 2 virgins and pray like you've never prayed before

Doing this for 80+ modules isn't fun

GNOME Build Tools

Fortunately we have build tools to make this process less painful, often providing you with a completely sandboxed build so you don't screw up your system

Jhbuild

Builds meta modules from a mixture of FTP and CVS

GARNOME

Builds releases from FTP

CVSGNOME

Vicious-build-scripts

Eazel-hacking

GNOME Bugzilla

Log on to http://bugzilla.gnome.org and get yourself an account

Fixing bugs is a good way to understand

What GNOME is

Who GNOME is

Where GNOME is

How GNOME is

GNOME has Bug Days each Thursday on irc.gnome.org

GNOME Teams

Accessibility

Usability

Bugsquad

Documentation

Release

Translation

Web

GUADEC

GUADEC 2004

Kristiansand, Norway

28th - 30th June

Glynn Foster

2004-01-12T09:25:33