| #!/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 |