[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
on.

Problem:
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...

Solution:
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 PATH=$GNOME_PATH/bin:$PATH
export LD_LIBRARY_PATH=$GNOME_PATH/lib:$LD_LIBRARY_PATH
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:
esound:  
./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

gnome-libs:
./configure --prefix=$GNOME_PATH --with-imlib-prefix=$GNOME_PATH \
--with-esd-prefix=$GNOME_PATH --with-audiofile-prefix=$GNOME_PATH \
--enable-prefer-db1

gnome-core:  version 1.4.0.6 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
with:
cd gnome-core-1.4.0.6
cat ../patch.gnome-core_HAVE_PAPER_WIDTH | patch -p1

glibwww:
./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
installed.

GAL:
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 \
--with-gtk-prefix=/opt/gnome
make
make install


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


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


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


BONOBO-CONF:
cvs version didn't work for me, but may at a different time.  I got
bonobo-conf-0.14 from:
http://download.gnome.org/GNOME/unstable/sources/bonobo-conf

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


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

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:
build|all)
    cd "$RPM_BUILD_DIR/db-3.1.17"
    cd build_unix; ${MAKE}
    ;;
esac

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


EVOLUTION HEAD
--------------
cvs -z3 checkout evolution
./autogen.sh --prefix=/opt/gnome --with-db3=/opt/evo-db3 \
--with-gnome=/opt/gnome
make
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.

Caveats:
- 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]