1#!/bin/bash 2# Helper utilities for build 3# Script used only in CD pipeline 4 5OPENSSL_DOWNLOAD_URL=https://www.openssl.org/source/old/1.1.1/ 6CURL_DOWNLOAD_URL=https://curl.askapache.com/download 7 8AUTOCONF_DOWNLOAD_URL=https://ftp.gnu.org/gnu/autoconf 9 10 11function check_var { 12 if [ -z "$1" ]; then 13 echo "required variable not defined" 14 exit 1 15 fi 16} 17 18 19function do_openssl_build { 20 ./config no-ssl2 no-shared -fPIC --prefix=/usr/local/ssl > /dev/null 21 make > /dev/null 22 make install > /dev/null 23} 24 25 26function check_sha256sum { 27 local fname=$1 28 check_var ${fname} 29 local sha256=$2 30 check_var ${sha256} 31 32 echo "${sha256} ${fname}" > ${fname}.sha256 33 sha256sum -c ${fname}.sha256 34 rm -f ${fname}.sha256 35} 36 37 38function build_openssl { 39 local openssl_fname=$1 40 check_var ${openssl_fname} 41 local openssl_sha256=$2 42 check_var ${openssl_sha256} 43 check_var ${OPENSSL_DOWNLOAD_URL} 44 curl -sLO ${OPENSSL_DOWNLOAD_URL}/${openssl_fname}.tar.gz 45 check_sha256sum ${openssl_fname}.tar.gz ${openssl_sha256} 46 tar -xzf ${openssl_fname}.tar.gz 47 (cd ${openssl_fname} && do_openssl_build) 48 rm -rf ${openssl_fname} ${openssl_fname}.tar.gz 49} 50 51 52function do_curl_build { 53 LIBS=-ldl ./configure --with-ssl --disable-shared > /dev/null 54 make > /dev/null 55 make install > /dev/null 56} 57 58 59function build_curl { 60 local curl_fname=$1 61 check_var ${curl_fname} 62 local curl_sha256=$2 63 check_var ${curl_sha256} 64 check_var ${CURL_DOWNLOAD_URL} 65 curl -sLO ${CURL_DOWNLOAD_URL}/${curl_fname}.tar.bz2 66 check_sha256sum ${curl_fname}.tar.bz2 ${curl_sha256} 67 tar -jxf ${curl_fname}.tar.bz2 68 (cd ${curl_fname} && do_curl_build) 69 rm -rf ${curl_fname} ${curl_fname}.tar.bz2 70} 71 72 73function do_standard_install { 74 ./configure > /dev/null 75 make > /dev/null 76 make install > /dev/null 77} 78 79 80function build_autoconf { 81 local autoconf_fname=$1 82 check_var ${autoconf_fname} 83 local autoconf_sha256=$2 84 check_var ${autoconf_sha256} 85 check_var ${AUTOCONF_DOWNLOAD_URL} 86 curl -sLO ${AUTOCONF_DOWNLOAD_URL}/${autoconf_fname}.tar.gz 87 check_sha256sum ${autoconf_fname}.tar.gz ${autoconf_sha256} 88 tar -zxf ${autoconf_fname}.tar.gz 89 (cd ${autoconf_fname} && do_standard_install) 90 rm -rf ${autoconf_fname} ${autoconf_fname}.tar.gz 91} 92