EucalyptusInMainSpec

Differences between revisions 1 and 36 (spanning 35 versions)
Revision 1 as of 2009-05-13 14:34:55
Size: 5714
Editor: lns-bzn-48f-81-56-218-246
Comment:
Revision 36 as of 2009-08-03 14:44:03
Size: 11251
Editor: 89
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
 * '''Launchpad Entry''': UbuntuSpec:foo
 * '''Created''':
 * '''Contributors''':
 * '''Packages affected''':
 * '''Launchpad Entry''': UbuntuSpec:server-karmic-eucalyptus-in-main
 * '''Created''': June 2nd, 2009
 * '''Contributors''': ThierryCarrez
 * '''Packages affected''': lots
Line 10: Line 10:
This should provide an overview of the issue/functionality/change proposed here. Focus here on what will actually be DONE, summarising that so that other people don't have to read the whole spec. See also CategorySpec for examples. 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.
Line 14: Line 14:
This section should include a paragraph describing the end-user impact of this change. It is meant to be included in the release notes of the first release in which it is implemented. (Not all of these will actually be included in the release notes, at the release manager's discretion; but writing them is a useful exercise.)

It is mandatory.
Eucalyptus is now part of the Ubuntu "main" repository, and fully supported by Canonical.
Line 20: Line 18:
This should cover the _why_: why is this change being proposed, what justifies it, where we see this justified. 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 (OpenOffice.org, tomcat6) so even some basic Java libraries need to be moved.
Line 24: Line 22:
 * Dave has been trying the UEC technology preview in 9.04 and aims to deploy UEC with the 9.10 release. As it will no longer be a technology preview, it needs to be properly supported.
Line 26: Line 26:
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.
Line 28: Line 30:
Total 99 packages to move, 34 hibernate/JBoss related

=== Package list (not from eucalyptus-javadeps) ===

|| antlr3 || libstringtemplate-java ||
|| libasm-java || libow-util-ant-tasks-java ||
|| libasm2-java ||
|| libavalon-framework-java ||
|| libc3p0-java ||
|| libcglib2.1-java || libaspectwerkz2-java libjrexx-java libjarjar-java libtrove-java ||
|| libcommons-cli-java ||
|| libcommons-fileupload-java ||
|| libcommons-io-java ||
|| libcommons-jxpath-java ||
|| groovy || antlr, libclassworlds-java, junit4 ||
|| libgoogle-collections-java ||
|| libhibernate-annotations-java || glassfish-toplink-essentials ||
|| libhibernate-commons-annotations-java ||
|| libhibernate-entitymanager-java || libhibernate-validator-java, libjboss-common-java libslide-webdavclient-java ||
|| libhibernate3-java || liboscache-java, libproxool-java, libswarmcache-java, libjboss-jmx-java, libjboss-system-java, libjboss-cache1-java libjboss-cache2-java libjgroups-java libconcurrent-java libjboss-j2ee libjdbm-java libjboss-aop-java libjboss-server-java libjcip-annotations-java libexml-java libgetopt-java libjboss-profiler-java libjboss-xml-binding-java libjboss-remoting-java libjboss-serialization-java libjboss-web-services-java libjboss-vfs-java libjboss-microcontainer-java libjboss-reflect-java libquartz-java libjboss-managed-java ||
|| janino ||
|| libjavassist-java ||
|| libjibx-java || libwoodstox-java ||
|| libmockobjects-java ||
|| libslf4j-java ||
|| libxml-commons-external-java ||
|| libxml-security-java ||
|| libxstream-java || libjoda-time-java libjettison-java ||
|| glassfish-javaee ||
|| libehcache-java || libjsr107cache-java ||
|| libasm3-java ||
|| libqdox-java ||
|| libcommons-attributes-java ||
|| libaopalliance-java ||
|| libjamon-java ||
|| libxmlbeans-java ||
|| jruby1.0 ||

=== Packages from eucalyptus-javadeps ===

|| Package || Dependencies we don't already have || Notes ||
|| Annogen || - || ||
|| AspectJ Weaver || - || Intermediary build-dep. Complete version in archive doesn't build from source ||
|| Axiom || - || ||
|| Axis2 || annogen, axiom, backport-util-concurrent, httpcore, neethi, woden and XmlSchemas || Partial build ? ||
|| Backport Util Concurrent 3.1 || Nothing we don't already have || ||
|| Drools || MVEL || Partial build ||
|| ECJ JDT Core || - || Older version necessary ||
|| MVEL || - || ||
|| Google Web Toolkit || ECJ and SWT ||
|| HttpComponents Core || - || ||
|| Jetty 6 || || Partial build ||
|| Jetty GWT servlet || GWT and Jetty6 || ||
|| JUG (ASL) || - || ||
|| Mule || JUG, Spring || ||
|| MyFaces || - || Intermediary build-dep ||
|| Apache WS Neethi || Axiom || ||
|| OpenSAML 1.1/Java || - || ||
|| Rampart 1.3 || Axiom, Axis2, Neethi, OpenSAML, WSS4J || ||
|| Spring || AspectJWeaver, Myfaces || Partial build ||
|| SWT-GTK 3.2.1 || - || Intermediary build-dep, Older version required ||
|| Woden || Axiom, XMLSchemas || ||
|| WSS4J || OpenSAML || ||
|| Apache WS XmlSchema || - || ||
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 ===

 * Large software stacks
   * JBoss (pulled through Hibernate)
   * Glassfish (pulled through glassfish-javaee and glassfish-toplink-essentials, used as build-deps)

=== Proposed actions for package number reduction ===

 * Use a specific eucalyptus-javadeps with hibernate/ehcache/spring: saves 60+ packages
 * Remove dependency from libclassworlds-java -> maven-ant-helper: saves 8+ packages
 * Avoid dependencies on Glassfish packages, use geronimo-specs-* instead

=== Resulting list (without those from RefactorEucalyptusJavadepsSpec) ===

package* denotes a new package in karmic
-package denotes a potentially avoidable package

Direct dependencies
{{{
antlr3
eucalyptus-commons-ext-java* (eucalyptus-commons-ext-java)
groovy
janino
asm2 (libasm2-java)
libaxiom-java* (libaxiom-java)
c3p0 (libc3p0-java)
cglib2.1 (libcglib2.1-java)
libcommons-cli-java
libcommons-fileupload-java
commons-io (libcommons-io-java)
libcommons-jxpath-java
dnsjava* (libdnsjava-java)
drools* (libdrools-core-java)
excalibur-logkit (libexcalibur-logkit-java)
libezmorph-java
-geronimo-activation-1.1-spec (libgeronimo-activation-1.1-spec-java)
geronimo-ejb-3.0-spec* (libgeronimo-ejb-3.0-spec-java)
-geronimo-javamail-1.4-provider (libgeronimo-javamail-1.4-provider-java)
-geronimo-javamail-1.4-spec (libgeronimo-javamail-1.4-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)
-geronimo-stax-1.0-spec (libgeronimo-stax-1.0-spec-java)
libgoogle-collections-java
gwt* (libgwt-java)
javassist (libjavassist-java)
jetty* (libjetty-java)
libjibx-java
libjson-java
jug* (libjug-asl-java)
mvel* (libmvel-java)
netty* (libnetty-java)
libslf4j-java
wss4j* (libwss4j-java)
libxml-security-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 ===

'''Total: 59-63 packages to MIR'''
Line 95: Line 131:
This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like:

=== UI Changes ===

Should cover changes required to the UI, or specific UI that is required to implement this

=== Code Changes ===

Code changes should include an overview of what needs to change, and in some cases even the specific details.

=== Migration ===

Include:
 * data migration, if any
 * redirects from old URLs to new ones, if any
 * how users will be pointed to the new way of doing things, if necessary.
=== Create new eucalyptus-javadeps ===

Create the specific eucalyptus hibernate libraries, containing the subset of hibernate needed for Eucalyptus and not all the JBoss hooks the libhibernate3-java package contains. Same for ehcache and Spring.

Those should be shipped as the new "eucalyptus-javadeps" package (which is kept to include all the non-standard libraries required by Eucalyptus).

=== Implement other hacks ===

All the other number-reducing hacks should be implemented:

 * Remove dependency from libclassworlds-java -> maven-ant-helper: DONE
 * Remove jmock and libconcurrent dependency on kaffe

=== Determine final map of MIR, split into sets ===

The final dependencies should be determined and splitted into sets that can be handled separately.

MIR sets
{{{
1: jibx asm2 janino / qdox jmock libow-util-ant-tasks (LP: #405715)
2: axiom dnsjava netty jug mvel slf4j xmlsecurity wss4j javassist (LP: #406346)
3: groovy / junit4 mockobjects xstream ivy commons-vfs libhamcrest easymock jodatime jarjar asm3
4: cglib / aspectwerkz2 concurrent jarjar jrexx jtrove asm
5: geronimo-* (6-10)
6: jetty gwt / swt-gtk
}}}

Here are exceptions to the common "simple Debian JAR package" case:
 * '''Not just Java libraries'''
   * janino (binary)
   * groovy (binary)
   * swt-gtk (-jni native libraries)
 * '''Security concerns'''
   * gwt
   * jetty6
 * '''Not updated to default-java stuff yet'''
   * commons-vfs
   * libjoda-time-java
   * jarjar
   * asm3
   * aspectwerkz2
   * jrexx
   * trove
 * '''Not in Debian yet'''
   * libaxiom-java
   * dnsjava
   * netty
   * jug
   * mvel
   * wss4j
   * geronimo-*-spec
   * jetty6 (work in progress)
   * gwt

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:
 * euca-commons-ext: NOTINDEBIAN, DUPLICATION, SECURITY (Spring)
 * jruby1.1 : BINARY

=== Process MIR sets ===

Several options, to be discussed with MIR team:

 * One bug per set, one task per package in set
 * One bug per package
 * One bug for everything
 * Process outside Launchpad, with one metabug to track progress
Line 114: Line 209:
It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

This need not be added or completed until the specification is nearing beta.
''It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

This need not be added or completed until the specification is nearing beta.''
Line 120: Line 215:
This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved. None.
Line 124: Line 219:
Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected. === UDS discussion ===

==== Current status ====
 * 99 packages which would need to move to main.
 * Java in main is currently driven by OpenOffice. Tomcat6 is there, but has few dependencies.

==== Future ====
 * Eucalyptus version for Karmic should have fewer dependencies anyway from upstream refactoring.

==== How can the number of build/runtime dependencies be reduced? ====
 * Get rid of anything not necessary
  * Geronimo spec packages (already provided by glassfish-j2ee)
 * Move parts into Eucalyptus code
 * Refactor packages (e.g. hibernate pulls in a lot of stuff)
  * Requires multiple source packages or only to promote some resulting binaries to main.
    (doko recommends duplicating the source package and documenting it)

==== What could be expected to be refused inclusion to main ====
 * Active upstream criteria
  * Annogen
  * OpenSAML
  * WSS4J?
 * Known to be insecure
  * Nothing obvious
 * Partial builds (because of non-free dependencies)
  * Mule
  * We don't really care

==== Size issues (adding to default CD) ====
 * GWT is 6MB of binary
  * 1.6 should be more granular and work with existing java packages more
 * JRuby is 3MB
  * Just be a build-time dependency of GWT
 * libjgroups-java, 3MB. Not needed ?
 * glassfish-toplink-essentials, 2.4MB, comes from hibernate
 * Avoiding JDK would save about 50MB of CD space
 * Avoiding GCJ would save about 20MB

==== Can we use the new Spring packaging from Debian? ====
 * Not included yet in Debian, but work is underway
 * Might make too hard choices for us ? Testing from Eucalyptus side needed.

==== Safety net ====
 * Keep a eucalyptus-javadeps package to drop in any problematic parts which can't be fixed (hibernate?).
  * One tiny part of Drools

==== Action Summary ====
 * Which Eucalyptus version we'll use in Karmic and its dependencies?
 * Can we use Spring from Debian?
 * What can we do to reduce Hibernate size?
  * Will it be acceptable to move JBoss to main?
 * JDK dependency investigation
 * Ask Colin about blacklisting for the server seed only to solve GCJ issue
 * Once it's known what is required, start preparing/filing MIRs to avoid a last minute panic.

Summary

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.

Rationale

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 (OpenOffice.org, tomcat6) so even some basic Java libraries need to be moved.

User stories

  • Dave has been trying the UEC technology preview in 9.04 and aims to deploy UEC with the 9.10 release. As it will no longer be a technology preview, it needs to be properly supported.

Assumptions

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.

Design

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

  • Large software stacks
    • JBoss (pulled through Hibernate)
    • Glassfish (pulled through glassfish-javaee and glassfish-toplink-essentials, used as build-deps)

Proposed actions for package number reduction

  • Use a specific eucalyptus-javadeps with hibernate/ehcache/spring: saves 60+ packages
  • Remove dependency from libclassworlds-java -> maven-ant-helper: saves 8+ packages

  • Avoid dependencies on Glassfish packages, use geronimo-specs-* instead

Resulting list (without those from RefactorEucalyptusJavadepsSpec)

package* denotes a new package in karmic -package denotes a potentially avoidable package

Direct dependencies

antlr3
eucalyptus-commons-ext-java* (eucalyptus-commons-ext-java)
groovy
janino
asm2 (libasm2-java)
libaxiom-java* (libaxiom-java)
c3p0 (libc3p0-java)
cglib2.1 (libcglib2.1-java)
libcommons-cli-java
libcommons-fileupload-java
commons-io (libcommons-io-java)
libcommons-jxpath-java
dnsjava* (libdnsjava-java)
drools* (libdrools-core-java)
excalibur-logkit (libexcalibur-logkit-java)
libezmorph-java
-geronimo-activation-1.1-spec (libgeronimo-activation-1.1-spec-java)
geronimo-ejb-3.0-spec* (libgeronimo-ejb-3.0-spec-java)
-geronimo-javamail-1.4-provider (libgeronimo-javamail-1.4-provider-java)
-geronimo-javamail-1.4-spec (libgeronimo-javamail-1.4-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)
-geronimo-stax-1.0-spec (libgeronimo-stax-1.0-spec-java)
libgoogle-collections-java
gwt* (libgwt-java)
javassist (libjavassist-java)
jetty* (libjetty-java)
libjibx-java
libjson-java
jug* (libjug-asl-java)
mvel* (libmvel-java)
netty* (libnetty-java)
libslf4j-java
wss4j* (libwss4j-java)
libxml-security-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

Total: 59-63 packages to MIR

Implementation

Create new eucalyptus-javadeps

Create the specific eucalyptus hibernate libraries, containing the subset of hibernate needed for Eucalyptus and not all the JBoss hooks the libhibernate3-java package contains. Same for ehcache and Spring.

Those should be shipped as the new "eucalyptus-javadeps" package (which is kept to include all the non-standard libraries required by Eucalyptus).

Implement other hacks

All the other number-reducing hacks should be implemented:

  • Remove dependency from libclassworlds-java -> maven-ant-helper: DONE

  • Remove jmock and libconcurrent dependency on kaffe

Determine final map of MIR, split into sets

The final dependencies should be determined and splitted into sets that can be handled separately.

MIR sets

1: jibx asm2 janino / qdox jmock libow-util-ant-tasks (LP: #405715)
2: axiom dnsjava netty jug mvel slf4j xmlsecurity wss4j javassist (LP: #406346)
3: groovy / junit4 mockobjects xstream ivy commons-vfs libhamcrest easymock jodatime jarjar asm3
4: cglib / aspectwerkz2 concurrent jarjar jrexx jtrove asm
5: geronimo-* (6-10)
6: jetty gwt / swt-gtk

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

  • Not just Java libraries

    • janino (binary)
    • groovy (binary)
    • swt-gtk (-jni native libraries)
  • Security concerns

    • gwt
    • jetty6
  • Not updated to default-java stuff yet

    • commons-vfs
    • libjoda-time-java
    • jarjar
    • asm3
    • aspectwerkz2
    • jrexx
    • trove
  • Not in Debian yet

    • libaxiom-java
    • dnsjava
    • netty
    • jug
    • mvel
    • wss4j
    • geronimo-*-spec
    • jetty6 (work in progress)
    • gwt

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:

  • euca-commons-ext: NOTINDEBIAN, DUPLICATION, SECURITY (Spring)
  • jruby1.1 : BINARY

Process MIR sets

Several options, to be discussed with MIR team:

  • One bug per set, one task per package in set
  • One bug per package
  • One bug for everything
  • Process outside Launchpad, with one metabug to track progress

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

This need not be added or completed until the specification is nearing beta.

Unresolved issues

None.

BoF agenda and discussion

UDS discussion

Current status

  • 99 packages which would need to move to main.
  • Java in main is currently driven by OpenOffice. Tomcat6 is there, but has few dependencies.

Future

  • Eucalyptus version for Karmic should have fewer dependencies anyway from upstream refactoring.

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

  • Get rid of anything not necessary
    • Geronimo spec packages (already provided by glassfish-j2ee)
  • Move parts into Eucalyptus code
  • Refactor packages (e.g. hibernate pulls in a lot of stuff)
    • Requires multiple source packages or only to promote some resulting binaries to main.
      • (doko recommends duplicating the source package and documenting it)

What could be expected to be refused inclusion to main

  • Active upstream criteria
    • Annogen
    • OpenSAML
    • WSS4J?
  • Known to be insecure
    • Nothing obvious
  • Partial builds (because of non-free dependencies)
    • Mule
    • We don't really care

Size issues (adding to default CD)

  • GWT is 6MB of binary
    • 1.6 should be more granular and work with existing java packages more
  • JRuby is 3MB
    • Just be a build-time dependency of GWT
  • libjgroups-java, 3MB. Not needed ?
  • glassfish-toplink-essentials, 2.4MB, comes from hibernate
  • Avoiding JDK would save about 50MB of CD space
  • Avoiding GCJ would save about 20MB

Can we use the new Spring packaging from Debian?

  • Not included yet in Debian, but work is underway
  • Might make too hard choices for us ? Testing from Eucalyptus side needed.

Safety net

  • Keep a eucalyptus-javadeps package to drop in any problematic parts which can't be fixed (hibernate?).
    • One tiny part of Drools

Action Summary

  • Which Eucalyptus version we'll use in Karmic and its dependencies?
  • Can we use Spring from Debian?
  • What can we do to reduce Hibernate size?
    • Will it be acceptable to move JBoss to main?
  • JDK dependency investigation
  • Ask Colin about blacklisting for the server seed only to solve GCJ issue
  • Once it's known what is required, start preparing/filing MIRs to avoid a last minute panic.


CategorySpec

EucalyptusInMainSpec (last edited 2009-08-10 09:46:57 by lns-bzn-48f-81-56-218-246)