Hi,
On 06/12/2012 10:31 PM, David Nalley wrote:
Inline reply
On Tue, Jun 12, 2012 at 6:24 AM, Wido den Hollander<w...@widodh.nl> wrote:
Hi,
I've been working the last couple of days on rebuilding the Debian/Ubuntu
build system and getting rid of WAF.
I think it got to a state where it's ready to be tested by other users.
The code can be found at Github [0] under my user "wido".
The goals I had were:
* Get rid of WAF
GREAT goal IMO!
* Do everything with ANT
I think this is potentially ok - more later.
* Get the packages working under Debian as well
Another great goal!
Seems it worked and my packages are now building like they are supposed to.
I haven't been able to find issues at the moment, while this will of course
need more testing.
For cloud-daemonize I've written a separate ANT task which uses contrib-cpp
[1]. For the Debian packages I've made the package "ant-contrib-cpptasks" a
build dependency.
cloud-daemonize should go away IIRC - Frank? Edison? Isn't that all
deprecated - can't we just purge it all?
I didn't see that :) But that's great. Since those scripts like
"agent-runner" need an update anyway.
This build code could be shared with the RPM build process as well, so we
might want to move some targets around or make them more generic.
I think that a great goal for CloudStack 4.0 would be to support:
- Ubuntu 10.04 LTS
- Ubuntu 12.04 LTS
- Debian 6 Squeeze
The packages will probably work on Ubuntu 11.X as well, but we should
probably target the LTS versions and anything else that works is great?
I'd like to get some feedback on this build system.
Thanks!
Wido
So perhaps I misunderstand - but here is what I'd personally like to see:
ant build-all compiles everything - as it does now.
We add a target something like:
ant deploy-rpm
or
ant deploy-deb
This copies the compiled binaries built in build-all to the right
locations for those platforms - BUT also allows overriding those
settings in a config file or command line option. (this becomes the
equivalent of make followed by make install)
Oh, that's what I did. If you take a look at the "rules" file:
https://github.com/wido/CloudStack/blob/c6d673e97d906d0a3fb1c8459a80fee2008f0909/debian/rules
You simply run "dpkg-buildpackage" in the directory of your GIT repo and
dpkg will then call Ant and run all the needed targets,
Ant will put all the files in place and dpkg then takes over, packages
all the stuff into deb files.
It's not that Ant is generating the deb files, I just prepare all for
packaging, like replacing tokens in them.
I am not necessarily opposed to building all of this with ant - it
might make life easy for nightly builds or testing - but I also want
to make sure that I can still sanely do it by calling rpmbuild or
dpkg.
Same should work for RPM, it should just invoke Ant and run the needed
targets.
Wido
Thoughts?
--David