Browse Source

add cache support to install.sh

master
fivepiece 8 years ago
parent
commit
974b5ae639
  1. 72
      install.sh

72
install.sh

@ -17,10 +17,12 @@ gpg_verify_sig ()
sha256_verify () sha256_verify ()
{ {
if [ "$(uname)" == "Darwin" ]; then if [[ "$(uname)" == "Darwin" ]]; then
shasum -a 256 -c <<<"$1 $2" shasum -a 256 -c <<<"$1 $2"
return "$?"
else else
sha256sum -c <<<"$1 $2" sha256sum -c <<<"$1 $2"
return "$?"
fi fi
} }
@ -61,7 +63,7 @@ deb_deps_install ()
check_skip_build () check_skip_build ()
{ {
if ! mkdir "$1"; then if [[ ${reinstall} == false ]] && [[ -d "$1" ]]; then
read -p "Directory ${1} exists. Remove and recreate? (y/n) " q read -p "Directory ${1} exists. Remove and recreate? (y/n) " q
if [[ "${q}" =~ Y|y ]]; then if [[ "${q}" =~ Y|y ]]; then
rm -rf "./${1}" rm -rf "./${1}"
@ -79,8 +81,9 @@ venv_setup ()
{ {
if check_skip_build 'jmvenv'; then if check_skip_build 'jmvenv'; then
return 0 return 0
else
reinstall='true'
fi fi
rm -rf "${jm_source}/deps"
virtualenv -p python2 "${jm_source}/jmvenv" || return 1 virtualenv -p python2 "${jm_source}/jmvenv" || return 1
source "${jm_source}/jmvenv/bin/activate" || return 1 source "${jm_source}/jmvenv/bin/activate" || return 1
pip install --upgrade pip pip install --upgrade pip
@ -91,10 +94,10 @@ venv_setup ()
openssl_get () openssl_get ()
{ {
if [[ -z "${no_gpg_validation}" ]]; then if [[ -z "${no_gpg_validation}" ]]; then
openssl_file=( "${openssl_lib_tar}" "${openssl_lib_sha}" "${openssl_lib_sig}" ) openssl_files=( "${openssl_lib_tar}" "${openssl_lib_sig}" )
curl --retry 5 -L "${openssl_signer_key_url}" -o openssl_signer.key curl --retry 5 -L "${openssl_signer_key_url}" -o openssl_signer.key
else else
openssl_file=( "${openssl_lib_tar}" ) openssl_files=( "${openssl_lib_tar}" )
fi fi
for file in ${openssl_files[@]}; do for file in ${openssl_files[@]}; do
curl --retry 5 -L -O "${openssl_url}/${file}" curl --retry 5 -L -O "${openssl_url}/${file}"
@ -122,19 +125,20 @@ openssl_install ()
{ {
openssl_version='openssl-1.0.2l' openssl_version='openssl-1.0.2l'
openssl_lib_tar="${openssl_version}.tar.gz" openssl_lib_tar="${openssl_version}.tar.gz"
openssl_lib_sha="${openssl_lib_tar}.sha256" openssl_lib_sha='ce07195b659e75f4e1db43552860070061f156a98bb37b672b101ba6e3ddf30c'
openssl_lib_sig="${openssl_lib_tar}.asc" openssl_lib_sig="${openssl_lib_tar}.asc"
openssl_url='https://www.openssl.org/source' openssl_url='https://www.openssl.org/source'
openssl_signer_key_url='https://pgp.mit.edu/pks/lookup?op=get&search=0xD9C4D26D0E604491'
openssl_signer_key_id='D9C4D26D0E604491' openssl_signer_key_id='D9C4D26D0E604491'
openssl_root="${jm_deps}/openssl" openssl_signer_key_url="https://pgp.mit.edu/pks/lookup?op=get&search=0x${openssl_signer_key_id}"
if check_skip_build 'openssl'; then if check_skip_build "${openssl_version}"; then
return 0 return 0
fi fi
pushd openssl pushd cache
if ! sha256_verify "${openssl_lib_sha}" "${openssl_lib_tar}"; then
openssl_get openssl_get
if ! sha256_verify "${openssl_lib_tar}" "${openssl_lib_sha}"; then fi
if ! sha256_verify "${openssl_lib_sha}" "${openssl_lib_tar}"; then
return 1 return 1
fi fi
if [[ -z "${no_gpg_validation}" ]]; then if [[ -z "${no_gpg_validation}" ]]; then
@ -144,13 +148,14 @@ openssl_install ()
return 1 return 1
fi fi
if gpg_verify_sig "${openssl_lib_sig}"; then if gpg_verify_sig "${openssl_lib_sig}"; then
tar -xzf "${openssl_lib_tar}" tar -xzf "${openssl_lib_tar}" -C ../
else else
return 1 return 1
fi fi
else else
tar -xzf "${openssl_lib_tar}" tar -xzf "${openssl_lib_tar}" -C ../
fi fi
popd
pushd "${openssl_version}" pushd "${openssl_version}"
if openssl_build; then if openssl_build; then
make install_sw make install_sw
@ -158,7 +163,6 @@ openssl_install ()
return 1 return 1
fi fi
popd popd
popd
} }
# add '--disable-docs' to libffi ./configure so makeinfo isn't needed # add '--disable-docs' to libffi ./configure so makeinfo isn't needed
@ -173,6 +177,15 @@ libffi_patch_disable_docs ()
> if BUILD_DOCS > if BUILD_DOCS
> #info_TEXINFOS += doc/libffi.texi > #info_TEXINFOS += doc/libffi.texi
> endif > endif
EOF
# autogen.sh is not happy when run from some directories, causing it
# to create an ltmain.sh file in our ${jm_root} directory. weird.
# https://github.com/meetecho/janus-gateway/issues/290#issuecomment-125160739
# https://github.com/meetecho/janus-gateway/commit/ac38cfdae7185f9061569b14809af4d4052da700
cat <<'EOF' > autoreconf.patch
18a19
> AC_CONFIG_AUX_DIR([.])
EOF EOF
cat <<'EOF' > configure.ac.patch cat <<'EOF' > configure.ac.patch
@ -186,6 +199,7 @@ EOF
> >
EOF EOF
patch Makefile.am Makefile.am.patch patch Makefile.am Makefile.am.patch
patch configure.ac autoreconf.patch
patch configure.ac configure.ac.patch patch configure.ac configure.ac.patch
} }
@ -207,16 +221,19 @@ libffi_install ()
libffi_lib_sha='96d08dee6f262beea1a18ac9a3801f64018dc4521895e9198d029d6850febe23' libffi_lib_sha='96d08dee6f262beea1a18ac9a3801f64018dc4521895e9198d029d6850febe23'
libffi_url="https://github.com/libffi/libffi/archive" libffi_url="https://github.com/libffi/libffi/archive"
if check_skip_build 'libffi'; then if check_skip_build "${libffi_version}"; then
return 0 return 0
fi fi
pushd libffi pushd cache
if ! sha256_verify "${libffi_lib_sha}" "${libffi_lib_tar}"; then
curl --retry 5 -L -O "${libffi_url}/${libffi_lib_tar}" curl --retry 5 -L -O "${libffi_url}/${libffi_lib_tar}"
fi
if sha256_verify "${libffi_lib_sha}" "${libffi_lib_tar}"; then if sha256_verify "${libffi_lib_sha}" "${libffi_lib_tar}"; then
tar -xzf "${libffi_lib_tar}" tar -xzf "${libffi_lib_tar}" -C ../
else else
return 1 return 1
fi fi
popd
pushd "${libffi_version}" pushd "${libffi_version}"
if ! libffi_patch_disable_docs; then if ! libffi_patch_disable_docs; then
return 1 return 1
@ -227,7 +244,6 @@ libffi_install ()
return 1 return 1
fi fi
popd popd
popd
} }
libsodium_get () libsodium_get ()
@ -259,15 +275,21 @@ libsodium_install ()
sodium_version='libsodium-1.0.13' sodium_version='libsodium-1.0.13'
sodium_lib_tar="${sodium_version}.tar.gz" sodium_lib_tar="${sodium_version}.tar.gz"
sodium_lib_sig="${sodium_lib_tar}.sig" sodium_lib_sig="${sodium_lib_tar}.sig"
sodium_lib_sha='9c13accb1a9e59ab3affde0e60ef9a2149ed4d6e8f99c93c7a5b97499ee323fd'
sodium_url='https://download.libsodium.org/libsodium/releases' sodium_url='https://download.libsodium.org/libsodium/releases'
sodium_signer_key_url='https://pgp.mit.edu/pks/lookup?op=get&search=0x210627AABA709FE1' sodium_signer_key_url='https://pgp.mit.edu/pks/lookup?op=get&search=0x210627AABA709FE1'
sodium_signer_key_id='62F25B592B6F76DA' sodium_signer_key_id='62F25B592B6F76DA'
if check_skip_build 'libsodium'; then if check_skip_build "${sodium_version}"; then
return 0 return 0
fi fi
pushd libsodium pushd cache
if ! sha256_verify "${sodium_lib_sha}" "${sodium_lib_tar}"; then
libsodium_get libsodium_get
fi
if ! sha256_verify "${sodium_lib_sha}" "${sodium_lib_tar}"; then
return 1
fi
if [[ -z "${no_gpg_validation}" ]]; then if [[ -z "${no_gpg_validation}" ]]; then
if gpg_verify_key libsodium_signer.key "${sodium_signer_key_id}"; then if gpg_verify_key libsodium_signer.key "${sodium_signer_key_id}"; then
gpg_add_to_keyring libsodium_signer.key gpg_add_to_keyring libsodium_signer.key
@ -275,13 +297,14 @@ libsodium_install ()
return 1 return 1
fi fi
if gpg_verify_sig "${sodium_lib_sig}"; then if gpg_verify_sig "${sodium_lib_sig}"; then
tar -xzf "${sodium_lib_tar}" tar -xzf "${sodium_lib_tar}" -C ../
else else
return 1 return 1
fi fi
else else
tar -xzf "${sodium_lib_tar}" tar -xzf "${sodium_lib_tar}" -C ../
fi fi
popd
pushd "${sodium_version}" pushd "${sodium_version}"
if libsodium_build; then if libsodium_build; then
make install make install
@ -289,7 +312,6 @@ libsodium_install ()
return 1 return 1
fi fi
popd popd
popd
} }
joinmarket_install () joinmarket_install ()
@ -383,6 +405,7 @@ main ()
# flags # flags
develop_build='' develop_build=''
no_gpg_validation='' no_gpg_validation=''
reinstall='false'
parse_flags ${@} parse_flags ${@}
# os check # os check
@ -397,9 +420,8 @@ main ()
return 1 return 1
fi fi
source "${jm_root}/bin/activate" source "${jm_root}/bin/activate"
mkdir -p deps mkdir -p "deps/cache"
pushd deps pushd deps
rm -f ./keyring.gpg
# openssl build disabled. using OS package manager's version. # openssl build disabled. using OS package manager's version.
# if ! openssl_install; then # if ! openssl_install; then
# echo "Openssl was not built. Exiting." # echo "Openssl was not built. Exiting."

Loading…
Cancel
Save