diff options
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 52 |
1 files changed, 44 insertions, 8 deletions
diff --git a/flake.nix b/flake.nix index fccabba..a1420ba 100644 --- a/flake.nix +++ b/flake.nix @@ -6,8 +6,6 @@ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - nixpkgs-qemu-60.url = "github:nixos/nixpkgs/f8f124009497b3f9908f395d2533a990feee1de8"; - flake-utils.url = "github:numtide/flake-utils"; pyproject-nix = { @@ -27,21 +25,24 @@ inputs.nixpkgs.follows = "nixpkgs"; inputs.pyproject-nix.follows = "pyproject-nix"; }; + + qemu-submodule = { + url = "path:qemu/"; + flake = true; + }; }; - outputs = inputs@{ - self, + outputs = { uv2nix, nixpkgs, flake-utils, pyproject-nix, pyproject-build-systems, + qemu-submodule, ... }: flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-linux" ] (system: let - qemu-60 = inputs.nixpkgs-qemu-60.qemu; - # Refine nixpkgs used in flake to system arch pkgs = import nixpkgs { inherit system; @@ -248,6 +249,11 @@ ''; gdbInternal = pkgs.gdb.override { python3 = python; }; + rr = pkgs.rr.overrideAttrs (old: { + pname = "focaccia-rr"; + version = "git"; + src = ./rr; + }); in rec { # Default package just builds Focaccia packages = rec { @@ -271,6 +277,8 @@ ]; }); + qemu-plugin = qemu-submodule.packages.${system}.default; + default = focaccia; }; @@ -302,7 +310,6 @@ validate-qemu = { type = "app"; - # program = "${packages.focaccia}/bin/validate-qemu"; program = let wrapper = pkgs.writeShellScriptBin "validate-qemu" '' exec ${packages.focaccia}/bin/validate-qemu --gdb "${gdbInternal}/bin/gdb" "$@" @@ -318,7 +325,8 @@ type = "app"; program = "${pkgs.writeShellScriptBin "uv-sync" '' set -euo pipefail - exec ${pkgs.uv}/bin/uv sync + ${pkgs.uv}/bin/uv sync + sed -i '/riscv/d' uv.lock ''}/bin/uv-sync"; meta = { description = "Sync uv python packages"; @@ -351,6 +359,19 @@ packages.dev musl-pkgs.gcc musl-pkgs.pkg-config + ]; + + hardeningDisable = [ "pie" ]; + + env = uvEnv; + shellHook = uvShellHook; + }; + + musl-box64 = pkgs.mkShell { + packages = [ + packages.dev + musl-pkgs.gcc + musl-pkgs.pkg-config box64-patched ]; @@ -364,6 +385,21 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${zydis-shared-object}/lib ''; }; + + musl-extra = pkgs.mkShell { + packages = [ + packages.dev + rr + musl-pkgs.gcc + pkgs.capnproto + musl-pkgs.pkg-config + ]; + + hardeningDisable = [ "pie" ]; + + env = uvEnv; + shellHook = uvShellHook; + }; }; checks = { |