The antlr JAR files conflict with the Ubuntu packages for this JAR files.
Maven depends on this as well, so when you try to install cloud-awsapi on a system
with Maven installed, you get:
(Reading database ... 68888 files and directories currently installed.)
Unpacking cloud-awsapi (from cloud-awsapi_4.0.0-incubating_amd64.deb) ...
dpkg: error processing cloud-awsapi_4.0.0-incubating_amd64.deb (--install):
trying to overwrite '/usr/share/java/antlr-2.7.7.jar', which is also in package libantlr-java 2.7.7+dfsg-3
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
cloud-awsapi_4.0.0-incubating_amd64.deb
antlr-2.7.7.jar is in classpath.conf, so we can depend on this package and it will be loaded
for AWS API
This JAR is also provided by a Ubuntu package and is the version we depend on with Maven.
By adding this JAR to wscript_configure it is added to the classpath so the AWS API will be able to use it.
Not having this will result in a conflict in a package conflict
During build time we will build against the version fetched by Maven, but runtime we will use the one from
the Ubuntu repository.
On my system I already had libdom4j-java installed and this lead to:
(Reading database ... 68888 files and directories currently installed.)
Unpacking cloud-awsapi (from .../cloud-awsapi_4.0.0-incubating_amd64.deb) ...
dpkg: error processing ../cloud-awsapi_4.0.0-incubating_amd64.deb (--install):
trying to overwrite '/usr/share/java/dom4j-1.6.1.jar', which is also in package libdom4j-java 1.6.1+dfsg.2-5
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
../cloud-awsapi_4.0.0-incubating_amd64.deb
Since this JAR file is available from the Ubuntu repository we depend on it instead of packaging it ourselfs.
This conflicts with with libjaxp1.3-java on Ubuntu systems.
libjaxp1.3-java is installed when maven is installed, so on my local system I got:
root@gateway:/usr/src# dpkg -i cloud-awsapi_4.0.0-incubating_amd64.deb
(Reading database ... 68888 files and directories currently installed.)
Unpacking cloud-awsapi (from cloud-awsapi_4.0.0-incubating_amd64.deb) ...
dpkg: error processing cloud-awsapi_4.0.0-incubating_amd64.deb (--install):
trying to overwrite '/usr/share/java/xml-apis-1.3.04.jar', which is also in package libjaxp1.3-java 1.3.05-2ubuntu2
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
cloud-awsapi_4.0.0-incubating_amd64.deb
root@gateway:/usr/src#
This prevents you from installing the AWS API on a Ubuntu machine which also has Maven installed.
The classpath is still generated by WAF which looks in the deps/ directory and will find the same JAR file
there as what's in the Deb package we depend on.
Changes:
- Have javassist dependency in awsapi/pom.xml
- Have it deployed by waf while rpm building in wscript_build
- Fixed dependency in debian/control
- Add javassist pkg in cloud-deps for debian
This is a squashed commit of the following:
commit eed46e7749f2716d0046f6c8237e9900043078ee
Author: Rohit Yadav <bhaisaab@apache.org>
Date: Wed Oct 10 12:42:41 2012 +0530
Revert: Add javaassist dependence"
Reverted javassist but axis2-1.5.1.jar is still first in the classpath
This reverts commit 7bcbae5e91.
commit eab6b6afe9331bf3920fafbd59695141366a2a61
Author: Rohit Yadav <bhaisaab@apache.org>
Date: Wed Oct 10 12:38:42 2012 +0530
Revert: "maven: Remove javassist as a dependency for AWS API"
We want javassist to be fetched by mvn and get it packaged in
cloud-deps.
This reverts commit 8504332404.
commit 35af1ebdb6340105f342dbfc461f5fb892b9ab76
Author: Rohit Yadav <bhaisaab@apache.org>
Date: Wed Oct 10 12:36:43 2012 +0530
Revert: "add javassit on the classpath"
We don't need javassist from a distro's repo. That is included in
cloud-deps.
This reverts commit 66daa1a2bc.
commit cb11d153fbb809aad94f0a3d19f3efba13691d71
Author: Rohit Yadav <bhaisaab@apache.org>
Date: Wed Oct 10 12:34:09 2012 +0530
Revert: "fix rpm build"
We need javaassist for awsapi package.
This reverts commit c49f3beccf.
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
Both the Agent and Server require Google GSON. This is not available from
the Ubuntu repositories, so we have to package it ourselfs.
Due to the fact that people might choose to run the Hypervisor on the same
host as the management server we can't have cloud-agent-deps conflict with cloud-deps
cloud-agent-deps now depends on cloud-deps so the hypervisor has Google GSON 1.7.1
This results in a number of extra JAR files to be installed on the hypervisor.
The management server also depends on a couple of these scripts, so renaming
to cloud-scripts makes more sence then installing cloud-agent-scripts.
In the future we might want to split this up in two packages.
cglib 2.2.2 is available in Ubuntu and Debian from the repositories, no need
to ship it in the cloud-deps package.
It's also not used by cloud-agent, but by cloud-utils, so place the dependency there.
Ubuntu 12.04 and Debian (testing) both ship from their repository, so there is no need
for us to distribute it in our packages.
We depend on it externally for our logging.
No need for these packages to depend on any cloud-agent package.
If they need files from this packages, then we need to move those files.
The client/management server should never depend on agent packages.