Updates:

Diff view against master:
https://github.com/bhaisaab/incubator-cloudstack/compare/debs-maven

Patch:
http://bhaisaab.org/patches/cloudstack/0001-Maven-jdeb-plugin.patch (205KB)

Major changes:

- All plugins are created and bundled in separate debs
- agent depends on kvm-plugin
- server depends on whole lot of plugins which were previous bundled 
monolithically
- Use of exec plugin in cloud-cli

Issues:

- agent's pkg/control/postinst(all) script has some extra stuff I don't 
understand, pl. check

- CLASSPATH issues, and how to configure this in post install scripts

- With waf/debuild/dpkg-buildpackage no longer, I don't know how to proceed 
with certain scripts (.in, .properties.in etc.).
  Proposal: to maintain two hardcoded versions, one for rpm/rhel/centos, one 
for deb/ubuntu/debian; or use some kind of preprocessor and use exec plugin to 
deploy while packaging
           
- cloud-cli assumes jars in target/jar (used by apidoc.sh to generate 
commands.xml)

- Packaging issues: systemvm-iso (will probably have to reuse a maven 
assembly), awsapi (packaging is not clear), client (lots of scripts that 
require preprocessing of @@ variables), console-proxy (packaging is not clear). 

For now, all submodules (except, cloud-client, cloud-awsapi and 
cloud-systemvmiso/console-proxy) can be packaged using:
mvn package -P deb

Maven TODOs:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Building+with+Maven#BuildingwithMaven-TODOs

Regards.

On 20-Sep-2012, at 8:03 PM, Rohit Yadav <rohit.ya...@citrix.com> wrote:

> WIth the aim to slowly replace all ant/waf uses with Maven/plugins, I've some 
> progress on deb packaging to share and questions to ask:
> 
> The WIP patch:
> http://bhaisaab.org/patches/cloudstack/0001-Maven-jdeb-plugin-for-deb-packaging-WIP.patch
>  (86KB)
> 
> I'm facing issue on how and which scripts to configure. All the .in, .conf, 
> .properties files are processed by waf and the @variables@ are replaced 
> during that process. These are mostly sysconfig paths and distro dependant 
> env variables, which are actually fixed and standard for debs (Ubuntu/Debian) 
> and rpms (Fedora).
> 
> All the control files are preprocessed and the artifact Ids and versions are 
> not hard coded in the control files anymore. I need help to verify the 
> control rules, dependencies and to test which file goes where.
> 
> Every submodule (and every plugin) gets own deb package, same goes for rpm 
> (future). The patch/plugin is inside a profile and can be merge right now, 
> won't break anything. Packaging is very fast compared to waf and does not 
> require any external tool (like dpkg/debuild). For every module or overall 
> project, just cd to the project and do:
> 
> mvn package -P deb
> 
> WIP modules: plugins, console-proxy, test, patches/iso, deps/XenServer, 
> awsapi. (they all are somewhat tricky)
> 
> Right now I've merged all the agent-libs/scripts/deps into one agent-deb.
> 
> Suggestions and comments?
> 
> Regards,
> Rohit

Reply via email to