From 4d69ef6284117266782776485a845db7597bcee5 Mon Sep 17 00:00:00 2001 From: a-kenji Date: Mon, 4 Apr 2022 20:51:53 +0200 Subject: [PATCH] add: musl package to nix (#1297) Build a musl package from the repo, by invoking: ``` nix build "github:zellij-org/zellij#zellij-musl" ``` makes it possible to build bundled applications, that don't need patches to run: ``` nix bundle --bundler github:NixOS/bundlers#toDEB "github:zellij-org/zellij#zellij-musl" ``` This will build a `.deb` file, that can be installed with apt. --- nix/default.nix | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/nix/default.nix b/nix/default.nix index bee39780..e672693f 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -17,6 +17,10 @@ flake-utils.lib.eachSystem [ overlays = [(import rust-overlay)]; pkgs = import nixpkgs {inherit system overlays;}; + pkgsMusl = import nixpkgs { + inherit system overlays; + crossSystem = {config = "x86_64-unknown-linux-musl";}; + }; crate2nixPkgs = import nixpkgs { inherit system; @@ -141,6 +145,19 @@ in rec { meta ; }; + # musl cross-compilation - static binary + packages.zellij-musl = (pkgsMusl.makeRustPlatform {inherit rustc cargo;}).buildRustPackage { + inherit + src + name + cargoLock + postInstall + buildInputs + nativeBuildInputs + desktopItems + meta + ; + }; defaultPackage = packages.zellij; @@ -157,10 +174,11 @@ in rec { name = "fmt-shell"; nativeBuildInputs = fmtInputs; }; - e2eShell = pkgs.mkShell { + e2eShell = pkgs.pkgsMusl.mkShell { name = "e2e-shell"; nativeBuildInputs = [ pkgs.cargo-make + pkgs.pkgsMusl.cargo ]; }; };