Eucalyptus, as part of the Ubuntu Enterprise Cloud, needs to move to main to be properly supported by Canonical. That means that all runtime and build-time dependencies (and all dependencies of the dependencies) must also move to main. This specification tracks which packages will need to move to main and efforts made to reduce the total number as much as possible.

Release Note

Eucalyptus is now part of the Ubuntu "main" repository, and fully supported by Canonical.


Eucalyptus is currently in universe, together with most of its Java library dependencies. Since Eucalyptus is part of the Ubuntu Enterprise Cloud product, it needs to be properly supported by Canonical, which means move to the "main" repository. However, packages in "main" also need to have all their runtime and build-time dependencies in "main" as well. Java software in general heavily makes use of other Java libraries, so this quickly snowballs into a large number of packages to move to main. Furthermore, there isn't so much Java-based software in main already (, tomcat6) so even some basic Java libraries need to be moved.

User stories


This spec does not take care of any other non-Java MIR that Eucalyptus may need. iscsitarget for example could be a new 1.6 dependency, and it is in universe currently.


We need to try to keep the number of packages as small as possible in order to avoid MIR team overload. Some hacks (like duplicating some greedy source packages to avoid bringing lots of unnecessary build dependencies) are worth the trouble if they save a significant amount of packages. However Debian doesn't care about keeping the number of dependency packages small, so those hacks don't really make sense from a Debian perspective.

Avoid packages difficult to maintain

Proposed actions for package number reduction

Resulting list (without those from RefactorEucalyptusJavadepsSpec)

package* denotes a new package in karmic

Direct dependencies

eucalyptus-commons-ext-java* (eucalyptus-commons-ext-java)
asm2 (libasm2-java)
libaxiom-java* (libaxiom-java)
c3p0 (libc3p0-java)
cglib2.1 (libcglib2.1-java)
commons-io (libcommons-io-java)
dnsjava* (libdnsjava-java)
drools* (libdrools-core-java)
excalibur-logkit (libexcalibur-logkit-java)
geronimo-ejb-3.0-spec* (libgeronimo-ejb-3.0-spec-java)
geronimo-j2ee-connector-1.5-spec* (libgeronimo-j2ee-connector-1.5-spec-java)
geronimo-jms-1.1-spec (libgeronimo-jms-1.1-spec-java)
geronimo-jpa-3.0-spec* (libgeronimo-jpa-3.0-spec-java)
geronimo-jta-1.0.1b-spec (libgeronimo-jta-1.0.1b-spec-java)
geronimo-jacc-1.1-spec* (libgeronimo-jacc-1.1-spec-java)
geronimo-interceptor-3.0-spec* (libgeronimo-interceptor-3.0-spec-java)
gwt* (libgwt-java)
javassist (libjavassist-java)
jetty* (libjetty-java)
jug* (libjug-asl-java)
mvel* (libmvel-java)
netty* (libnetty-java)
wss4j* (libwss4j-java)

1st-level Dependencies of deps

ivy                                           [for groovy]
jruby1.1                                      [for eucalyptus-commons-ext-java]
junit4                                        [for groovy]
libaopalliance-java                           [for eucalyptus-commons-ext-java]
asm (libasm-java)                     [for libcglib2.1-java, eucalyptus-commons-ext-java]
aspectwerkz2 (libaspectwerkz2-java)           [for libcglib2.1-java]
libcommons-attributes-java                    [for eucalyptus-commons-ext-java]
libjamon-java                                 [for eucalyptus-commons-ext-java]
jexcelapi (libjexcelapi-java)                 [for drools]
mockobjects (libmockobjects-java)             [for groovy]
ow-util-ant-tasks (libow-util-ant-tasks-java) [for libasm2-java]
qdox (libqdox-java)                           [for libjibx-java]
stringtemplate (libstringtemplate-java)       [for antlr3]
swt-gtk (libswt-gtk-3.4-java)                 [for gwt]
libxstream-java                       [for drools, groovy, eucalyptus-commons-ext-java]

2nd and more level

commons-vfs (libcommons-vfs-java)     [for ivy]
concurrent-dfsg (libconcurrent-java)  [for libaspectwerkz2-java]
libhamcrest-java                      [for junit4]
jarjar (libjarjar-java)               [for libaspectwerkz2-java]
jmock (libjmock-java)                 [for libqdox-java]
libjoda-time-java                     [for libxstream-java]
jrexx (libjrexx-java)                 [for libaspectwerkz2-java]
trove (libtrove-java)                 [for libaspectwerkz2-java]

asm3 (libasm3-java)                   [for libjarjar-java]
easymock (libeasymock-java)           [for libhamcrest-java]


Total: 60 packages to MIR


Package eucalyptus-commons-ext.jar

eucalyptus-commons-ext.jar is a Eucalyptus upstream JAr file containing the subset of hibernate needed for Eucalyptus (without all the JBoss hooks the libhibernate3-java package contains). Same for ehcache and Spring.

Implement other hacks

All the other number-reducing hacks should be implemented:

Potentially problematic packages

Here are exceptions to the common "simple Debian JAR package" case:

Unconfirmed sets

commons-cli commons-fileupload commons-io commons-jxpath excalibur-logkit commons-attributes
ezmorph google-collections json
antlr3 / stringtemplate
drools / jexcelapi
euca-commons-ext / jruby1.1 aopalliance jamon

Expected exceptional ones in there:

Process MIR sets

The EucalyptusInMainSpec/Packages page lists all the source packages that need to be processed. During a meeting with MIR team members we confirmed that rather than filing individual MIRs, any particular package should get tagged in the list for more in-depth review. A source package with no tags is a regular Java library without any specific particularity.

Test/Demo Plan

No Eucalyptus-Java-dependencies-related components mismatch should appear when the Eucalyptus update is pushed to main.

Unresolved issues


BoF agenda and discussion

UDS discussion

Current status


How can the number of build/runtime dependencies be reduced?

What could be expected to be refused inclusion to main

Size issues (adding to default CD)

Can we use the new Spring packaging from Debian?

Safety net

Action Summary


EucalyptusInMainSpec (last edited 2009-08-10 09:46:57 by ttx)