sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit 1a8e63f3fe2549ad27684192a6fd80bc0dbdce24
parent 69a14cb07502651cd2997cf0578fa98e406ce222
Author: Dan Callaghan <djc@djc.id.au>
Date:   Sat,  5 Apr 2025 15:04:33 +1100

contrib/nix: build ncurses with --disable-opaque-curses

Works around #623.

Diffstat:
M contrib/nix/ruby3.1-shell.nix | 11 +++++++++++
M contrib/nix/ruby3.2-shell.nix | 11 +++++++++++
M contrib/nix/ruby3.3-shell.nix | 11 +++++++++++
M contrib/nix/ruby3.4-shell.nix | 11 +++++++++++
4 files changed, 44 insertions(+), 0 deletions(-)
diff --git a/contrib/nix/ruby3.1-shell.nix b/contrib/nix/ruby3.1-shell.nix
@@ -4,6 +4,9 @@ let
     ref = "refs/heads/master";
     rev = "5d0ebea1934d80948ff7b84f3b06e4ec9d99ee49";
   }) {};
+  ncurses = pkgs.ncurses.overrideAttrs (finalAttrs: previousAttrs: {
+    configureFlags = previousAttrs.configureFlags ++ [ "--disable-opaque-curses" ];
+  });
   gems = pkgs.bundlerEnv {
     name = "ruby3.1-gems-for-sup";
     ruby = pkgs.ruby_3_1;
@@ -19,6 +22,14 @@ let
           sha256 = "sha256-E5U/4NEFkChMJtrMj8oCqKPgTYyKku5OXGcPQvhN4xM=";
         };
       };
+      # Workaround for Sup issue #623
+      ncursesw = attrs: pkgs.defaultGemConfig.ncursesw attrs // {
+        buildInputs = [ ncurses ];
+        buildFlags = [
+          "--with-cflags=-I${ncurses.dev}/include"
+          "--with-ldflags=-L${ncurses.out}/lib"
+        ];
+      };
     };
   };
 in pkgs.mkShell { packages = [ gems gems.wrappedRuby pkgs.pandoc ]; }
diff --git a/contrib/nix/ruby3.2-shell.nix b/contrib/nix/ruby3.2-shell.nix
@@ -4,6 +4,9 @@ let
     ref = "refs/heads/master";
     rev = "5d0ebea1934d80948ff7b84f3b06e4ec9d99ee49";
   }) {};
+  ncurses = pkgs.ncurses.overrideAttrs (finalAttrs: previousAttrs: {
+    configureFlags = previousAttrs.configureFlags ++ [ "--disable-opaque-curses" ];
+  });
   gems = pkgs.bundlerEnv {
     name = "ruby3.2-gems-for-sup";
     ruby = pkgs.ruby_3_2;
@@ -19,6 +22,14 @@ let
           sha256 = "sha256-E5U/4NEFkChMJtrMj8oCqKPgTYyKku5OXGcPQvhN4xM=";
         };
       };
+      # Workaround for Sup issue #623
+      ncursesw = attrs: pkgs.defaultGemConfig.ncursesw attrs // {
+        buildInputs = [ ncurses ];
+        buildFlags = [
+          "--with-cflags=-I${ncurses.dev}/include"
+          "--with-ldflags=-L${ncurses.out}/lib"
+        ];
+      };
     };
   };
 in pkgs.mkShell { packages = [ gems gems.wrappedRuby pkgs.pandoc ]; }
diff --git a/contrib/nix/ruby3.3-shell.nix b/contrib/nix/ruby3.3-shell.nix
@@ -4,6 +4,9 @@ let
     ref = "refs/heads/master";
     rev = "5d0ebea1934d80948ff7b84f3b06e4ec9d99ee49";
   }) {};
+  ncurses = pkgs.ncurses.overrideAttrs (finalAttrs: previousAttrs: {
+    configureFlags = previousAttrs.configureFlags ++ [ "--disable-opaque-curses" ];
+  });
   gems = pkgs.bundlerEnv {
     name = "ruby3.3-gems-for-sup";
     ruby = pkgs.ruby_3_3;
@@ -19,6 +22,14 @@ let
           sha256 = "sha256-E5U/4NEFkChMJtrMj8oCqKPgTYyKku5OXGcPQvhN4xM=";
         };
       };
+      # Workaround for Sup issue #623
+      ncursesw = attrs: pkgs.defaultGemConfig.ncursesw attrs // {
+        buildInputs = [ ncurses ];
+        buildFlags = [
+          "--with-cflags=-I${ncurses.dev}/include"
+          "--with-ldflags=-L${ncurses.out}/lib"
+        ];
+      };
     };
   };
 in pkgs.mkShell { packages = [ gems gems.wrappedRuby pkgs.pandoc ]; }
diff --git a/contrib/nix/ruby3.4-shell.nix b/contrib/nix/ruby3.4-shell.nix
@@ -4,6 +4,9 @@ let
     ref = "refs/heads/master";
     rev = "5d0ebea1934d80948ff7b84f3b06e4ec9d99ee49";
   }) {};
+  ncurses = pkgs.ncurses.overrideAttrs (finalAttrs: previousAttrs: {
+    configureFlags = previousAttrs.configureFlags ++ [ "--disable-opaque-curses" ];
+  });
   gems = pkgs.bundlerEnv {
     name = "ruby3.4-gems-for-sup";
     ruby = pkgs.ruby_3_4;
@@ -19,6 +22,14 @@ let
           sha256 = "sha256-E5U/4NEFkChMJtrMj8oCqKPgTYyKku5OXGcPQvhN4xM=";
         };
       };
+      # Workaround for Sup issue #623
+      ncursesw = attrs: pkgs.defaultGemConfig.ncursesw attrs // {
+        buildInputs = [ ncurses ];
+        buildFlags = [
+          "--with-cflags=-I${ncurses.dev}/include"
+          "--with-ldflags=-L${ncurses.out}/lib"
+        ];
+      };
     };
   };
 in pkgs.mkShell { packages = [ gems gems.wrappedRuby pkgs.pandoc ]; }