20-openssl.install.sh 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/usr/bin/env bash
  2. # SPDX-License-Identifier: GPL-3.0-or-later
  3. # shellcheck source=packaging/makeself/functions.sh
  4. . "$(dirname "${0}")/../functions.sh" "${@}" || exit 1
  5. # Source of truth for all the packages we bundle in static builds
  6. . "$(dirname "${0}")/../bundled-packages.version"
  7. # shellcheck disable=SC2015
  8. [ "${GITHUB_ACTIONS}" = "true" ] && echo "::group::Building OpenSSL" || true
  9. export CFLAGS="${TUNING_FLAGS} -fno-lto -pipe"
  10. export CXXFLAGS="${CFLAGS}"
  11. export LDFLAGS="-static"
  12. export PKG_CONFIG="pkg-config --static"
  13. if [ -d "${NETDATA_MAKESELF_PATH}/tmp/openssl" ]; then
  14. rm -rf "${NETDATA_MAKESELF_PATH}/tmp/openssl"
  15. fi
  16. if [ -d "${NETDATA_MAKESELF_PATH}/tmp/openssl" ]; then
  17. rm -rf "${NETDATA_MAKESELF_PATH}/tmp/openssl"
  18. fi
  19. cache="${NETDATA_SOURCE_PATH}/artifacts/cache/${BUILDARCH}/openssl"
  20. if [ -d "${cache}" ]; then
  21. echo "Found cached copy of build directory for openssl, using it."
  22. cp -a "${cache}/openssl" "${NETDATA_MAKESELF_PATH}/tmp/"
  23. CACHE_HIT=1
  24. else
  25. echo "No cached copy of build directory for openssl found, fetching sources instead."
  26. run git clone --branch "${OPENSSL_VERSION}" --single-branch --depth 1 "${OPENSSL_SOURCE}" "${NETDATA_MAKESELF_PATH}/tmp/openssl"
  27. CACHE_HIT=0
  28. fi
  29. cd "${NETDATA_MAKESELF_PATH}/tmp/openssl" || exit 1
  30. if [ "${CACHE_HIT:-0}" -eq 0 ]; then
  31. COMMON_CONFIG="-static threads no-tests --prefix=/openssl-static --openssldir=/opt/netdata/etc/ssl"
  32. sed -i "s/disable('static', 'pic', 'threads');/disable('static', 'pic');/" Configure
  33. # shellcheck disable=SC2086
  34. case "${BUILDARCH}" in
  35. armv6l|armv7l) run ./config ${COMMON_CONFIG} linux-armv4 ;;
  36. *) run ./config ${COMMON_CONFIG} ;;
  37. esac
  38. run make -j "$(nproc)"
  39. fi
  40. run make -j "$(nproc)" install_sw
  41. if [ -d "/openssl-static/lib" ]; then
  42. cd "/openssl-static" || exit 1
  43. ln -s "lib" "lib64" || true
  44. cd - || exit 1
  45. fi
  46. store_cache openssl "${NETDATA_MAKESELF_PATH}/tmp/openssl"
  47. perl configdata.pm --dump
  48. # shellcheck disable=SC2015
  49. [ "${GITHUB_ACTIONS}" = "true" ] && echo "::endgroup::" || true