From 4f99d8e7089a310436342b3554a8ee649fe1d296 Mon Sep 17 00:00:00 2001 From: Izorkin Date: Thu, 30 Jun 2022 23:46:40 +0300 Subject: [PATCH] quictls: disable ct feature in static mode cherry picked from commit cc60c24909a8b207a0a2dfc18082453ab85c46af --- pkgs/development/libraries/quictls/default.nix | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/quictls/default.nix b/pkgs/development/libraries/quictls/default.nix index 72640989be6e..22981bfef7af 100644 --- a/pkgs/development/libraries/quictls/default.nix +++ b/pkgs/development/libraries/quictls/default.nix @@ -7,6 +7,7 @@ # This will cause c_rehash to refer to perl via the environment, but otherwise # will produce a perfectly functional openssl binary and library. , withPerl ? stdenv.hostPlatform == stdenv.buildPlatform +, removeReferencesTo }: stdenv.mkDerivation rec { @@ -51,7 +52,7 @@ stdenv.mkDerivation rec { !(stdenv.hostPlatform.useLLVM or false) && stdenv.cc.isGNU; - nativeBuildInputs = [ perl ]; + nativeBuildInputs = [ perl removeReferencesTo ]; buildInputs = lib.optional withCryptodev cryptodev # perl is included to allow the interpreter path fixup hook to set the # correct interpreter in c_rehash. @@ -111,7 +112,11 @@ stdenv.mkDerivation rec { # OpenSSL needs a specific `no-shared` configure flag. # See https://wiki.openssl.org/index.php/Compilation_and_Installation#Configure_Options # for a comprehensive list of configuration options. - ++ lib.optional static "no-shared"; + ++ lib.optional static "no-shared" + # This introduces a reference to the CTLOG_FILE which is undesired when + # trying to build binaries statically. + ++ lib.optional static "no-ct" + ; makeFlags = [ "MANDIR=$(man)/share/man" @@ -124,13 +129,16 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - postInstall = lib.optionalString (!static) '' + postInstall = (if static then '' + # OPENSSLDIR has a reference to self + ${removeReferencesTo}/bin/remove-references-to -t $out $out/lib/*.a + '' else '' # If we're building dynamic libraries, then don't install static # libraries. if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then rm "$out/lib/"*.a fi - '' + lib.optionalString (!stdenv.hostPlatform.isWindows) + '') + lib.optionalString (!stdenv.hostPlatform.isWindows) # Fix bin/c_rehash's perl interpreter line # # - openssl 1_0_2: embeds a reference to buildPackages.perl