Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

picosvg errors with noto-emoji #10

Open
anthrotype opened this issue Sep 21, 2020 · 8 comments · Fixed by #15
Open

picosvg errors with noto-emoji #10

anthrotype opened this issue Sep 21, 2020 · 8 comments · Fixed by #15

Comments

@anthrotype
Copy link
Member

there are currently 44 noto-emoji SVGs that fail to be converted with picosvg.
For now we'll add them to a BLOCKLIST.txt file and exclude them from the build (#9).

I grouped them below by kind of error messages:

  • unsupported filter:
font-srcs/noto-emoji/svg/emoji_u1f312.svg
ValueError: Unable to process group attrib {'filter': 'url(#s)'}

font-srcs/noto-emoji/svg/emoji_u1f313.svg
ValueError: Unable to process group attrib {'filter': 'url(#p)'}

font-srcs/noto-emoji/svg/emoji_u1f314.svg
ValueError: Unable to process group attrib {'filter': 'url(#q)'}

font-srcs/noto-emoji/svg/emoji_u1f316.svg
ValueError: Unable to process group attrib {'filter': 'url(#s)'}

font-srcs/noto-emoji/svg/emoji_u1f317.svg
ValueError: Unable to process group attrib {'filter': 'url(#s)'}

font-srcs/noto-emoji/svg/emoji_u1f318.svg
ValueError: Unable to process group attrib {'filter': 'url(#s)'}

font-srcs/noto-emoji/svg/emoji_u1f31a.svg
ValueError: Unable to process group attrib {'filter': 'url(#bm)'}

font-srcs/noto-emoji/svg/emoji_u1f31d.svg
ValueError: Unable to process group attrib {'filter': 'url(#ba)'}

font-srcs/noto-emoji/svg/emoji_u1f468_1f3fb_200d_1f692.svg
ValueError: Unable to process group attrib {'filter': 'url(#s)'}

font-srcs/noto-emoji/svg/emoji_u1f468_1f3fc_200d_1f692.svg
ValueError: Unable to process group attrib {'filter': 'url(#q)'}

font-srcs/noto-emoji/svg/emoji_u1f468_1f3fd_200d_1f692.svg
ValueError: Unable to process group attrib {'filter': 'url(#q)'}

font-srcs/noto-emoji/svg/emoji_u1f468_1f3fe_200d_1f692.svg
ValueError: Unable to process group attrib {'filter': 'url(#q)'}

font-srcs/noto-emoji/svg/emoji_u1f468_1f3ff_200d_1f692.svg
ValueError: Unable to process group attrib {'filter': 'url(#q)'}

font-srcs/noto-emoji/svg/emoji_u1f468_200d_1f692.svg
ValueError: Unable to process group attrib {'filter': 'url(#q)'}

font-srcs/noto-emoji/svg/emoji_u1f469_1f3fb_200d_1f692.svg
ValueError: Unable to process group attrib {'filter': 'url(#x)'}

font-srcs/noto-emoji/svg/emoji_u1f469_1f3fc_200d_1f692.svg
ValueError: Unable to process group attrib {'filter': 'url(#v)'}

font-srcs/noto-emoji/svg/emoji_u1f469_1f3fd_200d_1f692.svg
ValueError: Unable to process group attrib {'filter': 'url(#v)'}

font-srcs/noto-emoji/svg/emoji_u1f469_1f3fe_200d_1f692.svg
ValueError: Unable to process group attrib {'filter': 'url(#v)'}

font-srcs/noto-emoji/svg/emoji_u1f469_1f3ff_200d_1f692.svg
ValueError: Unable to process group attrib {'filter': 'url(#v)'}

font-srcs/noto-emoji/svg/emoji_u1f469_200d_1f692.svg
ValueError: Unable to process group attrib {'filter': 'url(#v)'}

font-srcs/noto-emoji/svg/emoji_u1f647_1f3fb_200d_2640.svg
ValueError: Unable to process group attrib {'filter': 'url(#r)'}

font-srcs/noto-emoji/svg/emoji_u1f647_1f3fc_200d_2640.svg
ValueError: Unable to process group attrib {'filter': 'url(#p)'}

font-srcs/noto-emoji/svg/emoji_u1f647_1f3fd_200d_2640.svg
ValueError: Unable to process group attrib {'filter': 'url(#p)'}

font-srcs/noto-emoji/svg/emoji_u1f647_1f3fe_200d_2640.svg
ValueError: Unable to process group attrib {'filter': 'url(#p)'}

font-srcs/noto-emoji/svg/emoji_u1f647_1f3ff_200d_2640.svg
ValueError: Unable to process group attrib {'filter': 'url(#p)'}

font-srcs/noto-emoji/svg/emoji_u1f647_200d_2640.svg
ValueError: Unable to process group attrib {'filter': 'url(#r)'}

font-srcs/noto-emoji/svg/emoji_u1f9be.svg
ValueError: Unable to process group attrib {'filter': 'url(#av)'}

font-srcs/noto-emoji/svg/emoji_u1f9bf.svg
ValueError: Unable to process group attrib {'filter': 'url(#ag)'}

font-srcs/noto-emoji/svg/emoji_u1f9e0.svg
ValueError: Unable to process group attrib {'filter': 'url(#f)'}

  • unsupported mask:

font-srcs/noto-emoji/svg/emoji_u1f391.svg
ValueError: Unable to process group attrib {'mask': 'url(#f)'}

font-srcs/noto-emoji/svg/emoji_u1f481_1f3fb_200d_2640.svg
ValueError: Unable to process group attrib {'mask': 'url(#k)'}

font-srcs/noto-emoji/svg/emoji_u1f481_1f3fc_200d_2640.svg
ValueError: Unable to process group attrib {'mask': 'url(#k)'}

font-srcs/noto-emoji/svg/emoji_u1f481_1f3fd_200d_2640.svg
ValueError: Unable to process group attrib {'mask': 'url(#l)'}

font-srcs/noto-emoji/svg/emoji_u1f481_1f3fe_200d_2640.svg
ValueError: Unable to process group attrib {'mask': 'url(#l)'}

font-srcs/noto-emoji/svg/emoji_u1f481_1f3ff_200d_2640.svg
ValueError: Unable to process group attrib {'mask': 'url(#l)'}

font-srcs/noto-emoji/svg/emoji_u1f481_200d_2640.svg
ValueError: Unable to process group attrib {'mask': 'url(#l)'}

font-srcs/noto-emoji/svg/emoji_u1f6cd.svg
ValueError: Unable to convert to picosvg: BadElement: /svg[0]/mask[11]

  • unsupported pattern:

font-srcs/noto-emoji/svg/emoji_u1f54d.svg
ValueError: Unable to convert to picosvg: BadElement: /svg[0]/pattern[1],BadElement: /svg[0]/pattern[49],BadElement: /svg[0]/pattern[51],BadElement: /svg[0]/pattern[53],BadElement: /svg[0]/pattern[83],BadElement: /svg[0]/pattern[85],BadElement: /svg[0]/pattern[87],BadElement: /svg[0]/pattern[90],BadElement: /svg[0]/pattern[92],BadElement: /svg[0]/pattern[96],BadElement: /svg[0]/pattern[1]/path[0]


font-srcs/noto-emoji/svg/emoji_u1f469_1f3fd_200d_1f91d_200d_1f468_1f3fc.svg
ValueError: Unable to convert to picosvg: BadElement: /svg[0]/text[62]

font-srcs/noto-emoji/svg/emoji_u1f469_1f3fd_200d_1f91d_200d_1f468_1f3fe.svg
ValueError: Unable to convert to picosvg: BadElement: /svg[0]/text[62]

font-srcs/noto-emoji/svg/emoji_u1f46b_1f3fd.svg
ValueError: Unable to convert to picosvg: BadElement: /svg[0]/text[1]

font-srcs/noto-emoji/svg/emoji_u1f947.svg
ValueError: Unable to convert to picosvg: BadElement: /svg[0]/font[1],BadElement: /svg[0]/text[10],BadElement: /svg[0]/font[1]/font-face[0],BadElement: /svg[0]/font[1]/missing-glyph[1],BadElement: /svg[0]/font[1]/glyph[2]

font-srcs/noto-emoji/svg/emoji_u1f948.svg
ValueError: Unable to convert to picosvg: BadElement: /svg[0]/font[1],BadElement: /svg[0]/text[10],BadElement: /svg[0]/font[1]/font-face[0],BadElement: /svg[0]/font[1]/missing-glyph[1],BadElement: /svg[0]/font[1]/glyph[2]

font-srcs/noto-emoji/svg/emoji_u1f949.svg
ValueError: Unable to convert to picosvg: BadElement: /svg[0]/font[1],BadElement: /svg[0]/text[10],BadElement: /svg[0]/font[1]/font-face[0],BadElement: /svg[0]/font[1]/missing-glyph[1],BadElement: /svg[0]/font[1]/glyph[2]
@rsheeter
Copy link
Collaborator

rsheeter commented Nov 12, 2020

Tested on todays picosvg and latest noto-emoji; offenders list has changed a bit.

# create /tmp/try_pico.sh:
#!/bin/bash
picosvg $1 > /dev/null 2>&1 || { echo "FAIL $1"; exit 1; }

# test all the svgs
find path/to/noto-emoji/svg -name "*.svg" -execdir /tmp/try_pico.sh {} \;

The following failures are fixed by small PRs to picosvg:

# gradientTransform rounding error (assert p.almost_equals(p_prime, tolerance=1e-1), f"{p} != {p_prime}")
# FIXED by https://github.com/googlefonts/picosvg/pull/133
FAIL ./emoji_u1f468_200d_1f468_200d_1f466.svg
FAIL ./emoji_u1f918_1f3fe.svg
FAIL ./emoji_u1f9d4_1f3fe.svg
FAIL ./emoji_u1f468_200d_1f469_200d_1f466.svg
FAIL ./emoji_u1f3a8.svg
FAIL ./emoji_u1f9dd_200d_2640.svg
FAIL ./emoji_u1f9d4_1f3fb.svg
FAIL ./emoji_u1f3ea.svg
FAIL ./emoji_u1f468_200d_1f466.svg
FAIL ./emoji_u1f9d4_1f3fc.svg
FAIL ./emoji_u1f9dd_1f3fd_200d_2640.svg
FAIL ./emoji_u270c.svg
FAIL ./emoji_u1f9d4_1f3fb_200d_2640.svg
FAIL ./emoji_u1f964.svg
FAIL ./emoji_u1f9d4_1f3ff_200d_2640.svg
FAIL ./emoji_u1f469_200d_1f466.svg
FAIL ./emoji_u1f46a.svg
FAIL ./emoji_u1f9d4_1f3ff.svg
FAIL ./emoji_u1f3eb.svg
FAIL ./emoji_u1f518.svg
FAIL ./emoji_u26ea.svg
FAIL ./emoji_u1f9d4_1f3fd.svg
FAIL ./emoji_u1f9d4_1f3fe_200d_2640.svg
FAIL ./emoji_u1f4f9.svg
FAIL ./emoji_u1f304.svg
FAIL ./emoji_u1f918_1f3ff.svg
FAIL ./emoji_u1f9d4_200d_2640.svg
FAIL ./emoji_u1f3f0.svg
FAIL ./emoji_u1f9d4_1f3fd_200d_2640.svg
FAIL ./emoji_u1f9c1.svg
FAIL ./emoji_u1f9d4.svg
FAIL ./emoji_u1f3ef.svg
FAIL ./emoji_u1f9d4_1f3fc_200d_2640.svg

# BadElement: symbol
# https://github.com/googlefonts/picosvg/issues/46
# FIXED by https://github.com/googlefonts/picosvg/pull/134
FAIL ./emoji_u1f576.svg
FAIL ./emoji_u1f45c.svg
FAIL ./emoji_u1f48e.svg
FAIL ./emoji_u1f48d.svg

The following errors remain:

# BadElement: image
# These svgs are defective and need to be fixed
FAIL ./emoji_u1f98e.svg
FAIL ./emoji_u1f99b.svg
FAIL ./emoji_u1f9a7.svg

# BadElement: pattern
# Could likely be drawn w/o pattern
FAIL ./emoji_u1f54d.svg

# BadElement: symbol, mask
# Symbol issue fixed by https://github.com/googlefonts/picosvg/pull/134
# mask issue remains.
# The mask seems to be pointless; it just erases an element.
# The rendering in the Illustrator file looks like the svg with the mask removed.
FAIL ./emoji_u1f6cd.svg 

@rsheeter
Copy link
Collaborator

The Noto Svg files with image in them are fixed in googlefonts/noto-emoji@24a33c4

@rsheeter
Copy link
Collaborator

After updating to latest noto-emoji I have only two failures:

FAIL ./emoji_u1f6cd.svg BadElement: /svg[0]/mask
FAIL ./emoji_u1f54d.svg /svg[0]/pattern

For use of mask and pattern respectively.

anthrotype added a commit that referenced this issue Nov 20, 2020
FAIL ./emoji_u1f6cd.svg BadElement: /svg[0]/mask
FAIL ./emoji_u1f54d.svg /svg[0]/pattern

#10 (comment)
@anthrotype anthrotype reopened this Nov 20, 2020
@anthrotype
Copy link
Member Author

I have pointed the noto-emoji git submodule to the latest master branch (with Unicode 13.1 and the fixed-up svgs). Also I have updated the BLOCKLIST.txt file to only include those two remaining SVG files that fail to build.

@rsheeter
Copy link
Collaborator

rsheeter commented Dec 8, 2020

@RoelN do you have good (picosvg-valid) versions of emoji_u1f6cd, emoji_u1f54d by any chance?

@RoelN
Copy link

RoelN commented Dec 8, 2020

@rsheeter Sure, please see your email!

@rsheeter
Copy link
Collaborator

rsheeter commented Dec 9, 2020

@rsheeter Sure, please see your email!

Apparently you've been ahead of me for ages. I should have guessed, ty :)

rsheeter added a commit to googlefonts/noto-emoji that referenced this issue Dec 9, 2020
@tomasdev
Copy link
Member

tomasdev commented Jan 11, 2021

Running picosvg on https://github.com/googlefonts/noto-emoji/blob/master/svg/emoji_u1f54d.svg throws:

emoji_u1f54d.svg
Traceback (most recent call last):
  File "sheet.py", line 20, in <module>
    psvg = svg.topicosvg()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/picosvg/svg.py", line 945, in topicosvg
    svg.topicosvg(inplace=True)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/picosvg/svg.py", line 972, in topicosvg
    "Unable to convert to picosvg: " + ",".join(nano_violations)
ValueError: Unable to convert to picosvg: BadElement: /svg[0]/pattern[1],BadElement: /svg[0]/pattern[49],BadElement: /svg[0]/pattern[51],BadElement: /svg[0]/pattern[53],BadElement: /svg[0]/pattern[83],BadElement: /svg[0]/pattern[85],BadElement: /svg[0]/pattern[87],BadElement: /svg[0]/pattern[90],BadElement: /svg[0]/pattern[91],BadElement: /svg[0]/pattern[95]

On the svg_flags noto-emoji branch https://github.com/googlefonts/noto-emoji/blob/svg_flags/svg/emoji_u1f99b.svg:

emoji_u1f99b.svg
Traceback (most recent call last):
  File "sheet.py", line 20, in <module>
    psvg = svg.topicosvg()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/picosvg/svg.py", line 945, in topicosvg
    svg.topicosvg(inplace=True)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/picosvg/svg.py", line 972, in topicosvg
    "Unable to convert to picosvg: " + ",".join(nano_violations)
ValueError: Unable to convert to picosvg: BadElement: /svg[0]/image[15]

Can we cherry pick 92369721cf4a8cbda31233f5cc10b46464d3c72d into svg_flags ?

@tomasdev tomasdev reopened this Jan 11, 2021
rsheeter added a commit to googlefonts/noto-emoji that referenced this issue Mar 2, 2021
anthrotype added a commit to anthrotype/noto-emoji that referenced this issue Sep 22, 2021
… if this works then on to flags"

This reverts commit 058c440.
sido378 pushed a commit to sido378/noto-emoji that referenced this issue Jul 7, 2022
sido378 pushed a commit to sido378/noto-emoji that referenced this issue Jul 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants