bootstrapping.md
May 3, 2021 ยท View on GitHub
Installing build dependencies
We need specific packages to build this Linux distribution. Without them you can't perform the required tasks. To install required build dependencies:
Fedora
dnf groupinstall "Development Tools" "C Development Tools and Libraries"
dnf install clang lld glibc-static jq zstd bsdcpio bsdtar curl mtools libisoburn which python3 texinfo meson rsync freetype-devel zlib-devel xz-devel libzstd-devel libarchive-devel elfutils-libelf-devel openssl-devel readline-devel libffi-devel sqlite-devel
Debian/Ubuntu:
apt install build-essential clang lld autoconf automake autopoint libtool jq zstd libarchive-tools attr curl mtools xorriso python3 meson rsync libtasn1-bin libfreetype-dev zlib1g-dev liblzma-dev libzstd-dev libarchive-dev libelf-dev libssl-dev libreadline-dev libffi-dev libsqlite-dev
Ataraxia GNU/Linux:
tsukuri emerge libisoburn mtools freetype
Compiling package manager
Ataraxia GNU/Linux uses tsukuri as its package manager. You should do this commands to install tsukuri (AS ROOT):
cd /tmp
curl -OL https://github.com/ataraxialinux/tsukuri/archive/refs/tags/0.2.5.1.tar.gz
tar xpf 0.2.5.1.tar.gz
cd tsukuri-0.2.5.1
mkdir build
cd build
meson --prefix=/usr -Dsystemd=false ..
ninja
ninja install
Building
Arguments supported by "build script":
target - Select target for build
Sub-arguments supported by "build script":
-a <Architecture> - Select architecture for build
-k <Kernel> - Select kernel for target OS
-b <Board> - Build OS for specific board
-C - Enable ccache
We have seperated the build process into seperate "targets":
* toolchain - This stage intended to compile cross-toolchain
* system - This stage intended to compile basic target system with cross-compiler (You don't need to compile stage 0)
* installer - This stage intended to generate installer .iso image
* stage - This stage intended to generate archive with pre-compiled OS
To begin the bootstrap process, as root: See supported platforms and architecures.
./build target -a [supported architecture] -k [kernel] -b [supported board] [target name]
And magic happens!