github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/contrib/cirrus/packer/ubuntu_setup.sh (about)

     1  #!/bin/bash
     2  
     3  # This script is called by packer on the subject Ubuntu VM, to setup the podman
     4  # build/test environment.  It's not intended to be used outside of this context.
     5  
     6  set -e
     7  
     8  # Load in library (copied by packer, before this script was run)
     9  source $GOSRC/$SCRIPT_BASE/lib.sh
    10  
    11  req_env_var SCRIPT_BASE
    12  
    13  install_ooe
    14  
    15  export GOPATH="$(mktemp -d)"
    16  trap "sudo rm -rf $GOPATH" EXIT
    17  
    18  # Stop disruption upon boot ASAP after booting
    19  echo "Disabling all packaging activity on boot"
    20  # Don't let sed process sed's temporary files
    21  _FILEPATHS=$(sudo ls -1 /etc/apt/apt.conf.d)
    22  for filename in $_FILEPATHS; do \
    23      echo "Checking/Patching $filename"
    24      sudo sed -i -r -e "s/$PERIODIC_APT_RE/"'\10"\;/' "/etc/apt/apt.conf.d/$filename"; done
    25  
    26  echo "Updating/configuring package repositories."
    27  $BIGTO $SUDOAPTGET update
    28  
    29  echo "Upgrading all packages"
    30  $BIGTO $SUDOAPTGET upgrade
    31  
    32  echo "Adding third-party repositories and PPAs"
    33  $LILTO $SUDOAPTGET install software-properties-common
    34  $LILTO $SUDOAPTADD ppa:criu/ppa
    35  if [[ "$OS_RELEASE_VER" -eq "18" ]]
    36  then
    37      $LILTO $SUDOAPTADD ppa:longsleep/golang-backports
    38  fi
    39  
    40  echo "Configuring/Instaling deps from Open build server"
    41  VERSION_ID=$(source /etc/os-release; echo $VERSION_ID)
    42  echo "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_$VERSION_ID/ /" \
    43      | ooe.sh sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
    44  ooe.sh curl -L -o /tmp/Release.key "https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_${VERSION_ID}/Release.key"
    45  ooe.sh sudo apt-key add - < /tmp/Release.key
    46  
    47  INSTALL_PACKAGES=(\
    48      apparmor
    49      aufs-tools
    50      autoconf
    51      automake
    52      bash-completion
    53      bison
    54      build-essential
    55      bzip2
    56      conmon
    57      containernetworking-plugins
    58      containers-common
    59      coreutils
    60      cri-o-runc
    61      criu
    62      curl
    63      dnsmasq
    64      e2fslibs-dev
    65      emacs-nox
    66      file
    67      gawk
    68      gcc
    69      gettext
    70      git
    71      go-md2man
    72      golang
    73      iproute2
    74      iptables
    75      jq
    76      libaio-dev
    77      libapparmor-dev
    78      libcap-dev
    79      libdevmapper-dev
    80      libdevmapper1.02.1
    81      libfuse-dev
    82      libfuse2
    83      libglib2.0-dev
    84      libgpgme11-dev
    85      liblzma-dev
    86      libnet1
    87      libnet1-dev
    88      libnl-3-dev
    89      libprotobuf-c-dev
    90      libprotobuf-dev
    91      libseccomp-dev
    92      libseccomp2
    93      libselinux-dev
    94      libsystemd-dev
    95      libtool
    96      libudev-dev
    97      libvarlink
    98      lsof
    99      make
   100      netcat
   101      openssl
   102      pkg-config
   103      podman
   104      protobuf-c-compiler
   105      protobuf-compiler
   106      python-future
   107      python-minimal
   108      python-protobuf
   109      python3-dateutil
   110      python3-pip
   111      python3-psutil
   112      python3-pytoml
   113      python3-setuptools
   114      rsync
   115      runc
   116      scons
   117      skopeo
   118      slirp4netns
   119      socat
   120      unzip
   121      vim
   122      wget
   123      xz-utils
   124      yum-utils
   125      zip
   126      zlib1g-dev
   127  )
   128  
   129  if [[ "$OS_RELEASE_VER" -ge "19" ]]
   130  then
   131      INSTALL_PACKAGES+=(\
   132          bats
   133          btrfs-progs
   134          fuse3
   135          libbtrfs-dev
   136          libfuse3-dev
   137      )
   138  else
   139      echo "Downloading version of bats with fix for a \$IFS related bug in 'run' command"
   140      cd /tmp
   141      BATS_URL='http://launchpadlibrarian.net/438140887/bats_1.1.0+git104-g1c83a1b-1_all.deb'
   142      curl -L -O "$BATS_URL"
   143      cd -
   144      INSTALL_PACKAGES+=(\
   145          /tmp/$(basename $BATS_URL)
   146          btrfs-tools
   147      )
   148  
   149      echo "Forced Ubuntu 18 kernel to enable cgroup swap accounting."
   150      SEDCMD='s/^GRUB_CMDLINE_LINUX="(.*)"/GRUB_CMDLINE_LINUX="\1 cgroup_enable=memory swapaccount=1"/g'
   151      ooe.sh sudo sed -re "$SEDCMD" -i /etc/default/grub.d/*
   152      ooe.sh sudo sed -re "$SEDCMD" -i /etc/default/grub
   153      ooe.sh sudo update-grub
   154  fi
   155  
   156  echo "Installing general testing and system dependencies"
   157  # Necessary to update cache of newly added repos
   158  $LILTO $SUDOAPTGET update
   159  $BIGTO $SUDOAPTGET install ${INSTALL_PACKAGES[@]}
   160  
   161  install_buildah_packages
   162  
   163  echo "Installing cataonit and libseccomp.sudo"
   164  ooe.sh sudo /tmp/libpod/hack/install_catatonit.sh
   165  ooe.sh sudo make -C /tmp/libpod install.libseccomp.sudo
   166  
   167  # Ensure there are no disruptive periodic services enabled by default in image
   168  systemd_banish
   169  
   170  CRIO_RUNC_PATH="/usr/lib/cri-o-runc/sbin/runc"
   171  if sudo dpkg -L cri-o-runc | grep -m 1 -q "$CRIO_RUNC_PATH"
   172  then
   173      echo "Linking $CRIO_RUNC_PATH to /usr/bin/runc for ease of testing."
   174      sudo ln -f "$CRIO_RUNC_PATH" "/usr/bin/runc"
   175  fi
   176  
   177  ubuntu_finalize
   178  
   179  echo "SUCCESS!"