Skip to content

Commit a46c7d8

Browse files
Merge pull request #252 from NuschtOS/aws-lc
aws-lc
2 parents 27bca6c + 487afbf commit a46c7d8

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

modules/haproxy.nix

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{ config, lib, libS, pkgs, ... }:
2+
3+
let
4+
cfg = config.services.haproxy;
5+
in
6+
{
7+
options = {
8+
services.haproxy = {
9+
compileWithAWSlc = libS.mkOpinionatedOption "compile nginx with aws-lc as crypto library";
10+
};
11+
};
12+
13+
config = lib.mkIf cfg.enable {
14+
services.haproxy = {
15+
package = lib.mkIf cfg.compileWithAWSlc (pkgs.haproxy.override { sslLibrary = "aws-lc"; });
16+
};
17+
};
18+
}

modules/nginx.nix

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ in
1313
description = "Shared configuration snipped added to every virtualHosts' extraConfig.";
1414
};
1515

16+
compileWithAWSlc = libS.mkOpinionatedOption "compile nginx with aws-lc as crypto library";
17+
1618
configureQuic = lib.mkEnableOption "quic support in nginx";
1719

1820
default404Server = {
@@ -141,7 +143,27 @@ in
141143

142144
enableQuicBPF = lib.mkIf cfg.configureQuic true;
143145

144-
package = lib.mkIf cfg.configureQuic pkgs.nginxQuic; # based on pkgs.nginxMainline
146+
package = let
147+
overrideNginx = pkg:
148+
if cfg.compileWithAWSlc then
149+
(pkg.override {
150+
openssl = pkgs.aws-lc;
151+
}).overrideAttrs ({ patches ? [ ], ... }: {
152+
patches = patches ++ [
153+
(pkgs.fetchpatch {
154+
url = "https://github.com/aws/aws-lc/raw/refs/tags/v${pkgs.aws-lc.version}/tests/ci/integration/nginx_patch/aws-lc-nginx.patch";
155+
hash = "sha256-6OPLpt0hVDPdG70eJrwehwcX3i9N5lkvaeVaAjFSByM=";
156+
})
157+
];
158+
})
159+
else
160+
pkg;
161+
in lib.mkIf (cfg.configureQuic || cfg.compileWithAWSlc || cfg.recommendedDefaults) (overrideNginx (
162+
if cfg.configureQuic then
163+
pkgs.nginxQuic
164+
else
165+
pkgs.nginxMainline
166+
));
145167

146168
recommendedBrotliSettings = lib.mkIf cfg.allRecommendOptions (lib.mkDefault true);
147169
recommendedGzipSettings = lib.mkIf cfg.allRecommendOptions (lib.mkDefault true);

0 commit comments

Comments
 (0)