X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=packer%2Fprovision%2Fbasebuild.sh;h=0d1f5e0495cc37e90879439ed9e00eb53039c158;hb=fad86bdcd603ad8143893311643c26c5e570da5c;hp=5e122dcabe8c5d556991e8fd11ddb36da5edc601;hpb=835a2e18543aadf9a916cca387f897bc138ea5e0;p=ci-management.git diff --git a/packer/provision/basebuild.sh b/packer/provision/basebuild.sh index 5e122dcab..0d1f5e049 100644 --- a/packer/provision/basebuild.sh +++ b/packer/provision/basebuild.sh @@ -7,7 +7,7 @@ rh_systems() { # RH Install build tools echo "---> Installing RH build tools $(date +'%Y%m%dT%H%M%S')" RH_TOOLS_PKGS="@development redhat-lsb glibc-static \ - java-1.8.0-openjdk-devel yum-utils openssl-devel apr-devel indent rpm" + java-1.8.0-openjdk-devel yum-utils openssl-devel apr-devel indent rpm" yum install -y ${RH_TOOLS_PKGS} # Memory leakage checks @@ -16,13 +16,17 @@ rh_systems() { # RH Install Python dependencies ###REMOVED mysql-devel echo "---> Installing RH Python dependencies $(date +'%Y%m%dT%H%M%S')" - RH_PYTHON_PKGS="python-devel python-virtualenv python-setuptools python-pip kernel-devel" + RH_PYTHON_PKGS="python-devel python-virtualenv python-setuptools \ + python-pip kernel-devel epel-rpm-macros" + pip install --upgrade pip yum install -y ${RH_PYTHON_PKGS} + pip install pypcap # RH Install Documentation packages ###Removed python-pyparsing echo "---> Installing RH documentation packages $(date +'%Y%m%dT%H%M%S')" - RH_DOC_PKGS="doxygen graphviz python-jinja2 asciidoc dblatex source-highlight python-sphinx" + RH_DOC_PKGS="doxygen graphviz python-jinja2 asciidoc \ + dblatex source-highlight python-sphinx libxml2 libffi-devel python-cffi" yum install -y install ${RH_DOC_PKGS} # RH Install GCC packages @@ -40,12 +44,13 @@ rh_systems() { # RH Install VPP packages to shorten build times echo "---> Installing VPP dependencies $(date +'%Y%m%dT%H%M%S')" - RH_VPP_PKGS="curl autoconf automake bison ccache dkms git libtool libconfuse-dev git-review cscope" + RH_VPP_PKGS="curl autoconf automake bison ccache dkms git libtool \ + libconfuse-dev git-review cscope" yum install -y ${RH_VPP_PKGS} yum groupinstall "Development Tools" # RH Install TLDK dependencies - RH_TLKD_PKGS="libpcap-devel libcap-devel" + RH_TLKD_PKGS="libpcap-devel libcap-devel scapy" yum install -y ${RH_TLKD_PKGS} # RH Install Puppet packages @@ -100,12 +105,15 @@ ubuntu_systems() { # DEB cloud packages echo "---> Installing cloud packages $(date +'%Y%m%dT%H%M%S')" - CLOUD_PKGS="cloud-initramfs-dyn-netconf cloud-initramfs-growroot cloud-initramfs-rescuevol" + CLOUD_PKGS="cloud-initramfs-dyn-netconf cloud-initramfs-growroot \ + cloud-initramfs-rescuevol" apt install -y ${CLOUD_PKGS} # DEB Install Python dependencies echo "---> Installing Python dependencies $(date +'%Y%m%dT%H%M%S')" - PYTHON_PKGS="python-dev python-virtualenv python-setuptools python-pip libssl-dev libmysqlclient-dev python2.7" + PYTHON_PKGS="python-all python-dev python-virtualenv python-setuptools \ + python-pip libssl-dev libmysqlclient-dev python2.7 libffi-dev \ + python-cffi" apt install -y ${PYTHON_PKGS} # Memory leakage checks @@ -113,7 +121,8 @@ ubuntu_systems() { # DEB Install Documentation packages echo "---> Installing documentation packages $(date +'%Y%m%dT%H%M%S')" - DOC_PKGS="doxygen graphviz python-pyparsing python-jinja2 asciidoc dblatex source-highlight" + DOC_PKGS="doxygen graphviz python-pyparsing python-jinja2 asciidoc \ + dblatex source-highlight" apt install -y ${DOC_PKGS} # DEB Install the correct version of toolchain packages @@ -133,8 +142,8 @@ ubuntu_systems() { # DEB Install VPP packages to shorten build times echo "---> Installing VPP DEB_DEPENDS packages $(date +'%Y%m%dT%H%M%S')" VPP_PKGS="curl build-essential autoconf automake bison libssl-dev ccache \ - debhelper dkms git libtool libganglia1-dev libapr1-dev dh-systemd \ - libconfuse-dev git-review exuberant-ctags cscope indent pkg-config emacs" + dkms git libtool libganglia1-dev libapr1-dev dh-systemd \ + libconfuse-dev git-review exuberant-ctags cscope indent pkg-config emacs" apt install -y ${VPP_PKGS} # DEB Install CSIT packages @@ -149,12 +158,17 @@ ubuntu_systems() { # DEB Install deb_dpdk packages to shorten build times ###REMOVED sphinx-rtd-theme echo "---> Installing deb_dpdk packages $(date +'%Y%m%dT%H%M%S')" - DEB_DPDK_PKGS="google-mock lsb-release dpkg-dev debian-xcontrol devscripts pristine-tar dh-python python-sphinx libpcap0.8-dev libstdc++5 python-scapy inkscape libxen-dev libxenstore3.0 python-sphinx-rtd-theme" + DEB_DPDK_PKGS="google-mock lsb-release dpkg-dev debian-xcontrol devscripts \ + pristine-tar dh-python python-sphinx libpcap0.8-dev libstdc++5 \ + python-scapy inkscape libxen-dev libxenstore3.0 python-sphinx-rtd-theme \ + python3 python3-sphinx python3-sphinx-rtd-theme libnuma-dev" apt install -y ${DEB_DPDK_PKGS} sudo apt install -y libcap-dev libpcap-dev - TEXLIVE_PKGS="texlive-fonts-recommended tex-common texlive-base texlive-binaries texlive-pictures texlive-latex-recommended preview-latex-style texlive-latex-extra" + TEXLIVE_PKGS="texlive-fonts-recommended tex-common texlive-base \ + texlive-binaries texlive-pictures texlive-latex-recommended \ + preview-latex-style texlive-latex-extra" apt install -y ${TEXLIVE_PKGS} echo "<--- Installing deb_dpdk packages $(date +'%Y%m%dT%H%M%S')" @@ -169,6 +183,82 @@ ubuntu_systems() { echo "<--- Forcing CA certificate update $(date +'%Y%m%dT%H%M%S')" } +opensuse_systems() { + + # Creating a function to install packages. openSUSE doesn't read the + # packages variables as expected. + function install_pkgs () + { + for pkgs in $@; do + zypper -n install "$pkgs" + done + } + + # Update to latest available packages and security bug-fixes + zypper update -y + + # Replacing cloud.cfg, it's not supported by cloud-init + cp /etc/cloud/cloud.cfg.orig /etc/cloud/cloud.cfg + + # Install openSUSE Development tool packages + echo "--->Installing Development tool packages $(date +'%Y%m%dT%H%M%S')" + ODTL="java-1_8_0-openjdk-devel indent pkg-config lcov cscope libtool ctags \ + bison libxml2-tools libxslt-devel python-virtualenv libopenssl-devel" + install_pkgs "$ODTL" + + # Install openSUSE Development resources and libraries + echo "--->Installing DEV resources & libraries $(date +'%Y%m%dT%H%M%S')" + ODRL="kernel-devel libffi-devel libconfuse-devel libapr1 libapr1-devel \ + libexpat-devel pcre-devel libxml2-devel ruby-devel zlib-devel \ + glibc-devel-static libstdc++6 libclang llvm-clang check-devel" + install_pkgs "$ODRL" + + # Install openSUSE Packaging utilities and resources + echo "--->Installing PKG utilities & resources $(date +'%Y%m%dT%H%M%S')" + OPP="yum-utils" + install_pkgs "$OPP" + + # Install openSUSE Python resources and libraries + echo "--->Installing Python resources & libraries $(date +'%Y%m%dT%H%M%S')" + OPRL="python-devel python-setuptools python-pip python-wheel python-mock \ + python3-devel python3-pip python-rpm-macros shadow libnuma-devel" + install_pkgs "$OPRL" + + # Install openSUSE Documentation packages + echo "---> Installing Documentation packages $(date +'%Y%m%dT%H%M%S')" + ODP="doxygen graphviz asciidoc dblatex source-highlight python-sphinx \ + libxml2 python-jinja2 python-cffi python-pyparsing \ + python-sphinx_rtd_theme" + install_pkgs "$ODP" + + # Install openSUSE Compliation packages + echo "--->Installing Compliation packages $(date +'%Y%m%dT%H%M%S')" + OCP="cpp gcc gcc-c++ cmake make gcc6 libstdc++-devel ruby-devel" + install_pkgs "$OCP" + + # Install openSUSE Debugging tool packages + echo "--->Installing Debugging tool packages $(date +'%Y%m%dT%H%M%S')" + ODTP="valgrind rrdtool rrdtool-devel autoconf automake ccache chrpath" + install_pkgs "$ODTP" + + # Install openSUSE Misc tool packages + echo "--->Installing Misc tool packages $(date +'%Y%m%dT%H%M%S')" + OMTP="openssl emacs curl git git-review unzip devscripts \ + iproute2 ethtool vlan bridge-utils vim gdb gdbserver \ + lsb-release distribution-release" + install_pkgs "$OMTP" + + # Install openSUSE TLDK dependencies + OTD="libpcap-devel libcap-devel" + install_pkgs "${OTD}" + zypper -n install -t pattern devel_basis + + # Leap 42.3 does not have a recent NASM version and VPP requires NASM 2.12 + # minimum so installing from TW repo + zypper install -y \ + https://download.opensuse.org/tumbleweed/repo/oss/suse/x86_64/nasm-2.13.01-2.2.x86_64.rpm +} + all_systems() { echo 'Configure keep alive to prevent timeout during testing' @@ -185,6 +275,12 @@ all_systems() { unzip packer_0.12.2_linux_amd64.zip -d /usr/local/bin/ # note: rename to packer.io to avoid conflict with cracklib packer mv /usr/local/bin/packer /usr/local/bin/packer.io + + # Install packagecloud.io + apt-get update + apt-get install ruby-dev + gem install rake + gem install package_cloud } echo "---> Detecting OS" @@ -199,6 +295,10 @@ case "${ORIGIN}" in echo "---> Ubuntu system detected" ubuntu_systems ;; + opensuse) + echo "---> openSuSE system detected" + opensuse_systems + ;; *) echo "---> Unknown operating system" ;;