50-curl.install.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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 cURL" || true
  9. if [ -d "${NETDATA_MAKESELF_PATH}/tmp/curl" ]; then
  10. rm -rf "${NETDATA_MAKESELF_PATH}/tmp/curl"
  11. fi
  12. cache="${NETDATA_SOURCE_PATH}/artifacts/cache/${BUILDARCH}/curl"
  13. if [ -d "${cache}" ]; then
  14. echo "Found cached copy of build directory for curl, using it."
  15. cp -a "${cache}/curl" "${NETDATA_MAKESELF_PATH}/tmp/"
  16. CACHE_HIT=1
  17. else
  18. echo "No cached copy of build directory for curl found, fetching sources instead."
  19. run git clone --branch "${CURL_VERSION}" --single-branch --depth 1 "${CURL_SOURCE}" "${NETDATA_MAKESELF_PATH}/tmp/curl"
  20. CACHE_HIT=0
  21. fi
  22. cd "${NETDATA_MAKESELF_PATH}/tmp/curl" || exit 1
  23. export CFLAGS="${TUNING_FLAGS} -I/openssl-static/include -pipe"
  24. export CXXFLAGS="${CFLAGS}"
  25. export LDFLAGS="-static -L/openssl-static/lib64"
  26. export PKG_CONFIG="pkg-config --static"
  27. export PKG_CONFIG_PATH="/openssl-static/lib64/pkgconfig"
  28. if [ "${CACHE_HIT:-0}" -eq 0 ]; then
  29. run autoreconf -fi
  30. run ./configure \
  31. --prefix="/curl-local" \
  32. --enable-optimize \
  33. --disable-shared \
  34. --enable-static \
  35. --enable-http \
  36. --disable-ldap \
  37. --disable-ldaps \
  38. --enable-proxy \
  39. --disable-dict \
  40. --disable-telnet \
  41. --disable-tftp \
  42. --disable-pop3 \
  43. --disable-imap \
  44. --disable-smb \
  45. --disable-smtp \
  46. --disable-gopher \
  47. --enable-ipv6 \
  48. --enable-cookies \
  49. --with-ca-fallback \
  50. --with-openssl \
  51. --with-ca-bundle=/opt/netdata/etc/ssl/certs/ca-certificates.crt \
  52. --with-ca-path=/opt/netdata/etc/ssl/certs \
  53. --disable-dependency-tracking
  54. # Curl autoconf does not honour the curl_LDFLAGS environment variable
  55. run sed -i -e "s/LDFLAGS =/LDFLAGS = -all-static/" src/Makefile
  56. run make clean
  57. run make -j "$(nproc)"
  58. fi
  59. run make install
  60. store_cache curl "${NETDATA_MAKESELF_PATH}/tmp/curl"
  61. cp /curl-local/bin/curl "${NETDATA_INSTALL_PATH}"/bin/curl
  62. if [ "${NETDATA_BUILD_WITH_DEBUG}" -eq 0 ]; then
  63. run strip "${NETDATA_INSTALL_PATH}"/bin/curl
  64. fi
  65. # shellcheck disable=SC2015
  66. [ "${GITHUB_ACTIONS}" = "true" ] && echo "::group::Preparing build environment" || true