Skip to content
This repository has been archived by the owner on Jun 24, 2022. It is now read-only.

Successful LilyPond build #7

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open

Conversation

jrioux
Copy link
Collaborator

@jrioux jrioux commented Sep 15, 2013

These are the changes I needed to be able to build LilyPond with gub.

  • if python3 is the default on the system, some of the gub python scripts do not work, so it is necessary to be able to specify PYTHON=python2, and the makefiles must obey this setting.
  • if texinfo 5.1 is the default, stricter syntax checking compared to previous versions leads to build errors. Building the info docs for gcc and guile fails, so I've disabled them.
  • if dash is the default shell, it does not play well with texinfo, because it does not allow overriding of built-in functions, but texinfo relies on this indirectly. I've patched texinfo.
  • the version of ImageMagick required to build LilyPond is no longer downloadable, so a minor update was in order.
  • dblatex, when called from gub, fails for some reason. gub shouldn't be using the system dblatex anyway (issue 2329) so I disabled the dblatex regression tests until gub builds its own dblatex.
  • I ran into a couple python errors that I've fixed (issubclass called on a None object, SyntaxError on lambda(x)).

ImageMagick 6.5.7-8 is no longer available.
dash (and possibly other shells) refuses to override builtins.
They use makeinfo from the system and tend to lead to fail builds
on syntax errors in the doc files. We don't need the docs anyway.
They use dblatex from the system and tend to fail.
@jan-warchol
Copy link
Collaborator

I only had a quick look, but it appears correct. I'm no expert, though.

@jrioux jrioux mentioned this pull request Sep 15, 2013
@jrioux
Copy link
Collaborator Author

jrioux commented Sep 15, 2013

@PhilHolmes can you please test this branch and see if you can still build LilyPond?

@PhilHolmes
Copy link
Collaborator

I'll give it a test. If I git pull https://github.com/jrioux/gub lily-build and have problems, how would I revert to the previous working set up?

Phil Holmes

----- Original Message -----
From: Julien Rioux
To: gperciva/gub
Sent: Sunday, September 15, 2013 7:17 PM
Subject: [gub] Successful LilyPond build (#7)

These are the changes I needed to be able to build LilyPond with gub.

a.. if python3 is the default on the system, some of the gub python scripts do not work, so it is necessary to be able to specify PYTHON=python2, and the makefiles must obey this setting.

b.. if texinfo 5.1 is the default, stricter syntax checking compared to previous versions leads to build errors. Building the info docs for gcc and guile fails, so I've disabled them.

c.. if dash is the default shell, it does not play well with texinfo, because it does not allow overriding of built-in functions, but texinfo relies on this indirectly. I've patched texinfo.

d.. the version of ImageMagick required to build LilyPond is no longer downloadable, so a minor update was in order.

e.. dblatex, when called from gub, fails for some reason. gub shouldn't be using the system dblatex anyway (issue 2329) so I disabled the dblatex regression tests until gub builds its own dblatex.

f.. I ran into a couple python errors that I've fixed (issubclass called on a None object, SyntaxError on lambda(x)).

You can merge this Pull Request by running
git pull https://github.com/jrioux/gub lily-buildOr view, comment on, or merge it at:

https://github.com/gperciva/gub/pull/7

Commit Summary
a.. Minor update to ImageMagick 6.5.7-10
b.. Patch texinfo to be compatible with dash.
c.. Don't build info docs for gcc and guile.
d.. Don't run the dblatex regression tests.
e.. Replace literal python, use the $(PYTHON) macro instead.
f.. Avoid TypeError: issubclass() arg 1 must be a class.
g.. Print help message when running bin/gib without args.
h.. Remove literal bin/gub, use $(GUB) macro instead.
i.. Remove unnecessary lambda.
File Changes
a.. M arbora.make (4)
b.. M bin/gib (5)
c.. M bin/gub (2)
d.. M denemo.make (4)
e.. M gub/dependency.py (2)
f.. M gub/specs/darwin/cross/gcc.py (5)
g.. M gub/specs/freebsd/cross/gcc.py (4)
h.. M gub/specs/guile.py (9)
i.. M gub/specs/imagemagick.py (2)
j.. M gub/specs/lilypond-doc.py (1)
k.. M gub/specs/lilypond-test.py (1)
l.. M gub/specs/texinfo.py (1)
m.. M inkscape.make (2)
n.. M lilypond.make (16)
o.. M mingit.make (2)
p.. M openoffice.make (2)
q.. A patches/texinfo-4.13-dash.patch (31)
r.. M schikkers-list.make (4)
Patch Links:
a.. https://github.com/gperciva/gub/pull/7.patch
b.. https://github.com/gperciva/gub/pull/7.diff

@jrioux
Copy link
Collaborator Author

jrioux commented Sep 16, 2013

Switching back to the master branch should be sufficient. But if you want to completely avoid any problems, just check the branch out in a completely new, separate directory (a separate clone) than what you have been using. GUB will need to build everything from scratch.

@PhilHolmes
Copy link
Collaborator

Updates on GUB checked out OK, and GUB ran OK. Should be OK to push to master.

FWIW GUB can be reset with a git reset --hard origin/master

Phil Holmes

----- Original Message -----
From: Julien Rioux
To: gperciva/gub
Cc: PhilHolmes
Sent: Monday, September 16, 2013 10:10 AM
Subject: Re: [gub] Successful LilyPond build (#7)

Switching back to the master branch should be sufficient. But if you want to completely avoid any problems, just check the branch out in a completely new, separate directory (a separate clone) than what you have been using. GUB will need to build everything from scratch.


Reply to this email directly or view it on GitHub.

@jrioux
Copy link
Collaborator Author

jrioux commented Sep 16, 2013

Thanks for testing.

@fedelibre
Copy link

fedelibre commented Sep 28, 2018

@jrioux it's a pity that this PR was forgotten... (imagemagick commit is now obsolete, BTW).

I have the feeling that one of these patches, specifically the one disabling makeinfo for gcc, might solve the problem me and others encountered when trying to build with GUB in modern distros.

I'm now trying to rebase your third commit in this PR on top of pull #46, but I don't have the Python skills to resolve the rebase conflicts (on one file only actually) and make sure your changes are still valid on current GUB.

I wonder if you feel like hacking on GUB again.

@fedelibre
Copy link

I must say that I'm using MAKEINFO=missing instead of your MAKEINFO=no, because this is what I found online, for example here.

@fedelibre
Copy link

Find attached the patch I tried some days ago. Can't remember how it went.. I'm doing too many things at the same time.. I'll try again sooner or later..
0001-Don-t-build-info-docs-for-gcc-and-guile.txt

@Bobo1239
Copy link

@fedelibre Applying the patch did work for me (using LilyDev). Now my build stops here...

@fedelibre
Copy link

@Bobo1239 I've just tried above patch (in my comment of 8th of October) on lilydev debian container (testing your PR). It fails as described on lilypond issue 5420.

How did you make it work exactly?

@Bobo1239
Copy link

Bobo1239 commented Nov 11, 2018

@fedelibre I'm not getting the error anymore even without the patch...
Maybe it's because I'm just running make lilypond now and the problem only occurs with make boostrap (which I've used previously). Trying make boostrap now and will report back once it's finished.

btw: Here are the commands I've ran after logging in to the Debian container:

su dev
cd ~
./setup
git clone https://github.com/gperciva/gub
cd gub
make lilypond
wget http://lilypond.org/downloads/binaries/test-output/lilypond-2.19.82-1.test-output.tar.bz2
mv lilypond-2.19.82-1.test-output.tar.bz2 regtests/
touch regtests/ignore
make lilypond

edit: Welp, this is strange. make bootstrap also succeeded. I'll rebuild everything from scratch and try again...

@fedelibre
Copy link

Perhaps you uninstalled texinfo package? I know that Phil did not have it installed in his VM and this may be a reason why he never had such a problem.

@Bobo1239
Copy link

Bobo1239 commented Nov 12, 2018

Ok, the problem only occurs if you run make bootstrap before make lilypond (for whatever reason). Have you tried only make lilypond yet?

I'm using my LilyDev PR branch and haven't uninstalled anything so texinfo was still available in my tests.

@Bobo1239
Copy link

Yeah, the patch unfortunately doesn't fix the problem. But you can work around it by not running make bootstrap before make lilypond.

@fedelibre
Copy link

It's not a workaround. You must run make bootstrap before make lilypond or the build won't work.

Also, the first run of make bootstrap is successful for me.
The problem occurs when running make lilypond and also when running make bootstrap again after running make lilypond.

I tried removing texinfo package but did not help. If I had time I would try again from scratch without texinfo installed from the very beginning. But I'm getting demotivated with this trial&error work in GUB...

@Bobo1239
Copy link

I was not aware of that as the GUB readme suggests that the bootstrap is optional. Also because make lilypond still did boostrap gcc and everything else.

Your observations match mine.

I'll try it without the texinfo package but I'm also getting discouraged. Not to mention that there's the python issue waiting after this is fixed...

@Bobo1239
Copy link

And... it didn't work even without texinfo from the very start (I just removed the package entry in mkosi.debian).

@fedelibre
Copy link

You may have just removed it from the existing container with apt remove texinfo.

Anyway, I followed the Notes on build with GUB of LilyPond documentation.
Perhaps lilypond target depends on bootstrap target, so it doesn't really matter.

@Bobo1239
Copy link

Bobo1239 commented Nov 13, 2018

Yeah, that's also my suspicion. But why does it work on @PhilHolmes's VM/machine?

lemzwerg pushed a commit to lemzwerg/gub that referenced this pull request Dec 19, 2018
This is a rebased and updated version of

  gperciva#7

condensed into a single commit.

* *.make: Use $(GUB) and $(PYTHON) instead of `bin/gub' and `python',
  respectively.
* bin/gib: Print help message if run without arguments.
* bin/gub: Remove unnecessary lambda.
* gub/dependency.py: Avoid
    TypeError: issubclass() arg 1 must be a class.
* gcc.py, guile.py: Don't build info docs.
* lilypond-doc.py, lilypond-test.py: Don't run `dblatex' regression tests.
@lemzwerg
Copy link

I've updated this pull request and condensed it into a single commit as part of #51.

@lemzwerg
Copy link

This pull request can be closed now.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants