Automatically build emacs from source every night

For the last two weeks I’ve been using the latest development version of emacs. It’s a funny experiment and a nice feeling to have a freshly built emacs every morning.

I heavily use org-mode and emacs to organise almost everything at work and so far the devel trunk have been pretty stable for me. My nightly built emacs works like a charm.

Building emacs from source is easy as pie. At least on my ubuntu 10.10, all I need to do is get the trunk from the official main repo:

$ cd ~/src
$ bzr branch --stacked bzr:// emacs-trunk

Build and install emacs (<10 mns on my machine):

$ cd ~/src/emacs-trunk
$ ./configure --prefix=~/umacs
$ make && make install

Add a symlink for convenience (nb: I’ve also added a launcher in a gnome panel):

$ ln -s ~/umacs/bin/emacs ~/bin/umacs


To update my copy of the trunk and to rebuild a new version:

$ mv ~/umacs ~/umacs.bak
$ cd ~/src/emacs-trunk
$ bzr pull
$ autoreconf -I m4
$ ./configure --prefix=~/umacs/
$ make clean
$ make && make install

I’ve wrapped all this in a small shell script that rebuild emacs every night and that sends me an email with the commits logs.

The original emacs shipped with my distro is still installed and perfectly working so if the build fail or if an annoying bug show up that’s not a problem. I can switch between the two version of emacs without hassles.

Some minor problems I’ve encountered :

Configure failed because some dependencies were missing on my machine. The error messages were clear enough to identify the missing packages:

$ apt-get install texinfo lipxpm-dev libjpeg-dev libgif-dev libtiff-dev

I encountered an emacs bug (7547) while switching agenda-view in org-mode. It’s a bug in verify-visited-file-modtime. The workaround for my case was trivial:

$ touch ~/diary

The build failed once because of a configuration problem, easily fixed by running this in emacs-trunk folder:

autoreconf -I m4

And that’s all.

Comments !