New Build System Requirements

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

New Build System Requirements

Björn Michaelsen-2

Hi List,

I started a new wikipage here:
http://wiki.services.openoffice.org/wiki/Build_Environment_Effort/New_Build_System_Requirements

collecting the major requirements for a new build system and what needs
to be done to implement these requirements with GNU make and CMake
(those two currently seem to be the only serious contestants). If you
find additional requirements, feel free to add them to the page.

Best Regards,

Bjoern

--
===========================================================================
 Sitz der Gesellschaft:
 Sun Microsystems GmbH, Sonnenallee 1, D-85551 Kirchheim-Heimstetten
 Amtsgericht München: HRB 161028
 Geschäftsführer: Thomas Schröder, Wolfgang Engels
 Vorsitzender des Aufsichtsrates: Martin Häring
===========================================================================


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: New Build System Requirements

Thorsten Behrens-3
bjoern michaelsen - Sun Microsystems - Hamburg Germany wrote:
> I started a new wikipage here:
> http://wiki.services.openoffice.org/wiki/Build_Environment_Effort/New_Build_System_Requirements
>
> collecting the major requirements for a new build system and what needs
> to be done to implement these requirements with GNU make and CMake
> (those two currently seem to be the only serious contestants). If you
> find additional requirements, feel free to add them to the page.
>
Nice page, thanks Björn!

Though I think the section about debuggability appears a bit, err,
skewed - I would think none of the contestants are "easily
debuggable" to the common man, when it comes to the internals. ;)

Having lean dependencies is also nice, but more of a runner-up
criteria for me - it would prolly only make a little dent in the dep
list OOo has anyway...

Cheers,

-- Thorsten

attachment0 (204 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: New Build System Requirements

Mathias Bauer
Thorsten Behrens wrote:

> bjoern michaelsen - Sun Microsystems - Hamburg Germany wrote:
>> I started a new wikipage here:
>> http://wiki.services.openoffice.org/wiki/Build_Environment_Effort/New_Build_System_Requirements
>>
>> collecting the major requirements for a new build system and what needs
>> to be done to implement these requirements with GNU make and CMake
>> (those two currently seem to be the only serious contestants). If you
>> find additional requirements, feel free to add them to the page.
>>
> Nice page, thanks Björn!
>
> Though I think the section about debuggability appears a bit, err,
> skewed - I would think none of the contestants are "easily
> debuggable" to the common man, when it comes to the internals. ;)

I agree that for the "common man" most non-trival makefiles ar hard to
understand, let alone debug. But IMHO it's a fair assumption that
understanding/debugging only one file is easier than doing the same for
two (the generator and the working file).

If a build breaks due to a makefile, you first have to the root cause in
the "native" make file, and in case of a CMake/OOo combo it means that
for OOo you must be able to do that in two different systems (GNU Make
and vcproj). Then you have to find out what caused the problem in the
CMake makefile and how to avoid it. That's definitely more work to do
than doing the same in a GNU makefile alone.

This doesn't rule out CMake as a serious competitor, but it shows that
its main benefit (being able to build with VS on Windows) comes at a price.

> Having lean dependencies is also nice, but more of a runner-up
> criteria for me - it would prolly only make a little dent in the dep
> list OOo has anyway...

Well, we have to start somewhere, haven't we?

Lately I gained some experience with dependencies in OOo and reducing
them. IMHO it's easier to understand how the different parts of OOo work
together the more the complexity of the dependencies is reduced. This
helps new developers to understand. And even the more experienced
developers benefit from the better maintainability.

So I think that aiming for leaner dependencies (not only) in the long
run is a worthwile goal and I wouldn't consider any change in the build
system that wouldn't go for it. Whether it's the number one or the
number two priority doesn't matter for me: IMHO it's a must have
priority. As always, YMMV.

Regards,
Mathias

--
Mathias Bauer (mba) - Project Lead OpenOffice.org Writer
OpenOffice.org Engineering at Sun: http://blogs.sun.com/GullFOSS
Please don't reply to "[hidden email]".
I use it for the OOo lists and only rarely read other mails sent to it.


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: New Build System Requirements

Thorsten Behrens-3
Hi Mathias,

you wrote:
> This doesn't rule out CMake as a serious competitor, but it shows that
> its main benefit (being able to build with VS on Windows) comes at a price.
>
and

> Lately I gained some experience with dependencies in OOo and reducing
> them. IMHO it's easier to understand how the different parts of OOo work
> together the more the complexity of the dependencies is reduced. This
> helps new developers to understand. And even the more experienced
> developers benefit from the better maintainability.
>
> So I think that aiming for leaner dependencies (not only) in the long
> run is a worthwile goal and I wouldn't consider any change in the build
> system that wouldn't go for it. Whether it's the number one or the
> number two priority doesn't matter for me: IMHO it's a must have
> priority.
>
I find those arguments a bit contrived - the first one is a truism,
and the second one seems to mix tight implementation dependencies
with well-defined, sometimes posix-standardized, black-boxed external
tool dependencies.

This is nothing to spend two seconds' thoughts on, for all the
platforms out there with a decent package and dependency management
system, simply because you trade an automagically-resolved dependency
for reuse of existing functionality - something I value quite high
in a project where developer resources are amongst the scarcest.

The story on win32 (and other, not-so-standard platforms I believe
you alluded to) is totally different, of course, but you won't fix
that by prohibiting sed & awk - fixing the root cause here means
performing cross-compilation for those platforms.

(you need to build/debug natively on those platforms? sure, but
binning e.g. cygwin from the impressive list of ~14 build
prerequisites
http://wiki.services.openoffice.org/wiki/Development/OpenOffice.org_Building_Guide/Building_on_Windows#software_requirements
means getting rid of the _least problematic_ one - trivial to install,
easy to update, free, built-in package management etc. - shouldn't we
rather eliminate the real deal-breakers there first?)

So again, the build system dependencies for me are one of the least
important criteria, and when it comes to python, we have that
dependency *anyway*, on *any* developer machine, due to mercurial.

Just my 2c. :)

-- Thorsten

attachment0 (204 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: New Build System Requirements

Mathias Bauer
Thorsten Behrens wrote:

> The story on win32 (and other, not-so-standard platforms I believe
> you alluded to) is totally different, of course, but you won't fix
> that by prohibiting sed & awk - fixing the root cause here means
> performing cross-compilation for those platforms.
>
> (you need to build/debug natively on those platforms? sure, but
> binning e.g. cygwin from the impressive list of ~14 build
> prerequisites
> http://wiki.services.openoffice.org/wiki/Development/OpenOffice.org_Building_Guide/Building_on_Windows#software_requirements
> means getting rid of the _least problematic_ one - trivial to install,
> easy to update, free, built-in package management etc. - shouldn't we
> rather eliminate the real deal-breakers there first?)

You are jumping to conclusions. I didn't talk about a particular
dependency I wanted to avoid. I just wanted to point out that you seem
to underestimate the value of a less diverse build system. Most probably
because you don't have to maintain it. ;-)

Regards,
Mathias

--
Mathias Bauer (mba) - Project Lead OpenOffice.org Writer
OpenOffice.org Engineering at Sun: http://blogs.sun.com/GullFOSS
Please don't reply to "[hidden email]".
I use it for the OOo lists and only rarely read other mails sent to it.

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: New Build System Requirements

Thorsten Behrens-3
Mathias Bauer wrote:
> I just wanted to point out that you seem to underestimate the value
> of a less diverse build system. Most probably because you don't
> have to maintain it. ;-)
>
Quite the contrary. I have to personally setup all the win32 build
prerequisites on each and every box or vm I want to build OOo with -
and it's a royal PITA. That's why I maintain that cygwin is not the
problem. But as you noted elsewhere, we'll likely need to keep it no
matter what (for the while), so I guess this point is settled. ;)

Cheers,

-- Thorsten

attachment0 (204 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: New Build System Requirements

Mathias Bauer
Thorsten Behrens wrote:

> Mathias Bauer wrote:
>> I just wanted to point out that you seem to underestimate the value
>> of a less diverse build system. Most probably because you don't
>> have to maintain it. ;-)
>>
> Quite the contrary. I have to personally setup all the win32 build
> prerequisites on each and every box or vm I want to build OOo with -
> and it's a royal PITA. That's why I maintain that cygwin is not the
> problem. But as you noted elsewhere, we'll likely need to keep it no
> matter what (for the while), so I guess this point is settled. ;)

Yes, and moreover, I think that most of this side step discussion was
caused by a misunderstanding. Getting a leaner build system than we have
now is important (IMHO), but of course it is not the most important
point in a way that the "leanest" new system automatically would be the
best.

It might make the difference though in case all else is equal (or at
least similar). If that's what you call "a runner-up goal", I agree with
you. Nevertheless it's good to track that on our page as this might be
something we have to consider.

Regards,
Mathias

--
Mathias Bauer (mba) - Project Lead OpenOffice.org Writer
OpenOffice.org Engineering at Sun: http://blogs.sun.com/GullFOSS
Please don't reply to "[hidden email]".
I use it for the OOo lists and only rarely read other mails sent to it.

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]