Blame ci/install_dependencies.sh

Packit 01d647
#!/bin/sh -e
Packit 01d647
Packit 01d647
# Debian & derivatives don't provide binary packages of googletest
Packit 01d647
# => have to build them ourselves
Packit 01d647
#
Packit 01d647
# This script builds a shared library of googletest (not googlemock!) inside
Packit 01d647
# gtest_build and copies it to /usr/lib/
Packit 01d647
debian_build_gtest() {
Packit 01d647
    [ -d gtest_build ] || mkdir gtest_build
Packit 01d647
    cd gtest_build
Packit 01d647
    cmake -DBUILD_SHARED_LIBS=1 /usr/src/googletest/googletest
Packit 01d647
    make
Packit 01d647
    cp libgtest* /usr/lib/
Packit 01d647
    cd ..
Packit 01d647
}
Packit 01d647
Packit 01d647
# workaround for really bare-bones Archlinux containers:
Packit 01d647
if [ -x "$(command -v pacman)" ]; then
Packit 01d647
    pacman --noconfirm -Sy
Packit 01d647
    pacman --noconfirm -S grep gawk sed
Packit 01d647
fi
Packit 01d647
Packit 01d647
distro_id=$(grep '^ID=' /etc/os-release|awk -F = '{print $2}'|sed 's/\"//g')
Packit 01d647
Packit 01d647
case "$distro_id" in
Packit 01d647
    'fedora')
Packit 01d647
        dnf -y --refresh install gcc-c++ clang cmake make ccache expat-devel zlib-devel libssh-devel libcurl-devel gtest-devel which dos2unix
Packit 01d647
        ;;
Packit 01d647
Packit 01d647
    'debian')
Packit 01d647
        apt-get update
Packit 01d647
        apt-get install -y cmake g++ clang make ccache python3 libexpat1-dev zlib1g-dev libssh-dev libcurl4-openssl-dev libgtest-dev libxml2-utils
Packit 01d647
        debian_build_gtest
Packit 01d647
        ;;
Packit 01d647
Packit 01d647
    'arch')
Packit 01d647
        pacman --noconfirm -Syu
Packit 01d647
        pacman --noconfirm -S gcc clang cmake make ccache expat zlib libssh curl gtest python dos2unix which diffutils
Packit 01d647
        ;;
Packit 01d647
Packit 01d647
    'ubuntu')
Packit 01d647
        apt-get update
Packit 01d647
        apt-get install -y cmake g++ clang make ccache python3 libexpat1-dev zlib1g-dev libssh-dev libcurl4-openssl-dev libgtest-dev google-mock libxml2-utils
Packit 01d647
        debian_build_gtest
Packit 01d647
        ;;
Packit 01d647
Packit 01d647
    'centos'|'rhel')
Packit 01d647
        yum -y install epel-release
Packit 01d647
        # enable copr for gtest
Packit 01d647
        curl https://copr.fedorainfracloud.org/coprs/defolos/devel/repo/epel-7/defolos-devel-epel-7.repo > /etc/yum.repos.d/_copr_defolos-devel.repo
Packit 01d647
        yum clean all
Packit 01d647
        yum -y install gcc-c++ clang cmake3 make ccache expat-devel zlib-devel libssh-devel libcurl-devel gtest-devel which python36 dos2unix
Packit 01d647
        # symlink up to date versions of python & cmake to 'default' names
Packit 01d647
        if [ ! -e /usr/bin/python3 ]; then
Packit 01d647
            ln -s /usr/bin/python36 /usr/bin/python3
Packit 01d647
        elif [ -L /usr/bin/python3 ]; then
Packit 01d647
            rm /usr/bin/python3
Packit 01d647
            ln -s /usr/bin/python36 /usr/bin/python3
Packit 01d647
        fi
Packit 01d647
        mv /bin/cmake /bin/.cmake.old
Packit 01d647
        ln -s /bin/cmake3 /bin/cmake
Packit 01d647
        ;;
Packit 01d647
Packit 01d647
    'opensuse'|'opensuse-tumbleweed')
Packit 01d647
        zypper --non-interactive refresh
Packit 01d647
        zypper --non-interactive install gcc-c++ clang cmake make ccache libexpat-devel zlib-devel libssh-devel libcurl-devel gtest which dos2unix libxml2-tools
Packit 01d647
        ;;
Packit 01d647
    *)
Packit 01d647
        echo "Sorry, no predefined dependencies for your distribution $distro_id exist yet"
Packit 01d647
        exit 1
Packit 01d647
        ;;
Packit 01d647
esac