Files
openssh-portable/.github/install_libcrypto.sh
T

76 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
#
# Install specified libcrypto.
# -a : install version for ABI compatibility test.
# -n : dry run, don't actually build and install.
#
# Usage: $0 [-a] [-n] openssl-$branch/tag destdir [config options]
set -e
bincompat_test=""
dryrun=""
while [ "$1" = "-a" ] || [ "$1" = "-n" ]; do
if [ "$1" = "-a" ]; then
abi_compat_test=y
elif [ "$1" = "-n" ]; then
dryrun="echo dryrun:"
fi
shift
done
ver="$1"
destdir="$2"
opts="$3"
if [ -z "${ver}" ] || [ -z "${destdir}" ]; then
echo tag/branch and destdir required
exit 1
fi
set -x
if [ ! -d ${HOME}/openssl ]; then
cd ${HOME}
git clone https://github.com/openssl/openssl.git
cd ${HOME}/openssl
git fetch --all
fi
cd ${HOME}/openssl
if [ "${abi_compat_test}" = "y" ]; then
echo selecting ABI test release/branch for ${ver}
case "${ver}" in
openssl-3.6)
ver=openssl-3.0.0
echo "selecting older release ${ver}"
;;
openssl-3.[012345])
major=$(echo ${ver} | cut -f1 -d.)
minor=$(echo ${ver} | cut -f2 -d.)
ver="${major}.$((${minor} + 1))"
echo selecting next release branch ${ver}
;;
openssl-[34].*.*)
major=$(echo ${ver} | cut -f1 -d.)
minor=$(echo ${ver} | cut -f2 -d.)
patch=$(echo ${ver} | cut -f3 -d.)
ver="${major}.${minor}.$((${patch} + 1))"
echo checking for release tag ${ver}
if git tag | grep -q "^${ver}\$"; then
echo selected next patch release ${ver}
else
ver="${major}.${minor}"
echo not found, selecting release branch ${ver}
fi
;;
esac
fi
git checkout ${ver}
make clean >/dev/null 2>&1 || true
${dryrun} ./config no-threads shared ${opts} --prefix=${destdir} \
-Wl,-rpath,${destdir}/lib64
${dryrun} make -j4
${dryrun} sudo make install_sw