about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix')
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix49
1 files changed, 44 insertions, 5 deletions
diff --git a/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix b/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix
index c01bb61f4f69..a82ff178c9eb 100644
--- a/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix
@@ -1,8 +1,12 @@
-{ lib, stdenv
+{ lib
 , buildPythonApplication
 , fetchPypi
 , gdb
 , flask
+, six
+, bidict
+, python-engineio
+, python-socketio
 , flask-socketio
 , flask-compress
 , pygdbmi
@@ -12,14 +16,48 @@
 , eventlet
 , }:
 
+let
+  # gdbgui only works with the latest previous major version of flask-socketio,
+  # which depends itself on the latest previous major versions of dependencies.
+  python-engineio' = python-engineio.overridePythonAttrs (old: rec {
+    version = "3.14.2";
+    src = fetchPypi {
+      inherit (old) pname;
+      inherit version;
+      sha256 = "119halljynqsgswlhlh750qv56js1p7j52sc0nbwxh8450zmbd7a";
+    };
+    propagatedBuildInputs = [ six ];
+    doCheck = false;
+  });
+  python-socketio' = python-socketio.overridePythonAttrs (old: rec {
+    version = "4.6.1";
+    src = fetchPypi {
+      inherit (old) pname;
+      inherit version;
+      sha256 = "047syhrrxh327p0fnab0d1zy25zijnj3gs1qg3kjpsy1jaj5l7yd";
+    };
+    propagatedBuildInputs = [ bidict python-engineio' ];
+    doCheck = false;
+  });
+  flask-socketio' = flask-socketio.overridePythonAttrs (old: rec {
+    version = "4.3.2";
+    src = fetchPypi {
+      inherit (old) pname;
+      inherit version;
+      sha256 = "0s2xs9kv9cbwy8bcxszhdwlcb9ldv0fj33lwilf5vypj0wsin01p";
+    };
+    propagatedBuildInputs = [ flask python-socketio' ];
+    doCheck = false;
+  });
+in
 buildPythonApplication rec {
   pname = "gdbgui";
-  version = "0.13.2.1";
+  version = "0.14.0.2";
 
   buildInputs = [ gdb ];
   propagatedBuildInputs = [
     flask
-    flask-socketio
+    flask-socketio'
     flask-compress
     pygdbmi
     pygments
@@ -30,13 +68,14 @@ buildPythonApplication rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zn5wi47m8pn4amx574ryyhqvhynipxzyxbx0878ap6g36vh6l1h";
+    sha256 = "1v6wwsncgnhlg5c7gsmzcp52hfblfnz5kf5pk4d0zybflsxak02d";
   };
 
   postPatch = ''
     echo ${version} > gdbgui/VERSION.txt
     # remove upper version bound
     sed -ie 's!, <.*"!"!' setup.py
+    sed -i 's/greenlet==/greenlet>=/' setup.py
   '';
 
   postInstall = ''
@@ -52,6 +91,6 @@ buildPythonApplication rec {
     homepage = "https://www.gdbgui.com/";
     license = licenses.gpl3;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ yrashk ];
+    maintainers = with maintainers; [ yrashk dump_stack ];
   };
 }