-
Notifications
You must be signed in to change notification settings - Fork 47
Allow syncing linux packages from servo bootstrap #194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
6d68eb3 to
f20f1cd
Compare
f20f1cd to
394563a
Compare
| <!-- 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}}` |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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.
|
@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. |
|
i will review this tomorrow :) |
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.