Tuesday, February 5, 2013


Some of you may have heard that Eucalyptus no longer supports Debian or Ubuntu.
While it is true that given our current customer base and target customer base
that we have decided to support only CentOS and RHEL from a contractual
standpoint with our customers, it does not mean we have abandoned our
community efforts behind Debian and Ubuntu.

In fact, the opposite is true.  There was a long period of time where Eucalyptus
was not available in Debian and/or Ubuntu or only very old versions were
available.  Today, Eucalyptus 3.1 is available in Debian Unstable (we narrowly
missed the deadline to be included in Wheezy) and in Ubuntu Precise via the
Canonical Partner Repository.  Thanks goes out to James Page and others who made
that happen in Ubuntu.

The reason Eucalyptus 3.2 has not been made available in Debian is simply
because changes made to Eucalyptus require a new version of the Google Guava
libraries.  The Debian Java Team has already packaged the needed version and
uploaded it to Debian Experimental.  As soon as they deem it worthy for inclusion
in Unstable, we will look at updating Eucalyptus there as well.

We likely won't be making  any further release via the Canonical Partner
Repository as future versions of Ubuntu will have the Eucalyptus packages in
Ubuntu's Universe Repository.

For those of you who would like to build Debian Packages for Eucalyptus
from one of our development branches - in case you need one of the new features
it provides or perhaps just because you like to live on the bleeding edge - that
too is possible.

Building your own Debian Packages

Before building your own Debian packages, you will need to have the following:

 * A basic knowledge of git an bzr
 * The packages git, bzr, dpkg-dev, devscripts, pbuilder, and aptitude installed
 * A git clone of eucalyptus from github
 * The debian directory containing the proper files for building a package

Here is an example of grabbing the Eucalyptus source code and the Debian build
files, and building the Debian packages that make up Eucalyptus:

apt-get update
apt-get insall dpkg-dev devscripts
git clone git://github.com/eucalyptus/eucalyptus.git
bzr branch lp:~brian-thomason/+junk/eucalyptus-sid
cd eucalyptus
git checkout maint/3.2/testing
cp -a eucalyptus-sid/debian ./
dch -v 3.2.1-0 Experimental Build
sudo /usr/lib/pbuilder/pbuilder-satisfydepends
*You will need to comment out the following line:

import org.rhq.helpers.pluginAnnotations.agent.Units;

in the file:

clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/BlockStorage.java

This will be fixed in the repository itself soon.

Amd finally, build the packages:

dpkg-buildpackage -b

This will build packages from the 3.2 maintenance branch, which will soon be
frozen and released as bugfix release 3.2.1.  If you would like to build from
the next feature release branch, replace 'maint/3.2/testing' with 'testing' in
the above step.

After the Eucalyptus packages have been built, you may then install the DEB
packages using:

dpkg -i ../*.deb

IMPORTANT NOTE:

These builds of Eucalyptus will require a newer version of libguava-java than is
available in Debian Unstable. Fortunately though, this package is
available in Debian Experimental and can be fetched here:

http://ftp.us.debian.org/debian/pool/main/g/guava-libraries/libguava-java_13.0.1-2_all.deb

You can fetch it with wget and install it using dpkg as well.

Once installed, you may follow the install guide loaded here for instructions on
how to setup your newly installed cloud:

http://www.eucalyptus.com/docs/3.2/ig

In the coming weeks I will expand upon this topic here by:

 * Explaining how to create an apt repo for each build you make and hosting
that static repo in S3/Walrus
 * Providing a script to automate much of the process

Best regards,
Brian Thomason
Engineer
Eucalyptus Systems, Inc.