Open sjcobb2022 opened 3 months ago
Are you overriding the nixpkgs input by any chance?
Are you overriding the nixpkgs input by any chance?
Yes, because it fails to build 0.42 without overriding. https://github.com/hyprwm/Hyprland/issues/6967#issuecomment-2267625936
Makes sense then. I wanted to backport libinput 1.26 to NixOS 24.05 but some committers deemed it a breaking change (with more recursive breakages). I think the best option for you currently is to manually add the overlay.
I've removed it due to it causing mass rebuilds for people using hyprland through the overlay.
Makes sense then. I wanted to backport libinput 1.26 to NixOS 24.05 but some committers deemed it a breaking change (with more recursive breakages). I think the best option for you currently is to manually add the overlay.
I've removed it due to it causing mass rebuilds for people using hyprland through the overlay.
Yeh that makes sense. I could also just pin hyprland/aquamarine to b4 the change was made.
@fufexan
You know any way to add an overlay that affects the build of an external flake. Simply overriding aquamarine / libinput has not been successful for me.
This is what I have tried so far. Any thoughts on getting this to work? Or do you think that pinning until 24.11 is good enough.
aquamarine = prev.aquamarine.override {
libinput = prev.libinput.overrideAttrs (self: super: {
version = "1.26.0";
src = final.fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "libinput";
repo = "libinput";
rev = self.version;
hash = "sha256-mlxw4OUjaAdgRLFfPKMZDMOWosW9yKAkzDccwuLGCwQ=";
};
});
};
};
libinput = prev.libinput.overrideAttrs (self: super: {
version = "1.26.0";
src = final.fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "libinput";
repo = "libinput";
rev = self.version;
hash = "sha256-mlxw4OUjaAdgRLFfPKMZDMOWosW9yKAkzDccwuLGCwQ=";
};
});
};
That looks good at first sight, but perhaps other dependencies of aquamarine also depend on libinput. I believe a "global" overlay might fix this, but it will also require you to rebuild some other packages.
This is actually a global overlay. And it still fails with the aquamarine PkgConfig.cmake failing. Bit strange.
nixpkgs = {
overlays = builtins.attrValues outputs.overlays;
};
I have this section of nix in both my home-manager and my system level config.
I believe that that should totally override it.
Perhaps I will also need to set nixpkgs.config.packageOverrides
?
Not sure, but it's worth a try.
Ok I have a fix, couple of weird behaviors with wayland-scanner but it's all good.
So:
With these inputs:
inputs = {
aquamarine = {
type = "git";
url = "https://github.com/hyprwm/aquamarine";
ref = "refs/tags/v0.4.1";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
hyprland = {
type = "git";
url = "https://github.com/hyprwm/hyprland";
ref = "refs/tags/v0.43.0";
submodules = true;
inputs.nixpkgs.follows = "nixpkgs";
inputs.aquamarine.follows = "aquamarine";
};
}
I have this overlay:
modifications = final: prev: {
hyprland-patched = let
libinput = prev.libinput.overrideAttrs (self: {
name = "libinput";
version = "1.26.0";
src = final.fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "libinput";
repo = "libinput";
rev = self.version;
hash = "sha256-mlxw4OUjaAdgRLFfPKMZDMOWosW9yKAkzDccwuLGCwQ=";
};
});
in
inputs.hyprland.packages.${prev.system}.hyprland.override {
libinput = libinput;
aquamarine = inputs.hyprland.inputs.aquamarine.packages.${prev.system}.aquamarine.override {
libinput = libinput;
};
# need this to fix meson build for some reason?
wayland-scanner = final.unstable.wayland-scanner;
};
};
Where final.unstable
is from my unstable overlay:
unstable-packages = final: _prev: {
unstable = import inputs.nixpkgs-unstable {
inherit (final) system;
config.allowUnfree = true;
};
};
Important to note: using unstable wayland-scanner and unstable nixpkgs for aquamarine.
After https://github.com/hyprwm/aquamarine/commit/cff00196f0fcf734a2bf164eb0dfdb6e58c5c906
Aquamarine no longer builds for me on nixos.
Here is the error:
I guess still needs the overlay? @fufexan