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-08-20"; 25 pyproject = true; 26 27 src = fetchFromGitHub { 28 owner = "notofonts"; 29 repo = "notobuilder"; 30 rev = "fb0d6067beee888e6132b50c227da1f051b1ef9f"; 31 hash = "sha256-U9NVpXzdzBpgs8LFQJk70vs2dfHg+kD+YzuYZt6zQ5g="; 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 env.SETUPTOOLS_SCM_PRETEND_VERSION = "0.0.0"; 45 46 dependencies = [ 47 fonttools 48 ufomerge 49 fontmake 50 glyphslib 51 ttfautohint-py 52 ufo2ft 53 gftools 54 fontbakery 55 diffenator2 56 chevron 57 sh 58 ] 59 ++ gftools.optional-dependencies.qa; 60 61 pythonImportsCheck = [ 62 "notobuilder" 63 "notoqa" 64 ]; 65 66 passthru.updateScript = unstableGitUpdater { }; 67 68 meta = { 69 description = "Python module for building Noto fonts"; 70 homepage = "https://github.com/notofonts/notobuilder"; 71 license = lib.licenses.asl20; 72 maintainers = with lib.maintainers; [ jopejoe1 ]; 73 }; 74}