[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Question: Cross compilation

From: Jan Nieuwenhuizen
Subject: Re: Question: Cross compilation
Date: Tue, 27 Sep 2016 19:31:27 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Chris Yate writes:

> At a brief look over GUB, the really big question in my mind is why on
> earth it seems to want to build *everything*. 

That's mostly fault.

> A Lilypond build tool for all platforms = a great idea.

Thanks.  I developed GUB together with Han-Wen and it was our 4th
iteration of a cross-build system written for LilyPond.

> A Lilypond build tool for all platforms to which someone's added half
> a dozen extra unrelated targets (possibly very large ones such as
> OpenOffice) = a terrible idea.

Thanks!  GUB was the first to be so generic that it could be used for
other projects as well, with almost no cost.  I hoped for GUB to be
adopted by other projects, so that we would share maintenance and
development effort on it.  It is (or was?) actively used by GNU Denemo,
so that's where the GTK+ stuff comes from and at the time I worked on
go-oo (the predecessor to LibreOffice) so I hooked that in too.  The
idea was: once such a project uses this, others will join.

Apparently, I did not succeed in bringing easy cross builds to other
projects and with as a consequence I also failed in sharing maintenance
load.  So, please remove any OpenOffice references and depnedencies (git
will remember anyway).  You may want to check with the GNU Denemo team
before removing their dependencies.

> If I did anything to "fix" it, it would be to strip it right back to a
> tool that does _one_ job well. And I don't know whether that's likely
> to be popular thing (although correct me if I'm wrong there)... 

I think GUB is beyond fixing, simply because it's community is too

> ... because IMHO a build tool that takes 24+ hours to rebuild after
> making tweaks to it --and that's on a high spec machine-- is not a
> very useful tool.

There are reasons for this.  GUB's aim was to find the sweet spot
between complete OS independency/separation (fedora/debian/whatnot)
and reproducibility.  It fails at both of these requirements, but I
maintain that it was a fair effort.  If you want to be OS-independent
and reliable, you'll have to build your own toolchain.

I am currently working on Guix/GuixSD and have implemented a MinGW cross
build facility that can cross build Guile which has been reviewed and
will be merged soon.  I have patches that will cross build LilyPond
and all its dependencies, some of those need cleanups and they need
to be reviewed.

Using Guix as a LilyPond build system presents a whole new set of
problems/questions, but it would solve the biggest problems with GUB.
It has an active community, so effort is shared.  It is very well
documented and a whole lot more mature, better designed.  It has /full/
OS separation; produces bit-reproducible binaries.  And it has a system
of using binary substitutes: cross builds do not need to take longer
than other builds.


Jan Nieuwenhuizen <address@hidden> | GNU LilyPond
Freelance IT | Avatar®  

reply via email to

[Prev in Thread] Current Thread [Next in Thread]