From 8227888ba0a9b09afb4514284ef89f331d4c60b9 Mon Sep 17 00:00:00 2001 From: Ehsan Saei <71217171+esigo@users.noreply.github.com> Date: Sun, 21 Jan 2024 21:56:39 +0100 Subject: [PATCH] fix OpenTelemtry image build (#10888) * fix OpenTelemtry image build * use fpic --- images/opentelemetry/rootfs/CMakeLists.txt | 65 +++++++++++++++++++++- images/opentelemetry/rootfs/Dockerfile | 6 +- images/opentelemetry/rootfs/build.sh | 2 +- 3 files changed, 65 insertions(+), 8 deletions(-) diff --git a/images/opentelemetry/rootfs/CMakeLists.txt b/images/opentelemetry/rootfs/CMakeLists.txt index 2a816ebf7..a1ff85b49 100644 --- a/images/opentelemetry/rootfs/CMakeLists.txt +++ b/images/opentelemetry/rootfs/CMakeLists.txt @@ -24,7 +24,7 @@ project( set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_FLAGS "-O2") +set(CMAKE_CXX_FLAGS "-O2 -fpic") set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON" FORCE) set(CMAKE_BUILD_TYPE @@ -69,8 +69,49 @@ set(GRPC_GIT_TAG CACHE STRING "gRPC version") include(ExternalProject) +set(ABSEIL_GIT_TAG "20230802.1" CACHE STRING "Abseil version") + +ExternalProject_Add( + Abseil + GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git + GIT_TAG ${ABSEIL_GIT_TAG} + GIT_SHALLOW 1 + UPDATE_COMMAND "" + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} + -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} + USES_TERMINAL_BUILD TRUE + DOWNLOAD_NO_PROGRESS TRUE + LOG_CONFIGURE TRUE + LOG_BUILD TRUE + LOG_INSTALL TRUE) + +# RE2 settings +set(RE2_GIT_TAG "2023-11-01" CACHE STRING "RE2 version") + +ExternalProject_Add( + RE2 + DEPENDS Abseil + GIT_REPOSITORY https://github.com/google/re2.git + GIT_TAG ${RE2_GIT_TAG} + GIT_SHALLOW 1 + UPDATE_COMMAND "" + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} + -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} + USES_TERMINAL_BUILD TRUE + DOWNLOAD_NO_PROGRESS TRUE + LOG_CONFIGURE TRUE + LOG_BUILD TRUE + LOG_INSTALL TRUE) + ExternalProject_Add( gRPC + DEPENDS Abseil RE2 GIT_REPOSITORY https://github.com/grpc/grpc.git GIT_TAG ${GRPC_GIT_TAG} GIT_SHALLOW 1 @@ -79,6 +120,8 @@ ExternalProject_Add( -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DgRPC_SSL_PROVIDER=package + -DgRPC_RE2_PROVIDER=package + -DgRPC_ABSEIL_PROVIDER=package -DOPENSSL_ROOT_DIR=OpenSSL -DgRPC_BUILD_TESTS=OFF -DBUILD_SHARED_LIBS=OFF @@ -88,7 +131,25 @@ ExternalProject_Add( -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF -DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF - CMAKE_CACHE_ARGS -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} + -DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF + -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF + -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF + -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF + -DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF + -DgRPC_USE_PROTO_LITE=OFF + -DgRPC_BUILD_CSHARP_EXT=OFF + -DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF + -DgRPC_BUILD_GRPC_JAVA_PLUGIN=OFF + -DgRPC_BUILD_GRPC_GRPC_JAVA_PLUGIN=OFF + -DgRPC_BUILD_GRPC_WEB_PLUGIN=OFF + -DgRPC_BUILD_GRPC_C_PLUGIN=OFF + -DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF + -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF + -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF + -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF + -DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF + -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} + CMAKE_CACHE_ARGS -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} TEST_AFTER_INSTALL FALSE USES_TERMINAL_BUILD TRUE DOWNLOAD_NO_PROGRESS TRUE diff --git a/images/opentelemetry/rootfs/Dockerfile b/images/opentelemetry/rootfs/Dockerfile index 8c8cb1783..e568237c2 100644 --- a/images/opentelemetry/rootfs/Dockerfile +++ b/images/opentelemetry/rootfs/Dockerfile @@ -28,16 +28,12 @@ ENV NINJA_STATUS "[%p/%f/%t] " # install gRPC FROM base as grpc -RUN bash /opt/third_party/build.sh -g v1.57.0 +RUN bash /opt/third_party/build.sh -g v1.60.0 -# install abseil-cpp -FROM base as absl-cpp -RUN bash /opt/third_party/build.sh -a 20230802.0 # install OpenTelemetry-cpp FROM base as otel-cpp COPY --from=grpc /opt/third_party/install/ /usr -COPY --from=absl-cpp /opt/third_party/install/ /usr RUN bash /opt/third_party/build.sh -o v1.11.0 # install otel_ngx_module.so diff --git a/images/opentelemetry/rootfs/build.sh b/images/opentelemetry/rootfs/build.sh index ebf95e219..8b491589f 100755 --- a/images/opentelemetry/rootfs/build.sh +++ b/images/opentelemetry/rootfs/build.sh @@ -148,7 +148,7 @@ get_src() install_nginx() { - export NGINX_VERSION=1.21.6 + export NGINX_VERSION=1.25.3 # Check for recent changes: https://github.com/open-telemetry/opentelemetry-cpp-contrib/compare/2656a4...main export OPENTELEMETRY_CONTRIB_COMMIT=aaa51e2297bcb34297f3c7aa44fa790497d2f7f3