Heya all,

As Devid already mentioned we met up at Build-A-Cloud-Day in Ghent with Wido, 
Noa and a few other folks. During this day (with lots of nice talks) we had a 
chance to sit down and discuss packaging. Something that Noa, Wido and myself 
were planning to do for a long time. Some other people joined in the discussion 
and with the help of the available black board (the event was held in a school 
;-) ) we managed to sync our ideas on packaging the 4.1 release.

With our ideas synced we thought it time to bring our ideas to the list and ask 
for feedback from the community. We are also using our current time at FOSDEM 
to sync up with some of the people from the distros to see what they think of 
the new ideas, it would still be nice to have CloudStack packaged up and 
shipped with some of the distributions out there.

So the main goals of redoing packaging are getting rid of ant and waf 
completely. A secondary goal is to create a reference set of packages which in 
itself should be enough to get anyone going with CloudStack, but will hardly 
depend on the underlying distro. Real distro specific stuff should be handled 
by packagers from those distros. We just aim to provide a reference 
implementation.

Our goal is to have a reference implementation that will install on the 
following list of operating systems: CentOS 6.3, Ubuntu 12.04 and Fedora 18. 
This means that it will probably install and run on a lot more, but this is the 
set that we will test against (i'm using a jenkins system at the office to 
automatically build and install and these images will be used for the tests).

Next we will remove as much system dependencies as possible, so we will use 
maven to gather the dependencies and make sure that they are packaged and 
shipped with the RPMs. This makes for slightly bigger packages, but reduced the 
overhead of having to check each operating system and run the risk of version 
mismatched with versions of jar files present on the distro.

We also intend to change the name of the packages to cloudstack to make it 
perfectly clear what somebody is installing, this will also affect the location 
of several files like configuration files and scripts, but we plan to include 
symlinks for backwards compatibility. The feasibility of this will obviously be 
tested in the packaging street my collegues are building for me.

The planned packages for now are cloudstack-management, cloudstack-agent, 
cloudstack-common, cloudstack-cli, cloudstack-docs, cloudstack-awsapi and 
cloudstack-usage. You might already have seen these names in some of the 
checkins. I this the best we to demonstrate is by showing code, instead of a 
lengthy email ;-) All packages will have a directory in 
/usr/share/cloudstack-%{name} and the main jar will be located there and any 
dependencies will be located in the lib directory beneath that location. With 
the exception of management which will be created as an exploded webapplication 
archive in the same directory. Scripts will be located in 
/usr/share/cloudstack-common/scripts and symlinks will be made to the previous 
locations for backwards compatibility.

I think these are the highlights of what we intend to do for release 4.1. We 
have a lot of plans for subsequenst release and on how to get us into distros. 
But for now we thought it prudent to focus on getting packages for the 4.1 
release as son as possible and focus on other improvement later.

@Wido, @Noa, @David did i miss anything important?

Cheers,

Hugo


Reply via email to