Re: Question: Cross compilation

2016-09-27 Thread Chris Yate
On 27 Sep 2016 18:31, "Jan Nieuwenhuizen"  wrote:.
>
> > 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).

As David said, they're not really an overhead - but they are unmaintained.

> You may want to check with the GNU Denemo team
> before removing their dependencies.

Jan, I gather from your tone that you don't take all this too personally...
I'm glad. GUB clearly had great intentions. I suspect its complexity has
been a barrier to developing it into something more readily usable.

My struggle is building a local Lilypond build for one platform and in
fact, in principle, I think it's pretty well suited to the task. Currently,
it's not working for me (some dependency is broken). But that's not really
the fault of GUB, as such.

If building all dependencies from scratch could be avoided, that would be
helpful.

I believe Denemo are still using this, based on a message above here in the
thread, but they may have their own fork.

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

It contains logic that could be used to create a new cross-build tool. The
fear I have with modifying very bespoke and complicated tools is a lack of
knowledge of failure modes - And especially that one can't possibly test
every output.

> ... because a build tool that takes 24+ hours to rebuild
>
> 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.

It's a really complicated task and I think a valiant effort. I wonder
whether there are now better ways one would build the same thing...

> 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.
>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-27 Thread Jan Nieuwenhuizen
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
small.

> ... 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.

Greetings,
Jan

-- 
Jan Nieuwenhuizen  | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-27 Thread Phil Holmes
- Original Message - 
From: "Richard Shann" <rich...@rshann.plus.com>

To: "Phil Holmes" <m...@philholmes.net>
Cc: "David Kastrup" <d...@gnu.org>; "Lilypond-User Mailing List" 
<lilypond-user@gnu.org>

Sent: Tuesday, September 27, 2016 8:54 AM
Subject: Re: Question: Cross compilation



On Tue, 2016-09-27 at 08:53 +0100, Phil Holmes wrote:
- Original Message - 
From: "Richard Shann" <rich...@rshann.plus.com>

To: "David Kastrup" <d...@gnu.org>
Cc: "Lilypond-User Mailing List" <lilypond-user@gnu.org>
Sent: Tuesday, September 27, 2016 8:38 AM
Subject: Re: Question: Cross compilation
>
> and, more specifically, I would guess they are spent in creating the
> documentation (as this involves running LilyPond on thousands on
> examples). I say this because Denemo is built overnight for three
> targets with (son of) GUB, and that involves not only building LilyPond
> but also Gtk, Fluidsynth, PortAudio, PortMidi and quite a few other
> packages. (But not the LilyPond documentation, which, out of idleness
> with respect to setting it up, I always access online).
>
> Richard

No - I can build the docs on that machine in 15 minutes.  The day-long
compile is building the toolset that Gub uses.


In which case, I guess this is a one-off cost (unless the upstream
sources for the toolset change) on first build of a target architecture?

Richard



Generally, yes.  If things are relatively constant, a gub build takes 1-2 
hours.


--
Phil Holmes 



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-27 Thread Phil Holmes
- Original Message - 
From: "David Kastrup" <d...@gnu.org>

To: "Phil Holmes" <m...@philholmes.net>
Cc: "Richard Shann" <rich...@rshann.plus.com>; "Lilypond-User Mailing List" 
<lilypond-user@gnu.org>

Sent: Tuesday, September 27, 2016 9:04 AM
Subject: Re: Question: Cross compilation



"Phil Holmes" <m...@philholmes.net> writes:

- Original Message - 
From: "Richard Shann" <rich...@rshann.plus.com>

To: "David Kastrup" <d...@gnu.org>
Cc: "Lilypond-User Mailing List" <lilypond-user@gnu.org>
Sent: Tuesday, September 27, 2016 8:38 AM
Subject: Re: Question: Cross compilation


and, more specifically, I would guess they are spent in creating the
documentation (as this involves running LilyPond on thousands on
examples). I say this because Denemo is built overnight for three
targets with (son of) GUB, and that involves not only building LilyPond
but also Gtk, Fluidsynth, PortAudio, PortMidi and quite a few other
packages. (But not the LilyPond documentation, which, out of idleness
with respect to setting it up, I always access online).

Richard


No - I can build the docs on that machine in 15 minutes.  The day-long
compile is building the toolset that Gub uses.


Aren't the docs rebuilt for every platform?

--
David Kastrup



I don't believe so.  When I've checked the output of a build, it looks like 
they're built once, near the end of the build.


--
Phil Holmes 



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-27 Thread David Kastrup
"Phil Holmes" <m...@philholmes.net> writes:

> - Original Message - 
> From: "Richard Shann" <rich...@rshann.plus.com>
> To: "David Kastrup" <d...@gnu.org>
> Cc: "Lilypond-User Mailing List" <lilypond-user@gnu.org>
> Sent: Tuesday, September 27, 2016 8:38 AM
> Subject: Re: Question: Cross compilation
>>
>> and, more specifically, I would guess they are spent in creating the
>> documentation (as this involves running LilyPond on thousands on
>> examples). I say this because Denemo is built overnight for three
>> targets with (son of) GUB, and that involves not only building LilyPond
>> but also Gtk, Fluidsynth, PortAudio, PortMidi and quite a few other
>> packages. (But not the LilyPond documentation, which, out of idleness
>> with respect to setting it up, I always access online).
>>
>> Richard
>
> No - I can build the docs on that machine in 15 minutes.  The day-long
> compile is building the toolset that Gub uses.

Aren't the docs rebuilt for every platform?

-- 
David Kastrup

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-27 Thread Richard Shann
On Tue, 2016-09-27 at 08:53 +0100, Phil Holmes wrote:
> - Original Message - 
> From: "Richard Shann" <rich...@rshann.plus.com>
> To: "David Kastrup" <d...@gnu.org>
> Cc: "Lilypond-User Mailing List" <lilypond-user@gnu.org>
> Sent: Tuesday, September 27, 2016 8:38 AM
> Subject: Re: Question: Cross compilation
> >
> > and, more specifically, I would guess they are spent in creating the
> > documentation (as this involves running LilyPond on thousands on
> > examples). I say this because Denemo is built overnight for three
> > targets with (son of) GUB, and that involves not only building LilyPond
> > but also Gtk, Fluidsynth, PortAudio, PortMidi and quite a few other
> > packages. (But not the LilyPond documentation, which, out of idleness
> > with respect to setting it up, I always access online).
> >
> > Richard
> 
> No - I can build the docs on that machine in 15 minutes.  The day-long 
> compile is building the toolset that Gub uses.

In which case, I guess this is a one-off cost (unless the upstream
sources for the toolset change) on first build of a target architecture?

Richard


> 
> --
> Phil Holmes 
> 



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-27 Thread Chris Yate
On 27 Sep 2016 03:59, "David Kastrup"  wrote:
>
> > At a brief look over GUB, the really big question in my mind is why on
> > earth it seems to want to build *everything*.
>
> It wants to be _able_ to build everything, like autoconf.

Fine. But Autoconf doesn't ship with makefiles for everything.

If it's a general tool, it ought not even mention Lilypond in the main
makefile. Possibly not even the platforms it supports. If it's a Lilypond
build tool, OpenOffice build rules don't belong in the distribution (unless
OpenOffice is a dependency for Lilypond?)

> You don't need to touch or maintain or use the OpenOffice rules ... It
won't build OpenOffice unless you ask it to.

I disagree. If it's distributed with OpenOffice build rules, then any
changes to GUB would need to be regression tested by building OpenOffice.

Is this the tool that Apache uses to build OO?

> You'll find that none of the 24+ hours are spent in relation to
> OpenOffice.  The OpenOffice configuration affects the download size of
> GUB, but that's a one-time cost and rather small.

Yeah, I've worked that out. Actually trivial to temporarily comment out
platforms you don't need. (Although it's still breaking for me...)

Is there a buglist other than the TODO file?

By the way, should this discussion have been in the Devel group?

Chris
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-27 Thread Phil Holmes
- Original Message - 
From: "Richard Shann" <rich...@rshann.plus.com>

To: "David Kastrup" <d...@gnu.org>
Cc: "Lilypond-User Mailing List" <lilypond-user@gnu.org>
Sent: Tuesday, September 27, 2016 8:38 AM
Subject: Re: Question: Cross compilation


and, more specifically, I would guess they are spent in creating the
documentation (as this involves running LilyPond on thousands on
examples). I say this because Denemo is built overnight for three
targets with (son of) GUB, and that involves not only building LilyPond
but also Gtk, Fluidsynth, PortAudio, PortMidi and quite a few other
packages. (But not the LilyPond documentation, which, out of idleness
with respect to setting it up, I always access online).

Richard


No - I can build the docs on that machine in 15 minutes.  The day-long 
compile is building the toolset that Gub uses.


--
Phil Holmes 



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-27 Thread Richard Shann
On Tue, 2016-09-27 at 04:23 +0200, David Kastrup wrote:
> Chris Yate  writes:
> 
> > On Mon, 26 Sep 2016 at 19:34 David Kastrup  wrote:
> >
> >>
> >> That's pretty good, actually.  Not being able to do native/online
> >> compilations by anybody wanting to is bad.  Yes.  Fixes to GUB (possibly
> >> even just to its information/documentation, maybe it _can_ do it
> >> already) are of course welcome:
> >
> >
> > David,
> >
> > At a brief look over GUB, the really big question in my mind is why on
> > earth it seems to want to build *everything*.
> 
> It wants to be _able_ to build everything, like autoconf.
> 
> > A Lilypond build tool for all platforms = a great idea.
> > 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.
> 
> You don't need to touch or maintain or use the OpenOffice rules.
> 
> > 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 don't see the point.  It won't build OpenOffice unless you ask it to.
> 
> > ... 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.
> 
> You'll find that none of the 24+ hours are spent in relation to
> OpenOffice.  The OpenOffice configuration affects the download size of
> GUB, but that's a one-time cost and rather small.
> 

and, more specifically, I would guess they are spent in creating the
documentation (as this involves running LilyPond on thousands on
examples). I say this because Denemo is built overnight for three
targets with (son of) GUB, and that involves not only building LilyPond
but also Gtk, Fluidsynth, PortAudio, PortMidi and quite a few other
packages. (But not the LilyPond documentation, which, out of idleness
with respect to setting it up, I always access online).

Richard


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-26 Thread David Kastrup
Chris Yate  writes:

> On Mon, 26 Sep 2016 at 19:34 David Kastrup  wrote:
>
>>
>> That's pretty good, actually.  Not being able to do native/online
>> compilations by anybody wanting to is bad.  Yes.  Fixes to GUB (possibly
>> even just to its information/documentation, maybe it _can_ do it
>> already) are of course welcome:
>
>
> David,
>
> At a brief look over GUB, the really big question in my mind is why on
> earth it seems to want to build *everything*.

It wants to be _able_ to build everything, like autoconf.

> A Lilypond build tool for all platforms = a great idea.
> 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.

You don't need to touch or maintain or use the OpenOffice rules.

> 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 don't see the point.  It won't build OpenOffice unless you ask it to.

> ... 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.

You'll find that none of the 24+ hours are spent in relation to
OpenOffice.  The OpenOffice configuration affects the download size of
GUB, but that's a one-time cost and rather small.

-- 
David Kastrup

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-26 Thread Chris Yate
On Mon, 26 Sep 2016 at 23:05 Chris Yate  wrote:

> On Mon, 26 Sep 2016 at 19:34 David Kastrup  wrote:
>
>>
>> That's pretty good, actually.  Not being able to do native/online
>> compilations by anybody wanting to is bad.  Yes.  Fixes to GUB (possibly
>> even just to its information/documentation, maybe it _can_ do it
>> already) are of course welcome:
>
>
> David,
>
> At a brief look over GUB, the really big question in my mind is why on
> earth it seems to want to build *everything*. ...
>

All this said, it looks like the task of slimming it down for one's own
preferred build configurations (in my case, mingw builds, and with a custom
lilypond git repo) is simply a case of changing some definitions in the
Makefile(s).

That probably is not too troublesome for anyone that's confident to start
hacking something like Lilypond in the first place...

Chris
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-26 Thread Chris Yate
On Mon, 26 Sep 2016 at 19:34 David Kastrup  wrote:

>
> That's pretty good, actually.  Not being able to do native/online
> compilations by anybody wanting to is bad.  Yes.  Fixes to GUB (possibly
> even just to its information/documentation, maybe it _can_ do it
> already) are of course welcome:


David,

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

A Lilypond build tool for all platforms = a great idea.
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.

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)...

... 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.

Chris
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-26 Thread Chris Yate
On 26 Sep 2016 20:16, "Phil Holmes"  wrote:
>
> TBH, you'd probably find it far easier to install a Linux VM on your
Windows host, and compile the problematic score on that.  I've done both,
and what I suggest here is what I would do.

That's exactly what I've done - I do a lot of my day job with Virtual
Machines. But...
... I generally use Frescobaldi as an IDE for Lilypond work - and that
works very much better in Windows (better integration with midi, pdf viewer
as well as printers etc.), and there's available installers for the latest
versions. Ubuntu's packaged version is ancient, and the one I built has all
sorts of problems.

That said, it is almost certainly the path of least resistance to fix
Frescobaldi on Linux than fix Lilypond in Windows!!

> I also used Sibelius - for my college course.  I always now use LilyPond
in preference.

IMO, Lilypond produces somewhat better looking output (with at least a
little care), and as a software engineer I really rate being able to
source-control my files properly. Everything's in git...

Chris
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-26 Thread Phil Holmes
TBH, you'd probably find it far easier to install a Linux VM on your Windows 
host, and compile the problematic score on that.  I've done both, and what I 
suggest here is what I would do.

I also used Sibelius - for my college course.  I always now use LilyPond in 
preference.

--
Phil Holmes


  - Original Message - 
  From: Chris Yate 
  To: David Kastrup 
  Cc: Phil Holmes ; Lilypond-User Mailing List 
  Sent: Monday, September 26, 2016 7:48 PM
  Subject: Re: Question: Cross compilation


  On Mon, 26 Sep 2016 at 19:34 David Kastrup <d...@gnu.org> wrote:

Chris Yate <chrisy...@gmail.com> writes:

> Hi Phil,
>
> Sigh... Yes, that's basically the conclusion I'd already come to, but that
> it seemed such a ludicrous state of affairs that _somebody_ must have a
> better solution.

If you can find _any_ free software project requiring a number of free
software compile- and runtime dependencies that does not invest a really
big amount of time into maintaining a separate Windows port, you might
want to look how they are doing it.



  Thanks David. If the answer to my question is "no, there's no other way", 
that's still a useful answer! :) 



  To be fair, I think the projects that do work across many systems are usually 
not using C++, but some other language that's more portable. Probably something 
interpreted, or running on a VM.  And of course, Lilypond has a bunch of 
dependencies, TexMf, Guile and the like, which may be more of a portability 
problem than /our/ code. 


In contrast, the LilyPond Windows releases appear at the same time as
other releases and require no extra manual effort (until things go
wrong, of course). That's pretty good, actually. 

  Agreed! 


Not being able to do native/online compilations by anybody wanting to is 
bad.  Yes.  Fixes to GUB (possibly even just to its information/documentation, 
maybe it _can_ do it already) are of course welcome


  GUB is a really good idea. But obviously it's not great having to compile the 
whole thing to change a source repository... If its authors followed the 
mentality of Gnu autoconf tools, you'd expect to be able to pass some arguments 
in. I'll look into it a little. 

  Chris


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-26 Thread David Kastrup
Chris Yate  writes:

> On Mon, 26 Sep 2016 at 19:34 David Kastrup  wrote:
>
>> Chris Yate  writes:
>>
>> > Hi Phil,
>> >
>> > Sigh... Yes, that's basically the conclusion I'd already come to, but
>> that
>> > it seemed such a ludicrous state of affairs that _somebody_ must have a
>> > better solution.
>>
>> If you can find _any_ free software project requiring a number of free
>> software compile- and runtime dependencies that does not invest a really
>> big amount of time into maintaining a separate Windows port, you might
>> want to look how they are doing it.
>>
>
> Thanks David. If the answer to my question is "no, there's no other way",
> that's still a useful answer! :)
>
> To be fair, I think the projects that do work across many systems are
> usually not using C++, but some other language that's more portable.

LilyPond and its utilities use C++, Guile (both as standalone executable
and as one of _many_ libraries), Ghostscript, Python, Shell scripts and
probably a few other things.

C++ alone is not all that hard, except that it does not buy you an
installer.

> Probably something interpreted, or running on a VM.  And of course,
> Lilypond has a bunch of dependencies, TexMf, Guile and the like, which
> may be more of a portability problem than /our/ code.

Maybe, maybe not, but it adds up.  That's what I meant with "a number of
free software compile- and runtime dependencies".

> GUB is a really good idea. But obviously it's not great having to
> compile the whole thing to change a source repository... If its
> authors followed the mentality of Gnu autoconf tools, you'd expect to
> be able to pass some arguments in. I'll look into it a little.

It may well be possible, but I don't really know myself where to get a
good roadmap.

-- 
David Kastrup

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-26 Thread Chris Yate
On Mon, 26 Sep 2016 at 19:34 David Kastrup  wrote:

> Chris Yate  writes:
>
> > Hi Phil,
> >
> > Sigh... Yes, that's basically the conclusion I'd already come to, but
> that
> > it seemed such a ludicrous state of affairs that _somebody_ must have a
> > better solution.
>
> If you can find _any_ free software project requiring a number of free
> software compile- and runtime dependencies that does not invest a really
> big amount of time into maintaining a separate Windows port, you might
> want to look how they are doing it.
>

Thanks David. If the answer to my question is "no, there's no other way",
that's still a useful answer! :)

To be fair, I think the projects that do work across many systems are
usually not using C++, but some other language that's more portable.
Probably something interpreted, or running on a VM.  And of course,
Lilypond has a bunch of dependencies, TexMf, Guile and the like, which may
be more of a portability problem than /our/ code.

In contrast, the LilyPond Windows releases appear at the same time as
> other releases and require no extra manual effort (until things go
> wrong, of course). That's pretty good, actually.


Agreed!

Not being able to do native/online compilations by anybody wanting to is
> bad.  Yes.  Fixes to GUB (possibly even just to its
> information/documentation, maybe it _can_ do it already) are of course
> welcome


GUB is a really good idea. But obviously it's not great having to compile
the whole thing to change a source repository... If its authors followed
the mentality of Gnu autoconf tools, you'd expect to be able to pass some
arguments in. I'll look into it a little.

Chris
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-26 Thread David Kastrup
Chris Yate  writes:

> Hi Phil,
>
> Sigh... Yes, that's basically the conclusion I'd already come to, but that
> it seemed such a ludicrous state of affairs that _somebody_ must have a
> better solution.

If you can find _any_ free software project requiring a number of free
software compile- and runtime dependencies that does not invest a really
big amount of time into maintaining a separate Windows port, you might
want to look how they are doing it.

But in my experience, stuff like Git are typical: the Windows port lags
several versions behind, is separately maintained with a lot of effort
by separate volunteers (who get rather gruff over time), and is of mixed
quality.

In contrast, the LilyPond Windows releases appear at the same time as
other releases and require no extra manual effort (until things go
wrong, of course).

That's pretty good, actually.  Not being able to do native/online
compilations by anybody wanting to is bad.  Yes.  Fixes to GUB (possibly
even just to its information/documentation, maybe it _can_ do it
already) are of course welcome: we have pretty low active expertise on
its innards on the list, and those who use it for building releases
mostly drive on autopilot.

-- 
David Kastrup

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-26 Thread Chris Yate
Hi Phil,

Sigh... Yes, that's basically the conclusion I'd already come to, but that
it seemed such a ludicrous state of affairs that _somebody_ must have a
better solution.

I've just installed mingw on Ubuntu, which might possibly do the job...

At the moment my scores have a habit of crashing at line 1180 in
page-breaking.cc when an assertion is thrown; that only happens under
Windows. And I reckon I can now see why it hasn't been investigated
seriously by anyone!! (although it's possible it could be an issue with one
of Lilypond's library dependencies.).

It should not be so difficult to work on open source stuff on any platform.
And it's not Microsoft's fault, presumably a lack of demand... (I'm not
blaming anybody here, by the way.)  In terms of the time I've wasted, I'm
fairly seriously considering that I might buy Sibelius and be done
with it. Given
that most of my colleagues in music expect me to be able to send them .sib
files to share, it's probably inevitable. Shame.

Chris




On Mon, 26 Sep 2016 at 19:10 Phil Holmes  wrote:

> Gub uses http://git.savannah.gnu.org/cgit/lilypond.git as its source.  I
> know of no way of changing that without a lot of effort changing its
> codebase.  I personally know of no simple way of cross-compiling LilyPond
> for Windows without using Gub as the tool.  However, you can (in principle)
> create your own branch on Savannah and use Gub to compile against that (see
> http://git.savannah.gnu.org/cgit/lilypond.git/log/?h=dev/philh for an
> example of something I'm trying to debug at present).  You'll need a big
> old machine or a lot of patience to get it working - I occasionally have
> compile time of the order of 24 hours on a Core i7 quad core system.
>
> HTH
>
> --
> Phil Holmes
>
>
>
> - Original Message -
> *From:* Chris Yate 
> *To:* Lilypond-User Mailing List 
> *Sent:* Monday, September 26, 2016 6:54 PM
> *Subject:* Question: Cross compilation
>
> Hi all,
>
> Apologies for the potentially "blindingly obvious" question, bu't having
> read the devel webpages about compiling Lilypond for mingw/Windows, I'm
> none the wiser.
>
> I can compile for native linux using the gnu make (via the
> smart-autoconf.sh script). However, I'm trying to track down a crash in
> Windows, and according to the website/docs it's impossible to compile
> natively* -- so need a cross-compile.
>
> I note the existance of "GUB", but this appears to use the main repository
> as source**. But obviously, I need to compile from my working copy after
> I've put a bunch of tracing code in.
>
> This document
> http://www.gnu.org/software/lilypond/src/Developers/Packaging/windows.html 
> appears
> to be out of date. I found "janneke"'s patches at
> http://lilypond.org/people/janneke/software/cygwin/mknetrel/ but it's not
> clear from where mknetrel itself should be obtained.
>
> My dev environment is Ubuntu 16 (or 14). Any hints or tips or redirection
> towards the relevant instructions would be welcome!
>
> Chris
>
> ---
>
> * assuming the statement about compiling natively under Windows _does_not_
> refer to using mingw gnu make, rather than some other compiler...??
>
> ** I'm not sure about that; but in any case it fails at configuring
> mingw::fontconfig so that may be the first problem to solve. Error below
> ---
> .
> configure: error: Package requirements (freetype2) were not met:
>
> Package zlib was not found in the pkg-config search path.
> Perhaps you should add the directory containing `zlib.pc'
> to the PKG_CONFIG_PATH environment variable
> Package 'zlib', required by 'FreeType 2', not found
> 
>
>
>
> --
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>
>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Question: Cross compilation

2016-09-26 Thread Phil Holmes
Gub uses http://git.savannah.gnu.org/cgit/lilypond.git as its source.  I know 
of no way of changing that without a lot of effort changing its codebase.  I 
personally know of no simple way of cross-compiling LilyPond for Windows 
without using Gub as the tool.  However, you can (in principle) create your own 
branch on Savannah and use Gub to compile against that (see 
http://git.savannah.gnu.org/cgit/lilypond.git/log/?h=dev/philh for an example 
of something I'm trying to debug at present).  You'll need a big old machine or 
a lot of patience to get it working - I occasionally have compile time of the 
order of 24 hours on a Core i7 quad core system.

HTH

--
Phil Holmes


  - Original Message - 
  From: Chris Yate 
  To: Lilypond-User Mailing List 
  Sent: Monday, September 26, 2016 6:54 PM
  Subject: Question: Cross compilation


  Hi all,


  Apologies for the potentially "blindingly obvious" question, bu't having read 
the devel webpages about compiling Lilypond for mingw/Windows, I'm none the 
wiser.


  I can compile for native linux using the gnu make (via the smart-autoconf.sh 
script). However, I'm trying to track down a crash in Windows, and according to 
the website/docs it's impossible to compile natively* -- so need a 
cross-compile.


  I note the existance of "GUB", but this appears to use the main repository as 
source**. But obviously, I need to compile from my working copy after I've put 
a bunch of tracing code in. 

  This document 
http://www.gnu.org/software/lilypond/src/Developers/Packaging/windows.html 
appears to be out of date. I found "janneke"'s patches at 
http://lilypond.org/people/janneke/software/cygwin/mknetrel/ but it's not clear 
from where mknetrel itself should be obtained. 



  My dev environment is Ubuntu 16 (or 14). Any hints or tips or redirection 
towards the relevant instructions would be welcome!


  Chris


  ---


  * assuming the statement about compiling natively under Windows _does_not_ 
refer to using mingw gnu make, rather than some other compiler...??


  ** I'm not sure about that; but in any case it fails at configuring 
mingw::fontconfig so that may be the first problem to solve. Error below
  ---
  .

  configure: error: Package requirements (freetype2) were not met:


  Package zlib was not found in the pkg-config search path.
  Perhaps you should add the directory containing `zlib.pc'
  to the PKG_CONFIG_PATH environment variable
  Package 'zlib', required by 'FreeType 2', not found
  








--


  ___
  lilypond-user mailing list
  lilypond-user@gnu.org
  https://lists.gnu.org/mailman/listinfo/lilypond-user
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user