{ description = "Garage, an S3-compatible distributed object store for self-hosted deployments"; # Nixpkgs 23.11 as of 2024-02-07, has rustc v1.73 inputs.nixpkgs.url = "github:NixOS/nixpkgs/9f2ee8c91ac42da3ae6c6a1d21555f283458247e"; inputs.flake-compat.url = "github:nix-community/flake-compat"; inputs.cargo2nix = { # As of 2022-10-18: two small patches over unstable branch, one for clippy and one to fix feature detection url = "github:Alexis211/cargo2nix/a7a61179b66054904ef6a195d8da736eaaa06c36"; # As of 2023-04-25: # - my two patches were merged into unstable (one for clippy and one to "fix" feature detection) # - rustc v1.66 # url = "github:cargo2nix/cargo2nix/8fb57a670f7993bfc24099c33eb9c5abb51f29a2"; # Rust overlay as of 2024-02-07 inputs.rust-overlay.url = "github:oxalica/rust-overlay/7a94fe7690d2bdfe1aab475382a505e14dc114a6"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-compat.follows = "flake-compat"; }; inputs.flake-utils.follows = "cargo2nix/flake-utils"; outputs = { self, nixpkgs, cargo2nix, flake-utils, ... }: let git_version = self.lastModifiedDate; compile = import ./nix/compile.nix; in flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; in { packages = { default = (compile { inherit system git_version; pkgsSrc = nixpkgs; cargo2nixOverlay = cargo2nix.overlays.default; release = true; }).workspace.garage { compileMode = "build"; }; }; devShell = (compile { inherit system git_version; pkgsSrc = nixpkgs; cargo2nixOverlay = cargo2nix.overlays.default; release = false; }).workspaceShell { packages = with pkgs; [ cargo-audit cargo-outdated rustfmt clang mold ]; }; }); }