Commit a2ab5eee authored by Rohit Singh's avatar Rohit Singh
Browse files

uwsgi: enable http plugin and expose headers for SSL detection

Add the http plugin to the uWSGI build.

uWSGI enables HTTPS support in the http plugin only when OpenSSL headers
are detected at build time. Populate UWSGI_INCLUDES with the include
paths
of all build inputs so uwsgiconfig.py can discover OpenSSL and other
optional features correctly.
parent 124c8fb6
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@
  jansson,
  pcre2,
  libxcrypt,
  openssl,
  expat,
  zlib,
  # plugins: list of strings, eg. [ "python3" ]
@@ -64,6 +65,12 @@ let
      ]
      ++ php-embed.unwrapped.buildInputs;
    })
    (lib.nameValuePair "http" {
      # usage: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html
      # usage: https://uwsgi-docs.readthedocs.io/en/latest/HTTPS.html
      path = "plugins/http";
      inputs = [ openssl.dev ];
    })
  ];

  getPlugin =
@@ -119,7 +126,11 @@ stdenv.mkDerivation (finalAttrs: {
    lib.optional withPAM "pam" ++ lib.optional withSystemd "systemd_logger"
  );

  UWSGI_INCLUDES = lib.optionalString withCap "${libcap.dev}/include";
  # UWSGI_INCLUDES environment variable required for "auto" plugins
  # to be detected. See uwsgiconfig.py for more details.
  UWSGI_INCLUDES = lib.concatStringsSep "," (
    map (p: "${lib.getDev p}/include") finalAttrs.buildInputs
  );

  passthru = {
    inherit python3;