diff --git a/pkgs/applications/misc/octoprint/default.nix b/pkgs/applications/misc/octoprint/default.nix index 1f4a318287a1..1d5fe7c3e9fa 100644 --- a/pkgs/applications/misc/octoprint/default.nix +++ b/pkgs/applications/misc/octoprint/default.nix @@ -9,216 +9,26 @@ , packageOverrides ? self: super: { } }: let - mkOverride = attrname: version: sha256: - self: super: { - ${attrname} = super.${attrname}.overridePythonAttrs ( - oldAttrs: { - inherit version; - src = oldAttrs.src.override { - inherit version sha256; - }; - } - ); - }; py = python3.override { self = py; packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) ( [ - # the following dependencies are non trivial to update since later versions introduce backwards incompatible - # changes that might affect plugins, or due to other observed problems - (mkOverride "click" "7.1.2" "d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a") - (mkOverride "flask-babel" "1.0.0" "0gmb165vkwv5v7dxsxa2i3zhafns0fh938m2zdcrv4d8z5l099yn") - (mkOverride "itsdangerous" "1.1.0" "321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19") - (mkOverride "jinja2" "2.11.3" "a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6") - (mkOverride "markdown" "3.1.1" "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a") - (mkOverride "markupsafe" "1.1.1" "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b") - - # black uses hash, not sha256 identifier. Newer black version requires newer click version - ( - self: super: { - black = super.black.overridePythonAttrs (oldAttrs: rec { - version = "21.12b0"; - src = oldAttrs.src.override { - inherit version; - hash = "sha256-d7gPaTpWni5SeVhFljTxjfmwuiYluk4MLV2lvkLm8rM="; - }; - doCheck = false; - }); - } - ) - - # tests need network - ( - self: super: { - curio = super.curio.overridePythonAttrs (oldAttrs: rec { - disabledTests = [ - "test_timeout" - "test_ssl_outgoing" - ]; - }); - } - ) - - # tests need network - ( - self: super: { - trio = super.trio.overridePythonAttrs (oldAttrs: rec { - disabledTests = [ - "test_local_address_real" - ]; - disabledTestPaths = [ - "trio/tests/test_exports.py" - "trio/tests/test_socket.py" - ]; - }); - } - ) - - # Requires flask<2, cannot mkOverride because tests need to be disabled - ( - self: super: { - flask = super.flask.overridePythonAttrs (oldAttrs: rec { - version = "1.1.4"; - src = oldAttrs.src.override { - inherit version; - sha256 = "15ni4xlm57a15f5hipp8w0c9zba20179bvfns2392fiq1lcbdghg"; - }; - doCheck = false; - }); - } - ) - - # Requires werkezug<2, cannot mkOverride because tests need to be disabled - ( - self: super: { - werkzeug = super.werkzeug.overridePythonAttrs (oldAttrs: rec { - version = "1.0.1"; - src = oldAttrs.src.override { - inherit version; - sha256 = "6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c"; - }; - doCheck = false; - }); - } - ) - - # Requires unidecode>=0.04.14,<0.05. Upstream changed the source naming between releases - ( - self: super: { - unidecode = super.unidecode.overridePythonAttrs (oldAttrs: rec { - version = "0.04.21"; - src = fetchFromGitHub { - owner = "avian2"; - repo = "unidecode"; - rev = "release-${version}"; - sha256 = "0p5bkibv0xm1265dlfrz3zq3k9bbx07gl8zyq8mvvb8hi7p5lifg"; - }; - }); - } - ) - - # Requires websocket-client <1.0, >=0.57. Cannot do mkOverride b/c differing underscore/hyphen in pypi source name - ( - self: super: { - websocket-client = super.websocket-client.overridePythonAttrs ( - oldAttrs: rec { - version = "0.59.0"; - src = oldAttrs.src.override { - inherit version; - sha256 = "0p0cz2mdissq7iw1n7jrmsfir0jfmgs1dvnpnrx477ffx9hbsxnk"; - }; - propagatedBuildInputs = with self; [ - six - pysocks - ]; - disabledTests = [ - "testConnect" # requires network access - ]; - } - ); - } - ) - - # Octoprint needs zeroconf >=0.24 <0.25. This can't be done via mkOverride, because in zeroconf 0.32 - # the super package was migrated to fetchFromGitHub. - ( - self: super: { - zeroconf = super.zeroconf.overrideAttrs (oldAttrs: rec { - version = "0.24.5"; - src = super.fetchPypi { - inherit (oldAttrs) pname; - inherit version; - sha256 = "0jpgd0rk91si93857mjrizan5gc42kj1q4fi4160qgk68la88fl9"; - }; - pythonImportsCheck = [ - "zeroconf" - ]; - buildInputs = with self; [ - pytestCheckHook - nose - ]; - pytestFlagsArray = [ "zeroconf/test.py" ]; - }); - } - ) - - # Octoprint pulls in celery indirectly but has no support for the up-to-date releases - ( - self: super: { - celery = super.celery.overrideAttrs (oldAttrs: rec { - version = "5.0.0"; - src = oldAttrs.src.override { - inherit version; - hash = "sha256-MTkw/d3nA9jjcCmjBL+RQpzRGu72PFfebayp2Vjh8lU="; - }; - disabledTestPaths = [ - "t/unit/backends/test_mongodb.py" - "t/unit/backends/test_cassandra.py" - ]; - }); - } - ) - - # Octoprint would allow later sentry-sdk releases but not later click releases - ( - self: super: { - sentry-sdk = super.sentry-sdk.overrideAttrs (oldAttrs: rec { - pname = "sentry-sdk"; - version = "1.4.3"; - - src = fetchFromGitHub { - owner = "getsentry"; - repo = "sentry-python"; - rev = version; - sha256 = "sha256-vdE6eqELMM69CWHaNYhF0HMCTV3tQsJlMHAA96oCy8c="; - }; - disabledTests = [ - "test_apply_simulates_delivery_info" - "test_auto_enabling_integrations_catches_import_error" - "test_leaks" - ]; - disabledTestPaths = [ - # Don't test integrations - "tests/integrations" - # test crashes on aarch64 - "tests/test_transport.py" - ]; - }); - } - ) - - # Octoprint fails due to a newly added test in pytest-httpbin - # see https://github.com/NixOS/nixpkgs/issues/159864 - ( - self: super: { - pytest-httpbin = super.pytest-httpbin.overridePythonAttrs (oldAttrs: rec { - disabledTests = [ - "test_redirect_location_is_https_for_secure_server" - ]; - }); - } - ) + ( + self: super: { + sentry-sdk = super.sentry-sdk.overrideAttrs (oldAttrs: rec { + disabledTests = oldAttrs.disabledTests ++ lib.optionals (stdenv.buildPlatform != "x86_64-linux") [ + "test_leaks" + ]; + disabledTestPaths = [ + # Don't test integrations + "tests/integrations" + # test crashes on aarch64 + "tests/test_transport.py" + ]; + }); + } + ) # All test fail on aarch64 ( @@ -313,14 +123,14 @@ let self: super: { octoprint-pisupport = self.buildPythonPackage rec { pname = "OctoPrint-PiSupport"; - version = "2021.10.28"; + version = "2022.3.1"; format = "setuptools"; src = fetchFromGitHub { owner = "OctoPrint"; repo = "OctoPrint-PiSupport"; rev = version; - sha256 = "01bpvv1sn3113fdpw6b90c2rj8lqay118x609yy64z9ccm93khl9"; + sha256 = "fuDIvmz9u4f1Kptm6pd9TfQd9DVKiak4THUd66QpRO4="; }; # requires octoprint itself during tests @@ -333,13 +143,13 @@ let self: super: { octoprint = self.buildPythonPackage rec { pname = "OctoPrint"; - version = "1.7.3"; + version = "1.8.0rc2"; src = fetchFromGitHub { owner = "OctoPrint"; repo = "OctoPrint"; rev = version; - sha256 = "sha256-U6g7WysHHOlZ4p5BM4tw3GGAxQmxv6ltYgAp1rO/eCg="; + sha256 = "sha256-0DX9xQ/yhrVPQD14DhGlIS7ikMJAF4p+uJaQ3MUcaKs="; }; propagatedBuildInputs = with super; [ @@ -387,7 +197,7 @@ let werkzeug wrapt zeroconf - zipstream-new + zipstream-ng ] ++ lib.optionals stdenv.isDarwin [ py.pkgs.appdirs ];