Unverified Commit 98aa7e89 authored by Theodore Ni's avatar Theodore Ni
Browse files

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
parent e329dc70
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
{ 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"
    );
  };
}
+30 −0
Original line number Diff line number Diff line
{ 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
+1 −1
Original line number Diff line number Diff line
@@ -7396,7 +7396,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 { };