bug-lilypond
[Top][All Lists]
Advanced

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

LilyPond 2.1.9: makefiles, mftrace/potrace, bison 1.875


From: Matthias Kilian
Subject: LilyPond 2.1.9: makefiles, mftrace/potrace, bison 1.875
Date: Sun, 18 Jan 2004 22:54:51 +0100
User-agent: Mutt/1.3.28i

Hi,

when trying to build LilyPond 2.1.9, I ran into some problems, all of
which I managed to fix/workaround, so you may probably be interested. Two
problems are directly related to the LilyPond sources, the other two
are related to bison 1.875 and mftrace/potrace, but may nevertheless be
mentioned in the section "Problems" of the installation guide (especially
that evil mftrace/potrace beast, see below).

First, the versions of used packages I used to build LilyPond:

mftrace 1.0.26
AutoTrace 0.31.1
potrace 1.2 (won't work, see below)
Python 2.3.2
gcc 3.3.2
bison 1.875 (with patch, see below)
flex 2.5.31
texinfo 4.6
GNU Make 3.80
kpathsea version 3.4.5 (teTeX-2.0.2)
Guile 1.6.0


So to the problems:

When using shell other than bash (or a bash restricted to POSIX), make web
will fail to copy several .png and .ly files to their final destination.
That's due to the use of  the {,,,} globbing feature of bash within
Documentation/user/GNUMakefile:

        -cp -f $(outdir)/*.{png,ly} $(outdir)/lilypond

AFAIK, that globbing is very bash-specific. Fixed in attached
lilypond-2.1.9.patch.


Next, the pfa_trace target in mf/GNUMakefile is broken if the
value of MFTRACE contains an absolute path (anything else than just
`mftrace'). Also fixed in lilypond-2.1.9.patch (I just replaced $(basedir
...) by $(notdir ...)). However, even with this fix, MFTRACE will still
be restricted to some program called `mftrace', not `my-mftrace' or
`better-than-mftrace', so that pfa_trace target should be rewritten. It
would also nice to have configure recognice an MFTRACEFLAGS environment
variable.  That would simplify the workaround on the potrace bug
mentioned below.


The third problem is triggered by a bug in bison-1.875:
compilation fails with "parse error before `goto'" in line
4922 due to a bug in bison. To fix, either recompile bison 1.875 with
the attached bison-1.875.patch or:

   $ cd lily; make out/parser.cc
   $ vi +4919 out/parser.cc
   # append a semicolon to the line containing "__attribute__ ((__unused__))
   # save
   $ make


The last problem is related to potrace.  When both, autotrace
*and* potrace are installed, mftrace seems to prefer potrace. However,
whith potrace installed, there will be several error messages in the
LilyPond build like this:

| Tracing bitmaps... [33warning: potrace: command exited with value 139 
(ignored) warning: Trace failed on bitmap. Bitmap left in 
`/usr/local/src/sound/LilyPond/lilypond-2.1.9/mf/trace-bug-feta-din10.7227gf-33.pbm'
| Failed command was:
| 
|       potrace -u 1   -q -c --eps --output=char.eps 
/usr/local/src/sound/LilyPond/lilypond-2.1.9/mf/trace-bug-feta-din10.7227gf-33.pbm
 
|       
| Please submit a bugreport to potrace development.
| Continuing trace...
| warning: Failed, skipping character.
| (skipping character)][102][109][112][114][115](624.0, 924.0)

That happens for all feta-din* as well as for feta-nummer* fonts.

Unfortunately, after the failure of potrace, mftrace just continues,
so does the whole LilyPond build. You'll end up with a running
(but completely broken) LilyPond. It will vertically displace
clefs, accidentals, stems, ... see attached lily-1269333678.ly and
lily-1269333678.png (taken from the last example from section `Notation
in LilyPond' of the user manual).

Since that bug of mftrace/potrace is hard to find (it tokk me two days),
it should me mentioned in INSTALL.txt and INSTALL.html, in *bold* face :-)

To fix that potrace problem, either don't install potrace but only autotrace,
or create a simple wrapper script `mftrace' within the LilyPond source
directory:

$ cd lilypond-2.1.9
$ cat > mftrace
#!/bin/sh
exec /usr/local/bin/mftrace --autotrace "$@"
^D
$ chmod +x mftrace

Then, just run ./configure with MFTRACE set to `pwd`/mftrace:

$ MFTRACE=`pwd`/mftrace ./configure

With all those fixes, LilyPond 2.1.9 seems to work great.

Ciao,
        Kili

Attachment: lilypond-2.1.9.patch
Description: Text document

Attachment: bison-1.875.patch
Description: Text document

Attachment: lily-1269333678.ly
Description: Text document

Attachment: lily-1269333678.png
Description: Binary data


reply via email to

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