diff --git a/flake.lock b/flake.lock index 123be4c..7839508 100644 --- a/flake.lock +++ b/flake.lock @@ -17,18 +17,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1646044487, - "narHash": "sha256-2BN9xRr3NeLL9x9X66DiSATzm4nA/G0inc5D0+FtHTA=", - "owner": "nixos", + "lastModified": 1647199004, + "narHash": "sha256-37aHbLhcX6zqeru24AoPPfem6fUQ6are5E38NdbIgJg=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "321b67a7448c79a110af2b9eceb0ad4b28f9db8c", + "rev": "328bd3c30e4fc4c3d69bc08516f27e8d85f839b6", "type": "github" }, "original": { - "owner": "nixos", - "ref": "release-21.11", - "repo": "nixpkgs", - "type": "github" + "id": "nixpkgs", + "type": "indirect" } }, "nixpkgs_2": { @@ -59,11 +57,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1646014761, - "narHash": "sha256-HdXvdU+wV+E1nNzG2vaQsUuBJQID3AB3BX88N8lA37M=", + "lastModified": 1647224709, + "narHash": "sha256-Lt8Vo2eRahkww3Ia7AyxAiKCf59TW0OWZ9vKd5WvAJ4=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "c7d9566796b3ad5b257e187e1628488c7429b89e", + "rev": "fea74aea1b2b99e13338a345034089a344399359", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index cba7082..72ad460 100644 --- a/flake.nix +++ b/flake.nix @@ -3,39 +3,48 @@ inputs.rust.url = "github:oxalica/rust-overlay"; - inputs.nixpkgs.url = "github:nixos/nixpkgs/release-21.11"; + outputs = { self, nixpkgs, rust }: { + lib = nixpkgs.lib.extend (import ./lib.nix); - outputs = { self, nixpkgs, rust }: - let - forEachSystem = nixpkgs.lib.genAttrs [ "aarch64-linux" "x86_64-linux" ]; - libOverlay = import ./lib.nix; - in { - lib = nixpkgs.lib.extend libOverlay; + overlays.default = final: prev: + let rust' = (prev.extend rust.overlay).rust-bin.nightly.latest.default; + in { + inherit (self) lib; - overlay = final: prev: - let rust' = (prev.extend rust.overlay).rust-bin.nightly.latest.default; - in { - lib = prev.lib.extend libOverlay; - preserves-nim = final.callPackage ./preserves-nim { }; - preserves-tools = - final.callPackage ./preserves-tools { rust = rust'; }; - syndicate-server = - final.callPackage ./syndicate-server { rust = rust'; }; - }; - - packages = forEachSystem (system: - let pkgs = nixpkgs.legacyPackages.${system}.extend self.overlay; - in with pkgs; { - inherit preserves-nim preserves-tools syndicate-server; + nimPackages = prev.nimPackages.overrideScope' (final': prev': { + preserves = final'.callPackage ./preserves-nim { }; }); - nixosModules.syndicate-server = - # A little hack to apply our overlay to this module only. - let f = import ./nixos/syndicate-server.nix; - in { config, lib, pkgs, ... }: - f { - inherit config lib; - pkgs = pkgs.extend self.overlay; - }; - }; + preserves-tools = final.callPackage ./preserves-tools { rust = rust'; }; + syndicate-server = + final.callPackage ./syndicate-server { rust = rust'; }; + }; + + legacyPackages = + self.lib.mapAttrs (system: pkgs: pkgs.extend self.overlays.default) { + inherit (nixpkgs.legacyPackages) aarch64-linux x86_64-linux; + }; + + packages = self.lib.mapAttrs (system: pkgs: + with pkgs; { + inherit preserves-tools syndicate-server; + preserves-nim = nimPackages.preserves; + }) self.legacyPackages; + + nixosModules.syndicate-server = + # A little hack to apply our overlay to this module only. + let f = import ./nixos/syndicate-server.nix; + in { config, lib, pkgs, ... }: + f { + inherit config lib; + pkgs = pkgs.extend self.overlays.default; + }; + + devShells = self.lib.mapAttrs (system: pkgs: + with pkgs; { + default = + mkShell { packages = builtins.attrValues self.packages.${system}; }; + }) self.legacyPackages; + + }; }