[Evolution] Compiling evolution CVS HEAD alongside packaged evolution stable-- mini-HOWTO

Warning:  this email is LONG.  If you are happy with your current
evolution development environment, feel free to disregard.  If want a
clean packaged install of stable evo, but still work on evo-head, read

Want to check out and work on latest cvs evolution, but need a stable
evolution for productivity, and wanted stable evolution and the
libraries it depended on to be handled by the package manager.  I looked
around (maybe in not enough places) and didn't see clear instructions on
how to do this.  So here we go...

Though it took a lot of work to figure this out initially, I did get
this to work, and it does beautifully.  Thanks to feff ximian com for
some help in debugging this.  The basic idea is to leave everything that
is managed by a package manger (ie in /usr) alone, and put all of our
needed libraries and applications for evolution CVS HEAD in /opt/gnome
(or similar).

Assuming your using bash, run (this could and should be scripted!):

export GNOME_PATH=/opt/gnome
export CFLAGS="-I$GNOME_PATH/include"
export LDFLAGS="-L$GNOME_PATH/lib"
export ACLOCAL_FLAGS="-I $GNOME_PATH/share/aclocal"
export CVSROOT=':pserver:anonymous anoncvs gnome org:/cvs/gnome'

Then, go to http://www.gnome.org/start/installing/index.php3 and get all
of the base libraries, core applications, and gnome-print (currently 25
tarballs).  You will also need glibwww (from
http://download.gnome.org/GNOME/unstable/sources/glibwww/).  These will
need to be compiled in the order they are listed on the website (with
glibwww last).  If you have the devel files for these libraries
installed via a package manager, it would be a good idea to uninstall
them (though may not be required-- but I did it).  I will not get into
all of the various dependencies that may be involved for compiling these
packages.  Unless otherwise noted, these libraries can be compiled with:

./configure --prefix=$GNOME_PATH && make && sudo make install

Notable exceptions:
./configure --prefix=$GNOME_PATH --disable-alsa
if you don't have alsa

GConf:  on my system, gconf couldn't find db.h, so I did  
ln -s /usr/include /usr/include/db3 ./configure --prefix=$GNOME_PATH

./configure --prefix=$GNOME_PATH --with-imlib-prefix=$GNOME_PATH \
--with-esd-prefix=$GNOME_PATH --with-audiofile-prefix=$GNOME_PATH \

gnome-core:  version has a small bug which prevented compilation
on my machine.  Copy the attached patch to
toplevel_gnome_source_dir/patch.gnome-core_HAVE_PAPER_WIDTH and apply
cd gnome-core-
cat ../patch.gnome-core_HAVE_PAPER_WIDTH | patch -p1

./configure --prefix=$GNOME_PATH --with-gnome=$GNOME_PATH

Ok, now all of basic gnome is installed.  Now we can focus on getting
evolution installed.  It has 5 additional libraries that need to be

login to cvs with 'cvs login' (make sure CVSROOT was set above).
cvs -z3 checkout gal
cd gal
./autogen.sh --prefix=/opt/gnome --with-gnome=/opt/gnome \
make install

cvs -z3 checkout gtkhtml
cd gtkhtml
./autogen.sh --prefix=/opt/gnome --with-gnome=/opt/gnome
make install

checkout soup
cd soup
./autogen.sh --prefix=/opt/gnome --with-glib-prefix=/opt/gnome
make install

cvs -z3 checkout bonobo
cd bonobo
./autogen.sh --prefix=/opt/gnome
make install

cvs version didn't work for me, but may at a different time.  I got
bonobo-conf-0.14 from:

cd bonobo-conf
./autogen.sh --prefix=/opt/gnome
make install

Of course, evolution uses db-3.1.17, so we have to play with this.  I

Go to rpmfind.net, and get the evo-db3-3.1.17-ximian.2.src.rpm, then
run, as root:

rpm -rebuild ./evo-db3*
it will fail because of a bad spec file.  To fix:

cd /usr/src/rpm/SPECS

Change in evo-db3.spec to be:
    cd "$RPM_BUILD_DIR/db-3.1.17"
    cd build_unix; ${MAKE}

This will now build the rpm binary:
rpm -ba ./evo-db3.spec

rpm -i ../RPMS/evo-db3*.rpm

or to convert it to deb:
cd /usr/src/rpm/RPMS/i386
alien ./evo-db3*rpm
dpkg -i ./evo-db3*.deb

cvs -z3 checkout evolution
./autogen.sh --prefix=/opt/gnome --with-db3=/opt/evo-db3 \
make install

Everything should be installed now!  If you ran into configure problems,
after trying to fix them, run 'rm -rf ./config.status ./config.cache' to
make sure the changes take affect.  You can verify that the apps and
libs in $GNOME_PATH are using the proper libraries by using ldd.

Do NOT run the evolution head (in /opt/gnome/bin) and the stable
evolution at the same time.  I also recommend not running them as the
same user since evolution head may (will?) break your stable evolution
configuration.  You must use the above export statements to run
evolution head as well.  I put them in a .bashrc for a different user
and have that user use gnome from $GNOME_PATH.  Once it is all up and
running, you can use lsof and ps to verify that the right apps and
libraries are being pulled in.

- a bit of a pain to setup initially
- about 133MB hard drive space for all of the above
- I can't guarantee that it will work for you, or at any time in the
future, but as of today, it works great.  ;-)

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]