From b15018fc5644aae5db1e3a5378445a5616dcf47e Mon Sep 17 00:00:00 2001 From: Jacob Birkett Date: Sun, 27 Oct 2024 18:53:07 -0700 Subject: [PATCH] nix: overlays: replace sdbuscpp with sdbus-cpp_2 See comments in code. This change to prevent conflicts for other packages depending on `sdbus-cpp` in `pkgs`. --- nix/overlays.nix | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/nix/overlays.nix b/nix/overlays.nix index 447c77e..1bf927b 100644 --- a/nix/overlays.nix +++ b/nix/overlays.nix @@ -22,8 +22,8 @@ in { inputs.hyprland-protocols.overlays.default inputs.hyprutils.overlays.default inputs.hyprwayland-scanner.overlays.default - self.overlays.sdbuscpp ]); + xdg-desktop-portal-hyprland = lib.composeManyExtensions [ (final: prev: { xdg-desktop-portal-hyprland = final.callPackage ./default.nix { @@ -34,14 +34,26 @@ in { }) ]; - sdbuscpp = final: prev: { - sdbus-cpp = prev.sdbus-cpp.overrideAttrs (self: super: { + # If `prev` already contains `sdbus-cpp_2`, do not modify the package set. + # If the previous fixpoint does not contain the attribute, + # create a new package attribute, `sdbus-cpp_2` by overriding `sdbus-cpp` + # from `final` with the new version of `src`. + # + # This matches the naming/versioning scheme used in `nixos-unstable` as of writing (10-27-2024). + # + # This overlay can be applied to either a stable release of Nixpkgs, or any of the unstable branches. + # If you're using an unstable branch (or a release one) which already has `sdbus-cpp_2`, + # this overlay is effectively a wrapper of an identity function. + # + # TODO: Remove this overlay after the next stable Nixpkgs release. + sdbus-cpp_2 = final: prev: { + sdbus-cpp_2 = prev.sdbus-cpp_2 or final.sdbus-cpp.overrideAttrs (self: _: { version = "2.0.0"; src = final.fetchFromGitHub { owner = "Kistler-group"; repo = "sdbus-cpp"; - rev = "refs/tags/v${self.version}"; + rev = "v${self.version}"; hash = "sha256-W8V5FRhV3jtERMFrZ4gf30OpIQLYoj2yYGpnYOmH2+g="; }; });