From 8e7d2bcf14066e91610f71234ec6c3804465de1f Mon Sep 17 00:00:00 2001 From: "Markus Kitsinger (SwooshyCueb)" Date: Wed, 14 Feb 2024 17:18:22 -0500 Subject: [PATCH] [#6256,#7220] Do not explicitly build against libc++ --- .github/workflows/build-irods-centos.yml | 13 ++++---- .github/workflows/build-irods-debian.yml | 13 ++++---- .../build-irods-enterprise-linux-8.yml | 13 ++++---- .../build-irods-enterprise-linux-9.yml | 13 ++++---- .github/workflows/build-irods-ubuntu.yml | 13 ++++---- .github/workflows/linter-irods-clang-tidy.yml | 13 ++++---- CMakeLists.txt | 30 +++++++++++++++---- cmake/IRODSConfig.cmake.not_yet_installed.in | 6 ++++ cmake/Modules/FindLibCXX.cmake | 7 +++++ cmake/Modules/UseLibCXX.cmake | 12 ++++---- cmake/packaging.cmake | 30 +++++++++---------- lib/core/CMakeLists.txt | 4 +-- 12 files changed, 97 insertions(+), 70 deletions(-) diff --git a/.github/workflows/build-irods-centos.yml b/.github/workflows/build-irods-centos.yml index bad829d06a..c9c842d409 100644 --- a/.github/workflows/build-irods-centos.yml +++ b/.github/workflows/build-irods-centos.yml @@ -22,19 +22,18 @@ jobs: wget -qO - https://unstable.irods.org/renci-irods-unstable.yum.repo | tee /etc/yum.repos.d/renci-irods-unstable.yum.repo yum -y update yum -y install \ - irods-externals-avro1.11.0-2 \ - irods-externals-boost1.81.0-0 \ + irods-externals-avro1.11.0-3 \ + irods-externals-boost1.81.0-1 \ irods-externals-catch22.13.8-0 \ - irods-externals-clang-runtime13.0.1-0 \ irods-externals-clang13.0.1-0 \ irods-externals-cmake3.21.4-0 \ irods-externals-cppzmq4.8.1-1 \ - irods-externals-fmt8.1.1-0 \ + irods-externals-fmt8.1.1-1 \ irods-externals-json3.10.4-0 \ irods-externals-libarchive3.5.2-0 \ - irods-externals-nanodbc2.13.0-1 \ - irods-externals-spdlog1.9.2-1 \ - irods-externals-zeromq4-14.1.8-0 + irods-externals-nanodbc2.13.0-2 \ + irods-externals-spdlog1.9.2-2 \ + irods-externals-zeromq4-14.1.8-1 - name: Configure CMake run: | export PATH=/opt/irods-externals/cmake3.21.4-0/bin:$PATH diff --git a/.github/workflows/build-irods-debian.yml b/.github/workflows/build-irods-debian.yml index 8269721060..e5922992b4 100644 --- a/.github/workflows/build-irods-debian.yml +++ b/.github/workflows/build-irods-debian.yml @@ -21,19 +21,18 @@ jobs: echo "deb [arch=amd64] https://unstable.irods.org/apt/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/renci-irods-unstable.list apt-get update -qq apt-get install -qq \ - irods-externals-avro1.11.0-2 \ - irods-externals-boost1.81.0-0 \ + irods-externals-avro1.11.0-3 \ + irods-externals-boost1.81.0-1 \ irods-externals-catch22.13.8-0 \ - irods-externals-clang-runtime13.0.1-0 \ irods-externals-clang13.0.1-0 \ irods-externals-cmake3.21.4-0 \ irods-externals-cppzmq4.8.1-1 \ - irods-externals-fmt8.1.1-0 \ + irods-externals-fmt8.1.1-1 \ irods-externals-json3.10.4-0 \ irods-externals-libarchive3.5.2-0 \ - irods-externals-nanodbc2.13.0-1 \ - irods-externals-spdlog1.9.2-1 \ - irods-externals-zeromq4-14.1.8-0 + irods-externals-nanodbc2.13.0-2 \ + irods-externals-spdlog1.9.2-2 \ + irods-externals-zeromq4-14.1.8-1 - name: Configure CMake run: | export PATH=/opt/irods-externals/cmake3.21.4-0/bin:$PATH diff --git a/.github/workflows/build-irods-enterprise-linux-8.yml b/.github/workflows/build-irods-enterprise-linux-8.yml index 5ca940bd05..b15d385960 100644 --- a/.github/workflows/build-irods-enterprise-linux-8.yml +++ b/.github/workflows/build-irods-enterprise-linux-8.yml @@ -25,19 +25,18 @@ jobs: sed -i 's/centos/el/' /etc/yum.repos.d/renci-irods-unstable.yum.repo dnf -y update dnf -y install \ - irods-externals-avro1.11.0-2 \ - irods-externals-boost1.81.0-0 \ + irods-externals-avro1.11.0-3 \ + irods-externals-boost1.81.0-1 \ irods-externals-catch22.13.8-0 \ - irods-externals-clang-runtime13.0.1-0 \ irods-externals-clang13.0.1-0 \ irods-externals-cmake3.21.4-0 \ irods-externals-cppzmq4.8.1-1 \ - irods-externals-fmt8.1.1-0 \ + irods-externals-fmt8.1.1-1 \ irods-externals-json3.10.4-0 \ irods-externals-libarchive3.5.2-0 \ - irods-externals-nanodbc2.13.0-1 \ - irods-externals-spdlog1.9.2-1 \ - irods-externals-zeromq4-14.1.8-0 + irods-externals-nanodbc2.13.0-2 \ + irods-externals-spdlog1.9.2-2 \ + irods-externals-zeromq4-14.1.8-1 - name: Configure CMake run: | export PATH=/opt/irods-externals/cmake3.21.4-0/bin:$PATH diff --git a/.github/workflows/build-irods-enterprise-linux-9.yml b/.github/workflows/build-irods-enterprise-linux-9.yml index c3de29237b..71eab529c3 100644 --- a/.github/workflows/build-irods-enterprise-linux-9.yml +++ b/.github/workflows/build-irods-enterprise-linux-9.yml @@ -26,19 +26,18 @@ jobs: dnf config-manager -y --set-enabled renci-irods-unstable dnf -y update dnf -y install \ - irods-externals-avro1.11.0-2 \ - irods-externals-boost1.81.0-0 \ + irods-externals-avro1.11.0-3 \ + irods-externals-boost1.81.0-1 \ irods-externals-catch22.13.8-0 \ - irods-externals-clang-runtime13.0.1-0 \ irods-externals-clang13.0.1-0 \ irods-externals-cmake3.21.4-0 \ irods-externals-cppzmq4.8.1-1 \ - irods-externals-fmt8.1.1-0 \ + irods-externals-fmt8.1.1-1 \ irods-externals-json3.10.4-0 \ irods-externals-libarchive3.5.2-0 \ - irods-externals-nanodbc2.13.0-1 \ - irods-externals-spdlog1.9.2-1 \ - irods-externals-zeromq4-14.1.8-0 + irods-externals-nanodbc2.13.0-2 \ + irods-externals-spdlog1.9.2-2 \ + irods-externals-zeromq4-14.1.8-1 - name: Configure CMake run: | export PATH=/opt/irods-externals/cmake3.21.4-0/bin:$PATH diff --git a/.github/workflows/build-irods-ubuntu.yml b/.github/workflows/build-irods-ubuntu.yml index fba13f0fd7..72eee43b86 100644 --- a/.github/workflows/build-irods-ubuntu.yml +++ b/.github/workflows/build-irods-ubuntu.yml @@ -28,19 +28,18 @@ jobs: echo "deb [arch=amd64] https://unstable.irods.org/apt/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/renci-irods-unstable.list apt-get update -qq apt-get install -qq \ - irods-externals-avro1.11.0-2 \ - irods-externals-boost1.81.0-0 \ + irods-externals-avro1.11.0-3 \ + irods-externals-boost1.81.0-1 \ irods-externals-catch22.13.8-0 \ - irods-externals-clang-runtime13.0.1-0 \ irods-externals-clang13.0.1-0 \ irods-externals-cmake3.21.4-0 \ irods-externals-cppzmq4.8.1-1 \ - irods-externals-fmt8.1.1-0 \ + irods-externals-fmt8.1.1-1 \ irods-externals-json3.10.4-0 \ irods-externals-libarchive3.5.2-0 \ - irods-externals-nanodbc2.13.0-1 \ - irods-externals-spdlog1.9.2-1 \ - irods-externals-zeromq4-14.1.8-0 + irods-externals-nanodbc2.13.0-2 \ + irods-externals-spdlog1.9.2-2 \ + irods-externals-zeromq4-14.1.8-1 - name: Configure CMake run: | export PATH=/opt/irods-externals/cmake3.21.4-0/bin:$PATH diff --git a/.github/workflows/linter-irods-clang-tidy.yml b/.github/workflows/linter-irods-clang-tidy.yml index e7303c8dc6..5cb0216a0f 100644 --- a/.github/workflows/linter-irods-clang-tidy.yml +++ b/.github/workflows/linter-irods-clang-tidy.yml @@ -48,19 +48,18 @@ jobs: echo "deb [arch=amd64] https://unstable.irods.org/apt/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/renci-irods-unstable.list sudo apt-get update -qq sudo apt-get install -qq \ - irods-externals-avro1.11.0-2 \ - irods-externals-boost1.81.0-0 \ + irods-externals-avro1.11.0-3 \ + irods-externals-boost1.81.0-1 \ irods-externals-catch22.13.8-0 \ - irods-externals-clang-runtime13.0.1-0 \ irods-externals-clang13.0.1-0 \ irods-externals-cmake3.21.4-0 \ irods-externals-cppzmq4.8.1-1 \ - irods-externals-fmt8.1.1-0 \ + irods-externals-fmt8.1.1-1 \ irods-externals-json3.10.4-0 \ irods-externals-libarchive3.5.2-0 \ - irods-externals-nanodbc2.13.0-1 \ - irods-externals-spdlog1.9.2-1 \ - irods-externals-zeromq4-14.1.8-0 + irods-externals-nanodbc2.13.0-2 \ + irods-externals-spdlog1.9.2-2 \ + irods-externals-zeromq4-14.1.8-1 - name: Configure CMake run: | export PATH=/opt/irods-externals/cmake3.21.4-0/bin:$PATH diff --git a/CMakeLists.txt b/CMakeLists.txt index d7c6f44792..f7f2e28727 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,17 +16,34 @@ endif() include(IrodsExternals) include(IrodsCXXCompiler) +# This is duplicated from UseLibCXX.cmake, since we need it before UseLibCXX can be included. +# Remove this when UseLibCXX.cmake is removed (#7547). +set(IRODS_BUILD_AGAINST_LIBCXX OFF CACHE BOOL "[DEPRECATED] Try to build against libc++ instead of libstdc++.") + +# At present, our split externals packages have parity. Eventually, this will change, likely due to needs of +# the iRODS project, or due to the retirement of the -libcxx packages. When this happens, or when +# UseLibCXX.camke is removed (#7547) (whichever happens first), support for automatically switching externals +# packages based on IRODS_BUILD_AGAINST_LIBCXX should be removed. +if (IRODS_BUILD_AGAINST_LIBCXX) + IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(AVRO avro-libcxx1.11.0-3) + IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(BOOST boost-libcxx1.81.0-1) + IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(FMT fmt-libcxx8.1.1-1) + IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(NANODBC nanodbc-libcxx2.13.0-2) + IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(ZMQ zeromq4-1-libcxx4.1.8-1) + IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(SPDLOG spdlog-libcxx1.9.2-2) +else() + IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(AVRO avro1.11.0-3) + IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(BOOST boost1.81.0-1) + IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(FMT fmt8.1.1-1) + IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(NANODBC nanodbc2.13.0-2) + IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(ZMQ zeromq4-14.1.8-1) + IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(SPDLOG spdlog1.9.2-2) +endif() IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(ARCHIVE libarchive3.5.2-0) -IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(AVRO avro1.11.0-2) -IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(BOOST boost1.81.0-0) -IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(FMT fmt8.1.1-0) -IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(NANODBC nanodbc2.13.0-1) -IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(ZMQ zeromq4-14.1.8-0) IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_DEVELOP_DEPENDENCIES_LIST(CATCH2 catch22.13.8-0) IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_DEVELOP_DEPENDENCIES_LIST(CPPZMQ cppzmq4.8.1-1) IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_DEVELOP_DEPENDENCIES_LIST(JSON json3.10.4-0) -IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_DEVELOP_DEPENDENCIES_LIST(SPDLOG spdlog1.9.2-1) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_EXTENSIONS OFF) @@ -100,6 +117,7 @@ if (IRODS_BUILD_WITH_WERROR) add_compile_options(-Werror) endif() +# Remove when UseLibCXX.cmake is removed (#7547). include(UseLibCXX) set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) diff --git a/cmake/IRODSConfig.cmake.not_yet_installed.in b/cmake/IRODSConfig.cmake.not_yet_installed.in index ecbffd83c4..1229d3880d 100644 --- a/cmake/IRODSConfig.cmake.not_yet_installed.in +++ b/cmake/IRODSConfig.cmake.not_yet_installed.in @@ -8,6 +8,8 @@ set_and_check(IRODS_TARGETS_PATH_UNWRAPPED "${CMAKE_CURRENT_LIST_DIR}/IRODSTarge if(NOT DEFINED IRODS_BUILD_WITH_CLANG) set(IRODS_BUILD_WITH_CLANG "@IRODS_BUILD_WITH_CLANG@") endif() + +# Remove when UseLibCXX.cmake is removed (#7547). if(NOT DEFINED IRODS_BUILD_AGAINST_LIBCXX) set(IRODS_BUILD_AGAINST_LIBCXX "@IRODS_BUILD_AGAINST_LIBCXX@") endif() @@ -31,9 +33,13 @@ endif() if(NOT DEFINED IRODS_EXTERNALS_FULLPATH_BOOST) set(IRODS_EXTERNALS_FULLPATH_BOOST "@IRODS_EXTERNALS_FULLPATH_BOOST@") endif() + +# Remove when UseLibCXX.cmake is removed (#7547). if(NOT "@IRODS_EXTERNALS_FULLPATH_CLANG_RUNTIME@" STREQUAL "" AND NOT DEFINED IRODS_EXTERNALS_FULLPATH_CLANG_RUNTIME) set(IRODS_EXTERNALS_FULLPATH_CLANG_RUNTIME "@IRODS_EXTERNALS_FULLPATH_CLANG_RUNTIME@") endif() + + if(NOT DEFINED IRODS_EXTERNALS_FULLPATH_ZMQ) set(IRODS_EXTERNALS_FULLPATH_ZMQ "@IRODS_EXTERNALS_FULLPATH_ZMQ@") endif() diff --git a/cmake/Modules/FindLibCXX.cmake b/cmake/Modules/FindLibCXX.cmake index 266d763bb2..9eac0dfacf 100644 --- a/cmake/Modules/FindLibCXX.cmake +++ b/cmake/Modules/FindLibCXX.cmake @@ -2,6 +2,8 @@ FindLibCXX ---------- +This module is deprecated and will be removed in a future release of iRODS + Result variables ^^^^^^^^^^^^^^^^ @@ -34,6 +36,11 @@ The following cache variables may also be set: #]======================================================================] +string(TOUPPER "${PROJECT_NAME}" PROJECT_NAME_UPPER) +if (NOT PROJECT_NAME_UPPER STREQUAL "IRODS") + message(DEPRECATION "The LibCXX CMake find module is deprecated and will be removed in a future relase of iRODS.") +endif() + get_filename_component(__find_libcxx_dir "${CMAKE_CURRENT_LIST_FILE}" PATH) # We need to set some variables to manipulate find_library behavior diff --git a/cmake/Modules/UseLibCXX.cmake b/cmake/Modules/UseLibCXX.cmake index 75e755c83b..6125cb5708 100644 --- a/cmake/Modules/UseLibCXX.cmake +++ b/cmake/Modules/UseLibCXX.cmake @@ -5,6 +5,8 @@ UseLibCXX Sets toolchain variables and directory properties for using libc++. Define CMAKE_CXX_STANDARD before including this module. +This module is deprecated and will be removed in a future release of iRODS + #]======================================================================] include_guard(GLOBAL) @@ -14,15 +16,15 @@ cmake_minimum_required(VERSION 3.6.0 FATAL_ERROR) # - CMAKE__INCLUDE_DIRECTORIES variable # - CMAKE__STANDARD_LIBRARIES variable -if (CMAKE_CXX_COMPILER_ID MATCHES ".*Clang") - set(IRODS_BUILD_AGAINST_LIBCXX_DEFAULT ON) -else() - set(IRODS_BUILD_AGAINST_LIBCXX_DEFAULT OFF) +string(TOUPPER "${PROJECT_NAME}" PROJECT_NAME_UPPER) +if (NOT PROJECT_NAME_UPPER STREQUAL "IRODS") + message(DEPRECATION "The UseLibCXX CMake module is deprecated and will be removed in a future relase of iRODS.") endif() -set(IRODS_BUILD_AGAINST_LIBCXX ${IRODS_BUILD_AGAINST_LIBCXX_DEFAULT} CACHE BOOL "Try to build against libc++ instead of libstdc++.") +set(IRODS_BUILD_AGAINST_LIBCXX OFF CACHE BOOL "[DEPRECATED] Try to build against libc++ instead of libstdc++.") if (IRODS_BUILD_AGAINST_LIBCXX) + message(DEPRECATION "Using the IRODS_BUILD_AGAINST_LIBCXX variable to explicitly build agaisnst libc++ is deprecated and will be removed in a future release of iRODS.") include(IrodsExternals) IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_DEVELOP_DEPENDENCIES_LIST(CLANG clang13.0.1-0) IRODS_MACRO_CHECK_DEPENDENCY_SET_FULLPATH_ADD_TO_IRODS_PACKAGE_DEPENDENCIES_LIST(CLANG_RUNTIME clang-runtime13.0.1-0) diff --git a/cmake/packaging.cmake b/cmake/packaging.cmake index 6a8fe88ec2..ec4895b9d6 100644 --- a/cmake/packaging.cmake +++ b/cmake/packaging.cmake @@ -60,9 +60,9 @@ set(CPACK_ARCHIVE_COMPONENT_INSTALL ON) set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_RUNTIME_NAME_UPPERCASE}_PACKAGE_NAME "irods-runtime") set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_RUNTIME_NAME_UPPERCASE}_PACKAGE_PROVIDES "irods-runtime (= ${CPACK_DEBIAN_PACKAGE_VERSION})") if (OPENSSL_VERSION VERSION_LESS "3.0.0") - set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_RUNTIME_NAME_UPPERCASE}_PACKAGE_DEPENDS "${IRODS_PACKAGE_DEPENDENCIES_STRING}, libc6, sudo, libssl1.1, libfuse2, libxml2, openssl") + set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_RUNTIME_NAME_UPPERCASE}_PACKAGE_DEPENDS "${IRODS_PACKAGE_DEPENDENCIES_STRING}, libc6, sudo, libssl1.1, libfuse2, libxml2, openssl, libgcc-s1, libstdc++6") else() - set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_RUNTIME_NAME_UPPERCASE}_PACKAGE_DEPENDS "${IRODS_PACKAGE_DEPENDENCIES_STRING}, libc6, sudo, libssl3, libfuse2, libxml2, openssl") + set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_RUNTIME_NAME_UPPERCASE}_PACKAGE_DEPENDS "${IRODS_PACKAGE_DEPENDENCIES_STRING}, libc6, sudo, libssl3, libfuse2, libxml2, openssl, libgcc-s1, libstdc++6") endif() set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_RUNTIME_NAME_UPPERCASE}_PACKAGE_REPLACES "irods-server (<< 4.2.10-2~)") @@ -93,7 +93,7 @@ set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_RUNTIME_NAME}_PACKAGE_NAME "irods-runtim if (IRODS_LINUX_DISTRIBUTION_NAME STREQUAL "opensuse") set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_RUNTIME_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, libopenssl1_0_0, curl-devel, openssl") else() - set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_RUNTIME_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, libxml2, curl-devel, openssl") + set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_RUNTIME_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, libxml2, curl-devel, openssl, glibc, libgcc, libstdc++") endif() set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_RUNTIME_NAME}_POST_INSTALL_SCRIPT_FILE "${CMAKE_IRODS_SOURCE_DIR}/packaging/runtime_library_postinst.sh") @@ -113,9 +113,9 @@ endif() ####################################### set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_SERVER_NAME_UPPERCASE}_PACKAGE_NAME "irods-server") if (OPENSSL_VERSION VERSION_LESS "3.0.0") - set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_SERVER_NAME_UPPERCASE}_PACKAGE_DEPENDS "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-runtime (= ${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}), libc6, sudo, libssl1.1, libfuse2, python3, openssl, python3-psutil, python3-requests, python3-pyodbc, python3-jsonschema, python3-distro, lsof") + set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_SERVER_NAME_UPPERCASE}_PACKAGE_DEPENDS "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-runtime (= ${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}), libc6, sudo, libssl1.1, libfuse2, python3, openssl, python3-psutil, python3-requests, python3-pyodbc, python3-jsonschema, python3-distro, lsof, libgcc-s1, libstdc++6") else() - set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_SERVER_NAME_UPPERCASE}_PACKAGE_DEPENDS "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-runtime (= ${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}), libc6, sudo, libssl3, libfuse2, python3, openssl, python3-psutil, python3-requests, python3-pyodbc, python3-jsonschema, python3-distro, lsof") + set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_SERVER_NAME_UPPERCASE}_PACKAGE_DEPENDS "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-runtime (= ${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}), libc6, sudo, libssl3, libfuse2, python3, openssl, python3-psutil, python3-requests, python3-pyodbc, python3-jsonschema, python3-distro, lsof, libgcc-s1, libstdc++6") endif() set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_SERVER_NAME_UPPERCASE}_PACKAGE_RECOMMENDS "irods-icommands (>= ${CPACK_DEBIAN_PACKAGE_VERSION})") set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_SERVER_NAME_UPPERCASE}_PACKAGE_PROVIDES "irods, irods-server (= ${CPACK_DEBIAN_PACKAGE_VERSION})") @@ -127,9 +127,9 @@ set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_SERVER_NAME_UPPERCASE}_PACKAGE_CONTRO set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_SERVER_NAME}_PACKAGE_NAME "irods-server") set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_SERVER_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-runtime = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}, openssl, python3, python3-psutil") if (IRODS_LINUX_DISTRIBUTION_NAME STREQUAL "centos" AND IRODS_LINUX_DISTRIBUTION_VERSION_MAJOR EQUAL 7) - set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_SERVER_NAME}_PACKAGE_REQUIRES "${CPACK_RPM_${IRODS_PACKAGE_COMPONENT_SERVER_NAME}_PACKAGE_REQUIRES}, python36-jsonschema, python36-requests, python36-distro") + set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_SERVER_NAME}_PACKAGE_REQUIRES "${CPACK_RPM_${IRODS_PACKAGE_COMPONENT_SERVER_NAME}_PACKAGE_REQUIRES}, python36-jsonschema, python36-requests, python36-distro, glibc, libgcc, libstdc++") else() - set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_SERVER_NAME}_PACKAGE_REQUIRES "${CPACK_RPM_${IRODS_PACKAGE_COMPONENT_SERVER_NAME}_PACKAGE_REQUIRES}, python3-jsonschema, python3-requests, python3-distro, python3-pyodbc") + set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_SERVER_NAME}_PACKAGE_REQUIRES "${CPACK_RPM_${IRODS_PACKAGE_COMPONENT_SERVER_NAME}_PACKAGE_REQUIRES}, python3-jsonschema, python3-requests, python3-distro, python3-pyodbc, glibc, libgcc, libstdc++") endif() set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_SERVER_NAME}_PACKAGE_SUGGESTS "irods-icommands = ${CPACK_RPM_PACKAGE_VERSION}") set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_SERVER_NAME}_PRE_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/preinst") @@ -180,7 +180,7 @@ endif() ## Postgres database plugin package ####################################### set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_POSTGRES_NAME_UPPERCASE}_PACKAGE_NAME "irods-database-plugin-postgres") -set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_POSTGRES_NAME_UPPERCASE}_PACKAGE_DEPENDS "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server (= ${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}), unixodbc, libodbc1, odbcinst, odbc-postgresql, postgresql-client, super, libc6") +set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_POSTGRES_NAME_UPPERCASE}_PACKAGE_DEPENDS "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server (= ${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}), unixodbc, libodbc1, odbcinst, odbc-postgresql, postgresql-client, super, libc6, libgcc-s1, libstdc++6") set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_POSTGRES_NAME_UPPERCASE}_PACKAGE_PROVIDES "irods-database-plugin-postgres (= ${CPACK_DEBIAN_PACKAGE_VERSION})") set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_POSTGRES_NAME_UPPERCASE}_PACKAGE_CONFLICTS "irods-database-plugin-mysql, irods-database-plugin-oracle") set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_POSTGRES_NAME_UPPERCASE}_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/plugins/database/packaging/preinst;${CMAKE_CURRENT_SOURCE_DIR}/plugins/database/packaging/postinst;${CMAKE_CURRENT_SOURCE_DIR}/plugins/database/packaging/postrm;") @@ -189,9 +189,9 @@ set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_POSTGRES_NAME}_PACKAGE_NAME "irods-datab if (IRODS_LINUX_DISTRIBUTION_NAME STREQUAL "opensuse") set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_POSTGRES_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}, unixODBC, postgresql, psqlODBC") elseif (IRODS_LINUX_DISTRIBUTION_NAME STREQUAL "centos" AND IRODS_LINUX_DISTRIBUTION_VERSION_MAJOR EQUAL 7) - set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_POSTGRES_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}, unixODBC, postgresql, authd, postgresql-odbc") + set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_POSTGRES_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}, unixODBC, postgresql, authd, postgresql-odbc, glibc, libgcc, libstdc++") else() - set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_POSTGRES_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}, unixODBC, postgresql, postgresql-odbc") + set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_POSTGRES_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}, unixODBC, postgresql, postgresql-odbc, glibc, libgcc, libstdc++") endif() set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_POSTGRES_NAME}_PACKAGE_CONFLICTS "irods-database-plugin-mysql, irods-database-plugin-oracle") set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_POSTGRES_NAME}_PRE_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/plugins/database/packaging/preinst") @@ -212,7 +212,7 @@ endif() ## MySQL database plugin package ####################################### set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_MYSQL_NAME_UPPERCASE}_PACKAGE_NAME "irods-database-plugin-mysql") -set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_MYSQL_NAME_UPPERCASE}_PACKAGE_DEPENDS "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server (= ${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}), unixodbc, libodbc1, odbcinst, virtual-mysql-client, libc6") +set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_MYSQL_NAME_UPPERCASE}_PACKAGE_DEPENDS "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server (= ${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}), unixodbc, libodbc1, odbcinst, virtual-mysql-client, libc6, libgcc-s1, libstdc++6") set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_MYSQL_NAME_UPPERCASE}_PACKAGE_RECOMMENDS "odbc-mariadb | mariadb-connector-odbc | mysql-connector-odbc | mysql-connector-odbc-commercial | libmyodbc") set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_MYSQL_NAME_UPPERCASE}_PACKAGE_PROVIDES "irods-database-plugin-mysql (= ${CPACK_DEBIAN_PACKAGE_VERSION})") set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_MYSQL_NAME_UPPERCASE}_PACKAGE_CONFLICTS "irods-database-plugin-postgres, irods-database-plugin-oracle") @@ -222,9 +222,9 @@ set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_MYSQL_NAME}_PACKAGE_NAME "irods-database if (IRODS_LINUX_DISTRIBUTION_NAME STREQUAL "opensuse") set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_MYSQL_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}, mariadb-client, unixODBC") elseif (IRODS_LINUX_DISTRIBUTION_NAME STREQUAL "centos" AND IRODS_LINUX_DISTRIBUTION_VERSION_MAJOR EQUAL 7) - set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_MYSQL_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}, mysql, unixODBC, mysql-connector-odbc") + set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_MYSQL_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}, mysql, unixODBC, mysql-connector-odbc, glibc, libgcc, libstdc++") else() - set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_MYSQL_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}, mariadb, unixODBC, mariadb-connector-odbc") + set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_MYSQL_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}, mariadb, unixODBC, mariadb-connector-odbc, glibc, libgcc, libstdc++") endif() set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_MYSQL_NAME}_PACKAGE_CONFLICTS "irods-database-plugin-postgres, irods-database-plugin-oracle") set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_MYSQL_NAME}_PRE_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/plugins/database/packaging/preinst") @@ -245,13 +245,13 @@ endif() ## Oracle database plugin package ####################################### set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_ORACLE_NAME_UPPERCASE}_PACKAGE_NAME "irods-database-plugin-oracle") -set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_ORACLE_NAME_UPPERCASE}_PACKAGE_DEPENDS "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server (= ${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}), unixodbc, libodbc1, odbcinst, libc6") +set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_ORACLE_NAME_UPPERCASE}_PACKAGE_DEPENDS "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server (= ${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}), unixodbc, libodbc1, odbcinst, libc6, libgcc-s1, libstdc++6") set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_ORACLE_NAME_UPPERCASE}_PACKAGE_PROVIDES "irods-database-plugin-oracle (= ${CPACK_DEBIAN_PACKAGE_VERSION})") set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_ORACLE_NAME_UPPERCASE}_PACKAGE_CONFLICTS "irods-database-plugin-mysql, irods-database-plugin-postgres") set(CPACK_DEBIAN_${IRODS_PACKAGE_COMPONENT_ORACLE_NAME_UPPERCASE}_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/plugins/database/packaging/preinst;${CMAKE_CURRENT_SOURCE_DIR}/plugins/database/packaging/postinst;${CMAKE_CURRENT_SOURCE_DIR}/plugins/database/packaging/postrm;") set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_ORACLE_NAME}_PACKAGE_NAME "irods-database-plugin-oracle") -set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_ORACLE_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}, unixODBC") +set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_ORACLE_NAME}_PACKAGE_REQUIRES "${IRODS_PACKAGE_DEPENDENCIES_STRING}, irods-server = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}, unixODBC, glibc, libgcc, libstdc++") set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_ORACLE_NAME}_PACKAGE_CONFLICTS "irods-database-plugin-mysql, irods-database-plugin-postgres") set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_ORACLE_NAME}_PRE_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/plugins/database/packaging/preinst") set(CPACK_RPM_${IRODS_PACKAGE_COMPONENT_ORACLE_NAME}_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/plugins/database/packaging/postinst") diff --git a/lib/core/CMakeLists.txt b/lib/core/CMakeLists.txt index 52635097e2..285e5ac719 100644 --- a/lib/core/CMakeLists.txt +++ b/lib/core/CMakeLists.txt @@ -79,7 +79,7 @@ target_link_libraries( PUBLIC nlohmann_json::nlohmann_json fmt::fmt - spdlog::spdlog_header_only + spdlog::spdlog Threads::Threads ) target_include_directories( @@ -236,7 +236,7 @@ foreach(variant IN ITEMS client server) PUBLIC nlohmann_json::nlohmann_json fmt::fmt - spdlog::spdlog_header_only + spdlog::spdlog OpenSSL::Crypto OpenSSL::SSL )