1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 unstableGitUpdater,
6 setuptools,
7 setuptools-scm,
8 fonttools,
9 ufomerge,
10 fontmake,
11 glyphslib,
12 ttfautohint-py,
13 ufo2ft,
14 gftools,
15 fontbakery,
16 diffenator2,
17 chevron,
18 sh,
19 ninja,
20}:
21
22buildPythonPackage {
23 pname = "notobuilder";
24 version = "0-unstable-2025-05-20";
25 pyproject = true;
26
27 src = fetchFromGitHub {
28 owner = "notofonts";
29 repo = "notobuilder";
30 rev = "ff46ffb2e19ff8e8c36a4e3e0db334bb249896cb";
31 hash = "sha256-K4F+Et50QVXOOk00u/8ZXKj/TWoC6ndCeAF9jaMD7jI=";
32 };
33
34 postPatch = ''
35 substituteInPlace Lib/notobuilder/__main__.py \
36 --replace-fail '"ninja"' '"${lib.getExe ninja}"'
37 '';
38
39 build-system = [
40 setuptools
41 setuptools-scm
42 ];
43
44 dependencies = [
45 fonttools
46 ufomerge
47 fontmake
48 glyphslib
49 ttfautohint-py
50 ufo2ft
51 gftools
52 fontbakery
53 diffenator2
54 chevron
55 sh
56 ]
57 ++ gftools.optional-dependencies.qa;
58
59 pythonImportsCheck = [
60 "notobuilder"
61 "notoqa"
62 ];
63
64 passthru.updateScript = unstableGitUpdater { };
65
66 meta = {
67 description = "Python module for building Noto fonts";
68 homepage = "https://github.com/notofonts/notobuilder";
69 license = lib.licenses.unfree;
70 maintainers = with lib.maintainers; [ jopejoe1 ];
71 };
72}