| # Packages that make the container a comfortable place to work in, but that | |
| # building CMake, running its test suite, and building its documentation do | |
| # not need, and so are not part of `deps_packages.lst`. | |
| # | |
| # Additions for personal use belong in `.devcontainer/hooks/root.sh`. | |
| # See `Help/dev/devcontainer.rst`. | |
| # Make the shell pleasant to work in interactively. `unminimize` restores | |
| # the documentation of the packages the base image provides, which it ships | |
| # without; see `Help/dev/devcontainer.rst`. | |
| bash-completion | |
| less | |
| man-db | |
| manpages | |
| manpages-dev | |
| nano | |
| unminimize | |
| vim | |
| # Build CMake. `g++` comes from `deps_packages.lst`, as CI builds with it; | |
| # `clang` is here for developers who prefer to build with it instead. | |
| # | |
| # `gfortran` is named only to keep the Fortran-only `gcc-16` build that | |
| # Ubuntu 26.04 carries out of the container: `libopenmpi-dev` lists | |
| # `gfortran-16` first among the alternatives it accepts, and Clang, which | |
| # selects the newest GCC installation it finds, cannot link against one that | |
| # provides no C++ standard library. | |
| ccache | |
| clang | |
| cmake | |
| gfortran | |
| ninja-build | |
| # Debug and diagnose CMake. The sanitizer runtimes come with the compilers, | |
| # so building with `-fsanitize=` needs nothing installed here. | |
| gdb | |
| valgrind | |
| # Analyze CMake. `clazy` is the compiler our Clazy CI job builds with, | |
| # `clang-tools` provides `scan-build`, and `clang-tidy` runs the checks in | |
| # `.clang-tidy`. Name the version of `clang-tidy` our checks are written | |
| # against: `Utilities/ClangTidyModule` tracks the Clang release our CI image | |
| # carries, and older versions report `cmake-use-cmsys-fstream` where they | |
| # should not. Ubuntu's unversioned `clang-tidy` package is a release behind. | |
| # `clazy` and `clang-tools` are whatever versions Ubuntu carries, so expect | |
| # their diagnostics to differ from those jobs'. CMake's own checks are not | |
| # among them either way: `CMake_USE_CLANG_TIDY_MODULE` needs | |
| # `Utilities/ClangTidyModule` built against Clang's development files, which | |
| # are not installed here. | |
| clang-tidy-22 | |
| clang-tools | |
| clazy | |
| # Build the documentation. | |
| python3-sphinx | |
| # Satisfy our style rules. Our `.clang-format` requires `clang-format` | |
| # version 18, exactly, so install that version by name. Do not install the | |
| # unversioned `clang-format` package: it provides a much newer version. | |
| clang-format-18 | |
| pre-commit | |
| # Unpack the `ast-grep` release that `install_ast_grep.sh` downloads, as | |
| # Ubuntu does not carry `ast-grep` itself. | |
| unzip | |
| # Run `glab` and `glab-axi`, and reach GitLab over SSH. `nodejs` and `npm` | |
| # are needed both to install `glab-axi` and to run it. | |
| nodejs | |
| npm | |
| openssh-client | |
| # Let the unprivileged container user install more packages. | |
| sudo |