Zirconium Linux From Scratch
Version r12.4-45-systemd
Published November 14th, 2025
Maintained by Zed
Matrix
Created By: Gerard
Beekmans
Managing Editor: Bruce
Dubbs
Editor: Douglas R.
Reno
Editor: DJ
Lucas
Copyright
© 1999-2025 Gerard Beekmans
Dedication
This book is dedicated
Table of Contents
Preface
Foreword
Audience
LFS Target Architectures
Prerequisites
LFS and Standards
Rationale for Packages in the Book
Typography
Structure
Errata and Security Advisories
I. Preparing for the Build
1. Preparing Environment
Creating a File System on the Partition
Creating a New Partition
Setting Up the Environment
Creating a Limited Directory Layout in the LFS Filesystem
Introduction
All Packages
Needed Patches
II. Building the LFS Cross Toolchain and Temporary Tools
2. Compiling a Cross-Toolchain
Introduction
Binutils-2.45.1 - Pass 1
GCC-15.2.0 - Pass 1
Linux-6.12.58 API Headers
Glibc-2.42
Libstdc++ from GCC-15.2.0
3. Cross Compiling Temporary Tools
Introduction
M4-1.4.20
Ncurses-6.5-20250809
Bash-5.3
Coreutils-9.9
Diffutils-3.12
File-5.46
Findutils-4.10.0
Gawk-5.3.2
Grep-3.12
Gzip-1.14
Make-4.4.1
Patch-2.8
Sed-4.9
Xz-5.8.1
Libarchive-3.8.1
Binutils-2.45.1 - Pass 2
GCC-15.2.0 - Pass 2
4. Entering Chroot and Building Additional Temporary Tools
Introduction
Changing Ownership
Preparing Virtual Kernel File Systems
Entering the Chroot Environment
Creating Directories
Creating Essential Files and Symlinks
Gettext-0.26
Bison-3.8.2
Perl-5.42.0
Python-3.14.0
Texinfo-7.2
Util-linux-2.41.2
Nano-8.7
Cleaning up and Saving the Temporary System
III. Building the LFS System
5. Installing Basic System Software
Introduction
Package Management
Man-pages-6.16
Iana-Etc-20251022
Glibc-2.42
Zlib-1.3.1
Bzip2-1.0.8
Xz-5.8.1
Lz4-1.10.0
Zstd-1.5.7
File-5.46
Readline-8.3
Pcre2-10.47
M4-1.4.20
Bc-7.0.3
Flex-2.6.4
Tcl-8.6.17
Expect-5.45.4
DejaGNU-1.6.3
Pkgconf-2.5.1
Binutils-2.45.1
GMP-6.3.0
MPFR-4.2.2
MPC-1.3.1
Attr-2.5.2
Acl-2.3.2
Libcap-2.77
Libxcrypt-4.5.1
Shadow-4.18.0
GCC-15.2.0
Ncurses-6.5-20250809
Sed-4.9
Psmisc-23.7
Gettext-0.26
Bison-3.8.2
Grep-3.12
Bash-5.3
Libtool-2.5.4
GDBM-1.26
Gperf-3.3
Expat-2.7.3
Inetutils-2.6
Less-685
Perl-5.42.0
XML::Parser-2.47
Intltool-0.51.0
Autoconf-2.72
Automake-1.18.1
OpenSSL-3.6.0
Libarchive-3.8.1
Libelf from Elfutils-0.194
Libffi-3.5.2
Sqlite-3510000
Python-3.14.0
Flit-Core-3.12.0
Packaging-25.0
Wheel-0.46.1
Setuptools-80.9.0
Ninja-1.13.1
Meson-1.9.1
Kmod-34.2
Coreutils-9.9
Diffutils-3.12
Gawk-5.3.2
Findutils-4.10.0
Groff-1.23.0
GRUB-2.12
Gzip-1.14
IPRoute2-6.17.0
Kbd-2.9.0
Libpipeline-1.5.8
Make-4.4.1
Patch-2.8
Texinfo-7.2
Nano-8.7
MarkupSafe-3.0.3
Jinja2-3.1.6
Systemd-258.1
D-Bus-1.16.2
Man-DB-2.13.1
Procps-ng-4.0.5
Util-linux-2.41.2
E2fsprogs-1.47.3
About Debugging Symbols
Stripping
Cleaning Up
IV. Finalizing the LFS System
6. Configuring the System
Bash Scripts
Extra Bash Scripts
Grub and Fstab Configuration
Creating the /etc/fstab File
Linux-6.12.58
7. System Utilities
Which-2.23 and Alternatives
hwdata-0.401
pciutils-3.14.0
libusb-1.0.29
usbutils-019
libtasn1-4.20.0
p11-kit-0.25.10
make-ca-1.16.1
8. Network Utilities
OpenSSH-10.2p1
libunistring-1.4.1
libidn2-2.3.8
libpsl-0.21.5
Wget-1.25.0
cURL-8.17.0
Whois-5.6.5
9. Grub Uefi Programs
Popt-1.19
libaio-0.3.113
libpng-1.6.50
dosfstools-4.2
LVM2-2.03.36
Fuse-3.17.4
FreeType-2.14.1
efivar-39
efibootmgr-18
GRUB-2.12 for EFI
Using GRUB to Set Up the Boot Process with UEFI
V. Finish to Reboot
10. Finishing the System
Git-2.52.0
Linux-Firmware-20251111
Rebooting the System
VI. Going Beyond the Basesystem
11. Post Networking, Compilers and Markup Language
libtirpc-1.3.7
libnsl-2.0.1
libuv-1.51.0
CMake-4.1.3
Yaml-cpp-0.8.0
GPM-1.20.7
tree-2.2.1
icu-78.1
boost-1.89.0
libxml2-2.15.1
docbook-xml-4.5
libxslt-1.1.43
lxml-6.0.2
itstool-2.0.7
docbook-xsl-nons-1.79.2
xmlto-0.0.29
libevent-2.1.12
Links-2.30
Asciidoc-10.2.1
Pyproject_Hooks-1.2.0
Build-1.3.0
Installer-0.7.0
rsync-3.4.1
lm-sensors-3-6-2
LZO-2.10
Cython-3.2.1
Nettle-3.10.2
NASM-3.01
yasm-1.3.0
brotli-1.2.0
LLVM-21.1.2
Jansson-2.14.1
Net-tools-2.10
libseccomp-2.6.0
c-ares-1.34.5
nghttp2-1.68.0
libnl-3.11.0
rpcbind-1.2.8
rpcsvc-proto-1.4.4
Linux-PAM-1.7.1
Shadow-4.18.0 with PAM
Systemd-258.1 with PAM
libcap-2.77 with PAM
Configuring for Adding Users
NSPR-4.38.2
NSS-3.118.1
libgpg-error-1.56
libgcrypt-1.11.2
libssh2-1.11.1
lmdb-0.9.33
Cyrus SASL-2.1.28
OpenLDAP-2.6.10
Sudo-1.9.17p2
GnuTLS-3.8.11
duktape-2.7.0
NFS-Utils-2.8.4
npth-1.8
libksba-1.6.7
libassuan-3.0.2
GnuPG-2.4.8
gpgme-2.0.1
gpgmepp-2.0.0
docutils-0.22.3
ply-3.11
Mako-1.3.10
libyaml-0.2.5
PyYAML-6.0.3
ISO Codes-4.19.0
VII. Graphical Environments and Libraries
12. Preparing Xorg and Support Libraries
GLib-2.86.2
shared-mime-info-2.4
desktop-file-utils-0.28
Pixman-0.46.4
Polkit-126
util-macros-1.20.2
xorgproto-2024.1
bdftopcf-1.1.2
libXau-1.0.12
libXdmcp-1.1.5
xcb-proto-1.17.0
libxcb-1.17.0
Fontconfig-2.17.1
Xorg7 Libraries
libxcvt-0.1.3
XCB Utility Libraries
Libdrm-2.4.129
Cairo-1.18.4
Graphene-1.10.8
Graphite2-1.3.14
harfBuzz-12.2.0
Graphite2-1.3.14 Pass 2
Wayland-1.24.0
Wayland-Protocols-1.45
SPIRV-Headers-1.4.328.1
SPIRV-Tools-1.4.328.1
SPIRV-LLVM-Translator-21.1.2
libclc-21.1.2
Vulkan-Headers-1.4.328.1
Vulkan-Loader-1.4.328.1
glslang-16.0.0
libva-2.22.0
libvdpau-1.5
Mesa-25.2.7
intel-vaapi-driver-2.4.1
xbitmaps-1.1.3
libvpx-1.15.2
libva-2.22.0 Pass 2
Xorg7 Applications
luit-20250912
xcursor-themes-1.0.7
Xorg7 Fonts
libxkbcommon-1.13.0
XKeyboardConfig-2.46
libepoxy-1.5.10
Xwayland-24.1.9
Xorg-Server-21.1.21
mtdev-1.1.7
Xorg7 Input Drivers
twm-1.0.13.1
xterm-403
xclock-1.1.1
xinit-1.4.4
Xorg7 Legacy Fonts
dbus-1.16.2
xdg-utils-1.2.1
Xdg-user-dirs-0.19
GLU-9.0.3
GLEW-2.2.0
Freeglut-3.8.0
Cantarell Fonts-0.303
Dejavu Fonts TTF-2.37
VIII. Media and Graphical Back End
13. Preparing FFMpeg and Support Libraries
FriBidi-1.0.16
Bubblewrap-0.11.0
Pango-1.57.0
Graphviz-14.0.4
Vala-0.56.18
gavl-1.4.0
libical-3.0.20
BlueZ-5.84
LibOgg-1.3.6 and LibVorbis-1.3.7
Speex-1.2.1 and Speexdsp-1.2.1
Opus-1.5.2
LAME-3.100
FLAC-1.5.0
fdk-aac-2.0.3
Liba52-0.8.0
libaom-3.13.1
libass-0.17.4
alsa-lib-1.2.14
alsa-utils-1.2.14
faad2-2.11.2
faac-1.31.1
mpg123-1.33.3
libsndfile-1.2.2
SBC-2.1
PulseAudio-17.0
x264-20250815
x265-4.1
libcddb-1.3.2
libcdio-2.1.0
CDParanoia-III-10.2
libdvdcss-1.5.0
libdvdread-7.0.1
libdvdnav-7.0.0
libjpeg-turbo-3.0.1
libtiff-4.7.1
giflib-5.2.2
Little CMS-2.17
libmng-2.0.3
SDL3-3.3.4
sdl2-compat-2.32.60
libwebp-1.6.0
Glad-2.0.8
libplacebo-7.351.0
at-spi2-core-2.58.1
gsettings-desktop-schemas-49.1
gdk-pixbuf-2.44.4
hicolor-icon-theme-0.18
GTK-3.24.51
Rustc-1.91.0
cargo-c-0.10.18
librsvg-2.61.3
PyCairo-1.28.0
PyGObject-3.54.5
glslc from shaderc-2025.4
gstreamer-1.26.9
libgudev-238
gst-plugins-base-1.26.9
glib-networking-2.80.1
libsoup-3.6.5
v4l-utils-1.32.0
gst-plugins-good-1.26.9
SoundTouch-2.4.0
libexif-0.6.25
libqrencode-4.1.1
SVT-AV1-3.1.2
JSON-GLib-1.10.8
gst-plugins-bad-1.26.9
gst-plugins-ugly-1.26.9
libgusb-0.4.9
Colord-1.4.8
GTK-4.20.3
adwaita-icon-theme-49.0
Libspiro-20220722
libcanberra-0.30
sound-theme-freedesktop-0.8
libvdpau-va-gl-0.4.2
dav1d-1.5.2
libavif-1.3.0
frei0r-2.5.0
XviD-1.3.7
FFmpeg-8.0.1
gst-plugins-rs-1.26.9
alsa-plugins-1.2.12
Double-conversion-3.3.1
jasper-4.2.8
libdaemon-0.14
Avahi-0.8
Pipewire-1.4.9
Lua-5.4.8
luajit-20250816
Wireplumber-0.5.12
Uchardet-0.0.8
libmad-0.15.1b
gst-libav-1.26.9
mpv-0.40.0
xdg-desktop-portal-1.20.3
gnome-desktop-44.3
xdg-desktop-portal-gtk-1.15.3
imlib2-1.12.5
startup-notification-0.12
XScreenSaver-6.13
IX. Build Qt6 and Support
14. Build Qt6 and Support
Qt-6.10.1
qcoro-0.12.0
Qca-2.3.10
Polkit-Qt-0.200.0
extra-cmake-modules-6.20.0
plasma-wayland-protocols-1.19.0
UPower-1.90.10
libnvme-1.16.1
Python Modules post Qt
libbytesize-2.11
libatasmart-0.19
keyutils-1.6.3
JSON-C-0.18
cryptsetup-2.8.1
libblockdev-3.4.0
UDisks-2.11.0
Aspell-0.60.8.1
enchant-2.8.13
dbus-glib-0.114
inih-62
Exiv2-0.28.7
Perl Modules post Qt
zxing-cpp-2.3.0
libsecret-0.21.7
Gcr-3.41.2
Gcr-4.4.0.1
Gvfs-1.56.1
gnome-keyring-48.0
utfcpp-4.0.8
Taglib-2.1.1
X. Build KDE Frameworks Support
15. Preparing KDE Frameworks Integration
Building KDE Frameworks 6.20.0 (KF6)
Breeze-icons-6.20.0
Attica-6.20.0
Karchive-6.20.0
Kcodecs-6.20.0
Kwindowsystem-6.20.0
Kconfig-6.20.0
Kcoreaddons-6.20.0
Kdbusaddons-6.20.0
Kdnssd-6.20.0
Kguiaddons-6.20.0
Ki18n-6.20.0
Kidletime-6.20.0
Kimageformats-6.20.0
Kitemmodels-6.20.0
Kitemviews-6.20.0
Kplotting-6.20.0
Kwidgetsaddons-6.20.0
Solid-6.20.0
Sonnet-6.20.0
Threadweaver-6.20.0
Kauth-6.20.0
Kcompletion-6.20.0
KCrash-6.20.0
Kdoctools-6.20.0
Kpty-6.20.0
Kunitconversion-6.20.0
Kcolorscheme-6.20.0
Kconfigwidgets-6.20.0
Kservice-6.20.0
KGlobalAccel-6.20.0
KPackage-6.20.0
KDEsu-6.20.0
KIconThemes-6.20.0
KNotifications-6.20.0
KJobWidgets-6.20.0
KTextWidgets-6.20.0
KXMLGUI-6.20.0
KBookMarks-6.20.0
Kwallet-6.20.0
Kded-6.20.0
Kio-6.20.0
KDeclarative-6.20.0
Kirigami-6.20.0
KCMutils-6.20.0
Syndication-6.20.0
Knewstuff-6.20.0
Frameworkintegration-6.20.0
Kparts-6.20.0
Syntax-highlighting-6.20.0
KTexteditor-6.20.0
Kcontacts-6.20.0
KPeople-6.20.0
BlueZ-Qt-6.20.0
KFileMetadata-6.20.0
Baloo-6.20.0
Krunner-6.20.0
Prison-6.20.0
Qqc2-desktop-style-6.20.0
Kholidays-6.20.0
Purpose-6.20.0
Kcalendarcore-6.20.0
Kquickcharts-6.20.0
Knotifyconfig-6.20.0
Kdav-6.20.0
Kstatusnotifieritem-6.20.0
Ksvg-6.20.0
Ktexttemplate-6.20.0
Kuserfeedback-6.20.0
XI. Preparing LXQt Desktop
16. Finalizing the LXQt - KDE Desktop
Kwayland-6.5.2
Libkscreen-6.5.2
Layer-shell-qt-6.5.2
muparser-2.3.5
lxqt-build-tools-2.3.0
libdbusmenu-lxqt-0.3.0
libqtxdg-4.3.0
lxqt-menu-data-2.3.0
liblxqt-2.3.0
libsysstat-1.1.0
qtxdg-tools-4.3.0
lxqt-globalkeys-2.3.0
libfm-1.3.2
GTK-Doc-1.35.1
menu-cache-1.1.1
libfm-qt-2.3.0
lxqt-qtplugin-2.3.0
libstatgrab-0.92.1
lxqt-panel-2.3.0
oxygen-icons-6.0.0
pcmanfm-qt-2.3.0
lxqt-powermanagement-2.3.0
lxqt-runner-2.3.0
lxqt-themes-2.3.0
lxqt-admin-2.3.0
lxqt-about-2.3.0
lxqt-config-2.3.0
lxqt-policykit-2.3.0
lxqt-sudo-2.3.0
lxqt-openssh-askpass-2.3.0
libdisplay-info-0.3.0
Kdecoration-6.5.2
lxqt-session-2.3.0
libsass-3.6.6
sassc-3.6.2
Libksysguard-6.5.2
Breeze-6.5.2
Breeze-gtk-6.5.2
Plasma-activities-6.5.2
Libplasma-6.5.2
Kscreenlocker-6.5.2
Kinfocenter-6.5.2
Kglobalacceld-6.5.2
Aurorae-6.5.2
Knighttime-6.5.2
Kwin-x11-6.5.2
Kwin-6.5.2
xdg-desktop-portal-lxqt-1.3.0
sddm-0.21.0
Konsole-25.08.3
kate-25.08.3
lximage-qt-2.3.0
lxqt-archiver-1.3.0
lxqt-notificationd-2.3.0
pavucontrol-qt-2.3.0
qps-2.12.0
screengrab-3.1.0
XII. Appendices
A. Acknowledgments
B. LFS Licenses
Creative Commons License
The MIT License
Index