add: musl package to nix
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.
@@ -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
];
};
};
