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-2024-09-25";
25 pyproject = true;
26
27 src = fetchFromGitHub {
28 owner = "notofonts";
29 repo = "notobuilder";
30 rev = "8a60f1599ce86c4b3eacb5d01c3f17162bab67d3";
31 hash = "sha256-YBiDOnt2B7I/AcEfFgGrdzN/tNz/tQO0cv9N4PupPCE=";
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 ] ++ gftools.optional-dependencies.qa;
57
58 pythonImportsCheck = [
59 "notobuilder"
60 "notoqa"
61 ];
62
63 passthru.updateScript = unstableGitUpdater { };
64
65 meta = {
66 description = "Python module for building Noto fonts";
67 homepage = "https://github.com/notofonts/notobuilder";
68 license = lib.licenses.unfree;
69 maintainers = with lib.maintainers; [ jopejoe1 ];
70 };
71}