mirror of
https://github.com/SerenityOS/serenity
synced 2024-09-06 17:06:31 +00:00
![Ernests Kuzņecovs](/assets/img/avatar_default.png)
I was building serenity on quite a fresh NixOS system and it turns out `unzip` and `qemu` were missing from this nix expression to compile and run serenity.
2.2 KiB
2.2 KiB
Installing build requisites on other systems
Fedora
sudo dnf install binutils-devel curl cmake mpfr-devel libmpc-devel gmp-devel e2fsprogs ninja-build patch ccache rsync @"C Development Tools and Libraries" @Virtualization
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 a nix-shell
script like the following to set up the correct environment:
myshell.nix:
with import <nixpkgs> {};
stdenv.mkDerivation {
name = "cpp-env";
nativeBuildInputs = [
gcc10
curl
cmake
mpfr
ninja
gmp
libmpc
e2fsprogs
patch
ccache
rsync
unzip
# Example Build-time Additional Dependencies
pkgconfig
];
buildInputs = [
# Example Run-time Additional Dependencies
openssl
x11
qemu
# glibc
];
hardeningDisable = [ "format" "fortify" ];
}
Then use this script: nix-shell myshell.nix
.
Once you're in nix-shell, you should be able to follow the build directions.
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
# rough equivalent of build-essential
apk add build-base
# qemu
apk add qemu qemu-system-i386 qemu-img qemu-ui-gtk
# 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
OpenBSD prerequisites
doas pkg_add bash cmake g++ gcc git gmake gmp ninja ccache rsync coreutils qemu sudo
FreeBSD prerequisites
pkg install bash cmake coreutils e2fsprogs fusefs-ext2 gcc git gmake ninja sudo gmp mpc mpfr ccache rsync