aboutsummaryrefslogtreecommitdiff
path: root/nix/compile.nix
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2022-09-08 15:49:17 +0200
committerAlex Auvolat <alex@adnab.me>2022-09-08 15:49:17 +0200
commitd9d199a6c9c0ae2a6ee2b04103c78ef1eb311956 (patch)
tree53429d4faa2e696dd798515e2db493bc78ba5e48 /nix/compile.nix
parentd23b3a14fc28de164080e762f0e97e6cbc868940 (diff)
parent03c40a0b24dd5bd2a51d3cd3df0ca1a42fb2d328 (diff)
downloadgarage-d9d199a6c9c0ae2a6ee2b04103c78ef1eb311956.tar.gz
garage-d9d199a6c9c0ae2a6ee2b04103c78ef1eb311956.zip
Merge branch 'main' into lx-perf-improvements
Diffstat (limited to 'nix/compile.nix')
-rw-r--r--nix/compile.nix46
1 files changed, 32 insertions, 14 deletions
diff --git a/nix/compile.nix b/nix/compile.nix
index 7986fb0d..512a7354 100644
--- a/nix/compile.nix
+++ b/nix/compile.nix
@@ -117,22 +117,34 @@ let
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.
+
+ [5] We don't want libsodium-sys and zstd-sys to try to use pkgconfig to build against a system library.
+ However the features to do so get activated for some reason (due to a bug in cargo2nix?),
+ so disable them manually here.
*/
(pkgs.rustBuilder.rustLib.makeOverride {
name = "garage";
- overrideAttrs = drv: {
+ overrideAttrs = drv:
+ (if git_version != null then {
+ /* [3] */ preConfigure = ''
+ ${drv.preConfigure or ""}
+ export GIT_VERSION="${git_version}"
+ '';
+ } else {})
+ //
+ {
/* [1] */ setBuildEnv = (buildEnv drv);
/* [2] */ hardeningDisable = [ "pie" ];
};
+ overrideArgs = old: {
+ /* [4] */ features = [ "bundled-libs" "sled" ]
+ ++ (if release then [ "kubernetes-discovery" "telemetry-otlp" "metrics" "lmdb" "sqlite" ] else []);
+ };
})
(pkgs.rustBuilder.rustLib.makeOverride {
name = "garage_rpc";
overrideAttrs = drv: { /* [1] */ setBuildEnv = (buildEnv drv); };
- overrideArgs = old: {
- /* [4] */ features = if release then [ "kubernetes-discovery" ] else [];
- };
})
(pkgs.rustBuilder.rustLib.makeOverride {
@@ -142,15 +154,7 @@ let
(pkgs.rustBuilder.rustLib.makeOverride {
name = "garage_util";
- overrideAttrs = drv:
- (if git_version != null then {
- /* [3] */ preConfigure = ''
- ${drv.preConfigure or ""}
- export GIT_VERSION="${git_version}"
- '';
- } else {})
- //
- { /* [1] */ setBuildEnv = (buildEnv drv); };
+ overrideAttrs = drv: { /* [1] */ setBuildEnv = (buildEnv drv); };
})
(pkgs.rustBuilder.rustLib.makeOverride {
@@ -182,6 +186,20 @@ let
name = "k2v-client";
overrideAttrs = drv: { /* [1] */ setBuildEnv = (buildEnv drv); };
})
+
+ (pkgs.rustBuilder.rustLib.makeOverride {
+ name = "libsodium-sys";
+ overrideArgs = old: {
+ features = [ ]; /* [5] */
+ };
+ })
+
+ (pkgs.rustBuilder.rustLib.makeOverride {
+ name = "zstd-sys";
+ overrideArgs = old: {
+ features = [ ]; /* [5] */
+ };
+ })
];
packageFun = import ../Cargo.nix;