Skip to content
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

Mention cpio and pigz in linux-requirements doc #109681

Merged
merged 3 commits into from
Nov 10, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 32 additions & 24 deletions docs/workflow/requirements/linux-requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,27 +34,30 @@ These instructions are written assuming the current *Ubuntu LTS*.

The packages you need to install are shown in the following list:

- `CMake` (version 3.20 or newer)
- `llvm`
- `lld`
- `Clang` (see the [Clang for WASM](#clang-for-wasm) section if you plan on doing work on *Web Assembly (Wasm)*)
- `build-essential`
- `python-is-python3`
- `clang` (see the [Clang for WASM](#clang-for-wasm) section if you plan on doing work on *Web Assembly (Wasm)*)
- `cmake` (version 3.20 or newer)
- `cpio`
- `curl`
- `git`
- `lldb`
- `libicu-dev`
- `libkrb5-dev`
- `liblttng-ust-dev`
- `libssl-dev`
- `libkrb5-dev`
- `lld`
- `lldb`
- `llvm`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python-is-python3`

**NOTE:** If you are running on *Ubuntu* older than version *22.04 LTS*, or *Debian* older than version 12, then don't install `cmake` using `apt` directly. Follow the instructions in the [CMake on Older Versions of Ubuntu and Debian section](#cmake-on-older-versions-of-ubuntu-and-debian) later down in this doc.

```bash
sudo apt install -y cmake llvm lld clang build-essential \
# requires sudo for non-root user
apt install -y cmake llvm lld clang build-essential \
python-is-python3 curl git lldb libicu-dev liblttng-ust-dev \
libssl-dev libkrb5-dev ninja-build
libssl-dev libkrb5-dev ninja-build pigz cpio
```

#### CMake on Older Versions of Ubuntu and Debian
Expand All @@ -64,7 +67,8 @@ As of now, Ubuntu's `apt` only has until *CMake* version 3.16.3 if you're using
To use `snap`, run the following command:

```bash
sudo snap install cmake
# requires sudo for non-root user
snap install cmake
```

To use the *Kitware APT feed*, follow their official instructions [in this link](https://apt.kitware.com/).
Expand All @@ -74,9 +78,10 @@ To use the *Kitware APT feed*, follow their official instructions [in this link]
As of now, *WASM* builds have a minimum requirement of `Clang` version 16 or later (version 18 is the latest at the time of writing this doc). If you're using *Ubuntu 22.04 LTS* or older, then you will have to add an additional repository to `apt` to be able to get said version. Run the following commands on your terminal to do this:

```bash
sudo add-apt-repository -y "deb http://apt.llvm.org/$(lsb_release -s -c)/ llvm-toolchain-$(lsb_release -s -c)-18 main"
sudo apt update -y
sudo apt install -y clang-18
# requires sudo for non-root user
add-apt-repository -y "deb http://apt.llvm.org/$(lsb_release -s -c)/ llvm-toolchain-$(lsb_release -s -c)-18 main"
apt update -y
apt install -y clang-18
```

You can also take a look at the Linux-based *Dockerfile* [over here](/.devcontainer/Dockerfile) for another example.
Expand All @@ -85,34 +90,37 @@ You can also take a look at the Linux-based *Dockerfile* [over here](/.devcontai

If you're planning to use your environment to do Linux cross-building to other architectures (e.g. Arm32, Arm64), and/or other operating systems (e.g. Alpine, FreeBSD), you'll need to install a few additional dependencies. It is worth mentioning these other packages are required to build the `crossrootfs`, which is used to effectively do the cross-compilation, not to build the runtime itself.

- `qemu`
- `qemu-user-static`
- `binfmt-support`
- `debootstrap`
- `qemu`
- `qemu-user-static`

### Fedora

These instructions are written assuming *Fedora 40*.

Install the following packages for the toolchain:

- `cmake`
- `llvm`
- `lld`
- `lldb`
- `clang`
- `python`
- `cmake`
- `cpio`
- `curl`
- `git`
- `libicu-devel`
- `openssl-devel`
- `krb5-devel`
- `libicu-devel`
- `lld`
- `lldb`
- `llvm`
- `lttng-ust-devel`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `openssl-devel`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python`

```bash
sudo dnf install -y cmake llvm lld lldb clang python curl git \
libicu-devel openssl-devel krb5-devel lttng-ust-devel ninja-build
# requires sudo for non-root user
dnf install -y cmake llvm lld lldb clang python curl git \
libicu-devel openssl-devel krb5-devel lttng-ust-devel ninja-build pigz cpio
```

### Gentoo
Expand Down