Menu

#5811 mf: use python scripting for generating Emmentaler fonts

Fixed
2020-04-12
2020-02-29
No

This gets rid of the ugly generated FontForge scripts, and avoids some
intermediate files.

Remove sequencing on |pfb . This was introduced in e6a5019 (Jun 28
2012, "Clean fonts and docs makefiles"). The race conditions were
fixed in f6dc5e (May 15 2014, "Generate a .pe script for one design
size at a time.")

Remove XXX.fontname files. They appear to be unused.

https://codereview.appspot.com/553580043

Discussion

1 2 > >> (Page 1 of 2)
  • Han-Wen Nienhuys

     
  • Han-Wen Nienhuys

     
  • Anonymous

    Anonymous - 2020-02-29
    • Description has changed:

    Diff:

    
    
    • Needs: -->
    • Patch: new --> needs_work
    • Type: -->
     
  • Anonymous

    Anonymous - 2020-02-29

    This fails make.

    e.g

    ...
    Making mf/out/feta14.pfb < mf
    Copyright (c) 2000-2014 by George Williams. See AUTHORS for Contributors.
     License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
     with many parts BSD <http://fontforge.org/license.html>. Please read LICENSE.
     Based on sources from 11:21 UTC 24-Sep-2017-ML-D.
     Based on source from git with hash: 
    Making mf/out/feta-noteheads14.pfb < mf
    Copyright (c) 2000-2014 by George Williams. See AUTHORS for Contributors.
     License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
     with many parts BSD <http://fontforge.org/license.html>. Please read LICENSE.
     Based on sources from 11:21 UTC 24-Sep-2017-ML-D.
     Based on source from git with hash: 
    Making mf/out/feta-flags14.pfb < mf
    Copyright (c) 2000-2014 by George Williams. See AUTHORS for Contributors.
     License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
     with many parts BSD <http://fontforge.org/license.html>. Please read LICENSE.
     Based on sources from 11:21 UTC 24-Sep-2017-ML-D.
     Based on source from git with hash: 
    Copyright (c) 2000-2014 by George Williams. See AUTHORS for Contributors.
     License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
     with many parts BSD <http://fontforge.org/license.html>. Please read LICENSE.
     Based on sources from 11:21 UTC 24-Sep-2017-ML-D.
     Based on source from git with hash: 
    Internal Error (overlap) in scripts.slashturn: Fixup error 2 in MergeIntersections.
    Internal Error (overlap) in scripts.slashturn: Could not find finalmInternal Error (overlap) in scripts.segno: monotonic is both needed and unneeded (0.0635015,-58.6347)->(-182.282,-375.001). x=-39.5852 (prev=-32.4157)
    Internal Error (overlap) in scripts.segno: monotonic is both needed and unneeded (-162.033,275.793)->(-0.0640036,58.6348). x=-39.5852 (prev=-32.4157)
    Internal Error (overlap) in scripts.segno: monotonic is both needed and unneeded (-19.7205,163.566)->(-82.5272,231.383). x=-39.5852 (prev=-32.4157)
    Internal Error (overlap) in scripts.segno: monotonic is both needed and unneeded (-103.009,375.001)->(39.585,227.545). x=-39.5852 (prev=-32.4157)
    Internal Error (overlap) in scripts.segno: Winding number did not return to 0 when x=-39.5852
    ...
    ... lots of lines similar for different glyphs
    ...
    Internal Error (overlap) in rests.2neomensural: couldn't find a needed exit from an intersection
    Internal Error (overlap) in rests.2neomensural: Humph. This monotonic leads nowhere (37.772,200.014)->(45.1133,199.299).
    Internal Error (overlap) in rests.2neomensural: couldn't find a needed exit from an intersection
    Internal Error (overlap) in clefs.neomensural.c_change: Winding number did not return to 0 when x=448.453
    Internal Error (overlap) in clefs.neomensural.c_change: monotonic is both needed and unneeded (469.651,181.764)->(490.849,160.567). x=477.146 (prev=448.453)
    Internal Error (overlap) in clefs.neomensural.c_change: monotonic is both needed and unneeded (469.651,400.002)->(484.641,394.781). x=477.146 (prev=448.453)
    Internal Error (overlap) in clefs.neomensural.c_change: monotonic is both needed and unneeded (448.453,160.567)->(448.453,382.178). y=281.971 (prev=448.453)
    Internal Error (overlap) in clefs.neomensural.c_change: monotonic is both needed and unneeded (490.85,382.178)->(490.849,160.567). y=281.971 (prev=448.453)
    Internal Error (overlap) in clefs.neomensural.c_change: Winding number did not return to 0 when x=448.453
    Internal Error (overlap) in clefs.neomensural.c_change: Winding number did not return to 0 when x=448.453
    Internal Error (overlap) in clefs.neomensural.c_change: Winding number did not return to 0 when x=448.453
    Internal Error (overlap) in clefs.neomensural.c_change: Winding number did not return to 0 when x=448.453
    Internal Error (overlap) in clefs.neomensural.c_change: Humph. This monotonic leads nowhere (448.453,160.567)->(448.453,160.567).
    Internal Error (overlap) in clefs.neomensural.c_change: couldn't find a needed exit from an intersection
    /home/james/lilypond-git/build/../stepmake/stepmake/generic-targets.make:6: recipe for target 'all' failed
    make: *** [all] Error 2
    

    There's a lot of noise as it fails so I just gave the first few and last few lines for brevity

     
  • Han-Wen Nienhuys

     
  • Han-Wen Nienhuys

     
  • Anonymous

    Anonymous - 2020-02-29
    • Needs: -->
    • Patch: new --> needs_work
    • Type: -->
     
  • Anonymous

    Anonymous - 2020-02-29

    Still fails make - looks a bit different though than before

    ...
    Making mf/out/feta-braces-b.tfm < mf
    Making mf/out/feta-braces-c.tfm < mf
    Making mf/out/feta-braces-d.tfm < mf
    Making mf/out/feta-braces-e.tfm < mf
    Making mf/out/feta-braces-f.tfm < mf
    Making mf/out/feta-braces-g.tfm < mf
    Making mf/out/feta-braces-h.tfm < mf
    Making mf/out/feta-braces-i.tfm < mf
    Making mf/out/mf2pt1.mem < mp
    Making mf/out/feta11.lisp < log
    Making mf/out/feta-noteheads11.lisp < log
    Making mf/out/feta-flags11.lisp < log
    Making mf/out/feta-alphabet11.lisp < log
    Making mf/out/parmesan11.lisp < log
    Traceback (most recent call last):
      File "/home/james/lilypond-git/build/scripts/build/out/mf-to-table", line 164, in <module>
        ['lisp=', 'global-lisp=', ])
      File "/usr/lib/python3.6/getopt.py", line 93, in getopt
        opts, args = do_longs(opts, args[0][2:], longopts, args[1:])
      File "/usr/lib/python3.6/getopt.py", line 157, in do_longs
        has_arg, opt = long_has_args(opt, longopts)
      File "/usr/lib/python3.6/getopt.py", line 174, in long_has_args
        raise GetoptError(_('option --%s not recognized') % opt, opt)
    getopt.GetoptError: option --global-lisp not recognized
    /home/james/lilypond-git/build/.././mf/GNUmakefile:86: recipe for target 'out/feta11.lisp' failed
    make[1]: *** [out/feta11.lisp] Error 1
    make[1]: *** Waiting for unfinished jobs....
    Traceback (most recent call last):
      File "/home/james/lilypond-git/build/scripts/build/out/mf-to-table", line 164, in <module>
        ['lisp=', 'global-lisp=', ])
      File "/usr/lib/python3.6/getopt.py", line 93, in getopt
        opts, args = do_longs(opts, args[0][2:], longopts, args[1:])
      File "/usr/lib/python3.6/getopt.py", line 157, in do_longs
        has_arg, opt = long_has_args(opt, longopts)
      File "/usr/lib/python3.6/getopt.py", line 174, in long_has_args
        raise GetoptError(_('option --%s not recognized') % opt, opt)
    getopt.GetoptError: option --global-lisp not recognized
    /home/james/lilypond-git/build/.././mf/GNUmakefile:86: recipe for target 'out/feta-alphabet11.lisp' failed
    make[1]: *** [out/feta-alphabet11.lisp] Error 1
    Traceback (most recent call last):
      File "/home/james/lilypond-git/build/scripts/build/out/mf-to-table", line 164, in <module>
        ['lisp=', 'global-lisp=', ])
      File "/usr/lib/python3.6/getopt.py", line 93, in getopt
        opts, args = do_longs(opts, args[0][2:], longopts, args[1:])
      File "/usr/lib/python3.6/getopt.py", line 157, in do_longs
        has_arg, opt = long_has_args(opt, longopts)
      File "/usr/lib/python3.6/getopt.py", line 174, in long_has_args
        raise GetoptError(_('option --%s not recognized') % opt, opt)
    getopt.GetoptError: option --global-lisp not recognized
    /home/james/lilypond-git/build/.././mf/GNUmakefile:86: recipe for target 'out/parmesan11.lisp' failed
    make[1]: *** [out/parmesan11.lisp] Error 1
    Traceback (most recent call last):
    Traceback (most recent call last):
      File "/home/james/lilypond-git/build/scripts/build/out/mf-to-table", line 164, in <module>
      File "/home/james/lilypond-git/build/scripts/build/out/mf-to-table", line 164, in <module>
        ['lisp=', 'global-lisp=', ])
        ['lisp=', 'global-lisp=', ])
      File "/usr/lib/python3.6/getopt.py", line 93, in getopt
      File "/usr/lib/python3.6/getopt.py", line 93, in getopt
        opts, args = do_longs(opts, args[0][2:], longopts, args[1:])
        opts, args = do_longs(opts, args[0][2:], longopts, args[1:])
      File "/usr/lib/python3.6/getopt.py", line 157, in do_longs
      File "/usr/lib/python3.6/getopt.py", line 157, in do_longs
        has_arg, opt = long_has_args(opt, longopts)
        has_arg, opt = long_has_args(opt, longopts)
      File "/usr/lib/python3.6/getopt.py", line 174, in long_has_args
      File "/usr/lib/python3.6/getopt.py", line 174, in long_has_args
        raise GetoptError(_('option --%s not recognized') % opt, opt)
        raise GetoptError(_('option --%s not recognized') % opt, opt)
    getopt.GetoptError: option --global-lisp not recognized
    getopt.GetoptError: option --global-lisp not recognized
    /home/james/lilypond-git/build/.././mf/GNUmakefile:86: recipe for target 'out/feta-noteheads11.lisp' failed
    make[1]: *** [out/feta-noteheads11.lisp] Error 1
    /home/james/lilypond-git/build/.././mf/GNUmakefile:86: recipe for target 'out/feta-flags11.lisp' failed
    make[1]: *** [out/feta-flags11.lisp] Error 1
    /home/james/lilypond-git/build/../stepmake/stepmake/generic-targets.make:6: recipe for target 'all' failed
    make: *** [all] Error 2
    
     
  • Han-Wen Nienhuys

     
  • Anonymous

    Anonymous - 2020-03-01
    • Needs: -->
    • Patch: new --> needs_work
    • Type: -->
     
  • Anonymous

    Anonymous - 2020-03-01

    Stilll fails make.

     
  • Han-Wen Nienhuys

     
  • Han-Wen Nienhuys

    I think you may have tested an older version. I rebased, and checked a compile from scratch.

    If you see a failure, can you provide diagnostics?

     
  • Anonymous

    Anonymous - 2020-03-01
    • Needs: -->
    • Patch: new --> needs_work
    • Type: -->
     
  • Anonymous

    Anonymous - 2020-03-01
    ...
     Based on source from git with hash: 
    Making mf/out/00-lilypond-fonts.conf < in
    Making mf/out/99-lilypond-fonts.conf < in
    Making mf/out/fonts.conf 
    Traceback (most recent call last):
      File "/home/james/lilypond-git/mf/gen-emmentaler-brace.fontforge.py", line 40, in <module>
        font.mergeFonts(f)
    TypeError: coercing to Unicode: need string or buffer, fontforge.font found
    /home/james/lilypond-git/build/.././mf/GNUmakefile:117: recipe for target 'out/emmentaler-brace.otf' failed
    make[1]: *** [out/emmentaler-brace.otf] Error 1
    make[1]: *** Waiting for unfinished jobs....
    Copyright (c) 2000-2014 by George Williams. See AUTHORS for Contributors.
     License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
     with many parts BSD <http://fontforge.org/license.html>. Please read LICENSE.
     Based on sources from 11:21 UTC 24-Sep-2017-ML-D.
     Based on source from git with hash: 
    Copyright (c) 2000-2014 by George Williams. See AUTHORS for Contributors.
     License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
     with many parts BSD <http://fontforge.org/license.html>. Please read LICENSE.
     Based on sources from 11:21 UTC 24-Sep-2017-ML-D.
     Based on source from git with hash: 
    Internal Error (overlap) in scripts.reverseturn: Fixup error 2 in MergeIntersections.
    Internal Error (overlap) in scripts.reverseturn: Could not find finalmInternal Error (overlap) in scripts.turn: Fixup error 2 in MergeIntersections.
    Internal Error (overlap) in scripts.turn: Could not find finalmCopyright (c) 2000-2014 by George Williams. See AUTHORS for Contributors.
     License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
     with many parts BSD <http://fontforge.org/license.html>. Please read LICENSE.
     Based on sources from 11:21 UTC 24-Sep-2017-ML-D.
     Based on source from git with hash: 
    Internal Error (overlap) in rests.2neomensural: We're about to create a spline with a very small t-value.
    Internal Error (overlap) in rests.2neomensural: couldn't find a needed exit from an intersection
    Internal Error (overlap) in rests.2neomensural: Humph. This monotonic leads nowhere (37.772,200.014)->(45.1133,199.299).
    Internal Error (overlap) in rests.2neomensural: couldn't find a needed exit from an intersection
    Internal Error (overlap) in clefs.neomensural.c_change: Winding number did not return to 0 when x=448.453
    Internal Error (overlap) in clefs.neomensural.c_change: monotonic is both needed and unneeded (469.651,181.764)->(490.849,160.567). x=477.146 (prev=448.453)
    Internal Error (overlap) in clefs.neomensural.c_change: monotonic is both needed and unneeded (469.651,400.002)->(484.641,394.781). x=477.146 (prev=448.453)
    Internal Error (overlap) in clefs.neomensural.c_change: monotonic is both needed and unneeded (448.453,160.567)->(448.453,382.178). y=281.971 (prev=448.453)
    Internal Error (overlap) in clefs.neomensural.c_change: monotonic is both needed and unneeded (490.85,382.178)->(490.849,160.567). y=281.971 (prev=448.453)
    Internal Error (overlap) in clefs.neomensural.c_change: Winding number did not return to 0 when x=448.453
    Internal Error (overlap) in clefs.neomensural.c_change: Winding number did not return to 0 when x=448.453
    Internal Error (overlap) in clefs.neomensural.c_change: Winding number did not return to 0 when x=448.453
    Internal Error (overlap) in clefs.neomensural.c_change: Winding number did not return to 0 when x=448.453
    Internal Error (overlap) in clefs.neomensural.c_change: Humph. This monotonic leads nowhere (448.453,160.567)->(448.453,160.567).
    Internal Error (overlap) in clefs.neomensural.c_change: couldn't find a needed exit from an intersection
    /home/james/lilypond-git/build/../stepmake/stepmake/generic-targets.make:6: recipe for target 'all' failed
    make: *** [all] Error 2
    
     
  • Han-Wen Nienhuys

     
  • Anonymous

    Anonymous - 2020-03-03
    • Needs: -->
    • Patch: new --> review
    • Type: -->
     
  • Anonymous

    Anonymous - 2020-03-03

    Passes make, make check and a full make doc \o/

     
  • Anonymous

    Anonymous - 2020-03-05
    • Patch: review --> countdown
     
  • Anonymous

    Anonymous - 2020-03-05

    Patch on countdown for March 7th

     
  • Jonas Hahnfeld

    Jonas Hahnfeld - 2020-03-05
    • Patch: countdown --> waiting
     
  • Jonas Hahnfeld

    Jonas Hahnfeld - 2020-03-05

    As I said on Rietveld, this will likely break release builds with GUB. Setting to waiting for now.

     
  • Han-Wen Nienhuys

     
1 2 > >> (Page 1 of 2)