python3Packages.gftools: init at 0.9.68
This commit is contained in:
@@ -0,0 +1,207 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildPythonPackage,
|
||||
pytestCheckHook,
|
||||
setuptools,
|
||||
setuptools-scm,
|
||||
absl-py,
|
||||
afdko,
|
||||
axisregistry,
|
||||
babelfont,
|
||||
beautifulsoup4,
|
||||
black,
|
||||
brotli,
|
||||
bumpfontversion,
|
||||
coreutils,
|
||||
diffenator2,
|
||||
font-v,
|
||||
fontbakery,
|
||||
fontfeatures,
|
||||
fontmake,
|
||||
fonttools,
|
||||
gflanguages,
|
||||
gfsubsets,
|
||||
glyphsets,
|
||||
glyphslib,
|
||||
harfbuzz,
|
||||
jinja2,
|
||||
nanoemoji,
|
||||
networkx,
|
||||
ninja,
|
||||
opentype-feature-freezer,
|
||||
ots-python,
|
||||
packaging,
|
||||
paintcompiler,
|
||||
pillow,
|
||||
protobuf,
|
||||
pycairo,
|
||||
pygit2,
|
||||
pygithub,
|
||||
pytest,
|
||||
pyyaml,
|
||||
requests,
|
||||
rich,
|
||||
ruamel-yaml,
|
||||
skia-pathops,
|
||||
statmake,
|
||||
strictyaml,
|
||||
tabulate,
|
||||
ttfautohint-py,
|
||||
ufomerge,
|
||||
unidecode,
|
||||
vharfbuzz,
|
||||
vttlib,
|
||||
python,
|
||||
}:
|
||||
|
||||
let
|
||||
fontmake' = python.withPackages (ps: [ ps.fontmake ] ++ ps.fontmake.optional-dependencies.json);
|
||||
fonttools' = python.withPackages (ps: [ ps.fonttools ] ++ ps.fonttools.optional-dependencies.ufo);
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
pname = "gftools";
|
||||
version = "0.9.68";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "googlefonts";
|
||||
repo = "gftools";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-xdpfRCtZDxRmrGodXUg8J0T5l5gd7Mvl290BXwNLzvY=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace \
|
||||
Lib/gftools/builder/operations/{buildTTF,glyphs2ds,buildVariable,buildOTF}.py \
|
||||
--replace-fail '"fontmake' '"${lib.getExe' fontmake' "fontmake"}'
|
||||
|
||||
substituteInPlace \
|
||||
Lib/gftools/builder/operations/instantiateUfo.py \
|
||||
--replace-fail "'fontmake" "'${lib.getExe' fontmake' "fontmake"}"
|
||||
|
||||
substituteInPlace \
|
||||
Lib/gftools/builder/operations/{compress,subspace}.py \
|
||||
--replace-fail '"fonttools' '"${lib.getExe' fonttools' "fonttools"}'
|
||||
|
||||
substituteInPlace \
|
||||
Lib/gftools/builder/operations/hbsubset.py \
|
||||
--replace-fail '"pyftsubset"' '"${lib.getExe' fonttools' "pyftsubset"}"' \
|
||||
--replace-fail '"hb-subset"' '"${lib.getExe' harfbuzz "hb-subset"}"'
|
||||
|
||||
substituteInPlace \
|
||||
Lib/gftools/builder/operations/autohintOTF.py \
|
||||
--replace-fail '"otfautohint' '"${lib.getExe' afdko "otfautohint"}'
|
||||
|
||||
substituteInPlace \
|
||||
Lib/gftools/builder/operations/paintcompiler.py \
|
||||
--replace-fail '"paintcompiler' '"${lib.getExe paintcompiler}'
|
||||
|
||||
substituteInPlace \
|
||||
Lib/gftools/builder/operations/featureFreeze.py \
|
||||
--replace-fail '"pyftfeatfreeze' '"${lib.getExe opentype-feature-freezer}'
|
||||
|
||||
substituteInPlace \
|
||||
Lib/gftools/builder/operations/copy.py \
|
||||
--replace-fail '"cp' '"${lib.getExe' coreutils "cp"}'
|
||||
|
||||
substituteInPlace \
|
||||
Lib/gftools/builder/operations/{fix,remap,autohint,buildStat,addSubset,remapLayout,buildVTT}.py \
|
||||
--replace-fail '"gftools' '"${placeholder "out"}/bin/gftools'
|
||||
|
||||
substituteInPlace \
|
||||
Lib/gftools/builder/operations/rename.py \
|
||||
--replace-fail "'gftools" "'${placeholder "out"}t/bin/gftools"
|
||||
'';
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"protobuf"
|
||||
"pygit2"
|
||||
];
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
absl-py
|
||||
afdko
|
||||
axisregistry
|
||||
babelfont
|
||||
beautifulsoup4
|
||||
brotli
|
||||
bumpfontversion
|
||||
font-v
|
||||
fontfeatures
|
||||
fontmake
|
||||
fonttools
|
||||
gflanguages
|
||||
gfsubsets
|
||||
glyphsets
|
||||
glyphslib
|
||||
jinja2
|
||||
nanoemoji
|
||||
networkx
|
||||
ninja
|
||||
ots-python
|
||||
packaging
|
||||
pillow
|
||||
protobuf
|
||||
pygit2
|
||||
pygithub
|
||||
pyyaml
|
||||
requests
|
||||
rich
|
||||
ruamel-yaml
|
||||
setuptools
|
||||
skia-pathops
|
||||
statmake
|
||||
strictyaml
|
||||
tabulate
|
||||
ttfautohint-py
|
||||
ufomerge
|
||||
unidecode
|
||||
vharfbuzz
|
||||
vttlib
|
||||
] ++ fonttools.optional-dependencies.ufo ++ fontmake.optional-dependencies.json;
|
||||
|
||||
optional-dependencies = {
|
||||
qa = [
|
||||
diffenator2
|
||||
fontbakery
|
||||
pycairo
|
||||
];
|
||||
test = [
|
||||
black
|
||||
pytest
|
||||
];
|
||||
};
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
disabledTestPaths = [
|
||||
# Wants none exsiting module
|
||||
"bin/test_args.py"
|
||||
# Requires internet
|
||||
"tests/push/test_items.py"
|
||||
"tests/test_gfgithub.py"
|
||||
"tests/test_usage.py"
|
||||
"tests/push/test_servers.py"
|
||||
# Can't find directory
|
||||
"tests/test_builder.py"
|
||||
"tests/test_dependencies.py"
|
||||
"tests/test_fix.py"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "gftools" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Misc tools for working with the Google Fonts library";
|
||||
homepage = "https://github.com/googlefonts/gftools";
|
||||
changelog = "https://github.com/googlefonts/gftools/releases/tag/v${version}";
|
||||
license = licenses.asl20;
|
||||
mainProgram = "gftools";
|
||||
maintainers = with maintainers; [ jopejoe1 ];
|
||||
};
|
||||
}
|
||||
@@ -4979,6 +4979,8 @@ self: super: with self; {
|
||||
|
||||
gfsubsets = callPackage ../development/python-modules/gfsubsets { };
|
||||
|
||||
gftools = callPackage ../development/python-modules/gftools { };
|
||||
|
||||
gguf = callPackage ../development/python-modules/gguf { };
|
||||
|
||||
ghapi = callPackage ../development/python-modules/ghapi { };
|
||||
|
||||
Reference in New Issue
Block a user