From 6f91d887c0aed41010fb422369b933f91eb45e5b Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Mon, 26 Jun 2023 11:31:41 -0700 Subject: [PATCH 1/3] Update to Dec 2022 release of boringssl. In this release, the "src" directory is removed from boringssl, so there are some CMake and patch changes necessary for compatibility. --- CMakeLists.txt | 3 ++- cmake/external/boringssl.cmake | 6 +++--- cmake/external_rules.cmake | 10 +++++----- .../git/patches/boringssl/0001-disable-warnings.patch | 4 ++-- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 52bd1aa675..ebd16ff0cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -264,9 +264,10 @@ if(DESKTOP) if(FIREBASE_USE_BORINGSSL) # Use BoringSSL instead of OpenSSL. - set(BORINGSSL_ROOT_DIR ${PROJECT_BINARY_DIR}/external/src/boringssl/src CACHE STRING "" FORCE) + set(BORINGSSL_ROOT_DIR ${PROJECT_BINARY_DIR}/external/src/boringssl CACHE STRING "" FORCE) set(BORINGSSL_BINARY_DIR ${PROJECT_BINARY_DIR}/external/src/boringssl-build CACHE STRING "" FORCE) set(OPENSSL_ROOT_DIR ${BORINGSSL_ROOT_DIR} CACHE STRING "" FORCE) + message("BoringSSL directory: ${BORINGSSL_ROOT_DIR}") # The call below to build_external_dependencies will make sure that these # libraries exist before the libraries are imported via add_library. diff --git a/cmake/external/boringssl.cmake b/cmake/external/boringssl.cmake index cd5390a7f2..6012e1407d 100644 --- a/cmake/external/boringssl.cmake +++ b/cmake/external/boringssl.cmake @@ -18,10 +18,10 @@ if(TARGET boringssl OR NOT DOWNLOAD_BORINGSSL) return() endif() -set(patch_file - ${CMAKE_CURRENT_LIST_DIR}/../../scripts/git/patches/boringssl/0001-disable-warnings.patch) +#set(patch_file +# ${CMAKE_CURRENT_LIST_DIR}/../../scripts/git/patches/boringssl/0001-disable-warnings.patch) -set(boringssl_commit_tag 83da28a68f32023fd3b95a8ae94991a07b1f6c62) +set(boringssl_commit_tag fips-20220613) ExternalProject_Add( boringssl diff --git a/cmake/external_rules.cmake b/cmake/external_rules.cmake index 4bb6d4bbd6..2d1ce79a2d 100644 --- a/cmake/external_rules.cmake +++ b/cmake/external_rules.cmake @@ -112,17 +112,17 @@ function(download_external_sources) if (FIREBASE_USE_BORINGSSL) # CMake's find_package(OpenSSL) doesn't quite work right with BoringSSL # unless the header file contains OPENSSL_VERSION_NUMBER. - file(READ ${PROJECT_BINARY_DIR}/external/src/boringssl/src/include/openssl/opensslv.h TMP_HEADER_CONTENTS) + file(READ ${PROJECT_BINARY_DIR}/external/src/boringssl/include/openssl/opensslv.h TMP_HEADER_CONTENTS) if (NOT TMP_HEADER_CONTENTS MATCHES OPENSSL_VERSION_NUMBER) - file(APPEND ${PROJECT_BINARY_DIR}/external/src/boringssl/src/include/openssl/opensslv.h + file(APPEND ${PROJECT_BINARY_DIR}/external/src/boringssl/include/openssl/opensslv.h "\n#ifndef OPENSSL_VERSION_NUMBER\n# define OPENSSL_VERSION_NUMBER 0x10010107L\n#endif\n") endif() # Also add an #include since openssl has it and boringssl # doesn't, and some of our code depends on the transitive dependency (this # is a bug). - file(READ ${PROJECT_BINARY_DIR}/external/src/boringssl/src/include/openssl/rand.h TMP_HEADER2_CONTENTS) + file(READ ${PROJECT_BINARY_DIR}/external/src/boringssl/include/openssl/rand.h TMP_HEADER2_CONTENTS) if (NOT TMP_HEADER2_CONTENTS MATCHES "") - file(APPEND ${PROJECT_BINARY_DIR}/external/src/boringssl/src/include/openssl/rand.h + file(APPEND ${PROJECT_BINARY_DIR}/external/src/boringssl/include/openssl/rand.h "\n#include \n") endif() endif() @@ -241,7 +241,7 @@ function(build_external_dependencies) if(NOT ANDROID AND NOT IOS) if (FIREBASE_USE_BORINGSSL) execute_process( - COMMAND ${ENV_COMMAND} cmake -DOPENSSL_NO_ASM=TRUE ${CMAKE_SUB_CONFIGURE_OPTIONS} ../boringssl/src + COMMAND ${ENV_COMMAND} cmake -DOPENSSL_NO_ASM=TRUE ${CMAKE_SUB_CONFIGURE_OPTIONS} ../boringssl WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/external/src/boringssl-build RESULT_VARIABLE boringssl_configure_status ) diff --git a/scripts/git/patches/boringssl/0001-disable-warnings.patch b/scripts/git/patches/boringssl/0001-disable-warnings.patch index 1a2ef0bf93..a2f378977f 100644 --- a/scripts/git/patches/boringssl/0001-disable-warnings.patch +++ b/scripts/git/patches/boringssl/0001-disable-warnings.patch @@ -1,5 +1,5 @@ ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt +--- a/CMakeLists.txt ++++ b/CMakeLists.txt @@ -193,6 +193,11 @@ elseif(MSVC) # possible loss of data "C4244" # 'function' : conversion from 'int' to 'uint8_t', From 058a1c5c751e769adbfa7211b8d17fe268236844 Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Mon, 26 Jun 2023 11:50:47 -0700 Subject: [PATCH 2/3] Re-add patch file. --- cmake/external/boringssl.cmake | 3 +-- scripts/git/patches/boringssl/0001-disable-warnings.patch | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/cmake/external/boringssl.cmake b/cmake/external/boringssl.cmake index 6012e1407d..8ca7209d25 100644 --- a/cmake/external/boringssl.cmake +++ b/cmake/external/boringssl.cmake @@ -18,8 +18,7 @@ if(TARGET boringssl OR NOT DOWNLOAD_BORINGSSL) return() endif() -#set(patch_file -# ${CMAKE_CURRENT_LIST_DIR}/../../scripts/git/patches/boringssl/0001-disable-warnings.patch) +set(patch_file ${CMAKE_CURRENT_LIST_DIR}/../../scripts/git/patches/boringssl/0001-disable-warnings.patch) set(boringssl_commit_tag fips-20220613) diff --git a/scripts/git/patches/boringssl/0001-disable-warnings.patch b/scripts/git/patches/boringssl/0001-disable-warnings.patch index a2f378977f..e8063cf487 100644 --- a/scripts/git/patches/boringssl/0001-disable-warnings.patch +++ b/scripts/git/patches/boringssl/0001-disable-warnings.patch @@ -1,6 +1,6 @@ --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -193,6 +193,11 @@ elseif(MSVC) +@@ -197,6 +197,11 @@ elseif(MSVC) # possible loss of data "C4244" # 'function' : conversion from 'int' to 'uint8_t', # possible loss of data From 8ed952c5e1cf96510f9d7244c8b1769d898c599d Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Wed, 28 Jun 2023 11:14:03 -0700 Subject: [PATCH 3/3] Remove debug output --- CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ebd16ff0cf..74644b5711 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -267,7 +267,6 @@ if(DESKTOP) set(BORINGSSL_ROOT_DIR ${PROJECT_BINARY_DIR}/external/src/boringssl CACHE STRING "" FORCE) set(BORINGSSL_BINARY_DIR ${PROJECT_BINARY_DIR}/external/src/boringssl-build CACHE STRING "" FORCE) set(OPENSSL_ROOT_DIR ${BORINGSSL_ROOT_DIR} CACHE STRING "" FORCE) - message("BoringSSL directory: ${BORINGSSL_ROOT_DIR}") # The call below to build_external_dependencies will make sure that these # libraries exist before the libraries are imported via add_library.