diff --git a/flake.lock b/flake.lock index ab14b72..c6275e8 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1707268954, - "narHash": "sha256-2en1kvde3cJVc3ZnTy8QeD2oKcseLFjYPLKhIGDanQ0=", + "lastModified": 1721379653, + "narHash": "sha256-8MUgifkJ7lkZs3u99UDZMB4kbOxvMEXQZ31FO3SopZ0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f8e2ebd66d097614d51a56a755450d4ae1632df1", + "rev": "1d9c2c9b3e71b9ee663d11c5d298727dace8d374", "type": "github" }, "original": { @@ -19,9 +19,30 @@ "root": { "inputs": { "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay", "systems": "systems" } }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1721528458, + "narHash": "sha256-uruH/EV8Rpa/CRxn8CiMzhoA6tJe8qO5c8NdgP1g0rM=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "0b2b2da1dad1c675c45d9e23c75674de969de83b", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1689347949, diff --git a/flake.nix b/flake.nix index 8cc9b93..635ef45 100644 --- a/flake.nix +++ b/flake.nix @@ -4,12 +4,17 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; systems.url = "github:nix-systems/default-linux"; + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = { self, nixpkgs, systems, + rust-overlay, ... }: let inherit (nixpkgs) lib; @@ -17,10 +22,10 @@ pkgsFor = eachSystem (system: import nixpkgs { inherit system; - overlays = [self.overlays.default]; + overlays = [self.overlays.default (import rust-overlay)]; }); in { - overlays = import ./nix/overlays.nix {inherit self lib;}; + overlays = import ./nix/overlays.nix {inherit self lib pkgsFor;}; packages = eachSystem (system: { default = self.packages.${system}.wpaperd; @@ -34,6 +39,9 @@ devShells = eachSystem (system: with pkgsFor.${system}; { default = mkShell { + buildInputs = [ + rust-bin.stable.latest.default + ]; packages = [ pkg-config wayland diff --git a/nix/overlays.nix b/nix/overlays.nix index eb38aab..e0e3dac 100644 --- a/nix/overlays.nix +++ b/nix/overlays.nix @@ -1,8 +1,9 @@ { self, lib, + pkgsFor }: let - inherit ((builtins.fromTOML (builtins.readFile ../daemon/Cargo.toml)).package) version; + inherit ((builtins.fromTOML (builtins.readFile ../daemon/Cargo.toml)).package) version rust-overlay; mkDate = longDate: (lib.concatStringsSep "-" [ (builtins.substring 0 4 longDate) @@ -16,6 +17,12 @@ in { in { wpaperd = final.callPackage ./default.nix { version = "${version}+date=${date}_${self.shortRev or "dirty"}"; + rustPlatform = let + toolchain = pkgsFor.${final.system}.rust-bin.stable.latest.default; + in (final.makeRustPlatform { + cargo = toolchain; + rustc = toolchain; + }); }; }) ];