WEFT_OS/infra/nixos/weft-packages.nix
Marco Allegretti 294bd163b9 build(nix): use Rust 1.93.0 via rust-overlay for all package builds
Add oxalica/rust-overlay flake input; override rustPlatform in
weft-packages.nix with cargo/rustc from rust-bin.stable.1.93.0;
apply overlay in both devShell and nixosConfigurations.weft-vm.
Fixes build failure where nixos-25.05 Rust 1.86.0 was below the
rust-version requirement of wasmtime and other dependencies.
2026-03-12 21:28:14 +01:00

95 lines
2.4 KiB
Nix

{ pkgs, rust193, ... }:
let
rustPlatform = pkgs.makeRustPlatform {
cargo = rust193;
rustc = rust193;
};
src = ../..;
cargoLock = {
lockFile = ../../Cargo.lock;
outputHashes = {
"servo-0.0.1" = "0b803qankr0rs4hi0md26dydf2cvpd6v5x2bxxypzsga0jwfdd26";
"selectors-0.36.0" = "1x5g61cadq700yhl1wwrjd043grlpdviqqn4n9cm5k68gbx0if81";
};
};
commonArgs = {
inherit src cargoLock;
version = "0.1.0";
nativeBuildInputs = with pkgs; [ pkg-config ];
};
mkWeftPkg = { pname, extraBuildInputs ? [], extraNativeBuildInputs ? [], cargoFlags ? [], extraEnv ? {} }: rustPlatform.buildRustPackage (commonArgs // {
inherit pname;
cargoBuildFlags = [ "--package" pname ] ++ cargoFlags;
cargoTestFlags = [ "--package" pname ];
buildInputs = extraBuildInputs;
nativeBuildInputs = commonArgs.nativeBuildInputs ++ extraNativeBuildInputs;
env = extraEnv;
doCheck = false;
});
in {
weft-compositor = mkWeftPkg {
pname = "weft-compositor";
extraBuildInputs = with pkgs; [
libdrm mesa wayland libxkbcommon seatd udev dbus libGL
];
extraNativeBuildInputs = with pkgs; [ wayland-scanner ];
};
weft-servo-shell = mkWeftPkg {
pname = "weft-servo-shell";
extraBuildInputs = with pkgs; [
mesa wayland libxkbcommon openssl dbus udev libGL
];
extraNativeBuildInputs = with pkgs; [
pkgs.llvmPackages.clang cmake python3
];
cargoFlags = [ "--features" "servo-embed" ];
extraEnv = {
LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib";
};
};
weft-app-shell = mkWeftPkg {
pname = "weft-app-shell";
extraBuildInputs = with pkgs; [
mesa wayland libxkbcommon openssl dbus udev libGL
];
extraNativeBuildInputs = with pkgs; [
pkgs.llvmPackages.clang cmake python3
];
cargoFlags = [ "--features" "servo-embed" ];
extraEnv = {
LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib";
};
};
weft-appd = mkWeftPkg {
pname = "weft-appd";
extraBuildInputs = with pkgs; [ openssl ];
};
weft-runtime = mkWeftPkg {
pname = "weft-runtime";
extraBuildInputs = with pkgs; [ openssl ];
cargoFlags = [ "--features" "wasmtime-runtime,net-fetch" ];
};
weft-pack = mkWeftPkg {
pname = "weft-pack";
};
weft-file-portal = mkWeftPkg {
pname = "weft-file-portal";
};
weft-mount-helper = mkWeftPkg {
pname = "weft-mount-helper";
extraBuildInputs = with pkgs; [ cryptsetup ];
};
}