about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorTheofilos Augoustis <37243696+taugoust@users.noreply.github.com>2025-11-11 09:55:51 +0100
committerGitHub <noreply@github.com>2025-11-11 09:55:51 +0100
commitbff3d0d6ab7c14926f428dadf1d63198230ba192 (patch)
tree0c024a13afb6333bc2deaeda7905f4a364d14cc4
parent61d5d618756d11a02e621ee03835f65941c44645 (diff)
parent84e05e0a34ebeaaf79a35645bfebd03f79833380 (diff)
downloadfocaccia-bff3d0d6ab7c14926f428dadf1d63198230ba192.tar.gz
focaccia-bff3d0d6ab7c14926f428dadf1d63198230ba192.zip
Merge pull request #23 from TUM-DSE/ta/redis
Support Redis
-rw-r--r--flake.nix46
1 files changed, 46 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix
index a1420ba..b560660 100644
--- a/flake.nix
+++ b/flake.nix
@@ -55,6 +55,30 @@
 			};
 		};
 
+		minimal-compile-flags = " -mno-xsave -mno-xsaveopt -mno-xsavec -mno-xsaves -mno-avx" +
+					  			" -mno-avx2 -mno-avx512f -static";
+		musl-minimal-pkgs = import nixpkgs {
+			inherit system;
+			crossSystem = {
+				config = "${system}-musl";
+			};
+			overlays = [
+				(final: prev: {
+					stdenv = prev.stdenv.override (old: {
+						cc = if old.cc != null then old.cc.overrideAttrs (ccOld: {
+							env = let
+								oldEnv = ccOld.env or {};
+								oldFlags = oldEnv.NIX_CFLAGS_COMPILE or "";
+							in
+							oldEnv // {
+								NIX_CFLAGS_COMPILE = oldFlags + minimal-compile-flags;
+							};
+						}) else null;
+					});
+				})
+			];
+		};
+
 		# Pin Python version
 		python = pkgs.python312;
 
@@ -254,6 +278,10 @@
 			version = "git";
 			src = ./rr;
 		});
+
+		musl-minimal-redis-nocheck = musl-minimal-pkgs.pkgsStatic.redis.overrideAttrs (old: {
+			doCheck = false;
+		});
 	in rec {
 		# Default package just builds Focaccia
 		packages = rec {
@@ -390,9 +418,27 @@
 				packages = [
 					packages.dev
 					rr
+					pkgs.capnproto
 					musl-pkgs.gcc
+					musl-pkgs.pkg-config
+				];
+
+				hardeningDisable = [ "pie" ];
+
+				env = uvEnv;
+				shellHook = uvShellHook;
+			};
+
+			musl-all = pkgs.mkShell {
+				packages = [
+					packages.dev
+					pkgs.rr
 					pkgs.capnproto
+					musl-pkgs.gcc
 					musl-pkgs.pkg-config
+					musl-minimal-redis-nocheck
+					musl-minimal-pkgs.pkgsStatic.gzip
+					musl-minimal-pkgs.pkgsStatic.file
 				];
 
 				hardeningDisable = [ "pie" ];