From d6b324306bc455d83af629ca553c0e4e3a6765dc Mon Sep 17 00:00:00 2001 From: Fernando Ayats Date: Mon, 20 Jun 2022 11:50:06 +0200 Subject: [PATCH 1/3] nix: add a proper overlay and cleanup flake --- flake.nix | 45 +++++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/flake.nix b/flake.nix index a756ed90..2edd9a04 100644 --- a/flake.nix +++ b/flake.nix @@ -16,40 +16,37 @@ }: let inherit (nixpkgs) lib; genSystems = lib.genAttrs [ + # Add more systems if they are supported "x86_64-linux" ]; pkgsFor = nixpkgs.legacyPackages; - # https://github.com/NixOS/rfcs/pull/107 - mkVersion = longDate: - lib.concatStrings [ - "0.pre" - "+date=" - (lib.concatStringsSep "-" [ - (__substring 0 4 longDate) - (__substring 4 2 longDate) - (__substring 6 2 longDate) - ]) - ]; - in { - packages = genSystems (system: { - wlroots = pkgsFor.${system}.wlroots.overrideAttrs (prev: { - version = mkVersion (toString (inputs.wlroots.lastModifiedDate or inputs.wlroots.lastModified or "19700101")); + mkDate = longDate: (lib.concatStringsSep "-" [ + (__substring 0 4 longDate) + (__substring 4 2 longDate) + (__substring 6 2 longDate) + ]); + pseudo-overlay = prev: rec { + wlroots-hyprland = prev.wlroots.overrideAttrs (_: { + version = mkDate (inputs.wlroots.lastModifiedDate or "19700101"); src = inputs.wlroots; }); - default = pkgsFor.${system}.callPackage ./nix/default.nix { - version = mkVersion (toString (self.lastModifiedDate or self.lastModified or "19700101")); - inherit (self.packages.${system}) wlroots; + hyprland = prev.callPackage ./nix/default.nix { + version = "0.pre" + "+date=" + (mkDate (self.lastModifiedDate or "19700101")); + wlroots = wlroots-hyprland; }; - }); + }; + in { + packages = genSystems (system: + (pseudo-overlay pkgsFor.${system}) + // { + default = self.packages.${system}.hyprland; + }); formatter = genSystems (system: pkgsFor.${system}.alejandra); nixosModules.default = import ./nix/module.nix self; - # Deprecated - overlays.default = _: prev: { - hyprland = self.packages.${prev.system}.default; - }; - overlay = self.overlays.default; + overlays.default = final: pseudo-overlay; + overlay = throw "Hyprland: .overlay output is deprecated, please use the .overlays.default output"; }; } From bd953011884d656d726b06764157be076d59a916 Mon Sep 17 00:00:00 2001 From: Fernando Ayats Date: Mon, 20 Jun 2022 12:16:07 +0200 Subject: [PATCH 2/3] nix: no pseudo-overlay --- flake.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/flake.nix b/flake.nix index 2edd9a04..9ea3283a 100644 --- a/flake.nix +++ b/flake.nix @@ -25,8 +25,9 @@ (__substring 4 2 longDate) (__substring 6 2 longDate) ]); - pseudo-overlay = prev: rec { - wlroots-hyprland = prev.wlroots.overrideAttrs (_: { + in { + overlays.default = _: prev: rec { + wlroots-hyprland = prev.wlroots.overrideAttrs (__: { version = mkDate (inputs.wlroots.lastModifiedDate or "19700101"); src = inputs.wlroots; }); @@ -35,9 +36,9 @@ wlroots = wlroots-hyprland; }; }; - in { + packages = genSystems (system: - (pseudo-overlay pkgsFor.${system}) + (self.overlays.default null pkgsFor.${system}) // { default = self.packages.${system}.hyprland; }); @@ -46,7 +47,6 @@ nixosModules.default = import ./nix/module.nix self; - overlays.default = final: pseudo-overlay; overlay = throw "Hyprland: .overlay output is deprecated, please use the .overlays.default output"; }; } From 4efd913de817e9caed878f6df208b515cf199f0e Mon Sep 17 00:00:00 2001 From: Fernando Ayats Date: Mon, 20 Jun 2022 13:04:40 +0200 Subject: [PATCH 3/3] nix: use the overlay in the module --- nix/module.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/module.nix b/nix/module.nix index a7460b34..383eebb7 100644 --- a/nix/module.nix +++ b/nix/module.nix @@ -19,7 +19,7 @@ in { package = mkOption { type = types.package; - default = self.packages.${pkgs.system}.default; + default = pkgs.hyprland or self.packages.${pkgs.system}.default; defaultText = literalExpression ".packages..default"; example = literalExpression ".packages..default.override { }"; description = ''