diff --git a/pkgs/development/python-modules/dtschema/default.nix b/pkgs/development/python-modules/dtschema/default.nix index 5944a7760841..1e890aba3309 100644 --- a/pkgs/development/python-modules/dtschema/default.nix +++ b/pkgs/development/python-modules/dtschema/default.nix @@ -1,4 +1,5 @@ -{ lib +{ stdenv +, lib , buildPythonPackage , fetchFromGitHub , jsonschema @@ -54,6 +55,14 @@ buildPythonPackage rec { changelog = "https://github.com/devicetree-org/dt-schema/releases/tag/v${version}"; license = with licenses; [ bsd2 /* or */ gpl2Only ]; maintainers = with maintainers; [ sorki ]; + + broken = ( + # Library not loaded: @rpath/libfdt.1.dylib + stdenv.isDarwin || + + # see https://github.com/devicetree-org/dt-schema/issues/108 + versionAtLeast jsonschema.version "4.18" + ); }; } 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 + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0798975d5ec8..89b1669ff259 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7409,7 +7409,7 @@ with pkgs; dtc = callPackage ../development/compilers/dtc { }; - dt-schema = with python3Packages; toPythonApplication dtschema; + dt-schema = callPackage ../development/tools/dt-schema { }; dub = callPackage ../development/tools/build-managers/dub { };