On 01/10/2013 11:49 AM, Alex Huang wrote:
Wido's concern is important. Some history and how these things have unintended
side effects.
Waf was originally developed so that we can get CloudStack packaged into rpms
so that cloudstack can get into linux distros. Waf has quite a few unintended
side effects. The biggest being that it became the only piece of code that can
determine the rpms built from cloudstack. It causes everyone to stop breaking
cloudstack further into more jars and packages because no one else knew how to
build an rpm from that jar file which then leads to plugins being written
inside server jar and can access cloudstack internal code, the current mess we
are trying to deal with. Using waf is the single worst decision we made in
CloudStack. At the time, we just couldn't see how a build system can actually
cause such problems in architecture. Lesson learned.
So if getting into distros means that again, I will be all against it.
Well it doesn't. The decision to build a build system around RPM
generation was, as you already stated a bad decision. What the project
needs to worry about, is to have:
- a build system that just builds the code, i.e. create the jar, war,
whatever files
- a build system that puts the code in the "right places" i.e. where
the code is expected to be found. This install step has to be
parametrized such that I can give it a top level directory that
functions as the "root" location, i.e. everything will be install
under the directory that I specify.
- documentation as outlined in my previous e-mail
Once the code base fulfills these 3 requirements packaging for a distro
will be mostly trivial, and you will find people that are willing to do
the packaging.
Later,
Robert
--
Robert Schweikert MAY THE SOURCE BE WITH YOU
SUSE-IBM Software Integration Center LINUX
Tech Lead
rjsch...@suse.com
rschw...@ca.ibm.com
781-464-8147