From 503c4c1b68703ece131a8738a5d5e5610b62503a Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 26 Dec 2022 18:30:20 +0100 Subject: [PATCH 01/11] antlr4: 4.8.x -> 4.11.x --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d37566466fef..a87f99d63d08 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16652,7 +16652,7 @@ with pkgs; antlr4_10 antlr4_11; - antlr4 = antlr4_8; + antlr4 = antlr4_11; antlr = antlr4; From fd2a0bdd6bd430c57fd1bb6dc489cb218e043142 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 26 Dec 2022 18:38:21 +0100 Subject: [PATCH 02/11] python3Packages.antlr4-python-runtime: remove versioned variants The python package set cannot support multiple versions of a package, since they would collide when different versions would be used at the same time. This can too easily happen through transitive propagation, which is why we don't support it. --- pkgs/development/python-modules/hydra/default.nix | 4 ++-- pkgs/development/python-modules/omegaconf/default.nix | 4 ++-- pkgs/top-level/python-packages.nix | 8 ++------ 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/pkgs/development/python-modules/hydra/default.nix b/pkgs/development/python-modules/hydra/default.nix index cbd2502305bd..f858e39cfdaa 100644 --- a/pkgs/development/python-modules/hydra/default.nix +++ b/pkgs/development/python-modules/hydra/default.nix @@ -1,6 +1,6 @@ { stdenv , lib -, antlr4_9-python3-runtime +, antlr4-python3-runtime , buildPythonPackage , fetchFromGitHub , importlib-resources @@ -29,7 +29,7 @@ buildPythonPackage rec { ]; propagatedBuildInputs = [ - antlr4_9-python3-runtime + antlr4-python3-runtime omegaconf ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources diff --git a/pkgs/development/python-modules/omegaconf/default.nix b/pkgs/development/python-modules/omegaconf/default.nix index 5aa772310bd9..82524a627f6b 100644 --- a/pkgs/development/python-modules/omegaconf/default.nix +++ b/pkgs/development/python-modules/omegaconf/default.nix @@ -1,5 +1,5 @@ { lib -, antlr4_9-python3-runtime +, antlr4-python3-runtime , buildPythonPackage , fetchFromGitHub , jre_minimal @@ -29,7 +29,7 @@ buildPythonPackage rec { ]; propagatedBuildInputs = [ - antlr4_9-python3-runtime + antlr4-python3-runtime pyyaml ]; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 0526970704a9..5f80001e94fa 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -488,13 +488,9 @@ self: super: with self; { ansiwrap = callPackage ../development/python-modules/ansiwrap { }; - antlr4_8-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime { - antlr4 = pkgs.antlr4_8; + antlr4-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime { + inherit (pkgs) antlr4; }; - antlr4_9-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime { - antlr4 = pkgs.antlr4_9; - }; - antlr4-python3-runtime = self.antlr4_8-python3-runtime; anyascii = callPackage ../development/python-modules/anyascii { }; From 2258156699eecd4cb22ab1d48694fda1a0ea418a Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 26 Dec 2022 18:42:11 +0100 Subject: [PATCH 03/11] python3Packages.antlr4-python3-runtime: run correct tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We're not interested in the profiling, but the actual tests. They currently log a warning, because upstream does not test them in their CI and the lexer/parser artifacts are out of date¹. [1] https://github.com/antlr/antlr4/issues/4041 --- .../python-modules/antlr4-python3-runtime/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/antlr4-python3-runtime/default.nix b/pkgs/development/python-modules/antlr4-python3-runtime/default.nix index 1ab91cacbcc3..4f5f25d0159b 100644 --- a/pkgs/development/python-modules/antlr4-python3-runtime/default.nix +++ b/pkgs/development/python-modules/antlr4-python3-runtime/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { # in 4.9, test was renamed to tests checkPhase = '' cd test* - ${python.interpreter} ctest.py + ${python.interpreter} run.py ''; meta = with lib; { From e98704b1974e671d5912f3d53c52d24df6fc3191 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 26 Dec 2022 19:09:30 +0100 Subject: [PATCH 04/11] luaformatter: pin antlr4_9 Newer versions fail to build. --- pkgs/development/tools/luaformatter/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/development/tools/luaformatter/default.nix b/pkgs/development/tools/luaformatter/default.nix index 00d96a687a63..b2d719267a62 100644 --- a/pkgs/development/tools/luaformatter/default.nix +++ b/pkgs/development/tools/luaformatter/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchFromGitHub, substituteAll, antlr4, libargs, catch2, cmake, libyamlcpp }: +{ lib, stdenv, fetchFromGitHub, substituteAll, antlr4_9, libargs, catch2, cmake, libyamlcpp }: + +let + antlr4 = antlr4_9; +in stdenv.mkDerivation rec { pname = "luaformatter"; From 9de9273f33adee23ecf633ea4c8d90eb271415a6 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 26 Dec 2022 19:25:11 +0100 Subject: [PATCH 05/11] baserow: Use antlr4_9 in antlr4-python3-runtime and use buildPythonApplication for the package. --- pkgs/servers/baserow/default.nix | 40 +++++++++++++++++++------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/pkgs/servers/baserow/default.nix b/pkgs/servers/baserow/default.nix index 222d24252ebf..a0470f0d275c 100644 --- a/pkgs/servers/baserow/default.nix +++ b/pkgs/servers/baserow/default.nix @@ -2,30 +2,38 @@ , fetchFromGitLab , makeWrapper , python3 +, antlr4_9 }: let - baserow_premium = with python3.pkgs; ( buildPythonPackage rec { - pname = "baserow_premium"; - version = "1.12.1"; - foramt = "setuptools"; + python = python3.override { + packageOverrides = self: super: { + antlr4-python3-runtime = super.antlr4-python3-runtime.override { + antlr4 = antlr4_9; + }; - src = fetchFromGitLab { - owner = "bramw"; - repo = pname; - rev = "refs/tags/${version}"; - hash = "sha256-zT2afl3QNE2dO3JXjsZXqSmm1lv3EorG3mYZLQQMQ2Q="; + baserow_premium = self.buildPythonPackage rec { + pname = "baserow_premium"; + version = "1.12.1"; + foramt = "setuptools"; + + src = fetchFromGitLab { + owner = "bramw"; + repo = pname; + rev = "refs/tags/${version}"; + hash = "sha256-zT2afl3QNE2dO3JXjsZXqSmm1lv3EorG3mYZLQQMQ2Q="; + }; + + sourceRoot = "source/premium/backend"; + + doCheck = false; + }; }; - - sourceRoot = "source/premium/backend"; - - doCheck = false; - }); - + }; in -with python3.pkgs; buildPythonPackage rec { +with python.pkgs; buildPythonApplication rec { pname = "baserow"; version = "1.12.1"; format = "setuptools"; From 56918eebbaeb5e7cdd1101e8fc707b89716440fe Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Tue, 27 Dec 2022 19:04:36 +0100 Subject: [PATCH 06/11] python3Packages.hydra-core: rename from hydra --- .../python-modules/{hydra => hydra-core}/default.nix | 4 ++-- pkgs/top-level/python-packages.nix | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename pkgs/development/python-modules/{hydra => hydra-core}/default.nix (96%) diff --git a/pkgs/development/python-modules/hydra/default.nix b/pkgs/development/python-modules/hydra-core/default.nix similarity index 96% rename from pkgs/development/python-modules/hydra/default.nix rename to pkgs/development/python-modules/hydra-core/default.nix index f858e39cfdaa..4cd6e1b60253 100644 --- a/pkgs/development/python-modules/hydra/default.nix +++ b/pkgs/development/python-modules/hydra-core/default.nix @@ -11,7 +11,7 @@ }: buildPythonPackage rec { - pname = "hydra"; + pname = "hydra-core"; version = "1.3.1"; format = "setuptools"; @@ -19,7 +19,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "facebookresearch"; - repo = pname; + repo = "hydra"; rev = "refs/tags/v${version}"; hash = "sha256-4FOh1Jr+LM8ffh/xcAqMqKudKbXb2DZdxU+czq2xwxs="; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5f80001e94fa..69241e9fccf4 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4385,7 +4385,7 @@ self: super: with self; { hy = callPackage ../development/python-modules/hy { }; - hydra = callPackage ../development/python-modules/hydra { }; + hydra-core = callPackage ../development/python-modules/hydra-core { }; hydra-check = callPackage ../development/python-modules/hydra-check { }; From 47967562fad687ba6d6ce0fc2a8d075455da6162 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Tue, 27 Dec 2022 19:42:39 +0100 Subject: [PATCH 07/11] python3Packages.omegaconf: relax antlr4 version --- .../python-modules/omegaconf/antlr4.patch | 13 +++++++++++++ .../python-modules/omegaconf/default.nix | 17 +++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/development/python-modules/omegaconf/antlr4.patch diff --git a/pkgs/development/python-modules/omegaconf/antlr4.patch b/pkgs/development/python-modules/omegaconf/antlr4.patch new file mode 100644 index 000000000000..8b9ed34d313e --- /dev/null +++ b/pkgs/development/python-modules/omegaconf/antlr4.patch @@ -0,0 +1,13 @@ +diff --git a/build_helpers/build_helpers.py b/build_helpers/build_helpers.py +index 6419e26..9e6c21c 100644 +--- a/build_helpers/build_helpers.py ++++ b/build_helpers/build_helpers.py +@@ -30,7 +30,7 @@ class ANTLRCommand(Command): # type: ignore # pragma: no cover + command = [ + "java", + "-jar", +- str(build_dir / "bin" / "antlr-4.9.3-complete.jar"), ++ "@antlr_jar@", + "-Dlanguage=Python3", + "-o", + str(project_root / "omegaconf" / "grammar" / "gen"), diff --git a/pkgs/development/python-modules/omegaconf/default.nix b/pkgs/development/python-modules/omegaconf/default.nix index 82524a627f6b..7046e6ab1741 100644 --- a/pkgs/development/python-modules/omegaconf/default.nix +++ b/pkgs/development/python-modules/omegaconf/default.nix @@ -1,4 +1,5 @@ { lib +, antlr4 , antlr4-python3-runtime , buildPythonPackage , fetchFromGitHub @@ -8,6 +9,7 @@ , pytestCheckHook , pythonOlder , pyyaml +, substituteAll }: buildPythonPackage rec { @@ -24,6 +26,21 @@ buildPythonPackage rec { hash = "sha256-Qxa4uIiX5TAyQ5rFkizdev60S4iVAJ08ES6FpNqf8zI="; }; + patches = [ + (substituteAll { + src = ./antlr4.patch; + antlr_jar = "${antlr4.out}/share/java/antlr-${antlr4.version}-complete.jar"; + }) + ]; + + postPatch = '' + # We substitute the path to the jar with the one from our antlr4 + # package, so this file becomes unused + rm -v build_helpers/bin/antlr*-complete.jar + + sed -i 's/antlr4-python3-runtime==.*/antlr4-python3-runtime/' requirements/base.txt + ''; + nativeBuildInputs = [ jre_minimal ]; From b71ad92137d9487af9374e59c0c9d2068b6c0465 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Tue, 27 Dec 2022 20:01:20 +0100 Subject: [PATCH 08/11] python3Packages.hydra-core: unpin antlr4-python3-runtime --- .../python-modules/hydra-core/antlr4.patch | 13 +++++++++++++ .../python-modules/hydra-core/default.nix | 17 +++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/development/python-modules/hydra-core/antlr4.patch diff --git a/pkgs/development/python-modules/hydra-core/antlr4.patch b/pkgs/development/python-modules/hydra-core/antlr4.patch new file mode 100644 index 000000000000..958e128998d1 --- /dev/null +++ b/pkgs/development/python-modules/hydra-core/antlr4.patch @@ -0,0 +1,13 @@ +diff --git a/build_helpers/build_helpers.py b/build_helpers/build_helpers.py +index 7159d22615..73db312bbe 100644 +--- a/build_helpers/build_helpers.py ++++ b/build_helpers/build_helpers.py +@@ -185,7 +185,7 @@ class ANTLRCommand(Command): # type: ignore + command = [ + "java", + "-jar", +- join(root_dir, "bin/antlr-4.9.3-complete.jar"), ++ "@antlr_jar@", + "-Dlanguage=Python3", + "-o", + join(project_root, "hydra/grammar/gen/"), diff --git a/pkgs/development/python-modules/hydra-core/default.nix b/pkgs/development/python-modules/hydra-core/default.nix index 4cd6e1b60253..644c16cb52a7 100644 --- a/pkgs/development/python-modules/hydra-core/default.nix +++ b/pkgs/development/python-modules/hydra-core/default.nix @@ -1,5 +1,6 @@ { stdenv , lib +, antlr4 , antlr4-python3-runtime , buildPythonPackage , fetchFromGitHub @@ -8,6 +9,7 @@ , omegaconf , pytestCheckHook , pythonOlder +, substituteAll }: buildPythonPackage rec { @@ -24,6 +26,21 @@ buildPythonPackage rec { hash = "sha256-4FOh1Jr+LM8ffh/xcAqMqKudKbXb2DZdxU+czq2xwxs="; }; + patches = [ + (substituteAll { + src = ./antlr4.patch; + antlr_jar = "${antlr4.out}/share/java/antlr-${antlr4.version}-complete.jar"; + }) + ]; + + postPatch = '' + # We substitute the path to the jar with the one from our antlr4 + # package, so this file becomes unused + rm -v build_helpers/bin/antlr*-complete.jar + + sed -i 's/antlr4-python3-runtime==.*/antlr4-python3-runtime/' requirements/requirements.txt + ''; + nativeBuildInputs = [ jre_headless ]; From 4a0fefa62c63ade30b58bc05514c2fae9e45b36a Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Tue, 27 Dec 2022 20:48:03 +0100 Subject: [PATCH 09/11] python3Packages.explorerscript: unpin antlr4-python3-runtime and regenerate required antlr files with out antlr4 package. Co-Authored-By: Konrad Borowski --- .../python-modules/explorerscript/default.nix | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/explorerscript/default.nix b/pkgs/development/python-modules/explorerscript/default.nix index a77c31e26a63..4a79dc31c195 100644 --- a/pkgs/development/python-modules/explorerscript/default.nix +++ b/pkgs/development/python-modules/explorerscript/default.nix @@ -2,9 +2,11 @@ , buildPythonPackage , fetchFromGitHub , fetchpatch +, antlr4 , antlr4-python3-runtime , igraph , pygments +, pytestCheckHook }: buildPythonPackage rec { @@ -18,6 +20,10 @@ buildPythonPackage rec { sha256 = "1vzyliiyrxx8l9sfbqcyr4xn5swd7znkxy69kn0vb5rban8hm9c1"; }; + nativeBuildInputs = [ + antlr4 + ]; + patches = [ # https://github.com/SkyTemple/ExplorerScript/pull/17 (fetchpatch { @@ -26,8 +32,27 @@ buildPythonPackage rec { }) ]; - propagatedBuildInputs = [ antlr4-python3-runtime igraph ]; - checkInputs = [ pygments ]; + postPatch = '' + sed -i "s/antlr4-python3-runtime.*/antlr4-python3-runtime',/" setup.py + antlr -Dlanguage=Python3 -visitor explorerscript/antlr/{ExplorerScript,SsbScript}.g4 + ''; + + propagatedBuildInputs = [ + antlr4-python3-runtime + igraph + ]; + + passthru.optional-dependencies.pygments = [ + pygments + ]; + + checkInputs = [ + pytestCheckHook + ] ++ passthru.optional-dependencies.pygments; + + pythonImportsCheck = [ + "explorerscript" + ]; meta = with lib; { homepage = "https://github.com/SkyTemple/explorerscript"; From c561e4010a8582d1dc1bd92f48dac31d63ef1ad5 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Tue, 27 Dec 2022 21:31:10 +0100 Subject: [PATCH 10/11] python3Packages.hydra-core: Unbreak on aarch64-linux --- pkgs/development/python-modules/hydra-core/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/hydra-core/default.nix b/pkgs/development/python-modules/hydra-core/default.nix index 644c16cb52a7..17dda8404b4a 100644 --- a/pkgs/development/python-modules/hydra-core/default.nix +++ b/pkgs/development/python-modules/hydra-core/default.nix @@ -72,7 +72,7 @@ buildPythonPackage rec { ]; meta = with lib; { - broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin; + broken = stdenv.isDarwin; description = "A framework for configuring complex applications"; homepage = "https://hydra.cc"; license = licenses.mit; From e0beb61e601c1c4451dee3430ce520f0d2defc60 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 23 Dec 2022 02:01:05 +0100 Subject: [PATCH 11/11] python3Packages.hassil: init at 0.1.3 --- .../python-modules/hassil/default.nix | 48 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 50 insertions(+) create mode 100644 pkgs/development/python-modules/hassil/default.nix diff --git a/pkgs/development/python-modules/hassil/default.nix b/pkgs/development/python-modules/hassil/default.nix new file mode 100644 index 000000000000..bbbe26faccb9 --- /dev/null +++ b/pkgs/development/python-modules/hassil/default.nix @@ -0,0 +1,48 @@ +{ lib +, buildPythonPackage +, fetchPypi + +# propagates +, antlr4-python3-runtime +, dataclasses-json +, pyyaml + +# tests +, pytestCheckHook +}: + +let + pname = "hassil"; + version = "0.1.3"; +in +buildPythonPackage { + inherit pname version; + format = "setuptools"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-KWkzHWMo50OIrZ2kwFhhqDSleFFkAD7/JugjvSyCkww="; + }; + + postPatch = '' + sed -i 's/antlr4-python3-runtime==.*/antlr4-python3-runtime/' requirements.txt + ''; + + propagatedBuildInputs = [ + antlr4-python3-runtime + dataclasses-json + pyyaml + ]; + + checkInputs = [ + pytestCheckHook + ]; + + meta = with lib; { + changelog = "https://github.com/home-assistant/hassil/releases/tag/v${version}"; + description = "Intent parsing for Home Assistant"; + homepage = "https://github.com/home-assistant/hassil"; + license = licenses.asl20; + maintainers = teams.home-assistant.members; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 69241e9fccf4..d47835b1568e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4169,6 +4169,8 @@ self: super: with self; { hass-nabucasa = callPackage ../development/python-modules/hass-nabucasa { }; + hassil = callPackage ../development/python-modules/hassil { }; + hatasmota = callPackage ../development/python-modules/hatasmota { }; hatchling = callPackage ../development/python-modules/hatchling { };