about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/misc/octoprint/default.nix
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-09-08 17:57:14 +0000
committerAlyssa Ross <hi@alyssa.is>2021-09-13 11:31:47 +0000
commitee7984efa14902a2ddd820c937457667a4f40c6a (patch)
treec9c1d046733cefe5e21fdd8a52104175d47b2443 /nixpkgs/pkgs/applications/misc/octoprint/default.nix
parentffc9d4ba381da62fd08b361bacd1e71e2a3d934d (diff)
parentb3c692172e5b5241b028a98e1977f9fb12eeaf42 (diff)
downloadnixlib-ee7984efa14902a2ddd820c937457667a4f40c6a.tar
nixlib-ee7984efa14902a2ddd820c937457667a4f40c6a.tar.gz
nixlib-ee7984efa14902a2ddd820c937457667a4f40c6a.tar.bz2
nixlib-ee7984efa14902a2ddd820c937457667a4f40c6a.tar.lz
nixlib-ee7984efa14902a2ddd820c937457667a4f40c6a.tar.xz
nixlib-ee7984efa14902a2ddd820c937457667a4f40c6a.tar.zst
nixlib-ee7984efa14902a2ddd820c937457667a4f40c6a.zip
Merge commit 'b3c692172e5b5241b028a98e1977f9fb12eeaf42'
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/octoprint/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/misc/octoprint/default.nix94
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"
                 ];