From c704cfac7b3752ac3981d3618e2f9be1c4194552 Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Sat, 30 Mar 2024 13:40:51 +1100 Subject: [PATCH 01/13] python3Packages.shaperglot: fix dependencies This package was failing to build because of some missing dependencies. Upstream added a new dependency on PyYAML in v0.4.1: https://github.com/googlefonts/shaperglot/commit/94a9b30ec0f928851700ca9d3efa5d3d0aef1661 and switched from poetry to setuptools in v0.4.2: https://github.com/googlefonts/shaperglot/commit/2c76ffa082a2bebb2a0f5bc491e37804091a1aec --- pkgs/development/python-modules/shaperglot/default.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/shaperglot/default.nix b/pkgs/development/python-modules/shaperglot/default.nix index c00f66394dda..bdd59f0abb91 100644 --- a/pkgs/development/python-modules/shaperglot/default.nix +++ b/pkgs/development/python-modules/shaperglot/default.nix @@ -3,9 +3,11 @@ , fetchFromGitHub , gflanguages , num2words -, poetry-core , protobuf , pytestCheckHook +, pyyaml +, setuptools +, setuptools-scm , strictyaml , termcolor , ufo2ft @@ -31,6 +33,7 @@ buildPythonPackage rec { gflanguages num2words protobuf + pyyaml strictyaml termcolor ufo2ft @@ -38,7 +41,8 @@ buildPythonPackage rec { youseedee ]; nativeBuildInputs = [ - poetry-core + setuptools + setuptools-scm ]; doCheck = true; From e42b21d1af9636e98fc59d33f416a5136c70c6d3 Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Mon, 1 Apr 2024 13:22:49 +1100 Subject: [PATCH 02/13] python3Packages.shaperglot: convert to PEP-517 style --- pkgs/development/python-modules/shaperglot/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/shaperglot/default.nix b/pkgs/development/python-modules/shaperglot/default.nix index bdd59f0abb91..9201436d3b60 100644 --- a/pkgs/development/python-modules/shaperglot/default.nix +++ b/pkgs/development/python-modules/shaperglot/default.nix @@ -29,7 +29,7 @@ buildPythonPackage rec { pyproject = true; - propagatedBuildInputs = [ + dependencies = [ gflanguages num2words protobuf @@ -40,7 +40,7 @@ buildPythonPackage rec { vharfbuzz youseedee ]; - nativeBuildInputs = [ + build-system = [ setuptools setuptools-scm ]; From ad5ed645a95aa8599c9337977a99d668a2118aa9 Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Sat, 30 Mar 2024 13:13:33 +1100 Subject: [PATCH 03/13] Revert "python3Packages.gflanguages: 0.5.13 -> 5.0.4" This reverts commit 85663647fcc43e662c0cf4b5d6a0f9f4b62a0b1a. The 5.0.4 release was not a real release, it was a typo for 0.5.4 and has since been yanked from PyPI. --- pkgs/development/python-modules/gflanguages/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/gflanguages/default.nix b/pkgs/development/python-modules/gflanguages/default.nix index 2e1e2ab36fde..626495ed6f77 100644 --- a/pkgs/development/python-modules/gflanguages/default.nix +++ b/pkgs/development/python-modules/gflanguages/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "gflanguages"; - version = "5.0.4"; + version = "0.5.13"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-AGXpg9EhwdhrcbdcHqz2v9TLaWH1F5gr0QhSuEN2GDA="; + hash = "sha256-LoppJHzX0dOpHnwMCyS1ACdIO4cqwb370ksvsXDFHzQ="; }; # Relax the dependency on protobuf 3. Other packages in the Google Fonts From 23c63d447d3cada89bb51e9ba0cd17af3cd8c673 Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Sat, 30 Mar 2024 15:11:03 +1100 Subject: [PATCH 04/13] =?UTF-8?q?python3Packages.gflanguages:=200.5.13=20?= =?UTF-8?q?=E2=86=92=200.5.17?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/development/python-modules/gflanguages/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/gflanguages/default.nix b/pkgs/development/python-modules/gflanguages/default.nix index 626495ed6f77..77519fb3734d 100644 --- a/pkgs/development/python-modules/gflanguages/default.nix +++ b/pkgs/development/python-modules/gflanguages/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "gflanguages"; - version = "0.5.13"; + version = "0.5.17"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-LoppJHzX0dOpHnwMCyS1ACdIO4cqwb370ksvsXDFHzQ="; + hash = "sha256-dScgRQ6usjSqV0FqDyP+KGvHL06wlTFVcO+MmZ2NMAs="; }; # Relax the dependency on protobuf 3. Other packages in the Google Fonts From 768656bb8a45bd79f798b0938752596a62c1fdd4 Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Mon, 1 Apr 2024 13:33:27 +1100 Subject: [PATCH 05/13] python3Packages.gflanguages: convert to PEP-517 style --- pkgs/development/python-modules/gflanguages/default.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/gflanguages/default.nix b/pkgs/development/python-modules/gflanguages/default.nix index 77519fb3734d..9a3f77f957c0 100644 --- a/pkgs/development/python-modules/gflanguages/default.nix +++ b/pkgs/development/python-modules/gflanguages/default.nix @@ -5,6 +5,7 @@ , pytestCheckHook , pythonOlder , pythonRelaxDepsHook +, setuptools , setuptools-scm , uharfbuzz , youseedee @@ -13,7 +14,6 @@ buildPythonPackage rec { pname = "gflanguages"; version = "0.5.17"; - format = "setuptools"; disabled = pythonOlder "3.7"; @@ -22,6 +22,8 @@ buildPythonPackage rec { hash = "sha256-dScgRQ6usjSqV0FqDyP+KGvHL06wlTFVcO+MmZ2NMAs="; }; + 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 @@ -30,11 +32,12 @@ buildPythonPackage rec { "protobuf" ]; - nativeBuildInputs = [ + build-system = [ + setuptools setuptools-scm ]; - propagatedBuildInputs = [ + dependencies = [ protobuf ]; From a3651599c000d23e455219045ab3e26ddcc15a71 Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Sat, 30 Mar 2024 13:48:14 +1100 Subject: [PATCH 06/13] python3Packages.glyphsets: drop inapplicable patch The patch is no longer needed because upstream relaxed the version range. --- .../0001-relax-setuptools-scm-dep.patch | 22 ------------------- .../python-modules/glyphsets/default.nix | 8 ------- 2 files changed, 30 deletions(-) delete mode 100644 pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch diff --git a/pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch b/pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch deleted file mode 100644 index 96a4047c5ced..000000000000 --- a/pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch +++ /dev/null @@ -1,22 +0,0 @@ -From de2e02a41b11a708d58dfd1e24d335b8882dd7bd Mon Sep 17 00:00:00 2001 -From: Dan Callaghan -Date: Sun, 23 Apr 2023 12:15:47 +1000 -Subject: [PATCH] relax setuptools-scm dep - - -diff --git a/setup.py b/setup.py -index 2c122a7..42f9b61 100644 ---- a/setup.py -+++ b/setup.py -@@ -55,7 +55,7 @@ - 'Programming Language :: Python :: 3' - ], - python_requires=">=3.7", -- setup_requires=['setuptools_scm>=4,<6.1'], -+ setup_requires=['setuptools_scm'], - install_requires=[ - 'setuptools', - 'FontTools[ufo]', --- -2.38.4 - diff --git a/pkgs/development/python-modules/glyphsets/default.nix b/pkgs/development/python-modules/glyphsets/default.nix index ac1625471011..8fc7e84f020e 100644 --- a/pkgs/development/python-modules/glyphsets/default.nix +++ b/pkgs/development/python-modules/glyphsets/default.nix @@ -20,14 +20,6 @@ buildPythonPackage rec { hash = "sha256-lMRgchadgKyfFLw6ZF1sJAKBAK75zmw77L34MW9p7TI="; }; - patches = [ - # Upstream has a needlessly strict version range for setuptools_scm, our - # setuptools-scm is newer. We can't use pythonRelaxDepsHook for this - # because it's in setup_requires which means we'll fail the requirement - # before pythonRelaxDepsHook can run. - ./0001-relax-setuptools-scm-dep.patch - ]; - propagatedBuildInputs = [ defcon fonttools From 4e74494129e4cf419fc3c4dcdbedd13dac29e568 Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Sat, 30 Mar 2024 13:54:11 +1100 Subject: [PATCH 07/13] python3Packages.glyphsets: fix dependencies Upstream started depending on gflanguages and requests from v0.6.12: https://github.com/googlefonts/glyphsets/commit/ba341dca9bbdbc2b51f39a0b7a7eeacfe95ea72e https://github.com/googlefonts/glyphsets/commit/8ca303da23e6080b6a84d5ba7905443110ced33e --- pkgs/development/python-modules/glyphsets/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/python-modules/glyphsets/default.nix b/pkgs/development/python-modules/glyphsets/default.nix index 8fc7e84f020e..8a61546e2139 100644 --- a/pkgs/development/python-modules/glyphsets/default.nix +++ b/pkgs/development/python-modules/glyphsets/default.nix @@ -3,8 +3,10 @@ , fetchPypi , defcon , fonttools +, gflanguages , glyphslib , pytestCheckHook +, requests , setuptools , setuptools-scm , unicodedata2 @@ -23,7 +25,9 @@ buildPythonPackage rec { propagatedBuildInputs = [ defcon fonttools + gflanguages glyphslib + requests setuptools unicodedata2 ]; From 0f84b6db4e4f3dccca83e11d57eceea5e140f514 Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Sat, 30 Mar 2024 13:54:11 +1100 Subject: [PATCH 08/13] python3Packages.glyphsets: disable test that requires network access --- pkgs/development/python-modules/glyphsets/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/python-modules/glyphsets/default.nix b/pkgs/development/python-modules/glyphsets/default.nix index 8a61546e2139..cdc1f019b903 100644 --- a/pkgs/development/python-modules/glyphsets/default.nix +++ b/pkgs/development/python-modules/glyphsets/default.nix @@ -42,6 +42,10 @@ buildPythonPackage rec { preCheck = '' export PATH="$out/bin:$PATH" ''; + disabledTests = [ + # This "test" just tries to connect to PyPI and look for newer releases. Not needed. + "test_dependencies" + ]; meta = with lib; { description = "Google Fonts glyph set metadata"; From 1f764f787eb0ebd657ce998a068e7b9adef0604a Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Mon, 1 Apr 2024 13:25:18 +1100 Subject: [PATCH 09/13] python3Packages.glyphsets: convert to PEP-517 style --- pkgs/development/python-modules/glyphsets/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/glyphsets/default.nix b/pkgs/development/python-modules/glyphsets/default.nix index cdc1f019b903..f59e7f09607d 100644 --- a/pkgs/development/python-modules/glyphsets/default.nix +++ b/pkgs/development/python-modules/glyphsets/default.nix @@ -15,14 +15,14 @@ buildPythonPackage rec { pname = "glyphsets"; version = "0.6.14"; - format = "setuptools"; + pyproject = true; src = fetchPypi { inherit pname version; hash = "sha256-lMRgchadgKyfFLw6ZF1sJAKBAK75zmw77L34MW9p7TI="; }; - propagatedBuildInputs = [ + dependencies = [ defcon fonttools gflanguages @@ -31,7 +31,7 @@ buildPythonPackage rec { setuptools unicodedata2 ]; - nativeBuildInputs = [ + build-system = [ setuptools-scm ]; From 879ba19a87e815c8b42a83f684a30e9d4f33531d Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Sun, 31 Mar 2024 10:59:26 +1100 Subject: [PATCH 10/13] python3Packages.gfsubsets: init at 2024.2.5 --- .../python-modules/gfsubsets/default.nix | 47 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 49 insertions(+) create mode 100644 pkgs/development/python-modules/gfsubsets/default.nix diff --git a/pkgs/development/python-modules/gfsubsets/default.nix b/pkgs/development/python-modules/gfsubsets/default.nix new file mode 100644 index 000000000000..31aa36151644 --- /dev/null +++ b/pkgs/development/python-modules/gfsubsets/default.nix @@ -0,0 +1,47 @@ +{ lib +, buildPythonPackage +, fetchPypi +, fonttools +, importlib-resources +, setuptools +, setuptools-scm +, youseedee +}: + +buildPythonPackage rec { + pname = "gfsubsets"; + version = "2024.2.5"; + gitTag = "v2024.02.05"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-g9QxLa3B1MMTs+jmj4CyJySZRU0zoFNYdbOZwHjKPaQ="; + }; + + pyproject = true; + + build-system = [ + setuptools + setuptools-scm + ]; + + dependencies = [ + fonttools + importlib-resources + youseedee + ]; + + # Package has no unit tests. + doCheck = false; + pythonImportsCheck = [ + "gfsubsets" + ]; + + meta = with lib; { + description = "Codepoint definitions for the Google Fonts subsetter"; + homepage = "https://github.com/googlefonts/nam-files"; + changelog = "https://github.com/googlefonts/nam-files/releases/tag/${gitTag}"; + license = licenses.asl20; + maintainers = with maintainers; [ danc86 ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 810868a51b69..8109252626fa 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4693,6 +4693,8 @@ self: super: with self; { gflanguages = callPackage ../development/python-modules/gflanguages { }; + gfsubsets = callPackage ../development/python-modules/gfsubsets { }; + ghapi = callPackage ../development/python-modules/ghapi { }; ghdiff = callPackage ../development/python-modules/ghdiff { }; From 1290eef9c877bf5e052173921fa66fc1a004be76 Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Sun, 31 Mar 2024 10:59:26 +1100 Subject: [PATCH 11/13] fontbakery: add missing dependencies --- pkgs/development/python-modules/fontbakery/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/python-modules/fontbakery/default.nix b/pkgs/development/python-modules/fontbakery/default.nix index 15404df86d81..0450782041f5 100644 --- a/pkgs/development/python-modules/fontbakery/default.nix +++ b/pkgs/development/python-modules/fontbakery/default.nix @@ -15,10 +15,12 @@ , font-v , freetype-py , gflanguages +, gfsubsets , git , glyphsets , lxml , installShellFiles +, jinja2 , munkres , opentypespec , ots-python @@ -74,8 +76,10 @@ buildPythonPackage rec { font-v freetype-py gflanguages + gfsubsets glyphsets lxml + jinja2 munkres ots-python opentypespec From 3fe403d7553e5ec45a7d8c601eff8d0fea3ba24c Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Sun, 31 Mar 2024 11:12:29 +1100 Subject: [PATCH 12/13] fontbakery: drop inapplicable patch This patch no longer applies cleanly, and upstream has already completely refactored everything since the v0.11.2 release so my updated PR won't apply cleanly either. Just explicitly skip all tests requiring network access for now. Hopefully in a later release, this list of tests to skip can be shortened or removed. --- .../python-modules/fontbakery/default.nix | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/pkgs/development/python-modules/fontbakery/default.nix b/pkgs/development/python-modules/fontbakery/default.nix index 0450782041f5..ce909d1ff072 100644 --- a/pkgs/development/python-modules/fontbakery/default.nix +++ b/pkgs/development/python-modules/fontbakery/default.nix @@ -54,15 +54,6 @@ buildPythonPackage rec { hash = "sha256-61EXlf+d5kJeUF41OEnGNLaOcSvFWUDFgarVvHQZYmw="; }; - patches = [ - # Mock HTTP requests in tests (note we still have to skip some below) - # https://github.com/googlefonts/fontbakery/pull/4124 - (fetchpatch { - url = "https://github.com/fonttools/fontbakery/pull/4124.patch"; - hash = "sha256-NXuC2+TtxpHYMdd0t+cF0FJ3lrh4exP5yxspEasKKd0="; - }) - ]; - propagatedBuildInputs = [ axisregistry babelfont @@ -129,7 +120,14 @@ buildPythonPackage rec { ''; disabledTests = [ # These require network access: + "test_check_description_broken_links" + "test_check_description_family_update" + "test_check_metadata_designer_profiles" + "test_check_metadata_has_tags" + "test_check_metadata_includes_production_subsets" + "test_check_vertical_metrics" "test_check_vertical_metrics_regressions" + "test_check_cjk_vertical_metrics" "test_check_cjk_vertical_metrics_regressions" "test_check_fontbakery_version_live_apis" ]; From abae93295bfb566e42a6589593bf145169dce0ac Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Mon, 1 Apr 2024 13:36:06 +1100 Subject: [PATCH 13/13] fontbakery: convert to PEP-517 style --- .../development/python-modules/fontbakery/default.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/fontbakery/default.nix b/pkgs/development/python-modules/fontbakery/default.nix index ce909d1ff072..3076e6a4c469 100644 --- a/pkgs/development/python-modules/fontbakery/default.nix +++ b/pkgs/development/python-modules/fontbakery/default.nix @@ -34,6 +34,7 @@ , requests , requests-mock , rich +, setuptools , setuptools-scm , shaperglot , stringbrewer @@ -47,14 +48,15 @@ buildPythonPackage rec { pname = "fontbakery"; version = "0.11.2"; - format = "setuptools"; src = fetchPypi { inherit pname version; hash = "sha256-61EXlf+d5kJeUF41OEnGNLaOcSvFWUDFgarVvHQZYmw="; }; - propagatedBuildInputs = [ + pyproject = true; + + dependencies = [ axisregistry babelfont beautifulsoup4 @@ -88,10 +90,13 @@ buildPythonPackage rec { vharfbuzz ufo2ft ]; + build-system = [ + setuptools + setuptools-scm + ]; nativeBuildInputs = [ installShellFiles pythonRelaxDepsHook - setuptools-scm ]; pythonRelaxDeps = [