googlefonts/fontmake

don't try to make variable fonts when source only has one master

Open

#420 opened on Apr 21, 2018

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Python (96 forks)github user discovery
good first issuehelp wanted

Repository metrics

Stars
 (884 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 809, in merge assert self.Format == 1 AssertionError: ('Anchor', '.EntryAnchor', 'EntryExitRecord', '[19]', 'list', '.EntryExitRecord', 'CursivePos', '[0]', 'Lookup', '[18]', 'list', '.Lookup', 'LookupList', '.LookupList', 'GPOS', '.table', 'table_G_P_O_S_')

while compiling https://github.com/googlei18n/noto-source/blob/master/src/NotoSansNewa/NotoSansNewa.plist

is it source or code or my setup issue?

============= src/NotoSansOldPermic/NotoSansOldPermic.plist ============== INFO:fontmake.font_project:Building master UFOs and designspace from Glyphs source INFO:glyphsLib.parser:Parsing .glyphs file INFO:glyphsLib:Loading to UFOs INFO:glyphsLib.util:Writing master_ufo/NotoSansOldPermic-Regular.ufo INFO:fontmake.font_project:Building OTFs INFO:fontmake.font_project:Decomposing glyphs for NotoSansOldPermic-Regular INFO:fontmake.font_project:Removing overlaps for NotoSansOldPermic-Regular INFO:fontmake.font_project:Saving OTF for NotoSansOldPermic-Regular INFO:fontmake.font_project:Building TTFs INFO:fontmake.font_project:Decomposing glyphs for NotoSansOldPermic-Regular INFO:fontmake.font_project:Removing overlaps for NotoSansOldPermic-Regular INFO:fontmake.font_project:Converting curves for NotoSansOldPermic-Regular INFO:cu2qu.ufo:New spline lengths: 1: 22, 2: 225, 3: 26, 4: 3, 5: 1 INFO:fontmake.font_project:Saving TTF for NotoSansOldPermic-Regular INFO:fontmake.font_project:Building master UFOs and designspace from Glyphs source INFO:glyphsLib.parser:Parsing .glyphs file INFO:glyphsLib:Loading to UFOs INFO:glyphsLib.util:Writing master_ufo/NotoSansOldPermic-Regular.ufo INFO:fontmake.font_project:Interpolating master UFOs from designspace INFO:mutatorMath:Reading master_ufo/NotoSansOldPermic-Regular.designspace INFO:mutatorMath: Generating instance NotoSansOldPermic-Regular.ufo INFO:fontmake.font_project:Building OTFs INFO:fontmake.font_project:Decomposing glyphs for NotoSansOldPermic-Regular INFO:fontmake.font_project:Removing overlaps for NotoSansOldPermic-Regular INFO:fontmake.font_project:Saving OTF for NotoSansOldPermic-Regular INFO:fontTools.varLib:Axes: OrderedDict([('weight', {'map': {400.0: 90.0}, 'name': 'weight', 'default': 400.0, 'tag': 'wght', 'maximum': 400.0, 'minimum': 400.0, 'labelname': {'en': 'Weight'}}), ('width', {'map': {100.0: 100.0}, 'name': 'width', 'default': 100.0, 'tag': 'wdth', 'maximum': 100.0, 'minimum': 100.0, 'labelname': {'en': 'Width'}}), ('custom', {'map': {0.0: 0.0}, 'name': 'custom', 'default': 0.0, 'tag': 'XXXX', 'maximum': 0.0, 'minimum': 0.0, 'labelname': {'en': 'Custom'}})]) INFO:fontTools.varLib:Internal master locations: [{'custom': 0.0, 'weight': 90.0, 'width': 100.0}] INFO:fontTools.varLib:Internal axis supports: {'custom': [0.0, 0.0, 0.0], 'weight': [90.0, 90.0, 90.0], 'width': [100.0, 100.0, 100.0]} INFO:fontTools.varLib:Normalized master locations: [{'custom': 0.0, 'weight': 0.0, 'width': 0.0}] INFO:fontTools.varLib:Index of base master: 0 INFO:fontTools.varLib.interpolate_layout:Building interpolated font INFO:fontTools.varLib.interpolate_layout:Loading master fonts INFO:fontTools.varLib.interpolate_layout:Location: {'custom': 0.0, 'weight': 90.0, 'width': 100.0} INFO:fontTools.varLib.interpolate_layout:Internal location: {'custom': 0.0, 'weight': 90.0, 'width': 100.0} INFO:fontTools.varLib.interpolate_layout:Normalized location: {'custom': 0.0, 'weight': 0.0, 'width': 0.0} INFO:fontTools.varLib.interpolate_layout:Building interpolated tables INFO:fontmake.font_project:Building TTFs INFO:fontmake.font_project:Decomposing glyphs for NotoSansOldPermic-Regular INFO:fontmake.font_project:Removing overlaps for NotoSansOldPermic-Regular INFO:fontmake.font_project:Converting curves for NotoSansOldPermic-Regular INFO:cu2qu.ufo:New spline lengths: 1: 22, 2: 225, 3: 26, 4: 3, 5: 1 INFO:fontmake.font_project:Saving TTF for NotoSansOldPermic-Regular INFO:fontTools.varLib:Axes: OrderedDict([('weight', {'map': {400.0: 90.0}, 'name': 'weight', 'default': 400.0, 'tag': 'wght', 'maximum': 400.0, 'minimum': 400.0, 'labelname': {'en': 'Weight'}}), ('width', {'map': {100.0: 100.0}, 'name': 'width', 'default': 100.0, 'tag': 'wdth', 'maximum': 100.0, 'minimum': 100.0, 'labelname': {'en': 'Width'}}), ('custom', {'map': {0.0: 0.0}, 'name': 'custom', 'default': 0.0, 'tag': 'XXXX', 'maximum': 0.0, 'minimum': 0.0, 'labelname': {'en': 'Custom'}})]) INFO:fontTools.varLib:Internal master locations: [{'custom': 0.0, 'weight': 90.0, 'width': 100.0}] INFO:fontTools.varLib:Internal axis supports: {'custom': [0.0, 0.0, 0.0], 'weight': [90.0, 90.0, 90.0], 'width': [100.0, 100.0, 100.0]} INFO:fontTools.varLib:Normalized master locations: [{'custom': 0.0, 'weight': 0.0, 'width': 0.0}] INFO:fontTools.varLib:Index of base master: 0 INFO:fontTools.varLib.interpolate_layout:Building interpolated font INFO:fontTools.varLib.interpolate_layout:Loading master fonts INFO:fontTools.varLib.interpolate_layout:Location: {'custom': 0.0, 'weight': 90.0, 'width': 100.0} INFO:fontTools.varLib.interpolate_layout:Internal location: {'custom': 0.0, 'weight': 90.0, 'width': 100.0} INFO:fontTools.varLib.interpolate_layout:Normalized location: {'custom': 0.0, 'weight': 0.0, 'width': 0.0} INFO:fontmake.font_project:Building master UFOs and designspace from Glyphs source INFO:glyphsLib.parser:Parsing .glyphs file INFO:glyphsLib:Loading to UFOs INFO:glyphsLib.util:Writing master_ufo/NotoSansNewa-Regular.ufo INFO:fontmake.font_project:Building OTFs INFO:fontmake.font_project:Decomposing glyphs for NotoSansNewa-Regular INFO:fontmake.font_project:Removing overlaps for NotoSansNewa-Regular INFO:fontmake.font_project:Saving OTF for NotoSansNewa-Regular INFO:fontmake.font_project:Building TTFs INFO:fontmake.font_project:Decomposing glyphs for NotoSansNewa-Regular INFO:fontmake.font_project:Removing overlaps for NotoSansNewa-Regular INFO:fontmake.font_project:Converting curves for NotoSansNewa-Regular INFO:cu2qu.ufo:New spline lengths: 1: 711, 2: 3607, 3: 845, 4: 167, 5: 30, 6: 76 INFO:fontmake.font_project:Saving TTF for NotoSansNewa-Regular INFO:fontmake.font_project:Building master UFOs and designspace from Glyphs source INFO:glyphsLib.parser:Parsing .glyphs file INFO:glyphsLib:Loading to UFOs INFO:glyphsLib.util:Writing master_ufo/NotoSansNewa-Regular.ufo INFO:fontmake.font_project:Interpolating master UFOs from designspace INFO:mutatorMath:Reading master_ufo/NotoSansNewa-Regular.designspace INFO:mutatorMath: Generating instance NotoSansNewa-Regular.ufo INFO:fontmake.font_project:Building OTFs INFO:fontmake.font_project:Decomposing glyphs for NotoSansNewa-Regular INFO:fontmake.font_project:Removing overlaps for NotoSansNewa-Regular INFO:fontmake.font_project:Saving OTF for NotoSansNewa-Regular INFO:fontTools.varLib:Axes: OrderedDict([('weight', {'map': {400.0: 100.0}, 'name': 'weight', 'default': 400.0, 'tag': 'wght', 'maximum': 400.0, 'minimum': 400.0, 'labelname': {'en': 'Weight'}}) , ('width', {'map': {100.0: 100.0}, 'name': 'width', 'default': 100.0, 'tag': 'wdth', 'maximum': 100.0, 'minimum': 100.0, 'labelname': {'en': 'Width'}}), ('custom', { 'map': {0.0: 0.0}, 'name': 'custom', 'default': 0.0, 'tag': 'XXXX', 'maximum': 0.0, 'minimum': 0.0, 'labelname': {'en': 'Custom'}})]) INFO:fontTools.varLib:Internal master locations: [{'custom': 0.0, 'weight': 100.0, 'width': 100.0}] INFO:fontTools.varLib:Internal axis supports: {'custom': [0.0, 0.0, 0.0], 'weight': [100.0, 100.0, 100.0], 'width': [100.0, 100.0, 100.0]} INFO:fontTools.varLib:Normalized master locations: [{'custom': 0.0, 'weight': 0.0, 'width': 0.0}] INFO:fontTools.varLib:Index of base master: 0 INFO:fontTools.varLib.interpolate_layout:Building interpolated font INFO:fontTools.varLib.interpolate_layout:Loading master fonts INFO:fontTools.varLib.interpolate_layout:Location: {'custom': 0.0, 'weight': 100.0, 'width': 100.0} INFO:fontTools.varLib.interpolate_layout:Internal location: {'custom': 0.0, 'weight': 100.0, 'width': 100.0} INFO:fontTools.varLib.interpolate_layout:Normalized location: {'custom': 0.0, 'weight': 0.0, 'width': 0.0} INFO:fontTools.varLib.interpolate_layout:Building interpolated tables INFO:fontmake.font_project:Building TTFs INFO:fontmake.font_project:Decomposing glyphs for NotoSansNewa-Regular INFO:fontmake.font_project:Removing overlaps for NotoSansNewa-Regular INFO:fontmake.font_project:Converting curves for NotoSansNewa-Regular INFO:cu2qu.ufo:New spline lengths: 1: 711, 2: 3607, 3: 845, 4: 167, 5: 30, 6: 76 INFO:fontmake.font_project:Saving TTF for NotoSansNewa-Regular INFO:fontTools.varLib:Axes: OrderedDict([('weight', {'map': {400.0: 100.0}, 'name': 'weight', 'default': 400.0, 'tag': 'wght', 'maximum': 400.0, 'minimum': 400.0, 'labelname': {'en': 'Weight'}}), ('width', {'map': {100.0: 100.0}, 'name': 'width', 'default': 100.0, 'tag': 'wdth', 'maximum': 100.0, 'minimum': 100.0, 'labelname': {'en': 'Width'}}), ('custom', {'map': {0.0: 0.0}, 'name': 'custom', 'default': 0.0, 'tag': 'XXXX', 'maximum': 0.0, 'minimum': 0.0, 'labelname': {'en': 'Custom'}})]) INFO:fontTools.varLib:Internal master locations: [{'custom': 0.0, 'weight': 100.0, 'width': 100.0}] INFO:fontTools.varLib:Internal axis supports: {'custom': [0.0, 0.0, 0.0], 'weight': [100.0, 100.0, 100.0], 'width': [100.0, 100.0, 100.0]} INFO:fontTools.varLib:Normalized master locations: [{'custom': 0.0, 'weight': 0.0, 'width': 0.0}] INFO:fontTools.varLib:Index of base master: 0 INFO:fontTools.varLib.interpolate_layout:Building interpolated font INFO:fontTools.varLib.interpolate_layout:Loading master fonts INFO:fontTools.varLib.interpolate_layout:Location: {'custom': 0.0, 'weight': 100.0, 'width': 100.0} INFO:fontTools.varLib.interpolate_layout:Internal location: {'custom': 0.0, 'weight': 100.0, 'width': 100.0} INFO:fontTools.varLib.interpolate_layout:Normalized location: {'custom': 0.0, 'weight': 0.0, 'width': 0.0} INFO:fontTools.varLib.interpolate_layout:Building interpolated tables INFO:fontmake.font_project:Building master UFOs and designspace from Glyphs source INFO:glyphsLib.parser:Parsing .glyphs file INFO:glyphsLib:Loading to UFOs INFO:glyphsLib.util:Writing master_ufo/NotoSansNewa-Regular.ufo INFO:fontmake.font_project:Building interpolation-compatible TTFs INFO:fontmake.font_project:Converting curves compatibly INFO:cu2qu.ufo:New spline lengths: 1: 274, 2: 3318, 3: 1107, 4: 218, 5: 42, 6: 77, 7: 1 INFO:fontmake.font_project:Saving TTF for NotoSansNewa-Regular INFO:fontmake.font_project:Building variable font variable_ttf/NotoSansNewa-Regular-VF.ttf INFO:fontTools.varLib:Axes: OrderedDict([('weight', {'map': {400.0: 100.0}, 'name': 'weight', 'default': 400.0, 'tag': 'wght', 'maximum': 400.0, 'minimum': 400.0, 'labelname': {'en': 'Weight'}}), ('width', {'map': {100.0: 100.0}, 'name': 'width', 'default': 100.0, 'tag': 'wdth', 'maximum': 100.0, 'minimum': 100.0, 'labelname': {'en': 'Width'}}), ('custom', {'map': {0.0: 0.0}, 'name': 'custom', 'default': 0.0, 'tag': 'XXXX', 'maximum': 0.0, 'minimum': 0.0, 'labelname': {'en': 'Custom'}})]) INFO:fontTools.varLib:Internal master locations: [{'custom': 0.0, 'weight': 100.0, 'width': 100.0}] INFO:fontTools.varLib:Internal axis supports: {'custom': [0.0, 0.0, 0.0], 'weight': [100.0, 100.0, 100.0], 'width': [100.0, 100.0, 100.0]} INFO:fontTools.varLib:Normalized master locations: [{'custom': 0.0, 'weight': 0.0, 'width': 0.0}] INFO:fontTools.varLib:Index of base master: 0 INFO:fontTools.varLib:Building variable font INFO:fontTools.varLib:Loading master fonts INFO:fontTools.varLib:Generating fvar INFO:fontTools.varLib:Generating avar INFO:fontTools.varLib:No need for avar INFO:fontTools.varLib:Building variations tables INFO:fontTools.varLib:Generating MVAR INFO:fontTools.varLib:Generating HVAR INFO:fontTools.varLib:Merging OpenType Layout tables Traceback (most recent call last): File "/Users/marekj/release/noto-source/env/bin/fontmake", line 11, in load_entry_point('fontmake==1.4.0', 'console_scripts', 'fontmake')() File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontmake/main.py", line 186, in main project.run_from_glyphs(glyphs_path, **args) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontmake/font_project.py", line 369, in run_from_glyphs designspace_path, instance_data=instance_data, **kwargs) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontmake/font_project.py", line 437, in run_from_designspace interpolate_layout_from=interpolate_layout_from, **kwargs) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontmake/font_project.py", line 496, in run_from_ufos self.build_variable_font(designspace_path) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontmake/font_project.py", line 220, in build_variable_font font, _, _ = varLib.build(designspace_path, finder) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/init.py", line 720, in build _merge_OTL(vf, model, master_fonts, axisTags) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/init.py", line 513, in merge_OTL merger.mergeTables(font, master_fonts, ['GPOS']) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 107, in mergeTables self.mergeThings(font[tag], [m[tag] for m in master_ttfs]) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 94, in mergeThings self.mergeObjects(out, lst) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 71, in mergeObjects mergerFunc(self, value, values) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 94, in mergeThings self.mergeObjects(out, lst) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 71, in mergeObjects mergerFunc(self, value, values) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 94, in mergeThings self.mergeObjects(out, lst) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 71, in mergeObjects mergerFunc(self, value, values) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 96, in mergeThings self.mergeLists(out, lst) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 81, in mergeLists self.mergeThings(value, values) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 92, in mergeThings mergerFunc(self, out, lst) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 622, in merge merger.mergeLists(self.SubTable, subtables) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 81, in mergeLists self.mergeThings(value, values) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 94, in mergeThings self.mergeObjects(out, lst) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 71, in mergeObjects mergerFunc(self, value, values) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 96, in mergeThings self.mergeLists(out, lst) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 81, in mergeLists self.mergeThings(value, values) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 94, in mergeThings self.mergeObjects(out, lst) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 71, in mergeObjects mergerFunc(self, value, values) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 92, in mergeThings mergerFunc(self, out, lst) File "/Users/marekj/release/noto-source/env/lib/python2.7/site-packages/fontTools/varLib/merger.py", line 809, in merge assert self.Format == 1 AssertionError: ('Anchor', '.EntryAnchor', 'EntryExitRecord', '[19]', 'list', '.EntryExitRecord', 'CursivePos', '[0]', 'Lookup', '[18]', 'list', '.Lookup', 'LookupList', '.LookupList', 'GPOS', '.table', 'table_G_P_O_S')

Contributor guide