about summary refs log tree commit diff
path: root/pkgs/development/tools/dt-schema
diff options
context:
space:
mode:
authorTheodore Ni <3806110+tjni@users.noreply.github.com>2023-08-05 12:20:01 -0700
committerTheodore Ni <3806110+tjni@users.noreply.github.com>2023-08-05 13:16:43 -0700
commit98aa7e8973b989a4b984c19e2e66187dc1810054 (patch)
tree7d82df8d8eb16d405e0c6a8bf83ff1facfbe8802 /pkgs/development/tools/dt-schema
parente329dc70eef026bfddd1ab49ddc8349784f79b92 (diff)
downloadnixlib-98aa7e8973b989a4b984c19e2e66187dc1810054.tar
nixlib-98aa7e8973b989a4b984c19e2e66187dc1810054.tar.gz
nixlib-98aa7e8973b989a4b984c19e2e66187dc1810054.tar.bz2
nixlib-98aa7e8973b989a4b984c19e2e66187dc1810054.tar.lz
nixlib-98aa7e8973b989a4b984c19e2e66187dc1810054.tar.xz
nixlib-98aa7e8973b989a4b984c19e2e66187dc1810054.tar.zst
nixlib-98aa7e8973b989a4b984c19e2e66187dc1810054.zip
dt-schema, python3.pkgs.dtschema: handle jsonschema incompatibility
1. dt-schema is an application, so it can pin jsonschema to 4.17
2. mark python3.pkgs.dtschema broken with jsonschema > 4.17
3. mark python3.pkgs.dtschema broken on darwin
Diffstat (limited to 'pkgs/development/tools/dt-schema')
-rw-r--r--pkgs/development/tools/dt-schema/default.nix30
1 files changed, 30 insertions, 0 deletions
diff --git a/pkgs/development/tools/dt-schema/default.nix b/pkgs/development/tools/dt-schema/default.nix
new file mode 100644
index 000000000000..5736d301b32d
--- /dev/null
+++ b/pkgs/development/tools/dt-schema/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, python3
+}:
+
+let python = python3.override {
+  packageOverrides = self: super: {
+    # see https://github.com/devicetree-org/dt-schema/issues/108
+    jsonschema = super.jsonschema.overridePythonAttrs (old: rec {
+      version = "4.17.3";
+      disabled = self.pythonOlder "3.7";
+
+      src = old.src.override {
+        inherit version;
+        hash = "sha256-D4ZEN6uLYHa6ZwdFPvj5imoNUSqA6T+KvbZ29zfstg0=";
+      };
+
+      propagatedBuildInputs = with self; ([
+        attrs
+        pyrsistent
+      ] ++ lib.optionals (pythonOlder "3.8") [
+        importlib-metadata
+        typing-extensions
+      ] ++ lib.optionals (pythonOlder "3.9") [
+        importlib-resources
+        pkgutil-resolve-name
+      ]);
+    });
+  };
+}; in python.pkgs.toPythonApplication python.pkgs.dtschema
+