Skip to content

Conversation

@jschwe
Copy link
Member

@jschwe jschwe commented Jan 12, 2026

Companion to servo/servo#41775. We can add a CI job to servo, which keeps a text file in the book repository up-to-date with the latest installation instructions we use in bootstrap.
In the book, we can then simply include this file (or files). If we split the required packages into multiple lists (based on when the packages are required), we can also easily sync such changes to the book. This would be useful to document which dependencies are required for building, which are required for wpt-tests, and which are "nice to have" for faster compilation (ccache) or specific to a certain feature (e.g. wireshark for devtools debugging).

This change itself won't split the list of dependencies yet, but it makes such follow-up changes easier.

@jschwe jschwe force-pushed the sync_bootstrap_pkgs branch from 6d68eb3 to f20f1cd Compare January 12, 2026 15:54
@jschwe jschwe force-pushed the sync_bootstrap_pkgs branch from f20f1cd to 394563a Compare January 13, 2026 09:04
<!-- see python/servo/platform/building/linux_packages/apt/ in servo for how to update this -->
<!-- be sure to *remove* `libgstreamer-plugins-good1.0-dev` from this list, due to the note below -->
- `sudo apt install build-essential ccache clang cmake curl g++ git gperf libdbus-1-dev libfreetype6-dev libgl1-mesa-dri libgles2-mesa-dev libglib2.0-dev gstreamer1.0-plugins-good gstreamer1.0-plugins-bad libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-ugly gstreamer1.0-plugins-base libgstreamer-plugins-base1.0-dev gstreamer1.0-libav libgstrtspserver-1.0-dev gstreamer1.0-tools libges-1.0-dev libharfbuzz-dev liblzma-dev libudev-dev libunwind-dev libvulkan1 libx11-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxmu-dev libxmu6 libegl1-mesa-dev llvm-dev m4 xorg-dev libxkbcommon0 libxkbcommon-x11-0 tshark`
- `sudo apt install {{#include linux_packages/apt_common.txt}}`
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So my idea here, is that to simplify things, the list will just be a space seperated list of package names, and we keep the package manager install command in the book.

- `sudo apt install build-essential ccache clang cmake curl g++ git gperf libdbus-1-dev libfreetype6-dev libgl1-mesa-dri libgles2-mesa-dev libglib2.0-dev gstreamer1.0-plugins-good gstreamer1.0-plugins-bad libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-ugly gstreamer1.0-plugins-base libgstreamer-plugins-base1.0-dev gstreamer1.0-libav libgstrtspserver-1.0-dev gstreamer1.0-tools libges-1.0-dev libharfbuzz-dev liblzma-dev libudev-dev libunwind-dev libvulkan1 libx11-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxmu-dev libxmu6 libegl1-mesa-dev llvm-dev m4 xorg-dev libxkbcommon0 libxkbcommon-x11-0 tshark`
- `sudo apt install {{#include linux_packages/apt_common.txt}}`

**Note:** For Ubuntu-based distributions, ensure that you also include the `libgstreamer-plugins-good1.0-dev` package alongside the packages listed above.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So I'm not 100% sure what the best solution for this line is. We could include a apt_ubuntu_only.txt list (from servo), but since it's currently only this gstreamer library, I'm leaning towards keeping this hardcoded for now, and then later, we split the gstreamer related packages into a seperate file, we could have a apt_gstreamer_common.txt and apt_gstreamer_ubuntu_only.txt file.

@jschwe
Copy link
Member Author

jschwe commented Jan 13, 2026

@delan Could you have a look at this? From the users point of view it should be exactly the same. If this solution is fine with you, I'd go ahead and add the fedora and void linux package lists in the same way.

@delan
Copy link
Member

delan commented Jan 14, 2026

i will review this tomorrow :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants