summaryrefslogtreecommitdiffstats
path: root/ci/lib/cacheable_install_functions.inc.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ci/lib/cacheable_install_functions.inc.sh')
-rw-r--r--ci/lib/cacheable_install_functions.inc.sh242
1 files changed, 0 insertions, 242 deletions
diff --git a/ci/lib/cacheable_install_functions.inc.sh b/ci/lib/cacheable_install_functions.inc.sh
deleted file mode 100644
index 6ef35bb..0000000
--- a/ci/lib/cacheable_install_functions.inc.sh
+++ /dev/null
@@ -1,242 +0,0 @@
-#!/usr/bin/env bash
-# shellcheck disable=SC1090
-# shellcheck disable=SC1091
-# shellcheck disable=SC2164
-#
-# All of the following functions install things into the
-# CACHE_DIR, so they could be safely skipped in case of a
-# cache hit. Conversely, these should not attempt to export
-# environment variables (unless for self consumption), nor
-# modify other system parts (again, unless for self
-# consumption), as these will not be available in case of
-# cache hits.
-
-install_botan() {
- # botan
- local botan_build=${LOCAL_BUILDS}/botan
- if [[ ! -e "${BOTAN_INSTALL}/lib/libbotan-2.so" ]] && \
- [[ ! -e "${BOTAN_INSTALL}/lib/libbotan-2.dylib" ]] && \
- [[ ! -e "${BOTAN_INSTALL}/lib/libbotan-2.a" ]]; then
-
- if [[ -d "${botan_build}" ]]; then
- rm -rf "${botan_build}"
- fi
-
- git clone --depth 1 --branch "${BOTAN_VERSION}" https://github.com/randombit/botan "${botan_build}"
- pushd "${botan_build}"
-
- local osparam=()
- local cpuparam=()
- local run=run
- # Position independent code is a default for shared libraries at any xNIX platform
- # but it makes no sense and is not supported for Windows
- local extra_cflags="-fPIC"
- case "${OS}" in
- linux)
- case "${DIST_VERSION}" in
- centos-8|centos-9|fedora-*|debian-*)
- run=run_in_python_venv
- ;;
- esac
- ;;
- esac
-
- [[ -z "$CPU" ]] || cpuparam=(--cpu="$CPU" --disable-cc-tests)
-
- local build_target="shared,cli"
- is_use_static_dependencies && build_target="static,cli"
-
- "${run}" ./configure.py --prefix="${BOTAN_INSTALL}" --with-debug-info --extra-cxxflags="-fno-omit-frame-pointer ${extra_cflags}" \
- ${osparam+"${osparam[@]}"} ${cpuparam+"${cpuparam[@]}"} --without-documentation --without-openssl --build-targets="${build_target}" \
- --minimized-build --enable-modules="$BOTAN_MODULES"
- ${MAKE} -j"${MAKE_PARALLEL}" install
- popd
- fi
-}
-
-# TODO:
-# /tmp/rnp-local-installs/jsonc-install/lib
-# | If you ever happen to want to link against installed libraries
-# | in a given directory, LIBDIR, you must either use libtool, and
-# | specify the full pathname of the library, or use the '-LLIBDIR'
-# | flag during linking and do at least one of the following:
-# | - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
-# | during execution
-# | - add LIBDIR to the 'LD_RUN_PATH' environment variable
-# | during linking
-# | - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
-# | - have your system administrator add LIBDIR to '/etc/ld.so.conf'
-install_jsonc() {
- local jsonc_build=${LOCAL_BUILDS}/json-c
- if [[ ! -e "${JSONC_INSTALL}/lib/libjson-c.so" ]] && \
- [[ ! -e "${JSONC_INSTALL}/lib/libjson-c.dylib" ]] && \
- [[ ! -e "${JSONC_INSTALL}/lib/libjson-c.a" ]]; then
-
- if [ -d "${jsonc_build}" ]; then
- rm -rf "${jsonc_build}"
- fi
-
- mkdir -p "${jsonc_build}"
- pushd "${jsonc_build}"
- wget https://s3.amazonaws.com/json-c_releases/releases/json-c-"${JSONC_VERSION}".tar.gz -O json-c.tar.gz
- tar xzf json-c.tar.gz --strip 1
-
- autoreconf -ivf
- local cpuparam=()
- [[ -z "$CPU" ]] || cpuparam=(--build="$CPU")
- local build_type_args=(
- "--enable-$(is_use_static_dependencies && echo 'static' || echo 'shared')"
- "--disable-$(is_use_static_dependencies && echo 'shared' || echo 'static')"
- )
- env CFLAGS="-fPIC -fno-omit-frame-pointer -Wno-implicit-fallthrough -g" ./configure ${cpuparam+"${cpuparam[@]}"} "${build_type_args[@]}" --prefix="${JSONC_INSTALL}"
- ${MAKE} -j"${MAKE_PARALLEL}" install
- popd
- fi
-}
-
-_install_gpg() {
- local VERSION_SWITCH=$1
- local NPTH_VERSION=$2
- local LIBGPG_ERROR_VERSION=$3
- local LIBGCRYPT_VERSION=$4
- local LIBASSUAN_VERSION=$5
- local LIBKSBA_VERSION=$6
- local PINENTRY_VERSION=$7
- local GNUPG_VERSION=$8
-
- local gpg_build="$PWD"
- # shellcheck disable=SC2153
- local gpg_install="${GPG_INSTALL}"
- mkdir -p "${gpg_build}" "${gpg_install}"
- git clone --depth 1 https://github.com/rnpgp/gpg-build-scripts
- pushd gpg-build-scripts
-
- local cpuparam=()
- [[ -z "$CPU" ]] || cpuparam=(--build="$CPU")
-
- # configure_opts="\
- # --prefix=${gpg_install} \
- # --with-libgpg-error-prefix=${gpg_install} \
- # --with-libassuan-prefix=${gpg_install} \
- # --with-libgcrypt-prefix=${gpg_install} \
- # --with-ksba-prefix=${gpg_install} \
- # --with-npth-prefix=${gpg_install} \
- # --disable-doc \
- # --extra-cflags=\"-O3 -fomit-frame-pointer\" \
- # --enable-pinentry-curses \
- # --disable-pinentry-emacs \
- # --disable-pinentry-gtk2 \
- # --disable-pinentry-gnome3 \
- # --disable-pinentry-qt \
- # --disable-pinentry-qt4 \
- # --disable-pinentry-qt5 \
- # --disable-pinentry-tqt \
- # --disable-pinentry-fltk \
- # --enable-maintainer-mode \
- # ${cpuparam+"${cpuparam[@]}"}"
-
- local configure_opts=(
- "--prefix=${gpg_install}"
- "--with-libgpg-error-prefix=${gpg_install}"
- "--with-libassuan-prefix=${gpg_install}"
- "--with-libgcrypt-prefix=${gpg_install}"
- "--with-ksba-prefix=${gpg_install}"
- "--with-npth-prefix=${gpg_install}"
- "--disable-doc"
- "--enable-pinentry-curses"
- "--disable-pinentry-emacs"
- "--disable-pinentry-gtk2"
- "--disable-pinentry-gnome3"
- "--disable-pinentry-qt"
- "--disable-pinentry-qt4"
- "--disable-pinentry-qt5"
- "--disable-pinentry-tqt"
- "--disable-pinentry-fltk"
- "--enable-maintainer-mode"
- "--enable-install-gpg-error-config"
- ${cpuparam+"${cpuparam[@]}"}
- )
-
- local common_args=(
- --force-autogen
-# --verbose commented out to speed up recurring CI builds
-# --trace uncomment if you are debugging CI
- --build-dir "${gpg_build}"
- --configure-opts "${configure_opts[*]}"
- )
-
- case "${OS}" in
- linux)
- if [[ "${DIST}" != "ubuntu" ]]; then
- common_args+=(--ldconfig)
- fi
- ;;
- esac
-
- # For "tee"-ing to /etc/ld.so.conf.d/gpg-from_build_scripts.conf from option `--ldconfig`
- if [[ "${SUDO}" = "sudo" && "${DIST}" != "ubuntu" ]]; then
- common_args+=(--sudo)
- fi
-
- # Workaround to correctly build pinentry on the latest GHA on macOS. Most likely there is a better solution.
- export CFLAGS="-D_XOPEN_SOURCE_EXTENDED"
- export CXXFLAGS="-D_XOPEN_SOURCE_EXTENDED"
-
- # Always build GnuPG with gcc, even if we are testing clang
- # ref https://github.com/rnpgp/rnp/issues/1669
- export CC="gcc"
- export CXX="g++"
-
- for component in libgpg-error:$LIBGPG_ERROR_VERSION \
- libgcrypt:$LIBGCRYPT_VERSION \
- libassuan:$LIBASSUAN_VERSION \
- libksba:$LIBKSBA_VERSION \
- npth:$NPTH_VERSION \
- pinentry:$PINENTRY_VERSION \
- gnupg:$GNUPG_VERSION; do
- local name="${component%:*}"
- local version="${component#*:}"
-
- ./install_gpg_component.sh \
- --component-name "$name" \
- --"$VERSION_SWITCH" "$version" \
- "${common_args[@]}"
- done
- popd
-}
-
-
-install_gpg() {
- local gpg_build=${LOCAL_BUILDS}/gpg
-
- # shellcheck disable=SC2153
- if [[ ! -e "${GPG_INSTALL}/bin/gpg" ]]; then
- mkdir -p "${gpg_build}"
- pushd "${gpg_build}"
-
- # shellcheck disable=SC2153
- case "${GPG_VERSION}" in
- stable)
- # npth libgpg-error libgcrypt libassuan libksba pinentry gnupg
- _install_gpg component-version 1.6 1.46 1.10.1 2.5.5 1.6.3 1.2.1 2.4.0
- ;;
- lts)
- # npth libgpg-error libgcrypt libassuan libksba pinentry gnupg
- _install_gpg component-version 1.6 1.46 1.8.10 2.5.5 1.6.3 1.2.1 2.2.41
- ;;
- beta)
- # npth libgpg-error libgcrypt libassuan libksba pinentry gnupg
- _install_gpg component-git-ref 2501a48 f73605e d9c4183 909133b 3df0cd3 0e2e53c c6702d7
- # _install_gpg component-git-ref 7e45b50 c66594d cf88dca 57cf9d6 4243085 6e8ad31 d4e5979
- ;;
- "2.3.1")
- # npth libgpg-error libgcrypt libassuan libksba pinentry gnupg
- _install_gpg component-version 1.6 1.42 1.9.3 2.5.5 1.6.0 1.1.1 2.3.1
- ;;
- *)
- >&2 echo "\$GPG_VERSION is set to invalid value: ${GPG_VERSION}"
- exit 1
- esac
- popd
- fi
-}