···22 lib,
33 buildPythonPackage,
44 fetchPypi,
55- python,
55+ pytestCheckHook,
66 nix-update-script,
7788 # build-system
···19192020buildPythonPackage rec {
2121 pname = "tree-sitter-language-pack";
2222- version = "0.7.3";
2222+ version = "0.8.0";
2323 pyproject = true;
24242525- # Using the GitHub sources necessitates fetching the treesitter grammar parsers by using a vendored script:
2626- # https://github.com/Goldziher/tree-sitter-language-pack/blob/main/scripts/clone_vendors.py
2525+ # Using the GitHub sources necessitates fetching the treesitter grammar parsers by using a vendored script.
2726 # The pypi archive has the benefit of already vendoring those dependencies which makes packaging easier on our side
2727+ # See: https://github.com/Goldziher/tree-sitter-language-pack/blob/main/scripts/clone_vendors.py
2828 src = fetchPypi {
2929 pname = "tree_sitter_language_pack";
3030 inherit version;
3131- hash = "sha256-SROctgfYE1LTOtGOV1IPwQV6AJlVyczO1WYHzBjmo/0=";
3131+ hash = "sha256-Sar+Mi61nvTURXV3IQ+yDBjFU1saQrjnU6ppntO/nu0=";
3232 };
33333434+ # Upstream bumped the setuptools and typing-extensions dependencies, but we can still use older versions
3535+ # since the newer ones aren’t packaged in nixpkgs. We can't use pythonRelaxDepsHook here because it runs
3636+ # in postBuild, while the dependency check occurs during the build phase.
3737+ postPatch = ''
3838+ substituteInPlace pyproject.toml \
3939+ --replace-fail "setuptools>=80.9.0" "setuptools>=78.1.0" \
4040+ --replace-fail "typing-extensions>=4.14.0" "typing-extensions>=4.13.2"
4141+ '';
4242+3443 build-system = [
3544 cython
3645 setuptools
···4453 tree-sitter-yaml
4554 ];
46554747- prePatch = ''
4848- # Remove the packaged bindings, which only work on Linux and prevent the build from succeeding
4949- # https://github.com/Goldziher/tree-sitter-language-pack/issues/46
5050- rm -rf tree_sitter_language_pack/bindings/*.so
5151- '';
5656+ nativeCheckInputs = [
5757+ pytestCheckHook
5858+ ];
52595360 pythonImportsCheck = [
5461 "tree_sitter_language_pack"
5562 "tree_sitter_language_pack.bindings"
5663 ];
57645858- # No tests in the pypi archive, we add a test to check that all bindings can be imported
5959- checkPhase = ''
6060- runHook preCheck
6161-6262- cat <<EOF > test-import-bindings.py
6363- import sys
6464- import os
6565- if (cwd := os.getcwd()) in sys.path:
6666- # remove current working directory from sys.path, use PYTHONPATH instead
6767- sys.path.remove(cwd)
6868-6969- from typing import get_args
7070- from tree_sitter_language_pack import SupportedLanguage, get_binding
7171-7272- for lang in get_args(SupportedLanguage):
7373- get_binding(lang)
7474- EOF
7575-7676- ${python.interpreter} test-import-bindings.py
7777-7878- runHook postCheck
6565+ preCheck = ''
6666+ # make sure import the built version, not the source one
6767+ rm -r tree_sitter_language_pack
7968 '';
80698170 passthru.updateScript = nix-update-script { };
···670670 fingerd_bsd = bsd-fingerd;
671671 fira-code-nerdfont = lib.warnOnInstantiate "fira-code-nerdfont is redundant. Use nerd-fonts.fira-code instead." nerd-fonts.fira-code; # Added 2024-11-10
672672 firebird_2_5 = throw "'firebird_2_5' has been removed as it has reached end-of-life and does not build."; # Added 2025-06-10
673673+ firefox-beta-bin = lib.warnOnInstantiate "`firefox-beta-bin` is removed. Please use `firefox-beta` or `firefox-bin` instead." firefox-beta;
674674+ firefox-devedition-bin = lib.warnOnInstantiate "`firefox-devedition-bin` is removed. Please use `firefox-devedition` or `firefox-bin` instead." firefox-devedition;
673675 firefox-esr-115 = throw "The Firefox 115 ESR series has reached its end of life. Upgrade to `firefox-esr` or `firefox-esr-128` instead.";
674676 firefox-esr-115-unwrapped = throw "The Firefox 115 ESR series has reached its end of life. Upgrade to `firefox-esr-unwrapped` or `firefox-esr-128-unwrapped` instead.";
675677 firefox-wayland = firefox; # Added 2022-11-15
···697699 fractal-next = fractal; # added 2023-11-25
698700 framework-system-tools = framework-tool; # added 2023-12-09
699701 francis = kdePackages.francis; # added 2024-07-13
702702+ freecad-qt6 = freecad; # added 2025-06-14
703703+ freecad-wayland = freecad; # added 2025-06-14
700704 freerdp3 = freerdp; # added 2025-03-25
701705 freerdpUnstable = freerdp; # added 2025-03-25
702706 frostwire = throw "frostwire was removed, as it was broken due to reproducibility issues, use `frostwire-bin` package instead."; # added 2024-05-17
···870874 gtk-engine-bluecurve = "'gtk-engine-bluecurve' has been removed as it has been archived upstream."; # Added 2024-12-04
871875 gtk2fontsel = throw "'gtk2fontsel' has been removed due to lack of maintenance upstream. GTK now has a built-in font chooser so it's no longer needed for newer apps"; # Added 2024-10-19
872876 gtkcord4 = dissent; # Added 2024-03-10
877877+ gtkextra = throw "'gtkextra' has been removed due to lack of maintenance upstream."; # Added 2025-06-10
873878 gtkperf = throw "'gtkperf' has been removed due to lack of maintenance upstream"; # Added 2024-09-14
874879 guardian-agent = throw "'guardian-agent' has been removed, as it hasn't been maintained upstream in years and accumulated many vulnerabilities"; # Added 2024-06-09
875880 guile-disarchive = disarchive; # Added 2023-10-27
···20642069 wg-bond = throw "'wg-bond' has been removed due to lack of upstream maintenance"; # Added 2025-01-25
20652070 whatsapp-for-linux = wasistlos; # Added 2025-01-30
20662071 wineWayland = wine-wayland;
20722072+ winhelpcgi = throw "'winhelpcgi' has been removed as it was unmaintained upstream and broken with GCC 14"; # Added 2025-06-14
20672073 win-virtio = virtio-win; # Added 2023-10-17
20682074 wireguard-vanity-address = throw "'wireguard-vanity-address' has been removed due to lack of upstream maintenance"; # Added 2025-01-26
20692075 wkhtmltopdf-bin = wkhtmltopdf; # Added 2024-07-17