Hello, a little over a month ago, I purchased an RX 9070XT which has been great, however, it requires at least Mesa 25.0, and nixpkgs-24.11 is still on 24.2.8
Up until now, I’ve just been setting my whole system to follow nixpkgs-unstable, however, this introduced a litany of bugs mainly to do with my wayland compositors being completely inoperable, and the X version of KDE Plasma being the glitchiest I’ve ever seen it.
Ultimately, I really don’t need my whole system to follow the unstable branch, only this specific component.
To that end, I’ve been trying to get an overlay in my system flake working, but it feels like no matter what I try, I never get it to build. I’ve tried doing resulted in meson build errors.
Currently, this is what I’ve got in my flake:
"marc-desktop" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./system/desktop.nix
hyprland.nixosModules.default
# Unstable mesa for RX 9070XT
{
nixpkgs.overlays = [
(final: prev: {
mesa = (import nixpkgs-unstable {
system = final.system;
config.allowUnfree = true;
}).mesa;
})
];
}
];
};
This fails to build due to a meson build error ending with include/meson.build:9:10: ERROR: Dependency "dri" not found, tried pkgconfig
In case it’s relevant, here’s the full nix flake which should hopefully include all the necessary context. Be warned, my grasp on the Nix language is tentative at best, and this thing is probably full of bad ideas.
flake.nix
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-master.url = "github:NixOS/nixpkgs/master";
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
home-manager.url = "github:nix-community/home-manager/release-24.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs-unstable";
hyprland.url = "github:hyprwm/Hyprland";
};
outputs = { self, nixpkgs, nixpkgs-unstable, nixpkgs-master, chaotic, home-manager, hyprland }: {
defaultPackage = home-manager.defaultPackage;
homeConfigurations = {
marc = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {
system = "x86_64-linux";
config.allowUnfree = true;
# required by logseq and obsidian
config.permittedInsecurePackages = [
"electron-25.9.0"
"electron-27.3.11"
];
};
extraSpecialArgs = {
pkgs-unstable = import nixpkgs {
system = "x86_64-linux";
config.allowUnfree = true;
};
};
modules = [ ./home.nix ];
};
};
nixosConfigurations = {
"marc-laptop" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [ ./system/laptop.nix ];
};
"marc-desktop" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./system/desktop.nix
hyprland.nixosModules.default
# Unstable mesa for RX 9070XT
{
nixpkgs.overlays = [
(final: prev: {
mesa = (import nixpkgs-unstable {
system = final.system;
config.allowUnfree = true;
}).mesa;
})
];
}
];
};
};
};
}