50-curl.install.sh 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. --disable-dependency-tracking
  52. # Curl autoconf does not honour the curl_LDFLAGS environment variable
  53. run sed -i -e "s/LDFLAGS =/LDFLAGS = -all-static/" src/Makefile
  54. run make clean
  55. run make -j "$(nproc)"
  56. fi
  57. run make install
  58. store_cache curl "${NETDATA_MAKESELF_PATH}/tmp/curl"
  59. cp /curl-local/bin/curl "${NETDATA_INSTALL_PATH}"/bin/curl
  60. if [ "${NETDATA_BUILD_WITH_DEBUG}" -eq 0 ]; then
  61. run strip "${NETDATA_INSTALL_PATH}"/bin/curl
  62. fi
  63. # shellcheck disable=SC2015
  64. [ "${GITHUB_ACTIONS}" = "true" ] && echo "::group::Preparing build environment" || true