Packages

624 packages, searchable and sortable. Every one of these already exists as a real, built LinuxDoors package.

PackageVersionCategorySizeDownloads
procps-ng
LFS ch8.
LFS ch8. Skips the optional test suite. Bumped 4.0.6 -> 4.0.7 to track LFS 13.1's package set (sha256 from a real downloaded tarball).
4.0.7 System 2.1 MB 31 Download PackageSource Download .tar.gz
psmisc
LFS ch8.
LFS ch8. Skips the optional make check.
23.7 Core System 380.0 KB 27 Download PackageSource Download .tar.gz
pulseaudioNot in ISO
PulseAudio 17.0 -- built almost entirely for its CLIENT libraries (libpulse, libpulse-mainloop-glib, libpulse-simple), which gnome-shell's bundled gvc volume widget hard-requires.
PulseAudio 17.0 -- built almost entirely for its CLIENT libraries (libpulse, libpulse-mainloop-glib, libpulse-simple), which gnome-shell's bundled gvc volume widget hard-requires. Daemon modules mostly disabled; ALSA sink kept so it can actually play if used. This distro is otherwise ALSA-only. ship_in_iso=false, built on .101.
17.0 Libraries 2.8 MB 36 Download PackageSource Download .tar.gz
purposeNot in ISO
KDE Frameworks 6 (6.29.0) / Kdenlive dependency.
KDE Frameworks 6 (6.29.0) / Kdenlive dependency. Not in BLFS as its own page. ship_in_iso=false -- the whole Kdenlive stack is packages-only, kept out of linuxdoors.iso. ECM+CMake+Ninja, Qt6 from the deployed /opt/qt6-full, --libdir=lib for LinuxDoors' non-multiarch layout.
6.31.0 Libraries 789.5 KB 30 Download PackageSource Download .tar.gz
pycairo
BLFS general/python-modules.html.
BLFS general/python-modules.html. Recommended dependency of PyGObject3, part of the Phase 1.5 GTK3+PyGObject installer prerequisite chain.
1.29.2 Libraries 138.3 KB 29 Download PackageSource Download .tar.gz
pygobject3
BLFS general/python-modules.html.
BLFS general/python-modules.html. Last prerequisite for the Phase 1.5 GTK3+PyGObject installer -- lets Python drive real GTK3 dialogs (disk picker, progress bar, confirmation screens) via `from gi.repository import Gtk`. Requires glib2 and gtk3 to both already be rebuilt with introspection enabled, and gobject-introspection itself already built. Depends on `glib2` in the manifest graph (for build ordering against a fresh checkout), but in practice also needs gtk3's introspection data present at runtime for the installer's own Gtk.Window/Gtk.Dialog usage -- gtk3 isn't a hard build-time dependency of PyGObject itself (only glib/gobject/gio), so it's not listed here, but must be rebuilt with introspection=true before the installer app can actually import Gtk.
3.56.3 Libraries 432.6 KB 29 Download PackageSource Download .tar.gz
pyside6
User-requested: PySide6 (Qt6 Python bindings), so a real PySide6 example app can run on LinuxDoors.
User-requested: PySide6 (Qt6 Python bindings), so a real PySide6 example app can run on LinuxDoors. Not in BLFS. Builds shiboken6 (the C++-to-Python binding generator, needs libclang -- confirmed this project's own existing packages/llvm build already provides a real /usr/lib/libclang.so + /usr/include/clang-c headers via LLVM_ENABLE_PROJECTS=clang, built originally for the Firefox/Rust chain, so no new LLVM work needed) and PySide6 itself in one combined build (pyside-setup's own real, documented setup.py entry point -- confirmed directly from the real README.pyside6.md: `python setup.py install --qtpaths=<path>/qtpaths6`). Depends on packages/qt6-full (not qt6-base) and packages/qtwebengine specifically so the generated bindings include PySide6.QtWebEngineWidgets/QtWebEngineCore, matching the user's explicit ask for the webengine module to be available from Python too. Kept OUT of the ISO via ship_in_iso=false, same mechanism as gimp/audacity/qt6-base/qt6-full/qtwebengine -- download-only. Installs into the system Python's site-packages (matching pip-style installs elsewhere in this project) rather than a separate /opt prefix, since it's a Python module, not a standalone toolkit. Real build failure hit and fixed: pyside-setup's own build uses patchelf to bake the correct RPATH (pointing at /opt/qt6-full/lib) into the built shiboken6/PySide6 binaries -- a real, previously-unbuilt tool, added as packages/patchelf (small, standalone, no dependencies).
6.12.0 Development 24.5 MB 35 Download PackageSource Download .tar.gz
python
LFS ch8, final build (ch7's python-tmp was a bootstrap version, built --without-ensurepip).
LFS ch8, final build (ch7's python-tmp was a bootstrap version, built --without-ensurepip). This one does NOT disable ensurepip, so it should come with a working pip3 -- needed by flit-core/packaging/wheel/setuptools right after. Skips the optional test suite and the optional HTML docs install. Bumped to 3.14.8 (2026-10-03). Real build fix: OpenSSL 4.0.3 headers still declare SSLv3_method/TLSv1_method/TLSv1_1_method/TLSv1_2_method unconditionally, but their implementations were removed from the library (confirmed zero matches in openssl ssl/*.c source) -- a real upstream header/impl mismatch, not fixable via any openssl ./config flag (tried enable-tls1-method/enable-tls1_1-method, no effect; enable-ssl3-method is not even a valid Configure option). Fixed by defining the same guard macros _ssl.c itself checks (-DOPENSSL_NO_SSL3 -DOPENSSL_NO_SSL3_METHOD -DOPENSSL_NO_TLS1 -DOPENSSL_NO_TLS1_METHOD -DOPENSSL_NO_TLS1_1 -DOPENSSL_NO_TLS1_1_METHOD -DOPENSSL_NO_TLS1_2_METHOD) as CFLAGS, forcing _ssl.c to skip the dead symbols -- modern TLS 1.2/1.3 via the real SSLContext API (TLS_method() + min/max_version) is completely unaffected; only the long-deprecated explicit ssl.PROTOCOL_SSLv3/TLSv1/TLSv1_1/TLSv1_2 enum constants lose their old-style single-version pinning path. Also: the LFS book no longer lists any patch for Python 3.14.8 (the earlier Python-3.14.7-openssl_4-1.patch is gone) -- extra_sources cleared.
3.14.8 Development 86.8 MB 58 Download PackageSource Download .tar.gz
python-tmp
LFS ch7, inside the chroot.
LFS ch7, inside the chroot. Some optional modules (e.g. ssl) are expected to fail to build at this stage per the book -- only the top-level `make` needs to succeed. Superseded by chapter 8's full python build.
3.14.7 Toolchain — 0 not yet builtSource Download .tar.gz
python-xappNot in ISO
linuxmint/python3-xapp -- the `xapp` Python module (xapp.os / xapp.settings / xapp.GSettingsWidgets).
linuxmint/python3-xapp -- the `xapp` Python module (xapp.os / xapp.settings / xapp.GSettingsWidgets). Separate repo from the C `xapp` library. cinnamon-screensaver, cinnamon-settings and Cinnamon applets `import xapp`. Master branch snapshot @ 3.0.3. Cinnamon 6.4 desktop, ship_in_iso=false.
3.0.3 Libraries 78.9 KB 26 Download PackageSource Download .tar.gz
pyyaml
Not in BLFS's own list -- same real build-time discovery as mako (mesa's meson.build also requires Python's yaml module).
Not in BLFS's own list -- same real build-time discovery as mako (mesa's meson.build also requires Python's yaml module). Uses the pure-Python YAML parser (we haven't built libyaml, so no C extension speedup, which is fine for build-time-only usage).
6.0.3 Libraries 816 B 30 Download PackageSource Download .tar.gz
qcoroNot in ISO
QCoro -- C++20 coroutines for Qt6.
QCoro -- C++20 coroutines for Qt6. plasma-workspace/powerdevil (Plasma 6.7) require QCoro6. ship_in_iso=false, KDE Plasma chain.
0.13.0 Libraries 208.4 KB 23 Download PackageSource Download .tar.gz
qqc2-desktop-styleNot in ISO
KDE Frameworks 6 (6.29) -- the 'org.kde.desktop' QtQuick Controls style, Kdenlive's default.
KDE Frameworks 6 (6.29) -- the 'org.kde.desktop' QtQuick Controls style, Kdenlive's default. Without it Kdenlive's Splash.qml fails to load and Splash::Splash() segfaults on rootObjects().at(0) of an empty list (diagnosed via gdb on .101). ship_in_iso=false (Kdenlive stack = packages only). ECM+CMake+Ninja, Qt6 from /opt/qt6-full, --libdir=lib.
6.31.0 Libraries 1.7 MB 35 Download PackageSource Download .tar.gz
qrencodeNot in ISO
libqrencode -- QR code generator.
libqrencode -- QR code generator. KF6 Prison needs it for barcode rendering. ship_in_iso=false -- KDE Plasma is a Packages-page / Package Manager install, deliberately kept off linuxdoors.iso (XFCE + MATE are the shipped desktops). Built on .101 against the existing KF6 6.29 + Qt6 (/opt/qt6-full) stack from the Kdenlive work.
4.1.1 Libraries 51.7 KB 29 Download PackageSource Download .tar.gz
qt6-baseNot in ISO
The lightweight of two Qt6 options (see also packages/qt6-full) -- just the qtbase submodule (QtCore/QtGui/QtWidgets/QtNetwork/etc, no QtDeclarative/QtSvg/QtMultimedia/QtWebEngine).
The lightweight of two Qt6 options (see also packages/qt6-full) -- just the qtbase submodule (QtCore/QtGui/QtWidgets/QtNetwork/etc, no QtDeclarative/QtSvg/QtMultimedia/QtWebEngine). Real, standalone submodule tarball from download.qt.io (verified it exists and is genuinely just qtbase, not the 972MB qt-everywhere monolith) -- enough to run a basic PySide6 QtWidgets example app without the multi-hour full build. User-requested extra, kept OUT of the ISO via ship_in_iso=false (same mechanism as packages/gimp, packages/audacity) -- download-only. Installs to /opt/qt6-base per BLFS's own recommendation (installing Qt6 into /usr makes it hard to find components/upgrade later) -- a distinct prefix from qt6-full so both could coexist if ever installed together, though in practice a user picks one or the other. Build commands adapted from BLFS x/qt6.html's own ./configure invocation, applied to the qtbase-only source tree.
6.11.2 Development 26.1 MB 22 Download PackageSource Download .tar.gz
qt6-full
BLFS x/qt6.html -- the full Qt-everywhere source tree (QtBase, QtDeclarative, QtSvg, QtMultimedia, QtWayland, QtQuick3D, etc).
BLFS x/qt6.html -- the full Qt-everywhere source tree (QtBase, QtDeclarative, QtSvg, QtMultimedia, QtWayland, QtQuick3D, etc). The heavyweight of two Qt6 options (see also packages/qt6-base, the qtbase-only lightweight alternative) -- 972MB source, real BLFS-documented multi-hour build. Follows BLFS's own real commands verbatim: qt3d/qtquick3dphysics/qtopcua removed (the book's own reasoning -- qt3d needs external libs this project doesn't have, qtquick3dphysics fails on 32-bit which is irrelevant here but kept for fidelity, qtopcua breaks against OpenSSL 3/4). qtwebengine is deliberately NOT removed from the source tree here (unlike the book, which drops it since it's genuinely a separate submodule/package -- see packages/qtwebengine, which depends on this package and is built as its own follow-on afterward against this installed Qt6). Installs to /opt/qt6-full (BLFS's own recommendation against installing into /usr). User-requested extra, kept OUT of the ISO via ship_in_iso=false (download-only, same mechanism as gimp/audacity/qt6-base). Cups and ICU included as real dependencies since both were already built in this project (Cups for BLFS/LinuxUltraOffice printing, ICU for the Chromium/Firefox chain) and Qt6 picks them up as real recommended features when present. Real operational note: because ship_in_iso=false means this package's destdir is never rsynced onto the live $LFS, packages/qtwebengine and packages/pyside6 -- which both genuinely need a real, usable Qt6 install inside the chroot at build time (qt-cmake, moc, uic, etc, not just a zip) -- needed a one-off manual `rsync -a .../qt6-full/destdir/ /mnt/lfs/` to temporarily make it available, with `/mnt/lfs/opt/qt6-full` removed again once those follow-on builds finished so it never leaks into a real ISO build.
6.12.0 Development 127.4 MB 44 Download PackageSource Download .tar.gz
qterminalNot in ISO
LXQt's terminal emulator (built on qtermwidget).
LXQt's terminal emulator (built on qtermwidget). LXQt 2.4 minimal-but-real desktop stack, ship_in_iso=false (Packages-page / Package Manager install only, like KDE Plasma). Built on .101 against /opt/qt6-full + KF6 6.29. cmake/meson --libdir=lib for LinuxDoors' non-multiarch layout.
2.4.0 Libraries 462.6 KB 31 Download PackageSource Download .tar.gz
qtermwidgetNot in ISO
Terminal-emulator widget library (fork of Konsole's kpty/TerminalDisplay).
Terminal-emulator widget library (fork of Konsole's kpty/TerminalDisplay). LXQt 2.4 minimal-but-real desktop stack, ship_in_iso=false (Packages-page / Package Manager install only, like KDE Plasma). Built on .101 against /opt/qt6-full + KF6 6.29. cmake/meson --libdir=lib for LinuxDoors' non-multiarch layout.
2.4.0 Libraries 397.0 KB 26 Download PackageSource Download .tar.gz
qtwaylandNot in ISO
Qt 6 Wayland add-on module (Qt6WaylandClient / Qt6WaylandCompositor).
Qt 6 Wayland add-on module (Qt6WaylandClient / Qt6WaylandCompositor). The prebuilt /opt/qt6-full was built X11-only; KF6 kguiaddons/kwindowsystem (KWaylandExtras) and Plasma's kwayland/layer-shell-qt/kwin all need it, even for the X11 Plasma session. Installs into /opt/qt6-full. ship_in_iso=false -- KDE Plasma is a Packages-page / Package Manager install, deliberately kept off linuxdoors.iso (XFCE + MATE are the shipped desktops). Built on .101 against the existing KF6 6.29 + Qt6 (/opt/qt6-full) stack from the Kdenlive work.
6.12.0 Libraries 1.6 MB 23 Download PackageSource Download .tar.gz
qtwebengine
BLFS x/qtwebengine.html -- Chromium's rendering engine embedded in Qt (genuinely Chromium-scale: BLFS's own estimate is 12GB disk, 44 SBU build time).
BLFS x/qtwebengine.html -- Chromium's rendering engine embedded in Qt (genuinely Chromium-scale: BLFS's own estimate is 12GB disk, 44 SBU build time). User-requested addition to the Qt6 package set, built as its OWN separate package against the already-installed packages/qt6-full (a real separate submodule tarball, not part of qt-everywhere -- confirmed directly from the book). Kept OUT of the ISO via ship_in_iso=false, same as qt6-base/qt6-full/gimp/audacity. Real dependency chain confirmed against the live book: required deps html5lib (pip-installed inline, a tiny pure-Python package, not worth its own LinuxDoors package entry), nodejs, nss, pciutils, rust-bindgen, Cups, and Qt6 itself -- nodejs/nss/rust-bindgen were already built for this project's earlier Chromium/Firefox chain work, and icu/cups/pciutils were likewise already present, so the only genuinely new dependency is html5lib. Deliberately does NOT force QT_FEATURE_webengine_system_ffmpeg=ON or QT_FEATURE_webengine_webrtc_pipewire=ON the way the book's own literal command does -- this project has neither a system ffmpeg nor pipewire package built, and forcing those flags ON would hard-fail configure (same class of gotcha hit repeatedly in the GIMP dependency chain: an explicit =ON feature flag needs the real library present, no auto-fallback). Left at their default (auto) instead, which falls through to QtWebEngine's own bundled/vendored copies of ffmpeg and WebRTC internals within its Chromium-derived third_party/ tree -- the same 'build using the vendored copy rather than pre-building every codec library separately' approach that already worked cleanly for this project's real ungoogled-chromium build. QT_FEATURE_webengine_system_icu=ON is kept (a real freebie -- ICU is already built) and QT_FEATURE_webengine_proprietary_codecs=ON is kept (H.264/AAC support, a compile-time flag with no extra package cost). Real operational gotcha hit and worth remembering: since qt6-full itself has ship_in_iso=false, its destdir is never rsynced onto the live $LFS by the normal engine flow -- but qtwebengine's own build genuinely needs a real, usable Qt6 install inside the chroot at build time (qt-cmake, moc, uic, etc.), not just a downloadable zip. Fixed by manually rsync-ing qt6-full's already-captured destdir (/mnt/lfs/build-tmp/qt6-full/destdir/) onto the live $LFS directly (bypassing the engine, a one-off `rsync -a .../destdir/ /mnt/lfs/`) just long enough to build qtwebengine and pyside6 against it, then removing /mnt/lfs/opt/qt6-full again afterward so it never leaks into a real ISO build. A second real gotcha, hit while polling this exact build: `pgrep -f` matches the FULL command line of every process, including the poller's OWN invoking shell if the search pattern text appears in it -- an unbracketed `pgrep -f 'qt6-full/build.sh'` falsely reported the qt6-full build as 'still running' for 4+ hours after it had genuinely finished (ground truth: destdir file count stable, qmake6/qtpaths6 present with real timestamps matching the log's last-write time, zero real ninja/cc1plus/make processes in the actual process tree). Same failure class already documented elsewhere in this project for `pkill -f`. Fixed by bracketing the pattern's first character (`[q]twebengine/build.sh`) in the poller used for this build. A third real gotcha, caught by an actual build failure: Qt6's own tools (qtpaths, moc, uic, ...) installed under /opt/qt6-full can't find their own shared libraries at runtime ('libQt6Core.so.6: cannot open shared object file') since that prefix was never added to the dynamic linker's search path -- fixed with `export LD_LIBRARY_PATH=/opt/qt6-full/lib:$LD_LIBRARY_PATH` in build.sh (same fix applied to packages/pyside6 proactively, since it depends on the same tools). 2026-10-10: rebuilt as 6.11.2-1 against Qt 6.12.0 (QtWebEngine 6.12 is not released yet; BLFS pairs QtWebEngine 6.11.2 with Qt 6.12.0 the same way).
6.11.2-1 Development 159.3 MB 36 Download PackageSource Download .tar.gz
qtxdg-toolsNot in ISO
Runtime companion CLI (qtxdg-mat) for libqtxdg's default-app / mime handling.
Runtime companion CLI (qtxdg-mat) for libqtxdg's default-app / mime handling. LXQt 2.4 minimal-but-real desktop stack, ship_in_iso=false (Packages-page / Package Manager install only, like KDE Plasma). Built on .101 against /opt/qt6-full + KF6 6.29. cmake/meson --libdir=lib for LinuxDoors' non-multiarch layout.
4.4.0 Libraries 34.5 KB 24 Download PackageSource Download .tar.gz
readline
LFS ch8.
LFS ch8. Skips the optional doc/*.{ps,pdf,html,dvi} install step (not always fully generated, and not essential). Security/update pass 2026-10-14. Upstream patch level 6 (readline83-001..006) applied in build.sh; 001 replaces the LFS input.c sed. readline-8.3.tar.gz sha256 pinned (md5 matches the LFS 13.1 md5sums list).
8.3.6 Core System 891.0 KB 30 Download PackageSource Download .tar.gz
rust-bindgen
Real gap found while building packages/ungoogled-chromium with real Rust wired in for the first time (rust_sysroot_absolute=/opt/rustc-chromium): ninja failed wanting '../../third_party/rust-toolchain/bin/bindgen', a...
Real gap found while building packages/ungoogled-chromium with real Rust wired in for the first time (rust_sysroot_absolute=/opt/rustc-chromium): ninja failed wanting '../../third_party/rust-toolchain/bin/bindgen', a SEPARATE GN arg (rust_bindgen_root, build/config/rust.gni) from rust_sysroot_absolute -- Chromium's own Rust toolchain bundles bindgen-cli + rustfmt + libclang together under third_party/rust-toolchain, but rust_sysroot_absolute only covers the rustc/cargo/std side. bindgen itself is not part of the Rust distribution at all -- it's a real, independent crates.io tool (rust-lang/rust-bindgen, the C/C++-header-to-Rust-FFI-bindings generator), confirmed via crates.io's own API (max_stable_version 0.72.1) rather than guessed. Built here via `cargo install bindgen-cli --locked --root <destdir>/opt/rust-bindgen-tools`, using this project's own already-built rustc/cargo (packages/rustc, 1.97.1 -- bindgen-cli's own MSRV is well below that) and clang-chromium's libclang.so (LIBCLANG_PATH, since bindgen-cli's own build links against libclang via the clang-sys crate) rather than trying to build a fourth LLVM/clang from scratch. Chromium's build/rust/rust_bindgen.gni expects rust_bindgen_root to contain bin/bindgen, bin/rustfmt, and lib/ (for libclang) all under ONE root -- rustfmt and libclang aren't produced by this package's own build, so build.sh symlinks them in from packages/rustc (/opt/rustc/bin/rustfmt) and packages/clang-chromium (/opt/clang-chromium/lib) respectively, both of which already exist permanently on the real system by the time ungoogled-chromium builds (declared as this package's own real deps). packages/ungoogled-chromium/build.sh then sets rust_bindgen_root="/opt/rust-bindgen-tools" in args.gn -- an absolute-path override of the same kind already proven working for rust_sysroot_absolute.
0.72.1 Libraries 3.0 MB 28 Download PackageSource Download .tar.gz
rustc
BLFS general/rust.html.
BLFS general/rust.html. Foundational piece for real Firefox (user's explicit 'reopen the Rust question' direction). Downloads a prebuilt stage0 bootstrap binary at build time (standard rustc bootstrap, requires the chroot to reach the internet -- confirmed working since the DHCP/networking fix). Installs to /opt/rustc-1.97.1 with a /opt/rustc symlink, NOT /usr -- this is the book's own convention (rustc ships its own toolchain layout), so downstream packages (Firefox) need /opt/rustc/bin on PATH. Uses DESTDIR="$PKG_DESTDIR" ./x.py install like every other destdir-capture package in this project; if x.py's installer doesn't honor DESTDIR the way autotools/cmake do, this needs revisiting after a real build attempt (see CLAUDE.md's verify-against-real-build discipline).
1.99.0 Development 105.7 MB 35 Download PackageSource Download .tar.gz