From 6df0f3133b861db990b45fc52c26ceb11614e187 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 17 Oct 2024 11:35:24 +0200 Subject: [PATCH 01/10] python312Packages.afdko: refactor --- .../python-modules/afdko/default.nix | 95 +++++++++---------- 1 file changed, 45 insertions(+), 50 deletions(-) diff --git a/pkgs/development/python-modules/afdko/default.nix b/pkgs/development/python-modules/afdko/default.nix index 5ca70cdd1498..3181ecda7639 100644 --- a/pkgs/development/python-modules/afdko/default.nix +++ b/pkgs/development/python-modules/afdko/default.nix @@ -1,52 +1,47 @@ { lib, stdenv, - buildPythonPackage, - fetchFromGitHub, - pythonOlder, - fonttools, - defcon, - lxml, - fs, - unicodedata2, - zopfli, - brotlipy, - fontpens, - brotli, - fontmath, - mutatormath, - booleanoperations, - ufoprocessor, - ufonormalizer, - tqdm, - setuptools-scm, - scikit-build, - cmake, - ninja, - antlr4_9, - libxml2, - pytestCheckHook, # Enables some expensive tests, useful for verifying an update - runAllTests ? false, afdko, + antlr4_9, + booleanoperations, + buildPythonPackage, + cmake, + defcon, + fetchFromGitHub, + fontmath, + fontpens, + fonttools, + libxml2, + mutatormath, + ninja, + pytestCheckHook, + pythonOlder, + runAllTests ? false, + scikit-build, + setuptools-scm, + tqdm, + ufonormalizer, + ufoprocessor, }: buildPythonPackage rec { pname = "afdko"; version = "4.0.1"; - format = "pyproject"; + pyproject = true; - disabled = pythonOlder "3.7"; + disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "adobe-type-tools"; - repo = pname; + repo = "afdko"; rev = "refs/tags/${version}"; hash = "sha256-I5GKPkbyQX8QNSZgNB3wPKdWwpx8Xkklesu1M7nhgp8="; }; + build-system = [ setuptools-scm ]; + nativeBuildInputs = [ - setuptools-scm scikit-build cmake ninja @@ -78,23 +73,23 @@ buildPythonPackage rec { # setup.py will always (re-)execute cmake in buildPhase dontConfigure = true; - propagatedBuildInputs = [ - booleanoperations - fonttools - lxml # fonttools[lxml], defcon[lxml] extra - fs # fonttools[ufo] extra - unicodedata2 # fonttools[unicode] extra - brotlipy # fonttools[woff] extra - zopfli # fonttools[woff] extra - fontpens - brotli - defcon - fontmath - mutatormath - ufoprocessor - ufonormalizer - tqdm - ]; + dependencies = + [ + booleanoperations + defcon + fontmath + fontpens + fonttools + mutatormath + tqdm + ufonormalizer + ufoprocessor + ] + ++ defcon.optional-dependencies.lxml + ++ fonttools.optional-dependencies.lxml + ++ fonttools.optional-dependencies.ufo + ++ fonttools.optional-dependencies.unicode + ++ fonttools.optional-dependencies.woff; # Use system libxml2 FORCE_SYSTEM_LIBXML2 = true; @@ -116,7 +111,7 @@ buildPythonPackage rec { "test_waterfallplot" ] ++ lib.optionals (stdenv.cc.isGNU) [ - # broke in the gcc 13 → 14 update + # broke in the gcc 13 -> 14 update "test_dump" "test_input_formats" "test_other_input_formats" @@ -146,10 +141,10 @@ buildPythonPackage rec { }; meta = with lib; { - changelog = "https://github.com/adobe-type-tools/afdko/blob/${version}/NEWS.md"; description = "Adobe Font Development Kit for OpenType"; + changelog = "https://github.com/adobe-type-tools/afdko/blob/${version}/NEWS.md"; homepage = "https://adobe-type-tools.github.io/afdko"; license = licenses.asl20; - maintainers = [ maintainers.sternenseemann ]; + maintainers = with maintainers; [ sternenseemann ]; }; } From 7aa43ea21dcb40ec9f29f499e57de2c827f47f85 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 18 Oct 2024 22:20:19 +0200 Subject: [PATCH 02/10] python312Packages.axisregistry: add PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION --- pkgs/development/python-modules/axisregistry/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/axisregistry/default.nix b/pkgs/development/python-modules/axisregistry/default.nix index f4760c620076..e0379c127e6c 100644 --- a/pkgs/development/python-modules/axisregistry/default.nix +++ b/pkgs/development/python-modules/axisregistry/default.nix @@ -5,8 +5,8 @@ fonttools, protobuf, pytestCheckHook, - setuptools-scm, pythonOlder, + setuptools-scm, }: buildPythonPackage rec { @@ -27,6 +27,8 @@ buildPythonPackage rec { # in the closure of fontbakery. It seems to be compatible enough. pythonRelaxDeps = [ "protobuf" ]; + env.PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION = "python"; + build-system = [ setuptools-scm ]; dependencies = [ From d7fde463ce2a6041098161403fd0c1a4e1c49f90 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 18 Oct 2024 22:20:54 +0200 Subject: [PATCH 03/10] python312Packages.gflanguages: add PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION --- pkgs/development/python-modules/gflanguages/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/gflanguages/default.nix b/pkgs/development/python-modules/gflanguages/default.nix index 058f241d37d7..d01f8ec3cb29 100644 --- a/pkgs/development/python-modules/gflanguages/default.nix +++ b/pkgs/development/python-modules/gflanguages/default.nix @@ -14,6 +14,7 @@ buildPythonPackage rec { pname = "gflanguages"; version = "0.6.2"; + pyproject = true; disabled = pythonOlder "3.7"; @@ -22,14 +23,14 @@ buildPythonPackage rec { hash = "sha256-v93mXDwHT/8Tau78ApLUR+dQCpL9jmRQp0BT5y/sfq4="; }; - pyproject = true; - # Relax the dependency on protobuf 3. Other packages in the Google Fonts # ecosystem have begun upgrading from protobuf 3 to protobuf 4, # so we need to use protobuf 4 here as well to avoid a conflict # in the closure of fontbakery. It seems to be compatible enough. pythonRelaxDeps = [ "protobuf" ]; + env.PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION = "python"; + build-system = [ setuptools setuptools-scm From 81ee4faf93230e0c8cbc8af3febb08cbe70afcdf Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 18 Oct 2024 22:34:48 +0200 Subject: [PATCH 04/10] python312Packages.glyphsets: add PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION --- .../development/python-modules/glyphsets/default.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/glyphsets/default.nix b/pkgs/development/python-modules/glyphsets/default.nix index e918de58ae85..d9adb9dcb35f 100644 --- a/pkgs/development/python-modules/glyphsets/default.nix +++ b/pkgs/development/python-modules/glyphsets/default.nix @@ -1,16 +1,17 @@ { lib, buildPythonPackage, - fetchPypi, defcon, + fetchPypi, fonttools, gflanguages, glyphslib, pytestCheckHook, + pythonOlder, pyyaml, requests, - setuptools, setuptools-scm, + setuptools, unicodedata2, }: @@ -19,11 +20,15 @@ buildPythonPackage rec { version = "1.0.0"; pyproject = true; + disabled = pythonOlder "3.8"; + src = fetchPypi { inherit pname version; hash = "sha256-fa+W1IGIZcn1P1xNKm1Yb/TOuf4QdDVnIvlDkOLOcLY="; }; + env.PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION = "python"; + postPatch = '' substituteInPlace setup.py \ --replace-fail "setuptools_scm>=8.0.4,<8.1" "setuptools_scm" @@ -57,9 +62,10 @@ buildPythonPackage rec { meta = with lib; { description = "Google Fonts glyph set metadata"; - mainProgram = "glyphsets"; homepage = "https://github.com/googlefonts/glyphsets"; + changelog = "https://github.com/googlefonts/glyphsets/blob/v${version}/CHANGELOG.md"; license = licenses.asl20; maintainers = with maintainers; [ danc86 ]; + mainProgram = "glyphsets"; }; } From 43d5c63843e556b3dbcf2d4d0192adc19fd118b8 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 18 Oct 2024 22:41:22 +0200 Subject: [PATCH 05/10] python312Packages.gflanguages: 0.6.2 -> 0.6.5 Changelog: https://github.com/googlefonts/lang/releases/tag/v0.6.5 --- .../python-modules/gflanguages/default.nix | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/gflanguages/default.nix b/pkgs/development/python-modules/gflanguages/default.nix index d01f8ec3cb29..95084d373e82 100644 --- a/pkgs/development/python-modules/gflanguages/default.nix +++ b/pkgs/development/python-modules/gflanguages/default.nix @@ -5,6 +5,7 @@ protobuf, pytestCheckHook, pythonOlder, + regex, setuptools, setuptools-scm, uharfbuzz, @@ -13,14 +14,14 @@ buildPythonPackage rec { pname = "gflanguages"; - version = "0.6.2"; + version = "0.6.5"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-v93mXDwHT/8Tau78ApLUR+dQCpL9jmRQp0BT5y/sfq4="; + hash = "sha256-wMhRVWdjKiEfzswnAWqKfzHrpJj0U4q8tzDBGshNryo="; }; # Relax the dependency on protobuf 3. Other packages in the Google Fonts @@ -36,7 +37,10 @@ buildPythonPackage rec { setuptools-scm ]; - dependencies = [ protobuf ]; + dependencies = [ + protobuf + regex + ]; nativeCheckInputs = [ pytestCheckHook @@ -44,6 +48,14 @@ buildPythonPackage rec { youseedee ]; + pythonImportsCheck = [ "gflanguages" ]; + + disabledTests = [ + # AssertionError + "test_exemplars_are_in_script" + "test_sample_texts_are_in_script" + ]; + meta = with lib; { description = "Python library for Google Fonts language metadata"; homepage = "https://github.com/googlefonts/lang"; From 26239229cddc3fad4dd0c02f79c0c5d5ff2971cf Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 18 Oct 2024 22:41:49 +0200 Subject: [PATCH 06/10] python312Packages.shaperglot: 0.5.0 -> 0.6.4 Diff: https://github.com/googlefonts/shaperglot/compare/refs/tags/v0.5.0...v0.6.4 Changelog: https://github.com/googlefonts/shaperglot/releases/tag/v0.6.4 --- .../python-modules/shaperglot/default.nix | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/pkgs/development/python-modules/shaperglot/default.nix b/pkgs/development/python-modules/shaperglot/default.nix index 20c898c07698..9a5d761acf71 100644 --- a/pkgs/development/python-modules/shaperglot/default.nix +++ b/pkgs/development/python-modules/shaperglot/default.nix @@ -6,9 +6,10 @@ num2words, protobuf, pytestCheckHook, + pythonOlder, pyyaml, - setuptools, setuptools-scm, + setuptools, strictyaml, termcolor, ufo2ft, @@ -18,17 +19,29 @@ buildPythonPackage rec { pname = "shaperglot"; - version = "0.5.0"; + version = "0.6.4"; + pyproject = true; + + disabled = pythonOlder "3.7"; - # PyPI source tarballs omit tests, fetch from Github instead src = fetchFromGitHub { owner = "googlefonts"; repo = "shaperglot"; rev = "refs/tags/v${version}"; - hash = "sha256-jmYB1tsMMpFs0X/FW3z9el2nFr8De2jR1dO658w7U4Q="; + hash = "sha256-O6z7TJpC54QkqX5/G1HKSvaDYty7B9BnCQ4FpsLsEMs="; }; - pyproject = true; + env.PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION = "python"; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "setuptools>=75.0.0" "setuptools" + ''; + + build-system = [ + setuptools + setuptools-scm + ]; dependencies = [ gflanguages @@ -41,19 +54,17 @@ buildPythonPackage rec { vharfbuzz youseedee ]; - build-system = [ - setuptools - setuptools-scm - ]; - doCheck = true; nativeCheckInputs = [ pytestCheckHook ]; + pythonImportsCheck = [ "shaperglot" ]; + meta = with lib; { description = "Tool to test OpenType fonts for language support"; - mainProgram = "shaperglot"; homepage = "https://github.com/googlefonts/shaperglot"; + changelog = "https://github.com/googlefonts/shaperglot/releases/tag/v${version}"; license = licenses.asl20; maintainers = with maintainers; [ danc86 ]; + mainProgram = "shaperglot"; }; } From 67a2c69f1e6f3b2fbf8d51ba268127d11d19d3f5 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 18 Oct 2024 22:47:44 +0200 Subject: [PATCH 07/10] python312Packages.glyphsets: disable failing test --- pkgs/development/python-modules/glyphsets/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/python-modules/glyphsets/default.nix b/pkgs/development/python-modules/glyphsets/default.nix index d9adb9dcb35f..e95a1a3ecb83 100644 --- a/pkgs/development/python-modules/glyphsets/default.nix +++ b/pkgs/development/python-modules/glyphsets/default.nix @@ -58,6 +58,8 @@ buildPythonPackage rec { disabledTests = [ # This "test" just tries to connect to PyPI and look for newer releases. Not needed. "test_dependencies" + # AssertionError + "test_definitions" ]; meta = with lib; { From c6e739eb66000225444ac7e1cad69d4c798b2dd0 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 18 Oct 2024 22:51:35 +0200 Subject: [PATCH 08/10] python312Packages.diffenator2: 0.4.3 -> 0.4.4 Diff: https://github.com/googlefonts/diffenator2/compare/refs/tags/v0.4.3...v0.4.4 Changelog: https://github.com/googlefonts/diffenator2/releases/tag/v0.4.4 --- .../python-modules/diffenator2/default.nix | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/diffenator2/default.nix b/pkgs/development/python-modules/diffenator2/default.nix index e5297364fc18..1b4837de4e3a 100644 --- a/pkgs/development/python-modules/diffenator2/default.nix +++ b/pkgs/development/python-modules/diffenator2/default.nix @@ -27,19 +27,22 @@ buildPythonPackage rec { pname = "diffenator2"; - version = "0.4.3"; + version = "0.4.4"; pyproject = true; src = fetchFromGitHub { owner = "googlefonts"; repo = "diffenator2"; rev = "refs/tags/v${version}"; - hash = "sha256-zeNcNR14ieY6Inp4kOwIPXd6S+/wFdMFp6wbiqgB/iA="; + hash = "sha256-FVdQW2iupAxHFmx6sC88yO2Vx3VvBhPJl55gA0fmvgo="; }; - nativeBuildInputs = [ pythonRelaxDepsHook ]; + env.PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION = "python"; - pythonRelaxDeps = [ "protobuf" ]; + pythonRelaxDeps = [ + "protobuf" + "python-bidi" + ]; build-system = [ poetry-core From a00d70b07e9a0789254de21d27e0a7bafc9274a1 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 18 Oct 2024 22:53:55 +0200 Subject: [PATCH 09/10] python312Packages.gftools: add PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION --- pkgs/development/python-modules/gftools/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/python-modules/gftools/default.nix b/pkgs/development/python-modules/gftools/default.nix index b75172ad5366..dbed4711f54f 100644 --- a/pkgs/development/python-modules/gftools/default.nix +++ b/pkgs/development/python-modules/gftools/default.nix @@ -114,6 +114,8 @@ buildPythonPackage rec { --replace-fail "'gftools" "'${placeholder "out"}t/bin/gftools" ''; + env.PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION = "python"; + pythonRelaxDeps = [ "protobuf" "pygit2" From 56eb0d0aa788be25358a26152a295556cf12888d Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 18 Oct 2024 22:56:24 +0200 Subject: [PATCH 10/10] python312Packages.fontbakery: disable failing test - add PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION --- pkgs/development/python-modules/fontbakery/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/fontbakery/default.nix b/pkgs/development/python-modules/fontbakery/default.nix index c875392e62f3..489a86fd002a 100644 --- a/pkgs/development/python-modules/fontbakery/default.nix +++ b/pkgs/development/python-modules/fontbakery/default.nix @@ -57,6 +57,8 @@ buildPythonPackage rec { hash = "sha256-Cl0jRQqF83IIldkp1VuVSS4ZeVsQH1NNpyEkpMJqhA8="; }; + env.PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION = "python"; + pythonRelaxDeps = [ "collidoscope" "protobuf" @@ -127,7 +129,7 @@ buildPythonPackage rec { ''; disabledTests = [ - # These require network access: + # These require network access "test_check_description_broken_links" "test_check_description_family_update" "test_check_metadata_designer_profiles" @@ -138,6 +140,8 @@ buildPythonPackage rec { "test_check_cjk_vertical_metrics" "test_check_cjk_vertical_metrics_regressions" "test_check_fontbakery_version_live_apis" + # AssertionError + "test_check_shape_languages" ]; postInstall = ''