python3Packages.notobuilder: init at 0-unstable-2024-08-03 (#333709)

This commit is contained in:
Johannes Jöns 2024-09-21 14:32:54 +00:00 committed by GitHub
commit eca2693230
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 784 additions and 25 deletions

View File

@ -0,0 +1,61 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pytestCheckHook,
setuptools,
setuptools-scm,
fonttools,
uharfbuzz,
pycairo,
pillow,
}:
buildPythonPackage rec {
pname = "blackrenderer";
version = "0.6.0";
pyproject = true;
src = fetchFromGitHub {
owner = "BlackFoundryCom";
repo = "black-renderer";
rev = "refs/tags/v${version}";
hash = "sha256-b2W0M32Y4HUyxObjvh0yMUBe5gfcSDXnw1GfhW7hoZk=";
};
build-system = [
setuptools
setuptools-scm
];
dependencies = [
fonttools
uharfbuzz
];
optional-dependencies = {
cairo = [ pycairo ];
};
nativeCheckInputs = [
pytestCheckHook
pillow
];
disabledTestPaths = [
# Wants None existing fonts
"Tests/test_mainprog.py"
"Tests/test_glyph_render.py"
];
pythonImportsCheck = [ "blackrenderer" ];
meta = {
description = "Renderer for OpenType COLR fonts, with multiple backends";
homepage = "https://github.com/BlackFoundryCom/black-renderer";
changelog = "https://github.com/BlackFoundryCom/black-renderer/releases/tag/v${version}";
license = lib.licenses.asl20;
mainProgram = "blackrenderer";
maintainers = with lib.maintainers; [ jopejoe1 ];
};
}

View File

@ -1,24 +1,29 @@
{ lib
, buildPythonApplication
, fetchFromGitHub
, pytestCheckHook
, pythonOlder
, testfixtures
{
lib,
buildPythonPackage,
fetchFromGitHub,
pytestCheckHook,
pythonOlder,
setuptools,
testfixtures,
}:
buildPythonApplication rec {
buildPythonPackage rec {
pname = "bump2version";
version = "1.0.1";
pyproject = true;
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "c4urself";
repo = pname;
rev = "v${version}";
repo = "bump2version";
rev = "refs/tags/v${version}";
sha256 = "sha256-j6HKi3jTwSgGBrA8PCJJNg+yQqRMo1aqaLgPGf4KAKU=";
};
build-system = [ setuptools ];
nativeCheckInputs = [
pytestCheckHook
testfixtures
@ -40,6 +45,7 @@ buildPythonApplication rec {
all version strings in your source code by the correct increment.
'';
homepage = "https://github.com/c4urself/bump2version";
changelog = "https://github.com/c4urself/bump2version/blob/v${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ jefflabonte ];
};

View File

@ -0,0 +1,53 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pythonRelaxDepsHook,
poetry-core,
fonttools,
openstep-plist,
ufolib2,
glyphslib,
bump2version,
}:
buildPythonPackage rec {
pname = "bumpfontversion";
version = "0.4.0";
pyproject = true;
src = fetchFromGitHub {
owner = "simoncozens";
repo = "bumpfontversion";
rev = "refs/tags/v${version}";
hash = "sha256-qcKZGv/KeeSRBq4SdnuZlurp0CUs40iEQjw9/1LltUg=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'poetry>=' 'poetry-core>=' \
--replace-fail 'poetry.masonry.api' 'poetry.core.masonry.api'
'';
nativeBuildInputs = [ pythonRelaxDepsHook ];
pythonRelaxDeps = [ "glyphslib" ];
build-system = [ poetry-core ];
dependencies = [
fonttools
openstep-plist
ufolib2
glyphslib
bump2version
];
meta = {
description = "Version-bump your font sources";
homepage = "https://github.com/simoncozens/bumpfontversion";
license = lib.licenses.asl20;
mainProgram = "bumpfontversion";
maintainers = with lib.maintainers; [ jopejoe1 ];
};
}

View File

@ -0,0 +1,95 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pythonRelaxDepsHook,
pytestCheckHook,
poetry-core,
poetry-dynamic-versioning,
blackrenderer,
fonttools,
freetype-py,
gflanguages,
glyphsets,
jinja2,
ninja,
pillow,
protobuf,
pyahocorasick,
python-bidi,
selenium,
tqdm,
uharfbuzz,
unicodedata2,
youseedee,
numpy,
}:
buildPythonPackage rec {
pname = "diffenator2";
version = "0.4.3";
pyproject = true;
src = fetchFromGitHub {
owner = "googlefonts";
repo = "diffenator2";
rev = "refs/tags/v${version}";
hash = "sha256-zeNcNR14ieY6Inp4kOwIPXd6S+/wFdMFp6wbiqgB/iA=";
};
nativeBuildInputs = [ pythonRelaxDepsHook ];
pythonRelaxDeps = [ "protobuf" ];
build-system = [
poetry-core
poetry-dynamic-versioning
];
dependencies = [
blackrenderer
fonttools
freetype-py
gflanguages
glyphsets
jinja2
ninja
pillow
protobuf
pyahocorasick
python-bidi
selenium
tqdm
uharfbuzz
unicodedata2
youseedee
numpy
];
nativeCheckInputs = [ pytestCheckHook ];
disabledTests = [
# requires internet
"test_download_google_fonts_family_to_file"
"test_download_google_fonts_family_to_bytes"
"test_download_google_fonts_family_not_existing"
"test_download_latest_github_release"
];
disabledTestPaths = [
# Want the files downloaded by the tests above
"tests/test_functional.py"
"tests/test_html.py"
"tests/test_matcher.py"
"tests/test_font.py"
];
meta = {
description = "Font comparison tool that will not stop until your fonts are exhaustively compared";
homepage = "https://github.com/googlefonts/diffenator2";
changelog = "https://github.com/googlefonts/diffenator2/releases/tag/v${version}";
license = lib.licenses.asl20;
mainProgram = "diffenator2";
maintainers = with lib.maintainers; [ jopejoe1 ];
};
}

View File

@ -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 ];
};
}

View File

@ -1,19 +1,38 @@
{ lib
, python3
, fetchFromGitHub
, resvg
, pngquant
{
lib,
fetchFromGitHub,
buildPythonPackage,
pytestCheckHook,
setuptools,
setuptools-scm,
resvg,
pngquant,
absl-py,
fonttools,
lxml,
ninja,
picosvg,
pillow,
regex,
toml,
tomlkit,
ufo2ft,
ufolib2,
zopfli,
}:
python3.pkgs.buildPythonApplication rec {
buildPythonPackage rec {
pname = "nanoemoji";
version = "0.15.1";
pyproject = true;
src = fetchFromGitHub {
owner = "googlefonts";
repo = pname;
rev = "v${version}";
repo = "nanoemoji";
rev = "refs/tags/v${version}";
hash = "sha256-P/lT0PnjTdYzyttICzszu4OL5kj+X8GHZ8doL3tpXQM=";
};
patches = [
# this is necessary because the tests clear PATH/PYTHONPATH otherwise
./test-pythonpath.patch
@ -21,17 +40,23 @@ python3.pkgs.buildPythonApplication rec {
./fix-test.patch
];
nativeBuildInputs = with python3.pkgs; [
build-system = [
setuptools
setuptools-scm
];
nativeBuildInputs = [
pngquant
resvg
];
# these two packages are just prebuilt wheels containing the respective binaries
pythonRemoveDeps = [ "pngquant-cli" "resvg-cli" ];
pythonRemoveDeps = [
"pngquant-cli"
"resvg-cli"
];
propagatedBuildInputs = with python3.pkgs; [
dependencies = [
absl-py
fonttools
lxml
@ -46,15 +71,19 @@ python3.pkgs.buildPythonApplication rec {
zopfli
];
nativeCheckInputs = with python3.pkgs; [
nativeCheckInputs = [
pytestCheckHook
ninja
picosvg
];
makeWrapperArgs = [
"--prefix PATH : ${lib.makeBinPath [ pngquant resvg ]}"
"--prefix PATH : ${
lib.makeBinPath [
pngquant
resvg
]
}"
];
preCheck = ''
@ -65,6 +94,7 @@ python3.pkgs.buildPythonApplication rec {
meta = with lib; {
description = "Wee tool to build color fonts";
homepage = "https://github.com/googlefonts/nanoemoji";
changelog = "https://github.com/googlefonts/nanoemoji/releases/tag/v${version}";
license = licenses.asl20;
maintainers = with maintainers; [ _999eagle ];
};

View File

@ -0,0 +1,71 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
unstableGitUpdater,
setuptools,
setuptools-scm,
fonttools,
ufomerge,
fontmake,
glyphslib,
ttfautohint-py,
ufo2ft,
gftools,
fontbakery,
diffenator2,
chevron,
sh,
ninja,
}:
buildPythonPackage {
pname = "notobuilder";
version = "0-unstable-2024-08-03";
pyproject = true;
src = fetchFromGitHub {
owner = "notofonts";
repo = "notobuilder";
rev = "d7bcfc8e5c5ee9b273e7b1eeb2dd6d619da68c33";
hash = "sha256-1tdHbJixd1s1grGh0enqXhp+u5TEic6/W88X/f8vagM=";
};
postPatch = ''
substituteInPlace Lib/notobuilder/__main__.py \
--replace-fail '"ninja"' '"${lib.getExe ninja}"'
'';
build-system = [
setuptools
setuptools-scm
];
dependencies = [
fonttools
ufomerge
fontmake
glyphslib
ttfautohint-py
ufo2ft
gftools
fontbakery
diffenator2
chevron
sh
] ++ gftools.optional-dependencies.qa;
pythonImportsCheck = [
"notobuilder"
"notoqa"
];
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Python module for building Noto fonts";
homepage = "https://github.com/notofonts/notobuilder";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ jopejoe1 ];
};
}

View File

@ -0,0 +1,63 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
unstableGitUpdater,
pytestCheckHook,
fonttools,
poetry-core,
configparser,
biplist,
}:
buildPythonPackage {
pname = "opentype-feature-freezer";
version = "0-unstable-2022-07-09";
pyproject = true;
src = fetchFromGitHub {
owner = "twardoch";
repo = "fonttools-opentype-feature-freezer";
rev = "2ae16853bc724c3e377726f81d9fc661d3445827";
hash = "sha256-mIWQF9LTVKxIkwHLCTVK1cOuiaduJyX8pyBZ/0RKIVE=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail poetry.masonry.api poetry.core.masonry.api \
--replace-fail "poetry>=" "poetry-core>="
'';
build-system = [
poetry-core
configparser
];
dependencies = [ fonttools ];
nativeCheckInputs = [
pytestCheckHook
biplist
];
disabledTestPaths = [
# Wants to check path outside of nix store
"src/opentype_feature_freezer/cli.py"
# NameError: name 'defines' is not defined
"app/dmgbuild_settings.py"
# Missing module
"app/OTFeatureFreezer.py"
# AttributeError: 'types.SimpleNamespace' object has no attribute 'suffix'
"tests/test_rename.py"
];
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Permanently \"apply\" OpenType features to fonts, by remapping their Unicode assignments";
homepage = "https://github.com/twardoch/fonttools-opentype-feature-freezer";
license = lib.licenses.asl20;
mainProgram = "pyftfeatfreeze";
maintainers = with lib.maintainers; [ jopejoe1 ];
};
}

View File

@ -0,0 +1,41 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools,
fonttools,
black,
}:
buildPythonPackage rec {
pname = "paintcompiler";
version = "0.3.4";
pyproject = true;
src = fetchFromGitHub {
owner = "simoncozens";
repo = "paintcompiler";
rev = "v${version}";
hash = "sha256-dmVBQUUyFc71zq8fXBQ4ii/llrGdtUCOponCzSeut6g=";
};
build-system = [ setuptools ];
dependencies = [
fonttools
black
];
pythonImportsCheck = [
"paintcompiler"
"paintdecompiler"
];
meta = {
description = "Paint compiler for COLRv1 fonts";
homepage = "https://github.com/simoncozens/paintcompiler";
license = lib.licenses.asl20;
mainProgram = "paintcompiler";
maintainers = with lib.maintainers; [ jopejoe1 ];
};
}

View File

@ -0,0 +1,59 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pythonRelaxDepsHook,
pytestCheckHook,
setuptools,
setuptools-scm,
fonttools,
fontfeatures,
ufolib2,
}:
buildPythonPackage rec {
pname = "ufomerge";
version = "1.7.0";
pyproject = true;
src = fetchFromGitHub {
owner = "googlefonts";
repo = "ufomerge";
rev = "refs/tags/${version}";
hash = "sha256-0izeb2PeGIYbzzQ+/K0Dz/9fVWFcPizQI39X/EQF5bU=";
};
nativeBuildInputs = [ pythonRelaxDepsHook ];
pythonRelaxDeps = [ "fonttools" ];
build-system = [
setuptools
setuptools-scm
];
dependencies = [
fonttools
ufolib2
];
nativeCheckInputs = [
pytestCheckHook
fontfeatures
];
disabledTestPaths = [
# Failing due to fonttools being to old
"tests/test_layout.py"
];
pythonImportsCheck = [ "ufomerge" ];
meta = {
description = "Command line utility and Python library that merges two UFO source format fonts into a single file";
homepage = "https://github.com/googlefonts/ufomerge";
changelog = "https://github.com/googlefonts/ufomerge/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ jopejoe1 ];
};
}

View File

@ -0,0 +1,51 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pytestCheckHook,
setuptools,
setuptools-scm,
fonttools,
pyparsing,
ufolib2,
ufo2ft,
}:
buildPythonPackage rec {
pname = "vttlib";
version = "0.12.0";
pyproject = true;
src = fetchFromGitHub {
owner = "daltonmaag";
repo = "vttLib";
rev = "v${version}";
hash = "sha256-ChsuzeFRQFDYGlAE4TWzE+et7yGLOfha1VqGcOdayOs=";
};
build-system = [
setuptools
setuptools-scm
];
dependencies = [
fonttools
pyparsing
ufolib2
];
nativeCheckInputs = [
pytestCheckHook
ufo2ft
];
pythonImportsCheck = [ "vttLib" ];
meta = {
description = "Dump, merge and compile Visual TrueType data in UFO3 with FontTools";
homepage = "https://github.com/daltonmaag/vttLib";
changelog = "https://github.com/daltonmaag/vttLib/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jopejoe1 ];
};
}

View File

@ -2116,7 +2116,7 @@ with pkgs;
bitbucket-server-cli = callPackage ../applications/version-management/bitbucket-server-cli { };
bump2version = python3Packages.callPackage ../applications/version-management/bump2version { };
bump2version = with python3Packages; toPythonApplication bump2version;
cgit = callPackage ../applications/version-management/cgit { };
@ -9513,7 +9513,7 @@ with pkgs;
pythonPackages = python3Packages;
};
nanoemoji = python3Packages.callPackage ../tools/misc/nanoemoji { };
nanoemoji = with python3Packages; toPythonApplication nanoemoji;
nagelfar = callPackage ../development/tools/nagelfar { };

View File

@ -1671,6 +1671,8 @@ self: super: with self; {
black-macchiato = callPackage ../development/python-modules/black-macchiato { };
blackrenderer = callPackage ../development/python-modules/blackrenderer { };
bleach = callPackage ../development/python-modules/bleach { };
bleach-allowlist = callPackage ../development/python-modules/bleach-allowlist { };
@ -1910,6 +1912,10 @@ self: super: with self; {
buildcatrust = callPackage ../development/python-modules/buildcatrust { };
bump2version = callPackage ../development/python-modules/bump2version { };
bumpfontversion = callPackage ../development/python-modules/bumpfontversion { };
bumps = callPackage ../development/python-modules/bumps { };
bunch = callPackage ../development/python-modules/bunch { };
@ -3142,6 +3148,8 @@ self: super: with self; {
diff-match-patch = callPackage ../development/python-modules/diff-match-patch { };
diffenator2 = callPackage ../development/python-modules/diffenator2 { };
diffimg = callPackage ../development/python-modules/diffimg { };
diffsync = callPackage ../development/python-modules/diffsync { };
@ -5004,6 +5012,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 { };
@ -8673,6 +8683,8 @@ self: super: with self; {
nanobind = callPackage ../development/python-modules/nanobind { };
nanoemoji = callPackage ../development/python-modules/nanoemoji { };
nanoid = callPackage ../development/python-modules/nanoid { };
nanoleaf = callPackage ../development/python-modules/nanoleaf { };
@ -8983,6 +8995,8 @@ self: super: with self; {
inherit (pkgs) notmuch;
};
notobuilder = callPackage ../development/python-modules/notobuilder { };
nototools = callPackage ../development/python-modules/nototools { };
notus-scanner = callPackage ../development/python-modules/notus-scanner { };
@ -9510,6 +9524,8 @@ self: super: with self; {
paho-mqtt_2 = callPackage ../development/python-modules/paho-mqtt/default.nix { };
paho-mqtt = paho-mqtt_1;
paintcompiler = callPackage ../development/python-modules/paintcompiler { };
palace = callPackage ../development/python-modules/palace { };
palettable = callPackage ../development/python-modules/palettable { };
@ -9846,6 +9862,8 @@ self: super: with self; {
openapi-core = callPackage ../development/python-modules/openapi-core { };
opentype-feature-freezer = callPackage ../development/python-modules/opentype-feature-freezer { };
openusd = callPackage ../development/python-modules/openusd {
alembic = pkgs.alembic;
};
@ -16797,6 +16815,8 @@ self: super: with self; {
ufolint = callPackage ../development/python-modules/ufolint { };
ufomerge = callPackage ../development/python-modules/ufomerge { };
ufonormalizer = callPackage ../development/python-modules/ufonormalizer { };
ufoprocessor = callPackage ../development/python-modules/ufoprocessor { };
@ -17170,6 +17190,8 @@ self: super: with self; {
enablePython = true;
});
vttlib = callPackage ../development/python-modules/vttlib { };
vulcan-api = callPackage ../development/python-modules/vulcan-api { };
vultr = callPackage ../development/python-modules/vultr { };