diff -pruN 3.0.19-1/CMakeLists.txt 3.0.20-1/CMakeLists.txt
--- 3.0.19-1/CMakeLists.txt	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/CMakeLists.txt	2022-07-19 09:51:05.000000000 +0000
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.12 FATA
 cmake_policy(VERSION 3.12)
 
 project(Bear
-        VERSION 3.0.19
+        VERSION 3.0.20
         DESCRIPTION "Bear is a tool to generate compilation database for clang tooling."
         LANGUAGES C CXX
         )
diff -pruN 3.0.19-1/debian/changelog 3.0.20-1/debian/changelog
--- 3.0.19-1/debian/changelog	2022-03-28 18:22:41.000000000 +0000
+++ 3.0.20-1/debian/changelog	2022-07-30 20:37:28.000000000 +0000
@@ -1,3 +1,11 @@
+bear (3.0.20-1) unstable; urgency=medium
+
+  * New upstream version 3.0.20
+    - Fix FTBFS with fmtlib 9 (Closes: #1014682)
+  * debian/control: Bump Standards-Version
+
+ -- Sebastian Ramacher <sramacher@debian.org>  Sat, 30 Jul 2022 22:37:28 +0200
+
 bear (3.0.19-1) unstable; urgency=medium
 
   * New upstream version 3.0.19
diff -pruN 3.0.19-1/debian/control 3.0.20-1/debian/control
--- 3.0.19-1/debian/control	2021-08-31 20:59:05.000000000 +0000
+++ 3.0.20-1/debian/control	2022-07-30 20:37:14.000000000 +0000
@@ -15,7 +15,7 @@ Build-Depends:
  nlohmann-json3-dev,
  pkg-config,
  protobuf-compiler-grpc
-Standards-Version: 4.6.0
+Standards-Version: 4.6.1
 Homepage: https://github.com/rizsotto/Bear
 Vcs-Browser: https://salsa.debian.org/sramacher/bear
 Vcs-Git: https://salsa.debian.org/sramacher/bear.git
diff -pruN 3.0.19-1/source/citnames/source/Application.cc 3.0.20-1/source/citnames/source/Application.cc
--- 3.0.19-1/source/citnames/source/Application.cc	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/source/citnames/source/Application.cc	2022-07-19 09:51:05.000000000 +0000
@@ -28,12 +28,19 @@
 
 #include <filesystem>
 
+#ifdef HAVE_FMT_STD_H
+#include <fmt/std.h>
+#endif
+#include <fmt/ostream.h>
 #include <spdlog/spdlog.h>
-#include <spdlog/fmt/ostr.h>
 
 namespace fs = std::filesystem;
 namespace db = ic::collect::db;
 
+#ifdef FMT_NEEDS_OSTREAM_FORMATTER
+template <> struct fmt::formatter<cs::Configuration> : ostream_formatter {};
+#endif
+
 namespace {
 
     std::list<fs::path> to_abspath(const std::list<fs::path> &paths, const fs::path &root) {
diff -pruN 3.0.19-1/source/citnames/source/semantic/Build.cc 3.0.20-1/source/citnames/source/semantic/Build.cc
--- 3.0.19-1/source/citnames/source/semantic/Build.cc	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/source/citnames/source/semantic/Build.cc	2022-07-19 09:51:05.000000000 +0000
@@ -29,8 +29,12 @@
 #include <memory>
 #include <utility>
 
+#include <fmt/ostream.h>
 #include <spdlog/spdlog.h>
-#include <spdlog/fmt/ostr.h>
+
+#ifdef FMT_NEEDS_OSTREAM_FORMATTER
+template <> struct fmt::formatter<domain::Execution> : ostream_formatter {};
+#endif
 
 namespace {
 
diff -pruN 3.0.19-1/source/CMakeLists.txt 3.0.20-1/source/CMakeLists.txt
--- 3.0.19-1/source/CMakeLists.txt	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/source/CMakeLists.txt	2022-07-19 09:51:05.000000000 +0000
@@ -29,6 +29,11 @@ find_package(spdlog REQUIRED)
 find_package(PkgConfig REQUIRED)
 pkg_check_modules(gRPC REQUIRED IMPORTED_TARGET protobuf grpc++)
 
+if (fmt_VERSION_MAJOR EQUAL 9)
+    set(FMT_NEEDS_OSTREAM_FORMATTER 1)
+    set(HAVE_FMT_STD_H 1) # FIXME: this should be done with `check_include_file`
+endif ()
+
 if (UNIX AND NOT APPLE)
     set(SUPPORT_PRELOAD 1)
 endif()
@@ -46,6 +51,7 @@ check_include_file(sys/wait.h HAVE_SYS_W
 check_include_file(sys/time.h HAVE_SYS_TIME_H)
 check_include_file(sys/stat.h HAVE_SYS_STAT_H)
 check_include_file(gnu/lib-names.h HAVE_GNU_LIB_NAMES_H)
+#check_include_file(fmt/std.h HAVE_FMT_STD_H)
 include(CheckSymbolExists)
 set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_DL_LIBS})
 set(CMAKE_REQUIRED_FLAGS -D_GNU_SOURCE)
diff -pruN 3.0.19-1/source/config.h.in 3.0.20-1/source/config.h.in
--- 3.0.19-1/source/config.h.in	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/source/config.h.in	2022-07-19 09:51:05.000000000 +0000
@@ -61,6 +61,10 @@
 #cmakedefine HAVE_CS_GNU_LIBC_VERSION
 #cmakedefine HAVE_CS_GNU_LIBPTHREAD_VERSION
 
+// fmt version
+#cmakedefine HAVE_FMT_STD_H
+#cmakedefine FMT_NEEDS_OSTREAM_FORMATTER
+
 // macros to disable compiler generated methods
 #define NON_DEFAULT_CONSTRUCTABLE(T) \
     T() noexcept = delete;
diff -pruN 3.0.19-1/source/intercept/source/collect/SessionWrapper.cc 3.0.20-1/source/intercept/source/collect/SessionWrapper.cc
--- 3.0.19-1/source/intercept/source/collect/SessionWrapper.cc	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/source/intercept/source/collect/SessionWrapper.cc	2022-07-19 09:51:05.000000000 +0000
@@ -25,8 +25,12 @@
 #include "libsys/Os.h"
 #include "libsys/Path.h"
 
+#ifdef HAVE_FMT_STD_H
+#include <fmt/std.h>
+#endif
+#include <fmt/ostream.h>
+#include <fmt/ranges.h>
 #include <spdlog/spdlog.h>
-#include <spdlog/fmt/ostr.h>
 
 #include <algorithm>
 #include <iterator>
@@ -69,24 +73,6 @@ namespace {
         { "CTANGLE", "ctangle" }
     };
 
-    struct MapHolder {
-        const std::map<std::string, fs::path>& values;
-    };
-
-    std::ostream& operator<<(std::ostream& os, const MapHolder& arguments)
-    {
-        os << '[';
-        for (auto it = arguments.values.begin(); it != arguments.values.end(); ++it) {
-            if (it != arguments.values.begin()) {
-                os << ", ";
-            }
-            os << "{ \"" << it->first << "\": \"" << it->second.string() << "\" }";
-        }
-        os << ']';
-
-        return os;
-    }
-
     rust::Result<std::list<fs::path>> list_dir(const fs::path& path)
     {
         std::list<fs::path> result;
@@ -171,8 +157,8 @@ namespace ic {
             , override_(std::move(override))
     {
         spdlog::debug("session initialized with: wrapper_dir: {}", wrapper_dir_);
-        spdlog::debug("session initialized with: mapping: {}", MapHolder { mapping_ });
-        spdlog::debug("session initialized with: override: {}", MapHolder { override_ });
+        spdlog::debug("session initialized with: mapping: {}", mapping_);
+        spdlog::debug("session initialized with: override: {}", override_);
     }
 
     rust::Result<ic::Execution> WrapperSession::resolve(const ic::Execution &execution) const
diff -pruN 3.0.19-1/source/intercept/source/report/libexec/lib.cc 3.0.20-1/source/intercept/source/report/libexec/lib.cc
--- 3.0.19-1/source/intercept/source/report/libexec/lib.cc	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/source/intercept/source/report/libexec/lib.cc	2022-07-19 09:51:05.000000000 +0000
@@ -111,6 +111,7 @@ extern "C" void on_load()
     el::log::set(level);
 
     LOGGER.debug("on_load");
+    errno = 0;
 }
 
 /**
@@ -126,6 +127,7 @@ extern "C" void on_unload()
         return;
 
     LOGGER.debug("on_unload");
+    errno = 0;
 }
 
 extern "C" int execve(const char* path, char* const argv[], char* const envp[])
diff -pruN 3.0.19-1/source/intercept/source/report/wrapper/Application.cc 3.0.20-1/source/intercept/source/report/wrapper/Application.cc
--- 3.0.19-1/source/intercept/source/report/wrapper/Application.cc	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/source/intercept/source/report/wrapper/Application.cc	2022-07-19 09:51:05.000000000 +0000
@@ -27,8 +27,8 @@
 #include "libsys/Process.h"
 #include "libsys/Signal.h"
 
+#include <fmt/ostream.h>
 #include <spdlog/spdlog.h>
-#include <spdlog/fmt/ostr.h>
 
 #include <filesystem>
 #include <memory>
@@ -37,6 +37,10 @@
 
 namespace fs = std::filesystem;
 
+#ifdef FMT_NEEDS_OSTREAM_FORMATTER
+template <> struct fmt::formatter<flags::Arguments> : ostream_formatter {};
+#endif
+
 namespace {
 
     struct ApplicationLogConfig : ps::ApplicationLogConfig {
diff -pruN 3.0.19-1/source/libmain/source/ApplicationFromArgs.cc 3.0.20-1/source/libmain/source/ApplicationFromArgs.cc
--- 3.0.19-1/source/libmain/source/ApplicationFromArgs.cc	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/source/libmain/source/ApplicationFromArgs.cc	2022-07-19 09:51:05.000000000 +0000
@@ -19,10 +19,14 @@
 
 #include "libmain/ApplicationFromArgs.h"
 
+#include <fmt/ostream.h>
 #include <spdlog/spdlog.h>
-#include <spdlog/fmt/ostr.h>
 #include <spdlog/sinks/stdout_sinks.h>
 
+#ifdef FMT_NEEDS_OSTREAM_FORMATTER
+template <> struct fmt::formatter<flags::Arguments> : ostream_formatter {};
+#endif
+
 namespace ps {
 
     ApplicationFromArgs::ApplicationFromArgs(const ApplicationLogConfig &log_config) noexcept
diff -pruN 3.0.19-1/source/libmain/source/ApplicationLogConfig.cc 3.0.20-1/source/libmain/source/ApplicationLogConfig.cc
--- 3.0.19-1/source/libmain/source/ApplicationLogConfig.cc	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/source/libmain/source/ApplicationLogConfig.cc	2022-07-19 09:51:05.000000000 +0000
@@ -17,11 +17,11 @@
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "config.h"
 #include "libmain/ApplicationLogConfig.h"
+#include "config.h"
 
+#include <fmt/ranges.h>
 #include <spdlog/spdlog.h>
-#include <spdlog/fmt/ostr.h>
 #include <spdlog/sinks/stdout_sinks.h>
 
 #ifdef HAVE_SYS_UTSNAME_H
@@ -30,22 +30,21 @@
 
 namespace {
 
-    struct PointerArray {
-        const char **values;
-    };
+    struct Array {
+        const char** ptr;
 
-    std::ostream &operator<<(std::ostream &os, const PointerArray &arguments) {
-        os << '[';
-        for (const char **it = arguments.values; *it != nullptr; ++it) {
-            if (it != arguments.values) {
-                os << ", ";
-            }
-            os << '"' << *it << '"';
+        const char** begin() const {
+            return ptr;
         }
-        os << ']';
 
-        return os;
-    }
+        const char** end() const {
+            const char** it = ptr;
+            while (*it != nullptr) {
+                ++it;
+            }
+            return it;
+        }
+    };
 }
 
 namespace ps {
@@ -72,8 +71,8 @@ namespace ps {
     void ApplicationLogConfig::record(const char** argv, const char** envp) const
     {
         spdlog::debug("{0}: {1}", name_, cmd::VERSION);
-        spdlog::debug("arguments: {0}", PointerArray { argv });
-        spdlog::debug("environment: {0}", PointerArray { envp });
+        spdlog::debug("arguments: {0}", Array { argv });
+        spdlog::debug("environment: {0}", Array { envp });
     }
 
     void ApplicationLogConfig::context() const {
diff -pruN 3.0.19-1/source/libsys/source/Process.cc 3.0.20-1/source/libsys/source/Process.cc
--- 3.0.19-1/source/libsys/source/Process.cc	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/source/libsys/source/Process.cc	2022-07-19 09:51:05.000000000 +0000
@@ -44,32 +44,14 @@
 #  include "libsys/lib-names.h"
 #endif
 
+#include <fmt/ranges.h>
 #include <spdlog/spdlog.h>
-#include <spdlog/fmt/ostr.h>
 #include <spdlog/sinks/stdout_sinks.h>
 
 namespace {
 
     constexpr char PATH_TO_SH[] = "/bin/sh";
 
-    struct Arguments {
-        const std::list<std::string>& value;
-    };
-
-    std::ostream& operator<<(std::ostream& os, const Arguments& arguments)
-    {
-        os << '[';
-        for (auto it = arguments.value.begin(); it != arguments.value.end(); ++it) {
-            if (it != arguments.value.begin()) {
-                os << ", ";
-            }
-            os << *it;
-        }
-        os << ']';
-
-        return os;
-    }
-
     using posix_spawn_t = int (*)(
         pid_t * pid,
         const char* path,
@@ -158,8 +140,7 @@ namespace {
                     return sys::Process(pid);
                 })
                 .on_success([&parameters](const auto& process) {
-                    spdlog::debug("Process spawned. [pid: {}, command: {}]",
-                                  process.get_pid(), Arguments { parameters });
+                    spdlog::debug("Process spawned. [pid: {}, command: {}]", process.get_pid(), parameters);
                 })
                 .on_error([](const auto& error) {
                     spdlog::debug("Process spawn failed. {}", error.what());
diff -pruN 3.0.19-1/test/cases/intercept/preload/errno_reset.c 3.0.20-1/test/cases/intercept/preload/errno_reset.c
--- 3.0.19-1/test/cases/intercept/preload/errno_reset.c	1970-01-01 00:00:00.000000000 +0000
+++ 3.0.20-1/test/cases/intercept/preload/errno_reset.c	2022-07-19 09:51:05.000000000 +0000
@@ -0,0 +1,13 @@
+// REQUIRES: preload
+// RUN: %{compile} -o %t %s
+// RUN: %{intercept} --verbose --output %t.json -- %t
+
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+
+int main()
+{
+    printf("error %i: %s\n", errno, strerror(errno));
+    return 0;
+}
diff -pruN 3.0.19-1/third_party/fmt/CMakeLists.txt 3.0.20-1/third_party/fmt/CMakeLists.txt
--- 3.0.19-1/third_party/fmt/CMakeLists.txt	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/third_party/fmt/CMakeLists.txt	2022-07-19 09:51:05.000000000 +0000
@@ -10,9 +10,9 @@ else ()
     include(ExternalProject)
     ExternalProject_Add(fmt_dependency
             URL
-                https://github.com/fmtlib/fmt/archive/8.1.1.tar.gz
+                https://github.com/fmtlib/fmt/archive/9.0.0.tar.gz
             URL_HASH
-                MD5=fe7f1585844b14c647bd332ad5562832
+                MD5=d56c8b0612b049bb1854f07c8b133f3c
             DOWNLOAD_NO_PROGRESS
                 1
             UPDATE_COMMAND
@@ -29,6 +29,19 @@ else ()
                 -DFMT_FUZZ:BOOL=OFF
                 -DFMT_DOC:BOOL=OFF
                 -DCMAKE_INSTALL_PREFIX:PATH=${DEPENDENCIES_INSTALL_PREFIX}/fmt_dependency
+            CMAKE_CACHE_ARGS
+                -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+                -DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}
+                -DCMAKE_FIND_ROOT_PATH:PATH=${CMAKE_FIND_ROOT_PATH}
+                -DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
+                -DCMAKE_C_COMPILER_TARGET:STRING=${CMAKE_C_COMPILER_TARGET}
+                -DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
+                -DCMAKE_CXX_COMPILER_TARGET:STRING=${CMAKE_CXX_COMPILER_TARGET}
+                -DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
+                -DCMAKE_CXX_STANDARD_REQUIRED:BOOL=${CMAKE_CXX_STANDARD_REQUIRED}
+                -DCMAKE_CXX_EXTENSIONS:BOOL=${CMAKE_CXX_EXTENSIONS}
+                -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
+                -DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
             )
 
     include(GNUInstallDirs)
diff -pruN 3.0.19-1/third_party/googletest/CMakeLists.txt 3.0.20-1/third_party/googletest/CMakeLists.txt
--- 3.0.19-1/third_party/googletest/CMakeLists.txt	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/third_party/googletest/CMakeLists.txt	2022-07-19 09:51:05.000000000 +0000
@@ -12,9 +12,9 @@ else ()
     include(ExternalProject)
     ExternalProject_Add(googletest_dependency
             URL
-                https://github.com/google/googletest/archive/release-1.11.0.tar.gz
+                https://github.com/google/googletest/archive/release-1.12.1.tar.gz
             URL_HASH
-                MD5=e8a8df240b6938bb6384155d4c37d937
+                MD5=e82199374acdfda3f425331028eb4e2a
             DOWNLOAD_NO_PROGRESS
                 1
             UPDATE_COMMAND
@@ -28,6 +28,19 @@ else ()
             CMAKE_ARGS
                 -DINSTALL_GTEST:BOOL=ON
                 -DCMAKE_INSTALL_PREFIX:PATH=${DEPENDENCIES_INSTALL_PREFIX}/googletest_dependency
+            CMAKE_CACHE_ARGS
+                -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+                -DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}
+                -DCMAKE_FIND_ROOT_PATH:PATH=${CMAKE_FIND_ROOT_PATH}
+                -DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
+                -DCMAKE_C_COMPILER_TARGET:STRING=${CMAKE_C_COMPILER_TARGET}
+                -DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
+                -DCMAKE_CXX_COMPILER_TARGET:STRING=${CMAKE_CXX_COMPILER_TARGET}
+                -DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
+                -DCMAKE_CXX_STANDARD_REQUIRED:BOOL=${CMAKE_CXX_STANDARD_REQUIRED}
+                -DCMAKE_CXX_EXTENSIONS:BOOL=${CMAKE_CXX_EXTENSIONS}
+                -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
+                -DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
             )
 
     include(GNUInstallDirs)
diff -pruN 3.0.19-1/third_party/grpc/CMakeLists.txt 3.0.20-1/third_party/grpc/CMakeLists.txt
--- 3.0.19-1/third_party/grpc/CMakeLists.txt	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/third_party/grpc/CMakeLists.txt	2022-07-19 09:51:05.000000000 +0000
@@ -29,7 +29,7 @@ else ()
             GIT_REPOSITORY
                 https://github.com/grpc/grpc
             GIT_TAG
-                v1.41.1
+                v1.46.4
             GIT_SUBMODULES
             GIT_SHALLOW
                 1
@@ -46,11 +46,18 @@ else ()
                 -DgRPC_BUILD_TESTS:BOOL=OFF
                 -DgRPC_BUILD_CSHARP_EXT:BOOL=OFF
                 -DCMAKE_INSTALL_PREFIX:PATH=${DEPENDENCIES_INSTALL_PREFIX}/grpc_dependency
-                -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
-                -DCMAKE_CXX_STANDARD_REQUIRED=${CMAKE_CXX_STANDARD_REQUIRED}
-                -DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}
-                -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
+            CMAKE_CACHE_ARGS
+                -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+                -DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}
+                -DCMAKE_FIND_ROOT_PATH:PATH=${CMAKE_FIND_ROOT_PATH}
+                -DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
+                -DCMAKE_C_COMPILER_TARGET:STRING=${CMAKE_C_COMPILER_TARGET}
                 -DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
+                -DCMAKE_CXX_COMPILER_TARGET:STRING=${CMAKE_CXX_COMPILER_TARGET}
+                -DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
+                -DCMAKE_CXX_STANDARD_REQUIRED:BOOL=${CMAKE_CXX_STANDARD_REQUIRED}
+                -DCMAKE_CXX_EXTENSIONS:BOOL=${CMAKE_CXX_EXTENSIONS}
+                -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
                 -DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
             )
 
diff -pruN 3.0.19-1/third_party/nlohmann_json/CMakeLists.txt 3.0.20-1/third_party/nlohmann_json/CMakeLists.txt
--- 3.0.19-1/third_party/nlohmann_json/CMakeLists.txt	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/third_party/nlohmann_json/CMakeLists.txt	2022-07-19 09:51:05.000000000 +0000
@@ -26,6 +26,19 @@ else ()
                 -DJSON_Install:BOOL=ON
                 -DJSON_BuildTests:BOOL=OFF
                 -DCMAKE_INSTALL_PREFIX:PATH=${DEPENDENCIES_INSTALL_PREFIX}/nlohmann_json_dependency
+            CMAKE_CACHE_ARGS
+                -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+                -DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}
+                -DCMAKE_FIND_ROOT_PATH:PATH=${CMAKE_FIND_ROOT_PATH}
+                -DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
+                -DCMAKE_C_COMPILER_TARGET:STRING=${CMAKE_C_COMPILER_TARGET}
+                -DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
+                -DCMAKE_CXX_COMPILER_TARGET:STRING=${CMAKE_CXX_COMPILER_TARGET}
+                -DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
+                -DCMAKE_CXX_STANDARD_REQUIRED:BOOL=${CMAKE_CXX_STANDARD_REQUIRED}
+                -DCMAKE_CXX_EXTENSIONS:BOOL=${CMAKE_CXX_EXTENSIONS}
+                -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
+                -DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
             )
 
     include(GNUInstallDirs)
diff -pruN 3.0.19-1/third_party/spdlog/CMakeLists.txt 3.0.20-1/third_party/spdlog/CMakeLists.txt
--- 3.0.19-1/third_party/spdlog/CMakeLists.txt	2022-03-10 22:36:55.000000000 +0000
+++ 3.0.20-1/third_party/spdlog/CMakeLists.txt	2022-07-19 09:51:05.000000000 +0000
@@ -10,9 +10,9 @@ else ()
     include(ExternalProject)
     ExternalProject_Add(spdlog_dependency
             URL
-                https://github.com/gabime/spdlog/archive/v1.9.2.tar.gz
+                https://github.com/gabime/spdlog/archive/v1.10.0.tar.gz
             URL_HASH
-                MD5=cee7f3d31178a00791d7a22c6738df6d
+                MD5=effea813cd81cfb5588806c5754e14f1
             DOWNLOAD_NO_PROGRESS
                 1
             UPDATE_COMMAND
@@ -33,6 +33,19 @@ else ()
                 -DSPDLOG_BUILD_EXAMPLE:BOOL=OFF
                 -DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH}
                 -DCMAKE_INSTALL_PREFIX:PATH=${DEPENDENCIES_INSTALL_PREFIX}/spdlog_dependency
+            CMAKE_CACHE_ARGS
+                -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+                -DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}
+                -DCMAKE_FIND_ROOT_PATH:PATH=${CMAKE_FIND_ROOT_PATH}
+                -DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
+                -DCMAKE_C_COMPILER_TARGET:STRING=${CMAKE_C_COMPILER_TARGET}
+                -DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
+                -DCMAKE_CXX_COMPILER_TARGET:STRING=${CMAKE_CXX_COMPILER_TARGET}
+                -DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
+                -DCMAKE_CXX_STANDARD_REQUIRED:BOOL=${CMAKE_CXX_STANDARD_REQUIRED}
+                -DCMAKE_CXX_EXTENSIONS:BOOL=${CMAKE_CXX_EXTENSIONS}
+                -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
+                -DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
             )
 
     include(GNUInstallDirs)
