- Python 83.2%
- Shell 13.6%
- Scheme 1.2%
- Makefile 1%
- Nix 1%
| .github/workflows | ||
| config | ||
| docs | ||
| packaging | ||
| scripts | ||
| sources/genera-8.5 | ||
| specimens | ||
| tests | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| Makefile | ||
| NOTICE.md | ||
| README.md | ||
| SPECIMENS.md | ||
Genera fonts
This repository reproducibly publishes the 89 one-bit bitmap fonts resident in the pinned Symbolics Genera 8.5 base world. It contains a closed, inspectable font-only source corpus, raw-code BDFs for historical addressing, Unicode BDF derivatives, deterministic specimens, and release-ready OpenType Bitmap (OTB) fonts.
The authoritative profile is the set of 89 distinct resident FONT objects in
one exact Genera-8-5.vlod, not every font file distributed with Genera. The
licensed sys.sct tree contains 224 X BDF files, but those files are used only
as local comparison witnesses and are neither copied nor selected wholesale.
See Provenance for that boundary.
The current reviewed corpus contains:
- 89 resident font objects and 90 symbol bindings, with
TV:*DEFAULT-FONT*andFONTS:CPTFONTnaming the same object; - 11,659 represented slots and 10,836 defined glyphs;
- 71 variable-width fonts;
- reviewed logical identities for 86 fonts, with
40VR,EINY8, andVT100explicitly unmapped; - 78 Latin-class artifacts and 11 symbols artifacts;
- 9,985 Unicode glyph instances at standard scalars and 851 at project Private Use Area scalars; and
- 89 deterministic specimens, one for every resident font.
Browse all 89 font specimens in the compact gallery with full-resolution originals.
These are raster fonts. The build does not trace outlines, scale or hint glyphs, infer vectors, or synthesize missing characters. Unicode derivation changes character addresses and font identity without changing bitmaps, advances, bearings, baselines, or line metrics. The source geometry and raw Genera codes remain authoritative.
Publication and license boundary
Repository-authored tooling and documentation are BSD-3-Clause under LICENSE. The historical font-shape payload is not presented as BSD-licensed. The repository owner has directed its U.S. publication on the “typeface as typeface” basis described in NOTICE.md, which cites 37 C.F.R. § 202.1(e) and U.S. Copyright Office Compendium § 313.3(D).
The repository contains no VLOD, Genera source or executable code, supplied BFD/BDF files, manuals, on-line help, or unrelated world payload. The cited U.S. basis is not legal advice and makes no claim about foreign rights.
Build and verify
A normal build uses only the committed font-only records under
sources/genera-8.5/; it does not need Open Genera media:
make dist
make test
make check
make reproducible
make check-specimens
make check is the closed internal corpus gate. make check-external adds BDF
compilation/indexing and native X checks and therefore requires bdftopcf,
mkfontdir, Xvfb, and Xlib. make reproducible performs two isolated builds
and compares every generated byte. make specimens refreshes the tracked
specimen gallery; make check-specimens is its non-mutating
gate.
The complete local gate is:
make ci VERSION=v0.1.1
The generator itself requires Python 3.10 or newer and the standard library.
Release OTB conversion requires exactly fonttosfnt 1.2.5; older releases
produce materially different SFNT metrics. OTB validation requires Python
FontTools.
Re-import from the licensed world
Re-import is a maintainer operation, not a prerequisite for public builds. It
requires a sibling ../genera-emu checkout and the owner's local licensed
Genera installation at its normal ignored path:
../genera-emu/.lm-home/opengenera/runtime/Genera-8-5.vlod
Run:
make import
make check-import
The importer first verifies the exact 54,804,480-byte VLOD, SHA-256
a8ee5e86cc7e322f7385af3e0cd579d7650d4dcfc3ce328acbf8b25515dd0672,
and the reviewed decoder files. It memory-maps the VLOD read-only, traverses
only the resident font objects, validates those objects against local matching
BDF/BFD witnesses, and writes only normalized font records plus evidence
catalogs. It never copies the VLOD, the supplied font files, Genera source,
documentation, executable code, or unrelated heap data.
make check-import regenerates into a temporary directory and byte-compares
the result with the committed sources/genera-8.5/ corpus. Review any import
change as a new source profile; a different Genera world must not silently
replace this one.
Generated profiles
dist/
raw/
bdf/ Genera-code Misc-FontSpecific BDFs and X indexes
json/ lossless normalized resident FONT records
sheets/ octal-labelled complete glyph sheets
catalog.json
unicode/
bdf/ ISO10646-1 BDFs and X indexes
specimens/{latin,symbols}/
catalog.json
UNICODE-MAPPING.json
BUILD-MANIFEST.json
FONT-IDENTITIES.json
SOURCE-MANIFEST.json
NOTICE.md
LICENSE
SHA256SUMS
Raw aliases are genera-runtime-<name> and genera-<name>. Unicode aliases
are disjoint: genera-unicode-runtime-<name> and
genera-unicode-<name>. Full XLFD names remain authoritative. Raw BDFs use
historical Genera codes under Misc-FontSpecific; do not install or advertise
them as Unicode fonts.
For X core-font use from a local build:
xset +fp "$PWD/dist/unicode/bdf"
xset fp rehash
xlsfonts 'genera-unicode-*'
The aliases are X core-font aliases, not Fontconfig family names.
Logical families and styles
Resident object names identify physical bitmap strikes, not necessarily font
families. The closed mapping in
config/font-identities.json records the
reviewed Genera family/face/size relation separately from filenames and raster
metrics. For example, HL8, HL10, HL12, HL14, and SWISS20 are strikes
of the Symbolics Genera Swiss family; HL8B is its Bold very-small strike,
and HL8I is its Italic very-small strike.
The generated BDF and OTB metadata now exposes conventional family, weight,
slant, and set width. Genera's X display device associates VERY-SMALL and
LARGE with nominal X sizes 8 and 14, while the measured resident lines for
HL8 and HL14 remain 11 and 15 pixels. Catalogs preserve the symbolic size,
device-specific X size, and recovered raster size separately. MacIvory and
other display devices need not use the same numeric crosswalk. Specialty
repertoires use isolated desktop families, and the three
objects without a resident FONT-SPECS mapping retain explicit neutral,
object-specific identities rather than guessed relationships.
Unicode and specimens
The Unicode profile maps 78 ordinary text fonts through the reviewed Genera standard repertoire. Eleven specialty fonts use eight fixed 128-scalar PUA blocks. The Genera allocation begins at U+EE00, immediately after the CADR Fonts version 1 reservation ending at U+EDFF, so the two sibling projects do not collide. See UNICODE.md for the complete contract.
Latin-capable fonts use the Lisp-themed pangram “The five boxing Lisp wizards jump quickly.” Specialty fonts use complete Unicode-addressed glyph sheets. All specimens are generated directly from the recovered one-bit pixels with integer scaling and no smoothing.
Release archives
The release is divided by emitted Unicode content, not by filename or family guess. An artifact is in latin when it has a visible Basic Latin letter in U+0041–U+005A or U+0061–U+007A; symbols is the exact complement. The current closure is 78 Latin fonts and 11 symbols fonts.
make release VERSION=v0.1.1
make check-release VERSION=v0.1.1
make release-reproducible VERSION=v0.1.1
The two deterministic generic archives are
Genera-fonts-latin-v0.1.1.tar.gz and
Genera-fonts-symbols-v0.1.1.tar.gz, with adjacent SHA-256 files. Unicode
BDFs and their one-bit OTB conversions are the user-facing fonts. The generic
archives exclude the VLOD, imported source JSON, raw-code BDFs, raw sheets,
and all other historical raw-code material. Each archive carries the exact
logical-font mapping alongside its Unicode mapping. See
RELEASING.md for archive contents and the release proof
plan.
Optional native packages are built from those checked archives:
make package-deb VERSION=v0.1.1
make package-rpm VERSION=v0.1.1
make package-arch VERSION=v0.1.1
make package-void VERSION=v0.1.1
# or all four
make packages VERSION=v0.1.1
Each platform receives co-installable genera-fonts-latin and
genera-fonts-symbols packages containing only Unicode BDF/OTB fonts and
their metadata. See Packaging and installation for native
container tests, Nix/Guix use, and publication-template boundaries.