diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/octoprint/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/misc/octoprint/default.nix | 94 |
1 files changed, 84 insertions, 10 deletions
diff --git a/nixpkgs/pkgs/applications/misc/octoprint/default.nix b/nixpkgs/pkgs/applications/misc/octoprint/default.nix index d7393313c151..bc994bf68233 100644 --- a/nixpkgs/pkgs/applications/misc/octoprint/default.nix +++ b/nixpkgs/pkgs/applications/misc/octoprint/default.nix @@ -2,7 +2,8 @@ , stdenv , lib , fetchFromGitHub -, python3 +, python38 +, substituteAll , nix-update-script # To include additional plugins, pass them here as an overlay. , packageOverrides ? self: super: {} @@ -20,18 +21,51 @@ let ); }; - py = python3.override { + py = python38.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 "rsa" "4.0" "1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487") + (mkOverride "itsdangerous" "1.1.0" "321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19") + (mkOverride "jinja2" "2.11.3" "a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6") (mkOverride "markdown" "3.1.1" "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a") + (mkOverride "markupsafe" "1.1.1" "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b") + (mkOverride "sarge" "0.1.5.post0" "1c1ll7pys9vra5cfi8jxlgrgaql6c27l6inpy15aprgqhc4ck36s") (mkOverride "tornado" "5.1.1" "4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409") (mkOverride "unidecode" "0.04.21" "280a6ab88e1f2eb5af79edff450021a0d3f0448952847cd79677e55e58bad051") - (mkOverride "sarge" "0.1.5.post0" "1c1ll7pys9vra5cfi8jxlgrgaql6c27l6inpy15aprgqhc4ck36s") + + # Requires flask<2, cannot mkOverride because tests need to be disabled + ( + self: super: { + flask = super.flask.overridePythonAttrs (oldAttrs: rec { + version = "1.1.2"; + src = oldAttrs.src.override { + inherit version; + sha256 = "4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060"; + }; + 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 websocket-client <1.0, >=0.57. Cannot do mkOverride b/c differing underscore/hyphen in pypi source name ( @@ -78,13 +112,13 @@ let self: super: { octoprint-filecheck = self.buildPythonPackage rec { pname = "OctoPrint-FileCheck"; - version = "2020.08.07"; + version = "2021.2.23"; src = fetchFromGitHub { owner = "OctoPrint"; repo = "OctoPrint-FileCheck"; rev = version; - sha256 = "05ys05l5x7d2bkg3yqrga6m65v3g5fcnnzbfab7j9w2pzjdapx5b"; + sha256 = "sha256-e/QGEBa9+pjOdrZq3Zc6ifbSMClIyeTOi0Tji0YdVmI="; }; doCheck = false; }; @@ -96,14 +130,34 @@ let self: super: { octoprint-firmwarecheck = self.buildPythonPackage rec { pname = "OctoPrint-FirmwareCheck"; - version = "2020.09.23"; + version = "2021.8.11"; src = fetchFromGitHub { owner = "OctoPrint"; repo = "OctoPrint-FirmwareCheck"; rev = version; - sha256 = "1l1ajhnsc39prgk59mp93h90dgl9gh660cci00z5b5gj2h6dv1d1"; + sha256 = "sha256-WzVjHgjF12iJ642AFaFd86GSU90XyPzKhi1CSreynW4="; + }; + doCheck = false; + }; + } + ) + + ( + self: super: { + octoprint-pisupport = self.buildPythonPackage rec { + pname = "OctoPrint-PiSupport"; + version = "2021.8.2"; + format = "setuptools"; + + src = fetchFromGitHub { + owner = "OctoPrint"; + repo = "OctoPrint-PiSupport"; + rev = version; + sha256 = "07akx61wadxhs0545pqa9gzjnaz9742bq710f8f4zs5x6sacjzbc"; }; + + # requires octoprint itself during tests doCheck = false; }; } @@ -113,13 +167,13 @@ let self: super: { octoprint = self.buildPythonPackage rec { pname = "OctoPrint"; - version = "1.5.3"; + version = "1.6.1"; src = fetchFromGitHub { owner = "OctoPrint"; repo = "OctoPrint"; rev = version; - sha256 = "sha256-ZL/P/YIHynPmP8ssZZUKZDJscBsSsCq3UtOHrTVLpec="; + sha256 = "sha256-3b3k9h8H9Spf/P3/pXpCANnSGOgbUw/EWISJbrSoPBM="; }; propagatedBuildInputs = with super; [ @@ -136,6 +190,7 @@ let frozendict future itsdangerous + immutabledict jinja2 markdown markupsafe @@ -143,7 +198,9 @@ let netifaces octoprint-filecheck octoprint-firmwarecheck + octoprint-pisupport pkginfo + pip psutil pylru pyserial @@ -154,6 +211,7 @@ let sarge semantic-version sentry-sdk + setuptools tornado unidecode watchdog @@ -161,13 +219,29 @@ let werkzeug wrapt zeroconf + zipstream-new ] ++ lib.optionals stdenv.isDarwin [ py.pkgs.appdirs ]; checkInputs = with super; [ pytestCheckHook mock ddt ]; + patches = [ + # substitute pip and let it find out, that it can't write anywhere + (substituteAll { + src = ./pip-path.patch; + pip = "${super.pip}/bin/pip"; + }) + + # hardcore path to ffmpeg and hide related settings + (substituteAll { + src = ./ffmpeg-path.patch; + ffmpeg = "${pkgs.ffmpeg}/bin/ffmpeg"; + }) + ]; + postPatch = let ignoreVersionConstraints = [ "emoji" + "immutabledict" "sentry-sdk" "watchdog" ]; |