blob: 1a6f19b5a28c149fbc790f593f16c3324bea5210 [file] [edit]
#!/bin/sh
# Install the packages listed in `deps_packages.lst` and `dev_packages.lst`.
# See `Help/dev/devcontainer.rst`.
set -e
# Install without asking questions, e.g. the time zone `tzdata` wants.
export DEBIAN_FRONTEND=noninteractive
# Unlike our CI images, keep the documentation that packages carry: the base
# image excludes man pages and the like, which is not what one wants in a
# development environment. Packages already installed in the base image
# remain without their documentation; `unminimize` restores that.
rm -f /etc/dpkg/dpkg.cfg.d/excludes
apt-get update
apt-get install -y $(grep -h '^[^#]\+$' /root/deps_packages.lst /root/dev_packages.lst)
# Add locales, the way our CI images do, for the tests that need them.
sed -i -E '/^# en_US[ .](ISO-8859-1|UTF-8)( |$)/ s/^# //' /etc/locale.gen
dpkg-reconfigure --frontend=noninteractive locales
# `Utilities/Scripts/clang-format.bash` finds `clang-format-18` by name, but
# make the unversioned name resolve to version 18 as well so that tools
# looking for it get the version our style rules require. `CMakeLists.txt`
# searches for `clang-tidy` only under the unversioned name, so the version
# installed by name needs one too.
ln -s "$(command -v clang-format-18)" /usr/local/bin/clang-format
ln -s "$(command -v clang-tidy-22)" /usr/local/bin/clang-tidy