diff --git a/ci/fix-abseil-cpp-issue-1536.patch b/ci/fix-abseil-cpp-issue-1536.patch deleted file mode 100644 index 7004cf0479..0000000000 --- a/ci/fix-abseil-cpp-issue-1536.patch +++ /dev/null @@ -1,23 +0,0 @@ -commit 779a3565ac6c5b69dd1ab9183e500a27633117d5 -Author: Derek Mauro -Date: Tue Jan 30 10:13:25 2024 -0800 - - Avoid export of testonly target absl::test_allocator in CMake builds - - Closes #1536 - - PiperOrigin-RevId: 602764437 - Change-Id: Ia5c20a3874262a2ddb8797f608af17d7e86dd6d6 - -diff --git a/absl/container/CMakeLists.txt b/absl/container/CMakeLists.txt -index 449a2cad..ee9ca9c3 100644 ---- a/absl/container/CMakeLists.txt -+++ b/absl/container/CMakeLists.txt -@@ -213,6 +213,7 @@ absl_cc_library( - DEPS - absl::config - GTest::gmock -+ TESTONLY - ) - - absl_cc_test( diff --git a/ci/setup_grpc.sh b/ci/setup_grpc.sh deleted file mode 100755 index c922af50c7..0000000000 --- a/ci/setup_grpc.sh +++ /dev/null @@ -1,154 +0,0 @@ -#!/bin/bash - -# Copyright The OpenTelemetry Authors -# SPDX-License-Identifier: Apache-2.0 - -set -e -export DEBIAN_FRONTEND=noninteractive -old_grpc_version='v1.33.2' -new_grpc_version='v1.49.2' -modern_grpc_version='v1.55.0' -gcc_version_for_new_grpc='5.1' -std_version='14' -if [ ! -z "${CXX_STANDARD}" ]; then - std_version="${CXX_STANDARD}" -fi -install_grpc_version=${new_grpc_version} -install_dir='/usr/local/' -build_shared_libs='' -build_internal_abseil_cpp=1 -GRPC_BUILD_OPTIONS=() -usage() { - echo "Usage: $0 [options...]" 1>&2; - echo "Available options:" 1>&2; - echo " -v Set GCC version" 1>&2; - echo " -h Show help message and exit" 1>&2; - echo " -i Set installation prefix" 1>&2; - echo " -m Use the modern gRPC version" 1>&2; - echo " -p Let gRPC find protobuf or abseil-cpp by CONFIG package" 1>&2; - echo " -r Specify the version of gRPC" 1>&2; - echo " -s Specify std version(CMAKE_CXX_STANDARD)" 1>&2; - echo " -T Build static libraries" 1>&2; - echo " -H Build shared libraries" 1>&2; -} - -while getopts ":v:hi:mp:r:s:TH" o; do - case "${o}" in - v) - gcc_version=${OPTARG} - ;; - h) - usage - exit 0; - ;; - i) - install_dir=${OPTARG} - ;; - p) - if [ "${OPTARG}" == "protobuf" ]; then - GRPC_BUILD_OPTIONS=(${GRPC_BUILD_OPTIONS[@]} "-DgRPC_PROTOBUF_PROVIDER=package") - elif [ "${OPTARG}" == "abseil-cpp" ]; then - GRPC_BUILD_OPTIONS=(${GRPC_BUILD_OPTIONS[@]} "-DgRPC_ABSL_PROVIDER=package") - build_internal_abseil_cpp=0 - else - usage - exit 1; - fi - ;; - r) - install_grpc_version=${OPTARG} - ;; - m) - install_grpc_version=${modern_grpc_version} - ;; - s) - std_version=${OPTARG} - ;; - T) - build_shared_libs="OFF" - ;; - H) - build_shared_libs="ON" - ;; - *) - usage - exit 1; - ;; - esac -done - -if [ -z "${gcc_version}" ]; then - gcc_version=`gcc --version | awk '/gcc/ {print $NF}'` -fi -if [[ "${gcc_version}" < "${gcc_version_for_new_grpc}" ]] && [[ "${gcc_version:1:1}" == "." ]]; then - echo "${gcc_version} less than ${gcc_version_for_new_grpc}" - std_version='11' - install_grpc_version=${old_grpc_version} -fi -if ! type cmake > /dev/null; then - #cmake not installed, exiting - exit 1 -fi -export BUILD_DIR=/tmp/ -export INSTALL_DIR=${install_dir} -pushd $BUILD_DIR -echo "installing grpc version: ${install_grpc_version}" -git clone --depth=1 -b ${install_grpc_version} https://github.com/grpc/grpc -pushd grpc -git submodule init -git submodule update --depth 1 - -if [[ $build_internal_abseil_cpp -ne 0 ]]; then - mkdir -p "third_party/abseil-cpp/build" && pushd "third_party/abseil-cpp/build" - set -x - - ABSEIL_CPP_BUILD_OPTIONS=( - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_CXX_STANDARD=${std_version} - -DCMAKE_CXX_STANDARD_REQUIRED=ON - -DCMAKE_CXX_EXTENSIONS=OFF - -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE - -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR - ) - if [ ! -z "$build_shared_libs" ]; then - ABSEIL_CPP_BUILD_OPTIONS=(${ABSEIL_CPP_BUILD_OPTIONS[@]} "-DBUILD_SHARED_LIBS=$build_shared_libs") - fi - cmake "${ABSEIL_CPP_BUILD_OPTIONS[@]}" .. - make -j $(nproc) - make install - popd -fi -mkdir -p build && pushd build - -GRPC_BUILD_OPTIONS=( - ${GRPC_BUILD_OPTIONS[@]} - -DgRPC_INSTALL=ON - -DCMAKE_CXX_STANDARD=${std_version} - -DCMAKE_CXX_STANDARD_REQUIRED=ON - -DCMAKE_CXX_EXTENSIONS=OFF - -DgRPC_BUILD_TESTS=OFF - -DgRPC_BUILD_GRPC_CPP_PLUGIN=ON - -DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF - -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF - -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF - -DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF - -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF - -DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF - -DgRPC_BUILD_GRPCPP_OTEL_PLUGIN=OFF - -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR - -DCMAKE_PREFIX_PATH=$INSTALL_DIR -) -if [ ! -z "$build_shared_libs" ]; then - GRPC_BUILD_OPTIONS=(${GRPC_BUILD_OPTIONS[@]} "-DBUILD_SHARED_LIBS=$build_shared_libs") -fi - -echo "Building gRPC ${install_grpc_version}" -echo "CMake build options:" "${GRPC_BUILD_OPTIONS[@]}" - -cmake "${GRPC_BUILD_OPTIONS[@]}" .. -make -j $(nproc) -make install -popd -popd - -export PATH=${INSTALL_DIR}/bin:$PATH # ensure to use the installed grpc diff --git a/docker/Dockerfile b/docker/Dockerfile index 5fe143c4f7..e3d70841c9 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,35 +1,70 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -ARG BASE_IMAGE=ubuntu:latest -ARG GRPC_IMAGE=grpc-${BASE_IMAGE} - -FROM ${GRPC_IMAGE} as grpc +ARG BASE_IMAGE=ubuntu-latest FROM base-${BASE_IMAGE}-dev AS otel-cpp ARG CORES=${nproc} -ARG OTEL_GIT_TAG=v1.3.0 +ARG OTEL_GIT_TAG="main" +ARG OTEL_THIRDPARTY_TAGS_FILE="third_party_release" +ARG OTEL_CMAKE_OPTIONS_CACHE_FILE="test_common/cmake/all-options-abiv1.cmake" +ARG CXX_STANDARD=17 +ARG OTEL_THIRDPARTY_BUILD_TYPE="Release" +ARG OTEL_BUILD_TYPE="Release" +ARG OTEL_BUILD_SHARED_LIBS="ON" +ARG OTEL_INSTALL_DIR="/opt/opentelemetry-cpp-install" -COPY --from=grpc / /usr/local +ENV OTEL_GIT_TAG=${OTEL_GIT_TAG} +ENV OTEL_THIRDPARTY_TAGS_FILE=${OTEL_THIRDPARTY_TAGS_FILE} +ENV OTEL_CMAKE_OPTIONS_CACHE_FILE=${OTEL_CMAKE_OPTIONS_CACHE_FILE} +ENV CXX_STANDARD=${CXX_STANDARD} +ENV OTEL_THIRDPARTY_BUILD_TYPE=${OTEL_THIRDPARTY_BUILD_TYPE} +ENV OTEL_BUILD_TYPE=${OTEL_BUILD_TYPE} +ENV OTEL_BUILD_SHARED_LIBS=${OTEL_BUILD_SHARED_LIBS} -#install opentelemetry-cpp +ENV OTEL_SRC_DIR="/tmp/opentelemetry-cpp" +ENV OTEL_BUILD_DIR="/tmp/opentelemetry-cpp-build" +ENV OTEL_THIRDPARTY_BUILD_DIR="/tmp/opentelemetry-cpp-third-party-build" +ENV OTEL_INSTALL_DIR=${OTEL_INSTALL_DIR} + +# clone the source RUN git clone --recurse-submodules -j ${CORES} --depth=1 \ - -b ${OTEL_GIT_TAG} https://github.com/open-telemetry/opentelemetry-cpp.git \ - && cd opentelemetry-cpp \ - && mkdir -p build && cd build \ + -b ${OTEL_GIT_TAG} https://github.com/open-telemetry/opentelemetry-cpp.git ${OTEL_SRC_DIR} + +#install third party dependencies +RUN mkdir -p ${OTEL_THIRDPARTY_BUILD_DIR} \ + && cmake \ + -S "${OTEL_SRC_DIR}/install/cmake" \ + -B "${OTEL_THIRDPARTY_BUILD_DIR}" \ + "-DCMAKE_INSTALL_PREFIX=${OTEL_INSTALL_DIR}" \ + "-DCMAKE_CXX_STANDARD=${CXX_STANDARD}" \ + "-DCMAKE_CXX_STANDARD_REQUIRED=ON" \ + "-DCMAKE_CXX_EXTENSIONS=OFF" \ + "-DCMAKE_BUILD_TYPE=${OTEL_THIRDPARTY_BUILD_TYPE}" \ + "-DOTELCPP_THIRDPARTY_TAGS_FILE=${OTEL_THIRDPARTY_TAGS_FILE}" \ + && cmake --build "${OTEL_THIRDPARTY_BUILD_DIR}" --clean-first -j ${CORES} + +#install opentelemetry-cpp +RUN mkdir -p ${OTEL_BUILD_DIR} \ && cmake \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \ - -DWITH_ZIPKIN=ON \ - -DCMAKE_INSTALL_PREFIX=/opt/third_party/install \ - -DBUILD_TESTING=OFF \ - -DWITH_OTLP_GRPC=ON \ - -DWITH_OTLP_HTTP=ON \ - -DBUILD_SHARED_LIBS=ON \ - .. \ - && cmake --build . -j ${CORES} --target install - -FROM scratch as final - -COPY --from=otel-cpp /opt/third_party/install / + -S "${OTEL_SRC_DIR}" \ + -B "${OTEL_BUILD_DIR}" \ + -C "${OTEL_SRC_DIR}/${OTEL_CMAKE_OPTIONS_CACHE_FILE}" \ + "-DCMAKE_INSTALL_PREFIX=${OTEL_INSTALL_DIR}" \ + "-DCMAKE_PREFIX_PATH=${OTEL_INSTALL_DIR}" \ + "-DCMAKE_BUILD_TYPE=${OTEL_BUILD_TYPE}" \ + "-DCMAKE_CXX_STANDARD=${CXX_STANDARD}" \ + "-DCMAKE_CXX_STANDARD_REQUIRED=ON" \ + "-DCMAKE_CXX_EXTENSIONS=OFF" \ + "-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE" \ + "-DBUILD_TESTING=OFF" \ + "-DBUILD_EXAMPLES=OFF" \ + "-DBUILD_SHARED_LIBS=${OTEL_BUILD_SHARED_LIBS}" \ + && cmake --build "${OTEL_BUILD_DIR}" -j ${CORES} --target install + +FROM scratch AS final + +ARG OTEL_INSTALL_DIR + +COPY --from=otel-cpp ${OTEL_INSTALL_DIR} / diff --git a/docker/Dockerfile.alpine-latest.base b/docker/Dockerfile.alpine-latest.base new file mode 100644 index 0000000000..db50b68f88 --- /dev/null +++ b/docker/Dockerfile.alpine-latest.base @@ -0,0 +1,16 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +ARG BASE_IMAGE=alpine:latest@sha256:4b7ce07002c69e8f3d704a9c5d6fd3053be500b7f1c69fc0d80990c2ad8dd412 + +FROM ${BASE_IMAGE} AS final + +RUN apk update + +RUN apk add --update alpine-sdk \ + && apk add cmake g++ \ + git autoconf libtool linux-headers \ + openssl openssl-dev \ + libevent-dev + +WORKDIR /work diff --git a/docker/Dockerfile.alpine.base b/docker/Dockerfile.alpine.base deleted file mode 100644 index d4f5932cc6..0000000000 --- a/docker/Dockerfile.alpine.base +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright The OpenTelemetry Authors -# SPDX-License-Identifier: Apache-2.0 - -ARG BASE_IMAGE=alpine:latest -ARG CORES=${nproc} - -FROM ${BASE_IMAGE} as final - -RUN apk update - -RUN apk add --update alpine-sdk \ - && apk add cmake openssl openssl-dev g++ \ - curl-dev git autoconf libtool linux-headers \ - libevent-dev openssl-dev - -RUN mkdir -p /opt/third_party/install - -WORKDIR /opt diff --git a/docker/Dockerfile.centos b/docker/Dockerfile.centos deleted file mode 100644 index c38b32b174..0000000000 --- a/docker/Dockerfile.centos +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright The OpenTelemetry Authors -# SPDX-License-Identifier: Apache-2.0 - -FROM centos:7 - -ARG TOOLSET_VER=11 - -RUN yum update -y && yum install -y centos-release-scl epel-release -RUN yum install -y devtoolset-${TOOLSET_VER} \ - cmake3 git \ - openssl-devel \ - libcurl-devel \ - && source /opt/rh/devtoolset-${TOOLSET_VER}/enable - -RUN echo "source /opt/rh/devtoolset-${TOOLSET_VER}/enable" >> /etc/bashrc - -ARG GRPC_VERSION=v1.43.2 - -# install gRPC -RUN git clone --depth=1 -b $GRPC_VERSION https://github.com/grpc/grpc.git \ - && cd grpc && git submodule update --init \ - && mkdir -p "third_party/abseil-cpp/build" && cd "third_party/abseil-cpp/build" \ - && source /opt/rh/devtoolset-${TOOLSET_VER}/enable \ - && cmake3 -DCMAKE_CXX_STANDARD=17 -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE .. \ - && make -j${nproc} install && cd ../../.. \ - && mkdir build && cd build \ - && cmake3 \ - -DCMAKE_CXX_STANDARD=17 \ - -DCMAKE_BUILD_TYPE=Release \ - -DgRPC_INSTALL=ON \ - -DgRPC_BUILD_TESTS=OFF \ - -DgRPC_ABSL_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ - .. && \ - make -j${nproc} install && make clean && ldconfig - -#install opentelemetry-cpp -RUN git clone --depth=1 https://github.com/open-telemetry/opentelemetry-cpp.git \ - && cd opentelemetry-cpp && git submodule update --init \ - && mkdir -p build && cd build \ - && source /opt/rh/devtoolset-${TOOLSET_VER}/enable \ - && cmake3 \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \ - -DWITH_ZIPKIN=ON \ - -DBUILD_TESTING=OFF \ - -DWITH_OTLP_GRPC=ON \ - -DWITH_OTLP_HTTP=ON \ - .. \ - && make -j${nproc} install && ldconfig diff --git a/docker/Dockerfile.debian.deps b/docker/Dockerfile.debian.deps deleted file mode 100644 index 3fe4fe28d9..0000000000 --- a/docker/Dockerfile.debian.deps +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright The OpenTelemetry Authors -# SPDX-License-Identifier: Apache-2.0 - -ARG BASE_IMAGE=ubuntu:latest -ARG CORES=${nproc} - -FROM ${BASE_IMAGE} as base - -ENV DEBIAN_FRONTEND=noninteractive - -RUN apt-get update && apt-get install -y build-essential autoconf \ - libtool pkg-config cmake git libssl-dev curl \ - libcurl4-openssl-dev libgtest-dev libgmock-dev libbenchmark-dev - -WORKDIR /work -RUN mkdir -p /opt/otel-cpp - -FROM base as grpc -# install grpc, protobuf and abseil -ARG GRPC_VERSION=1.43.2 - -ADD setup_grpc.sh . -RUN ./setup_grpc.sh -i "/opt/otel-cpp" -v ${GRPC_VERSION} - -FROM scratch as final - -COPY --from=grpc /opt/otel-cpp / - -# how to use: -# -# docker create -ti --name deps otel-cpp-deps bash -# docker cp deps:/ ./ -# docker rm -f deps -# -# or: -# -# COPY --from=otel-cpp-deps /usr diff --git a/docker/Dockerfile.ubuntu-latest.base b/docker/Dockerfile.ubuntu-latest.base new file mode 100644 index 0000000000..fd572875be --- /dev/null +++ b/docker/Dockerfile.ubuntu-latest.base @@ -0,0 +1,13 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +ARG BASE_IMAGE=ubuntu:latest@sha256:66460d557b25769b102175144d538d88219c077c678a49af4afca6fbfc1b5252 + +FROM ${BASE_IMAGE} AS final + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && apt-get install -y build-essential autoconf \ + libtool pkg-config cmake git libssl-dev + +WORKDIR /work diff --git a/docker/README.md b/docker/README.md index 8c7ca3ce34..51f232dfbd 100644 --- a/docker/README.md +++ b/docker/README.md @@ -4,17 +4,13 @@ The build script `build.sh` can be used to build OpenTelemetry and it's dependencies within the desired base image. -The final image only contains the necessary files in `/`. +The final image contains the build of opentelemetry-cpp and its dependencies in `/opt/opentelemetry-cpp-install`. ```sh -bash build.sh -b alpine -j ${nproc} -g v1.43.2 -o v1.3.0 -t 0.14.1 +bash build.sh -b alpine-latest -j ${nproc} -o main # copy to current dir -docker create -ti --name otel otel-cpp- bash -docker cp otel:/ ./ +docker create -ti --name otel otel-cpp-alpine-latest bash +docker cp otel:/opt/opentelemetry-cpp-install ./ docker rm -f otel - -docker create -ti --name grpc grpc- bash -docker cp grpc:/ ./ -docker rm -f grpc ``` diff --git a/docker/build.sh b/docker/build.sh old mode 100644 new mode 100755 index d418a909d0..d65671738b --- a/docker/build.sh +++ b/docker/build.sh @@ -10,20 +10,20 @@ set -o pipefail Help() { # Display Help - echo "Add description of the script functions here." + echo "Build opentelemetry-cpp and its third-party dependencies in the selected base image" + echo "Script options [-b|o|g|j]" echo - echo "Syntax: scriptTemplate [-b|o|g|j]" - echo "options:" - echo "b Base image" + echo "b Base image " echo "o OpenTelemetry-cpp git tag" echo "h Print Help." - echo "g gRPC git tag" echo "j Parallel jobs" echo echo "how to use:" echo + echo "bash build.sh -b -j ${nproc} -o " + echo echo "docker create -ti --name otel otel-cpp- bash" - echo "docker cp otel:/ ./" + echo "docker cp otel:/opt/opentelemetry-cpp-install ./" echo "docker rm -f otel" echo echo "or:" @@ -31,12 +31,11 @@ Help() echo "COPY --from=otel-cpp- /usr" } -base_image=${base_image:="alpine"} -grpc_git_tag=${grpc_git_tag:="v1.43.2"} -otel_git_tag=${otel_git_tag:="v1.3.0"} +base_image=${base_image:="alpine-latest"} +otel_git_tag=${otel_git_tag:="main"} cores=${cores:=1} -while getopts ":h:b:o:g:j:" option; do +while getopts ":h:b:o:j:" option; do case $option in h) # display Help Help @@ -47,9 +46,6 @@ while getopts ":h:b:o:g:j:" option; do o) # OpenTelemetry-cpp git tag otel_git_tag=$OPTARG ;; - g) # gRPC git tag - grpc_git_tag=$OPTARG - ;; j) # number of cores cores=$OPTARG ;; @@ -61,13 +57,6 @@ done docker build -t base-${base_image}-dev -f Dockerfile.${base_image}.base . -pushd grpc/ -docker build --build-arg BASE_IMAGE=base-${base_image}-dev \ - --build-arg GRPC_GIT_TAG=${grpc_git_tag} \ - --build-arg CORES=${cores} \ - -t grpc-${base_image} -f Dockerfile . -popd - docker build --build-arg BASE_IMAGE=${base_image} \ --build-arg CORES=${cores} \ --build-arg OTEL_GIT_TAG=${otel_git_tag} \ diff --git a/docker/grpc/CMakeLists.txt b/docker/grpc/CMakeLists.txt deleted file mode 100644 index 95ddf7db82..0000000000 --- a/docker/grpc/CMakeLists.txt +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright The OpenTelemetry Authors -# SPDX-License-Identifier: Apache-2.0 - -cmake_minimum_required(VERSION 3.14 FATAL_ERROR) - -project( - dependencies - LANGUAGES CXX - VERSION 0.0.1) - -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_EXTENSIONS OFF) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_FLAGS "-O2") - -set(CMAKE_BUILD_TYPE - Release - CACHE STRING "Build type" FORCE) - -include(GNUInstallDirs) - -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY - ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY - ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY - ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) - -set(INSTALL_LIBDIR - ${CMAKE_INSTALL_LIBDIR} - CACHE PATH "directory for libraries") -set(INSTALL_BINDIR - ${CMAKE_INSTALL_BINDIR} - CACHE PATH "directory for executables") -set(INSTALL_INCLUDEDIR - ${CMAKE_INSTALL_INCLUDEDIR} - CACHE PATH "directory for header files") - -set(DEF_INSTALL_CMAKEDIR share/cmake/${PROJECT_NAME}) -set(INSTALL_CMAKEDIR - ${DEF_INSTALL_CMAKEDIR} - CACHE PATH "directory for CMake files") - -set_property(DIRECTORY PROPERTY EP_BASE ${CMAKE_BINARY_DIR}/subs) - -set(STAGED_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/stage) -message(STATUS "${PROJECT_NAME} staged install: ${STAGED_INSTALL_PREFIX}") - -find_package(OpenSSL REQUIRED) -message("OpenSSL include dir: ${OPENSSL_INCLUDE_DIR}") -message("OpenSSL libraries: ${OPENSSL_LIBRARIES}") - -set(GRPC_GIT_TAG - "v1.45.2" - CACHE STRING "gRPC version") - -include(ExternalProject) -ExternalProject_Add( - grpc - GIT_REPOSITORY https://github.com/grpc/grpc.git - GIT_TAG ${GRPC_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} - -DgRPC_SSL_PROVIDER=package - -DOPENSSL_ROOT_DIR=OpenSSL - -DgRPC_BUILD_TESTS=OFF - -DBUILD_SHARED_LIBS=ON - -DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF - -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF - -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF - -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} - TEST_AFTER_INSTALL 0 - DOWNLOAD_NO_PROGRESS 1 - LOG_CONFIGURE 1 - LOG_BUILD 0 - LOG_INSTALL 1) - -install( - DIRECTORY ${STAGED_INSTALL_PREFIX}/ - DESTINATION . - USE_SOURCE_PERMISSIONS) diff --git a/docker/grpc/Dockerfile b/docker/grpc/Dockerfile deleted file mode 100644 index 2d88d209b6..0000000000 --- a/docker/grpc/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright The OpenTelemetry Authors -# SPDX-License-Identifier: Apache-2.0 - -ARG BASE_IMAGE=ubuntu:latest -FROM ${BASE_IMAGE} AS grpc - -ARG CORES=${nproc} -ARG GRPC_GIT_TAG=v1.45.2 - -RUN mkdir mkdir -p /opt/third_party/grpc - -WORKDIR /opt/third_party/grpc - -ADD CMakeLists.txt /opt/third_party/grpc - -RUN mkdir build \ - && cd build \ - && cmake -DCMAKE_INSTALL_PREFIX=/opt/third_party/install \ - -DGRPC_GIT_TAG=${GRPC_GIT_TAG} /opt/third_party/grpc \ - && cmake --build . -j ${CORES} --target install - -FROM scratch as final - -COPY --from=grpc /opt/third_party/install / diff --git a/docker/ubuntuLatest/Dockerfile b/docker/ubuntuLatest/Dockerfile deleted file mode 100644 index ef39e17f09..0000000000 --- a/docker/ubuntuLatest/Dockerfile +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright The OpenTelemetry Authors -# SPDX-License-Identifier: Apache-2.0 - -FROM ubuntu:latest@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 -ENV DEBIAN_FRONTEND=noninteractive - -WORKDIR /work - -#install grpc and abseil -ARG GRPC_VERSION=v1.38.0 -RUN apt-get update && apt-get install -y build-essential autoconf libtool pkg-config cmake git libssl-dev && \ - git clone --depth=1 -b $GRPC_VERSION https://github.com/grpc/grpc.git && \ - cd grpc && git submodule update --init && \ - mkdir -p "third_party/abseil-cpp/build" && cd "third_party/abseil-cpp/build" && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE .. && \ - make -j${nproc} install && cd ../../.. && \ - mkdir build && cd build && \ - cmake \ - -DCMAKE_BUILD_TYPE=Release \ - -DgRPC_INSTALL=ON \ - -DgRPC_BUILD_TESTS=OFF \ - -DgRPC_ABSL_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ - .. && \ - make -j${nproc} install && make clean && ldconfig && \ - cd ../.. - -#install opentelemetry-cpp -RUN apt-get install -y --no-install-recommends libcurl4-openssl-dev && git clone --depth=1 https://github.com/open-telemetry/opentelemetry-cpp.git && \ - cd opentelemetry-cpp && git submodule update --init && \ - mkdir -p build && cd build && \ - cmake \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \ - -DWITH_ZIPKIN=ON \ - -DBUILD_TESTING=OFF \ - -DWITH_OTLP_GRPC=ON \ - -DWITH_OTLP_HTTP=ON \ - .. && \ - make -j${nproc} install && ldconfig && \ - cd ../..