ladybird/Documentation/BuildInstructionsOther.md
networkException b95e7772e7 Documentation: Improve nix related commands
This patch fixes `nix develop` commands not using proper paths, uses
the serenity root directory as an assumption for all commands and
adds variants of nix commands to use a custom entry point, for example
a shell.
2023-12-04 08:03:29 +00:00

2.6 KiB

Installing build requisites on other systems

Fedora

sudo dnf install texinfo binutils-devel curl cmake mpfr-devel libmpc-devel gmp-devel e2fsprogs ninja-build patch ccache rsync @"C Development Tools and Libraries" @Virtualization

Optional: fuse2fs for building images without root.

openSUSE

sudo zypper install curl cmake mpfr-devel mpc-devel ninja gmp-devel e2fsprogs patch qemu-x86 qemu-audio-pa gcc gcc-c++ ccache rsync patterns-devel-C-C++-devel_C_C++

Void Linux

sudo xbps-install -S base-devel cmake curl mpfr-devel libmpc-devel gmp-devel e2fsprogs ninja qemu ccache rsync

ALT Linux

apt-get install curl cmake libmpc-devel gmp-devel e2fsprogs libmpfr-devel ninja-build patch gcc ccache rsync

NixOS

You can use the nix-shell script Toolchain/serenity.nix to set up the environment (using your host nixpkgs):

nix-shell Toolchain/serenity.nix

# With a custom entrypoint, for example your favorite shell
nix-shell --command bash Toolchain/serenity.nix

or you can use the nix flake Toolchain/flake.nix instead:

nix develop ./Toolchain#

# With a custom entrypoint, for example your favorite shell
nix develop ./Toolchain# --command bash

You can also save this environment to a profile:

nix develop Toolchain --profile Toolchain/nix-profiles/dev 

and resume later with:

nix develop Toolchain/nix-profiles/dev

Alpine Linux

First, make sure you have enabled the community repository in /etc/apk/repositories and run apk update. It has been tested on edge, YMMV on stable.

# the basics, if you have not already done so
apk add bash curl git util-linux sudo

# GNU coreutils for GNU's version of `du`
apk add coreutils

# rough equivalent of build-essential
apk add build-base

# qemu
apk add qemu qemu-system-x86_64 qemu-img qemu-ui-gtk qemu-audio-pa

# build tools (samurai is a drop-in replacement for ninja)
apk add cmake e2fsprogs grub-bios samurai mpc1-dev mpfr-dev gmp-dev ccache rsync texinfo

Optional: fuse2fs for building images without root.

OpenBSD prerequisites

doas pkg_add bash cmake g++ gcc git gmake gmp ninja ccache rsync coreutils qemu sudo e2fsprogs

FreeBSD prerequisites

pkg install qemu bash cmake coreutils e2fsprogs fusefs-ext2 gcc11 git gmake ninja sudo gmp mpc mpfr ccache rsync

Optional: fusefs-ext2 for building images without root.