diff options
author | Quentin Dufour <quentin@deuxfleurs.fr> | 2022-03-24 10:28:53 +0100 |
---|---|---|
committer | Gitea <gitea@fake.local> | 2022-03-24 16:57:43 +0100 |
commit | 0cf4efac893833c9b5370228f10a73b791d32efc (patch) | |
tree | 2a022c8bf3ea8bca1c6ca3e2b4f650d657df7450 | |
parent | 9d0ed788879ad50450ebd44cd2a0b4fc942d45b6 (diff) | |
download | garage-0.7.0-rc1.tar.gz garage-0.7.0-rc1.zip |
Compile kuberetes-discovery only when release=truev0.7.0-rc1
-rw-r--r-- | default.nix | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/default.nix b/default.nix index 053176f7..21a413b2 100644 --- a/default.nix +++ b/default.nix @@ -47,6 +47,13 @@ in let ]; }; + /* + Cargo2nix provides many overrides by default, you can take inspiration from them: + https://github.com/cargo2nix/cargo2nix/blob/master/overlay/overrides.nix + + You can have a complete list of the available options by looking at the overriden object, mkcrate: + https://github.com/cargo2nix/cargo2nix/blob/master/overlay/mkcrate.nix + */ overrides = pkgs.rustBuilder.overrides.all ++ [ /* [1] We need to alter Nix hardening to be able to statically compile: PIE, @@ -73,6 +80,21 @@ in let ''; } else {}); }) + + /* + We ship some parts of the code disabled by default by putting them behind a flag. + It speeds up the compilation (when the feature is not required) and released crates have less dependency by default (less attack surface, disk space, etc.). + But we want to ship these additional features when we release Garage. + In the end, we chose to exclude all features from debug builds while putting (all of) them in the release builds. + Currently, the only feature of Garage is kubernetes-discovery from the garage_rpc crate. + */ + (pkgs.rustBuilder.rustLib.makeOverride { + name = "garage_rpc"; + overrideArgs = old: + { + features = if release then [ "kubernetes-discovery" ] else []; + }; + }) ]; packageFun = import ./Cargo.nix; |