What do the OS/2 fsType bits mean for embedding, and what do fontTools and fontbakery report or enforce about them?
fontbakery v1.1.0 requires fsType 0 in its googlefonts profile and 8 in its microsoft profile (profile-specific, not a contradiction in the spec). No file in the fontTools 4.67.0 subset package mentions fsType or embedding, so the subsetter does not consult bit 8 (no subsetting) by code reading.
fontbakery v1.1.0 requires fsType 0 in its googlefonts profile and 8 in its microsoft profile (profile-specific, not a contradiction in the spec). No file in the fontTools 4.67.0 subset package mentions fsType or embedding, so the subsetter does not consult bit 8 (no subsetting) by code reading.
Curator qualifications: Curator code observation (not run): in mergeOs2FsType the branch 'elif lst[i] & 0x0008' is unreachable because 0x0008 is inside the preceding 0x000C test, so bit 2 is never added for editable-only fonts. Tracing the code, merging one font with fsType 8 and one with 4 gives 0 (installable), less restrictive than either input. Proposed probe for L10 (not authorised here): call mergeOs2FsType([8, 4]). OS/2 spec page (S44) and fontTools O_S_2f_2.py (S45) not refetched. Mapping between fsType and OFL/Apache licence not stated in sources (producer synthesis). Static reading of documents and source; no font parsed and no tool run.
Limitations: Static reading of documents and source; no font parsed and no tool run.
Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
"citations": [
{
"url": "https://learn.microsoft.com/en-us/typography/opentype/spec/os2",
"note": "fontTools subset/ all five files at 16f88cb0 (__init__.py, __main__.py, cff.py, svg.py, util.py; gh api -X GET contents listing); fontTools merge/tables.py lines 107-139; fontTools merge/util.py lines 37-42, 77-94; fontbakery googlefonts/fstype.py at v1.1.0; fontbakery microsoft/fstype.py at v1.1.0"
},
{
"url": "https://github.com/fonttools/fonttools/blob/16f88cb09446ab617a1a788e48ae12e0f0ec5217/Lib/fontTools/ttLib/tables/O_S_2f_2.py",
"note": "fontTools subset/ all five files at 16f88cb0 (__init__.py, __main__.py, cff.py, svg.py, util.py; gh api -X GET contents listing); fontTools merge/tables.py lines 107-139; fontTools merge/util.py lines 37-42, 77-94; fontbakery googlefonts/fstype.py at v1.1.0; fontbakery microsoft/fstype.py at v1.1.0"
},
{
"url": "https://github.com/fonttools/fonttools/blob/16f88cb09446ab617a1a788e48ae12e0f0ec5217/Lib/fontTools/merge/tables.py",
"note": "fontTools subset/ all five files at 16f88cb0 (__init__.py, __main__.py, cff.py, svg.py, util.py; gh api -X GET contents listing); fontTools merge/tables.py lines 107-139; fontTools merge/util.py lines 37-42, 77-94; fontbakery googlefonts/fstype.py at v1.1.0; fontbakery microsoft/fstype.py at v1.1.0"
},
{
"url": "https://github.com/fonttools/fonttools/blob/16f88cb09446ab617a1a788e48ae12e0f0ec5217/Lib/fontTools/subset/__init__.py",
"note": "fontTools subset/ all five files at 16f88cb0 (__init__.py, __main__.py, cff.py, svg.py, util.py; gh api -X GET contents listing); fontTools merge/tables.py lines 107-139; fontTools merge/util.py lines 37-42, 77-94; fontbakery googlefonts/fstype.py at v1.1.0; fontbakery microsoft/fstype.py at v1.1.0"
},
{
"url": "https://github.com/googlefonts/fontbakery/blob/8c5fadc2ed815111e74196d9fa6d669fa545b09c/Lib/fontbakery/checks/vendorspecific/googlefonts/fstype.py",
"note": "fontTools subset/ all five files at 16f88cb0 (__init__.py, __main__.py, cff.py, svg.py, util.py; gh api -X GET contents listing); fontTools merge/tables.py lines 107-139; fontTools merge/util.py lines 37-42, 77-94; fontbakery googlefonts/fstype.py at v1.1.0; fontbakery microsoft/fstype.py at v1.1.0"
},
{
"url": "https://github.com/googlefonts/fontbakery/blob/8c5fadc2ed815111e74196d9fa6d669fa545b09c/Lib/fontbakery/checks/vendorspecific/microsoft/fstype.py",
"note": "fontTools subset/ all five files at 16f88cb0 (__init__.py, __main__.py, cff.py, svg.py, util.py; gh api -X GET contents listing); fontTools merge/tables.py lines 107-139; fontTools merge/util.py lines 37-42, 77-94; fontbakery googlefonts/fstype.py at v1.1.0; fontbakery microsoft/fstype.py at v1.1.0"
},
{
"url": "https://developers.google.com/fonts/terms",
"note": "fontTools subset/ all five files at 16f88cb0 (__init__.py, __main__.py, cff.py, svg.py, util.py; gh api -X GET contents listing); fontTools merge/tables.py lines 107-139; fontTools merge/util.py lines 37-42, 77-94; fontbakery googlefonts/fstype.py at v1.1.0; fontbakery microsoft/fstype.py at v1.1.0"
}
]
}Evidence claims
- [sourced_fact] fontbakery v1.1.0 requires fsType 0 in its googlefonts profile and 8 in its microsoft profile (profile-specific, not a contradiction in the spec). No file in the fontTools 4.67.0 subset package mentions fsType or embedding, so the subsetter does not consult bit 8 (no subsetting) by code reading. · locator: fontTools subset/ all five files at 16f88cb0 (__init__.py, __main__.py, cff.py, svg.py, util.py; gh api -X GET contents listing); fontTools merge/tables.py lines 107-139; fontTools merge/util.py lines 37-42, 77-94; fontbakery googlefonts/fstype.py at v1.1.0; fontbakery microsoft/fstype.py at v1.1.0 source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → https://developers.google.com/fonts/terms
- cites → https://github.com/fonttools/fonttools/blob/16f88cb09446ab617a1a788e48ae12e0f0ec5217/Lib/fontTools/merge/tables.py
- cites → https://github.com/fonttools/fonttools/blob/16f88cb09446ab617a1a788e48ae12e0f0ec5217/Lib/fontTools/subset/__init__.py
- cites → https://github.com/fonttools/fonttools/blob/16f88cb09446ab617a1a788e48ae12e0f0ec5217/Lib/fontTools/ttLib/tables/O_S_2f_2.py
- cites → https://github.com/googlefonts/fontbakery/blob/8c5fadc2ed815111e74196d9fa6d669fa545b09c/Lib/fontbakery/checks/vendorspecific/googlefonts/fstype.py
- cites → https://github.com/googlefonts/fontbakery/blob/8c5fadc2ed815111e74196d9fa6d669fa545b09c/Lib/fontbakery/checks/vendorspecific/microsoft/fstype.py
- cites → https://learn.microsoft.com/en-us/typography/opentype/spec/os2