From d5b9c7e18b4f9b39d7c9be4ce1efecf277bfaf94 Mon Sep 17 00:00:00 2001 From: Mihai Fufezan Date: Sun, 24 Mar 2024 14:30:05 +0200 Subject: [PATCH] Nix: overhaul flake --- flake.lock | 24 ++++++++++++++++++++---- flake.nix | 47 ++++++++++++++++++++++++++++++----------------- 2 files changed, 50 insertions(+), 21 deletions(-) diff --git a/flake.lock b/flake.lock index 6567c73..c5d9882 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1683014792, - "narHash": "sha256-6Va9iVtmmsw4raBc3QKvQT2KT/NGRWlvUlJj46zN8B8=", + "lastModified": 1711163522, + "narHash": "sha256-YN/Ciidm+A0fmJPWlHBGvVkcarYWSC+s3NTPk/P+q3c=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1a411f23ba299db155a5b45d5e145b85a7aafc42", + "rev": "44d0940ea560dee511026a53f0e2e2cde489b4d4", "type": "github" }, "original": { @@ -18,7 +18,23 @@ }, "root": { "inputs": { - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "systems": "systems" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index 9613a74..45f5f98 100644 --- a/flake.nix +++ b/flake.nix @@ -1,30 +1,44 @@ { description = "Hyprpicker - a wlroots-compatible Wayland color picker that does not suck"; - inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + systems.url = "github:nix-systems/default-linux"; + }; outputs = { self, nixpkgs, + systems, ... }: let inherit (nixpkgs) lib; - genSystems = lib.genAttrs [ - # Add more systems if they are supported - "aarch64-linux" - "x86_64-linux" - ]; - pkgsFor = nixpkgs.legacyPackages; + eachSystem = lib.genAttrs (import systems); + pkgsFor = eachSystem (system: + import nixpkgs { + localSystem.system = system; + overlays = with self.overlays; [hyprpicker]; + }); mkDate = longDate: (lib.concatStringsSep "-" [ (builtins.substring 0 4 longDate) (builtins.substring 4 2 longDate) (builtins.substring 6 2 longDate) ]); in { - overlays.default = _: prev: rec { - hyprpicker = prev.callPackage ./nix/default.nix { - stdenv = prev.gcc12Stdenv; - version = "0.pre" + "+date=" + (mkDate (self.lastModifiedDate or "19700101")) + "_" + (self.shortRev or "dirty"); + overlays = { + default = self.overlays.hyprpicker; + hyprpicker = lib.composeManyExtensions [ + self.overlays.overrides + (final: prev: rec { + hyprpicker = final.callPackage ./nix/default.nix { + stdenv = final.gcc13Stdenv; + version = "0.pre" + "+date=" + (mkDate (self.lastModifiedDate or "19700101")) + "_" + (self.shortRev or "dirty"); + inherit (prev.xorg) libXdmcp; + }; + hyprpicker-debug = hyprpicker.override {debug = true;}; + }) + ]; + overrides = final: prev: { wayland-protocols = prev.wayland-protocols.overrideAttrs (self: super: { version = "1.34"; src = prev.fetchurl { @@ -32,15 +46,14 @@ hash = "sha256-xZsnys2F9guvTuX4DfXA0Vdg6taiQysAq34uBXTcr+s="; }; }); - inherit (prev.xorg) libXdmcp; }; - hyprpicker-debug = hyprpicker.override {debug = true;}; }; - packages = genSystems (system: - (self.overlays.default null pkgsFor.${system}) - // {default = self.packages.${system}.hyprpicker;}); + packages = eachSystem (system: { + default = self.packages.${system}.hyprpicker; + inherit (pkgsFor.${system}) hyprpicker hyprpicker-debug; + }); - formatter = genSystems (system: pkgsFor.${system}.alejandra); + formatter = eachSystem (system: pkgsFor.${system}.alejandra); }; }