From 814cecf7451a6c28e469b09894b70e3a8d5f017e Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Thu, 25 Jul 2024 20:25:00 +0200 Subject: [PATCH 01/11] bump2version: move to python-modules --- .../python-modules}/bump2version/default.nix | 24 ++++++++++++------- pkgs/top-level/all-packages.nix | 2 +- pkgs/top-level/python-packages.nix | 2 ++ 3 files changed, 18 insertions(+), 10 deletions(-) rename pkgs/{applications/version-management => development/python-modules}/bump2version/default.nix (72%) diff --git a/pkgs/applications/version-management/bump2version/default.nix b/pkgs/development/python-modules/bump2version/default.nix similarity index 72% rename from pkgs/applications/version-management/bump2version/default.nix rename to pkgs/development/python-modules/bump2version/default.nix index 86d1618cc48d..c7bbb8f327f9 100644 --- a/pkgs/applications/version-management/bump2version/default.nix +++ b/pkgs/development/python-modules/bump2version/default.nix @@ -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 ]; }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0d3e8e80c3f5..de766359e319 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2147,7 +2147,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 { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 9320c4ec1ff9..fd6b7e342a8d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1893,6 +1893,8 @@ self: super: with self; { buildcatrust = callPackage ../development/python-modules/buildcatrust { }; + bump2version = callPackage ../development/python-modules/bump2version { }; + bumps = callPackage ../development/python-modules/bumps { }; bunch = callPackage ../development/python-modules/bunch { }; From 9c17b9b05f575a9f45d72426c39433a75b830512 Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Thu, 25 Jul 2024 23:05:28 +0200 Subject: [PATCH 02/11] nanoemoji: move to python-modules --- .../python-modules}/nanoemoji/default.nix | 58 ++++++++++++++----- .../python-modules}/nanoemoji/fix-test.patch | 0 .../nanoemoji/test-pythonpath.patch | 0 pkgs/top-level/all-packages.nix | 2 +- pkgs/top-level/python-packages.nix | 2 + 5 files changed, 47 insertions(+), 15 deletions(-) rename pkgs/{tools/misc => development/python-modules}/nanoemoji/default.nix (61%) rename pkgs/{tools/misc => development/python-modules}/nanoemoji/fix-test.patch (100%) rename pkgs/{tools/misc => development/python-modules}/nanoemoji/test-pythonpath.patch (100%) diff --git a/pkgs/tools/misc/nanoemoji/default.nix b/pkgs/development/python-modules/nanoemoji/default.nix similarity index 61% rename from pkgs/tools/misc/nanoemoji/default.nix rename to pkgs/development/python-modules/nanoemoji/default.nix index 88b1cad12234..9d2dfffcaf9f 100644 --- a/pkgs/tools/misc/nanoemoji/default.nix +++ b/pkgs/development/python-modules/nanoemoji/default.nix @@ -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 ]; }; diff --git a/pkgs/tools/misc/nanoemoji/fix-test.patch b/pkgs/development/python-modules/nanoemoji/fix-test.patch similarity index 100% rename from pkgs/tools/misc/nanoemoji/fix-test.patch rename to pkgs/development/python-modules/nanoemoji/fix-test.patch diff --git a/pkgs/tools/misc/nanoemoji/test-pythonpath.patch b/pkgs/development/python-modules/nanoemoji/test-pythonpath.patch similarity index 100% rename from pkgs/tools/misc/nanoemoji/test-pythonpath.patch rename to pkgs/development/python-modules/nanoemoji/test-pythonpath.patch diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index de766359e319..590c4ced10bb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9676,7 +9676,7 @@ with pkgs; pythonPackages = python3Packages; }; - nanoemoji = python3Packages.callPackage ../tools/misc/nanoemoji { }; + nanoemoji = with python3Packages; toPythonApplication nanoemoji; nagelfar = callPackage ../development/tools/nagelfar { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index fd6b7e342a8d..394520d66ac1 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8976,6 +8976,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 { }; From bcd82a2c121fba395e55be2e82100a607d4b9ca5 Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Wed, 24 Jul 2024 21:03:19 +0200 Subject: [PATCH 03/11] python3Packages.ufomerge: init at 1.7.0 --- .../python-modules/ufomerge/default.nix | 59 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 61 insertions(+) create mode 100644 pkgs/development/python-modules/ufomerge/default.nix diff --git a/pkgs/development/python-modules/ufomerge/default.nix b/pkgs/development/python-modules/ufomerge/default.nix new file mode 100644 index 000000000000..94afd71cd71d --- /dev/null +++ b/pkgs/development/python-modules/ufomerge/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 394520d66ac1..dffde22b75d3 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -17012,6 +17012,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 { }; From 4bd737554e672ee3e357a1ed0d17ff3a1203fda0 Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Sat, 27 Jul 2024 19:29:14 +0200 Subject: [PATCH 04/11] python3Packages.opentype-feature-freezer: init at 0-unstable-2022-07-09 --- .../opentype-feature-freezer/default.nix | 63 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 65 insertions(+) create mode 100644 pkgs/development/python-modules/opentype-feature-freezer/default.nix diff --git a/pkgs/development/python-modules/opentype-feature-freezer/default.nix b/pkgs/development/python-modules/opentype-feature-freezer/default.nix new file mode 100644 index 000000000000..3d7d953dce5f --- /dev/null +++ b/pkgs/development/python-modules/opentype-feature-freezer/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index dffde22b75d3..4c799c4946d5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10137,6 +10137,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; }; From 9dc55ca46c8a04c334a5e49a9ec5f3f185d0b9b1 Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Sat, 27 Jul 2024 19:26:15 +0200 Subject: [PATCH 05/11] python3Packages.paintcompiler: init 0.3.4 --- .../python-modules/paintcompiler/default.nix | 41 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 43 insertions(+) create mode 100644 pkgs/development/python-modules/paintcompiler/default.nix diff --git a/pkgs/development/python-modules/paintcompiler/default.nix b/pkgs/development/python-modules/paintcompiler/default.nix new file mode 100644 index 000000000000..c2e6009fa4f7 --- /dev/null +++ b/pkgs/development/python-modules/paintcompiler/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 4c799c4946d5..70b93a5ce620 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9807,6 +9807,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 { }; From 3185dca35e6c33cb49993d5a14472e3724884bc0 Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Thu, 25 Jul 2024 19:21:22 +0200 Subject: [PATCH 06/11] python3Packages.blackrenderer: init at 0.6.0 --- .../python-modules/blackrenderer/default.nix | 61 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 63 insertions(+) create mode 100644 pkgs/development/python-modules/blackrenderer/default.nix diff --git a/pkgs/development/python-modules/blackrenderer/default.nix b/pkgs/development/python-modules/blackrenderer/default.nix new file mode 100644 index 000000000000..98e404c2dbd6 --- /dev/null +++ b/pkgs/development/python-modules/blackrenderer/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 70b93a5ce620..2cfc78d6dd1e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1654,6 +1654,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 { }; From 185f7f400830b1f056c23aeecd103a2b74ecb23c Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Thu, 25 Jul 2024 19:38:36 +0200 Subject: [PATCH 07/11] python3Packages.diffenator2: init at 0.4.3 --- .../python-modules/diffenator2/default.nix | 95 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 97 insertions(+) create mode 100644 pkgs/development/python-modules/diffenator2/default.nix diff --git a/pkgs/development/python-modules/diffenator2/default.nix b/pkgs/development/python-modules/diffenator2/default.nix new file mode 100644 index 000000000000..e5297364fc18 --- /dev/null +++ b/pkgs/development/python-modules/diffenator2/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2cfc78d6dd1e..0407a0f6aeb8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3121,6 +3121,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 { }; From dc997637aebe7f9da5dda1219187c3926223ff9e Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Thu, 25 Jul 2024 20:17:52 +0200 Subject: [PATCH 08/11] python3Packages.vttlib: init at 0.12.0 --- .../python-modules/vttlib/default.nix | 51 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 53 insertions(+) create mode 100644 pkgs/development/python-modules/vttlib/default.nix diff --git a/pkgs/development/python-modules/vttlib/default.nix b/pkgs/development/python-modules/vttlib/default.nix new file mode 100644 index 000000000000..d90b9c3c3bfd --- /dev/null +++ b/pkgs/development/python-modules/vttlib/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 0407a0f6aeb8..704555f8ec11 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -17391,6 +17391,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 { }; From 1b3f672a3f7bd691b0c5c52820e9bf9aae7ad5a8 Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Thu, 25 Jul 2024 20:38:00 +0200 Subject: [PATCH 09/11] python3Packages.bumpfontversion: init at 0.4.0 --- .../bumpfontversion/default.nix | 53 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 55 insertions(+) create mode 100644 pkgs/development/python-modules/bumpfontversion/default.nix diff --git a/pkgs/development/python-modules/bumpfontversion/default.nix b/pkgs/development/python-modules/bumpfontversion/default.nix new file mode 100644 index 000000000000..8ee90f9795a5 --- /dev/null +++ b/pkgs/development/python-modules/bumpfontversion/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 704555f8ec11..ab9f2a0071da 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1897,6 +1897,8 @@ self: super: with self; { bump2version = callPackage ../development/python-modules/bump2version { }; + bumpfontversion = callPackage ../development/python-modules/bumpfontversion { }; + bumps = callPackage ../development/python-modules/bumps { }; bunch = callPackage ../development/python-modules/bunch { }; From 9264afd8f0f96c69d4479cf136c81aa39066a356 Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Fri, 26 Jul 2024 08:09:24 +0200 Subject: [PATCH 10/11] python3Packages.gftools: init at 0.9.68 --- .../python-modules/gftools/default.nix | 207 ++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 209 insertions(+) create mode 100644 pkgs/development/python-modules/gftools/default.nix diff --git a/pkgs/development/python-modules/gftools/default.nix b/pkgs/development/python-modules/gftools/default.nix new file mode 100644 index 000000000000..9418d7c1acd4 --- /dev/null +++ b/pkgs/development/python-modules/gftools/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ab9f2a0071da..a78ea9ad7291 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -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 { }; From c04358b80fa153912d99e1a39f10ea1ed1887f0c Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Wed, 28 Aug 2024 21:00:30 +0200 Subject: [PATCH 11/11] python3Packages.notobuilder: init at 0-unstable-2024-08-03 --- .../python-modules/notobuilder/default.nix | 71 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 73 insertions(+) create mode 100644 pkgs/development/python-modules/notobuilder/default.nix diff --git a/pkgs/development/python-modules/notobuilder/default.nix b/pkgs/development/python-modules/notobuilder/default.nix new file mode 100644 index 000000000000..0dce59c8d16b --- /dev/null +++ b/pkgs/development/python-modules/notobuilder/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index a78ea9ad7291..7eef728999cd 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9294,6 +9294,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 { };