Packages

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

PackageVersionCategorySizeDownloads
frei0rNot in ISO
BLFS multimedia/frei0r.html -- frei0r video effect plugin collection, used by MLT (-DMOD_FREI0R=ON) so Shotcut/Kdenlive get their filter/transition library.
BLFS multimedia/frei0r.html -- frei0r video effect plugin collection, used by MLT (-DMOD_FREI0R=ON) so Shotcut/Kdenlive get their filter/transition library. ship_in_iso=false (video-editing feature = packages only). CMake; optional OpenCV/cairo facedetect/cairo plugins left off (not built here). --libdir=lib for LinuxDoors' non-multiarch layout.
3.6.0 Multimedia 1.2 MB 44 Download PackageSource Download .tar.gz
fribidi
BLFS.
BLFS. Bidirectional text algorithm, needed by pango -- a real dependency that surfaced as a build failure (pango's meson.build requires it) rather than being pre-planned. Skips the optional test suite.
1.0.17 Libraries 65.7 KB 45 Download PackageSource Download .tar.gz
fuse3
Real libfuse3, added specifically so an AppImage (type2, squashfs-embedded) can run directly -- ./X.AppImage, or a plain double-click with the executable bit set -- exactly the way it does on every other real Linux di...
Real libfuse3, added specifically so an AppImage (type2, squashfs-embedded) can run directly -- ./X.AppImage, or a plain double-click with the executable bit set -- exactly the way it does on every other real Linux distro, with no LinuxDoors-specific wrapper needed at all. Before this, LinuxDoors shipped no FUSE support whatsoever (CONFIG_FUSE_FS was never set in packages/linux's kernel config, confirmed via the real built config), so any AppImage's own internal FUSE-mount attempt failed immediately with 'Cannot mount AppImage, please check your FUSE setup' and the process exited before the application ever started -- the only way to run one at all was the extract-and-run fallback via the linuxdoors-run-appimage wrapper. Real upstream source (github.com/libfuse/libfuse, tag fuse-3.18.3, the current stable release, real sha256 computed from the actual downloaded tarball). Plain meson build, minimal real dependencies (only pthread -- liburing/libnuma for the optional io_uring path are both 'required: false' in the real meson.build and simply skipped since neither is built in this project). 'useroot=true' (the real, documented meson option, on by default) makes libfuse's own install step set the owner/setuid bits on fusermount3/mount.fuse3 automatically when 'ninja install' runs as actual root -- exactly the exec_context here (chroot_root) -- so no separate manual chmod/chown step is needed; setuid fusermount3 is the same traditional, universally-compatible mechanism every mainstream distro ships, letting an unprivileged user mount their own FUSE filesystem (fusermount3 itself does the actual privilege/safety validation internally, the same way this project's own hand-authored packages/sudo delegates its real security decisions to PAM rather than reinventing them). Also installs the real upstream udev rule (util/udev.rules: 'KERNEL=="fuse", MODE="0666"', to /usr/lib/udev/rules.d/ so /dev/fuse is usable by a regular user the moment the kernel module/built-in driver creates it) and the real upstream /etc/fuse.conf template (util/fuse.conf, documenting user_allow_other/mount_max -- shipped commented-out/inert, matching upstream's own default). Companion to a packages/linux kernel-config change enabling CONFIG_FUSE_FS -- the real root-cause fix for 'AppImages must load directly, no wrapper, on every desktop environment LinuxDoors provides' (explicit user requirement) rather than only ever relying on the extract-and-run wrapper. linuxdoors-run-appimage is NOT removed or deprecated by this -- it stays as the recommended path for keeping a *persistent* extraction cache across reboots (since /tmp is tmpfs) for anyone who prefers that, but a bare +x'd AppImage now also just works on its own, matching every other real Linux distribution.
3.18.3 Core System 196.4 KB 24 Download PackageSource Download .tar.gz
garcon
BLFS XFCE.
BLFS XFCE. Freedesktop menu library used by xfce4-panel/xfce4-appfinder. No test suite.
4.20.0 Libraries 438.4 KB 46 Download PackageSource Download .tar.gz
gawk
LFS ch8, final native build.
LFS ch8, final native build. Skips the optional test suite and doc install.
5.4.1 Core System 3.3 MB 48 Download PackageSource Download .tar.gz
gawk-tmp
LFS ch6 temporary tools stage.
5.4.1 Toolchain — 0 not yet builtSource Download .tar.gz
gcc
LFS ch8, final native GCC build (the one that actually ships).
LFS ch8, final native GCC build (the one that actually ships). Bumped 14.2.0 -> 14.4.0 (2026-09-18 upstream-currency pass) -- a same-major point release, ABI-compatible with everything already built by 14.2.0, so this replaces only the final native compiler used going forward; binutils-pass1/gcc-pass1/gcc-pass2 (the temporary bootstrap toolchain) deliberately stay at 14.2.0 since that cross-compiler already did its job and doesn't need to match. Real sha256 verified for the first time here (was a PLACEHOLDER before). The live book has since moved to 16.2.0 -- see CLAUDE.md's note on version drift; a GCC major-version jump is a separate, bigger decision not made here. Skips: the post-install chown (only relevant if `make check` ran as a non-root tester user, which we don't do), the liblto_plugin.so symlink (its source path depends on querying the live not-yet-installed new gcc, which isn't live until after this engine's capture+rsync step -- ordering hazard, skipped), and the interactive verification block. Also adds `--disable-libsanitizer` (not in the book's flags, needed here because our linux-headers build didn't export `linux/scc.h`, which libsanitizer's build requires -- same fix gcc-pass2 already needed). Bumped 14.4.0 -> 16.2.0 (2026-10-10, matches LFS r13.1-21; md5 matches the book's md5sums). GCC 15+ defaults C to -std=gnu23, so every package was rebuilt on it afterwards and older C code fixed per package.
16.2.0 Development 791.7 MB 58 Download PackageSource Download .tar.gz
gcc-libstdc++
LFS ch5, builds libstdc++-v3 from a fresh extraction of the same gcc-14.2.0 tarball gcc-pass1 used (the book reuses gcc-pass1's already-extracted+patched tree; our engine re-extracts the same cached tarball instead, s...
LFS ch5, builds libstdc++-v3 from a fresh extraction of the same gcc-14.2.0 tarball gcc-pass1 used (the book reuses gcc-pass1's already-extracted+patched tree; our engine re-extracts the same cached tarball instead, since each package gets its own isolated build-tmp dir).
14.2.0 Core System 6.6 MB 46 Download PackageSource Download .tar.gz
gcc-pass1
LFS ch5 cross GCC pass 1.
LFS ch5 cross GCC pass 1. gmp/mpfr/mpc are fetched as extra_sources and unpacked inside the gcc tree by build.sh, per the book.
14.2.0 Toolchain — 0 not yet builtSource Download .tar.gz
gcc-pass2
LFS ch6, final package of the temporary tools stage: a native (not cross) GCC that will run inside the chroot.
LFS ch6, final package of the temporary tools stage: a native (not cross) GCC that will run inside the chroot. Superseded by chapter 8's final GCC build, so transient like the rest of ch6. Reuses a fresh extraction of the same gcc-14.2.0 source (and same gmp/mpfr/mpc versions) as gcc-pass1, for consistency with the already-built toolchain.
14.2.0 Toolchain — 0 not yet builtSource Download .tar.gz
gcrNot in ISO
gcr-4 -- crypto UI + PKCS#11 glue.
gcr-4 -- crypto UI + PKCS#11 glue. gnome-keyring and gnome-shell's prompter need it. ship_in_iso=false -- GNOME Shell is a Packages-page / Package Manager install, kept off linuxdoors.iso (XFCE + MATE are the shipped desktops). Built on .101 against the existing rustc/llvm/p11-kit/librsvg/gi/glib2/pango/cairo stack; only the GNOME-specific libraries are new packages.
4.3.1 Libraries 847.2 KB 48 Download PackageSource Download .tar.gz
gcr3Not in ISO
gcr 3.41.2 (legacy) -- provides gck-1 + gcr-base-3, still required by gnome-keyring 48 (not yet ported to gcr-4/gck-2).
gcr 3.41.2 (legacy) -- provides gck-1 + gcr-base-3, still required by gnome-keyring 48 (not yet ported to gcr-4/gck-2). Coexists with the gcr-4 package (different sonames/headers). Built UI-less (-Dgtk=false). ship_in_iso=false, built on .101.
3.41.2 Libraries 896.0 KB 42 Download PackageSource Download .tar.gz
gdbm
LFS ch8.
LFS ch8. Skips the optional make check.
1.26 Core System 648.1 KB 46 Download PackageSource Download .tar.gz
gdk-pixbuf
BLFS, adapted.
BLFS, adapted. The book disables built-in png/gif/jpeg/tiff loaders in favor of 'glycin' (a Rust-based sandboxed image loader) -- we don't have a Rust toolchain and don't want one just for this, so instead we enable the classic built-in png/jpeg/gif loaders directly (using libpng/libjpeg-turbo, both already built) and explicitly disable glycin. tiff stays disabled (no libtiff built). legacy_xpm=enabled added later -- disabled by default upstream since 2.42.11, but NetSurf's glib-compile-resources step needs a working XPM loader to embed its app icon (netsurf.xpm), surfaced as a real build failure. introspection=enabled added later still, for the Phase 1.5 GTK3+PyGObject installer -- gtk3's own introspection rebuild hard-failed with "Couldn't find include 'GdkPixbuf-2.0.gir'" since this package's original build predates gobject-introspection existing (introspection option defaulted to auto and silently produced no .gir, same silent-skip ordering-hazard class as the ncurses/pkg-config bug documented in the chapter 8 section above). The post-install gdk-pixbuf-query-loaders --update-cache step needs real (not $PKG_DESTDIR-prefixed) paths to produce a correct cache, so build.sh applies to the live chroot first (same pattern as x7lib), runs the tool for real, then copies the generated loaders.cache back into $PKG_DESTDIR so it ships in the zip too. Skips the optional docs/test suite.
2.44.8 Libraries 6.5 MB 53 Download PackageSource Download .tar.gz
gdmNot in ISO
GDM 48 -- built primarily for libgdm + Gdm-1.0 typelib, which gnome-shell hard-imports even in a non-GDM session.
GDM 48 -- built primarily for libgdm + Gdm-1.0 typelib, which gnome-shell hard-imports even in a non-GDM session. LinuxDoors still uses lightdm as the display manager; the gdm.service is shipped but not enabled. plymouth/selinux/xdmcp/tcp-wrappers off. ship_in_iso=false, built on .101.
48.0 Desktop 1.7 MB 44 Download PackageSource Download .tar.gz
gegl
BLFS general/gegl.html (Generic Graphics Library -- GIMP's non-destructive image-processing engine).
BLFS general/gegl.html (Generic Graphics Library -- GIMP's non-destructive image-processing engine). Required by GIMP 3.2.4 directly. Real dependency chain confirmed against the live book: gegl needs babl + json-glib, both already built for this exact chain. Skips the test suite and the optional Graphviz/Pygments/PyGObject-based documentation/introspection extras (recommended, not required).
0.4.72 Libraries 7.3 MB 57 Download PackageSource Download .tar.gz
geoclueNot in ISO
geoclue 2.7.2 -- org.freedesktop.GeoClue2 location service + Geoclue-2.0 typelib.
geoclue 2.7.2 -- org.freedesktop.GeoClue2 location service + Geoclue-2.0 typelib. gnome-shell imports it (night-light/location indicator); gnome-settings-daemon needs libgeoclue-2.0. Built without ModemManager/3G/nmea. ship_in_iso=false, built on .101.
2.8.2 Libraries 284.9 KB 44 Download PackageSource Download .tar.gz
geocode-glibNot in ISO
geocode-glib -- reverse-geocoding helper (libsoup3 build).
geocode-glib -- reverse-geocoding helper (libsoup3 build). gnome-settings-daemon uses it for timezone/night-light. ship_in_iso=false, built on .101.
3.26.4 Libraries 146.9 KB 46 Download PackageSource Download .tar.gz
gettext
LFS ch8, final full build (ch7's gettext-tmp only installed 3 bootstrap binaries).
LFS ch8, final full build (ch7's gettext-tmp only installed 3 bootstrap binaries). Skips the optional make check.
1.0 Core System 10.8 MB 43 Download PackageSource Download .tar.gz
gettext-tmp
LFS ch7, first package built inside the chroot.
LFS ch7, first package built inside the chroot. Minimal build -- only installs msgfmt/msgmerge/xgettext, needed as build-time tools for later packages. Superseded by chapter 8's full gettext build.
1.0 Toolchain — 0 not yet builtSource Download .tar.gz
gexiv2
BLFS's current 'svn'/dev-edition page documents gexiv2-0.16.2, but that's for a newer GIMP dev version than what this project builds -- GIMP 3.2.4's own meson.build hard-pins gexiv2 to dependency('gexiv2', version: ['...
BLFS's current 'svn'/dev-edition page documents gexiv2-0.16.2, but that's for a newer GIMP dev version than what this project builds -- GIMP 3.2.4's own meson.build hard-pins gexiv2 to dependency('gexiv2', version: ['>=0.14.0', '<0.15.0']), confirmed directly from GIMP's real meson.build source. Building 0.16.2 first (per BLFS) failed with 'Dependency gexiv2 not found' even though it was genuinely installed -- root cause was two-fold: (1) the real version constraint excludes 0.16.x entirely, and (2) 0.16.x's own .pc file is versioned (gexiv2-0.16.pc, Name: GExiv2) while GIMP's unversioned dependency('gexiv2', ...) call needs a plain gexiv2.pc, which is what the 0.14.x line actually ships. Downgraded to 0.14.7 (the latest real patch release in the required 0.14.x line, confirmed via download.gnome.org's own directory listing) to satisfy both. Required by GIMP 3.2.4 directly. Skips the optional test suite (meson configure -D tests=true). Real build failure hit and fixed on the original 0.16.2 attempt, still applies here: meson.build unconditionally tries to find a Vala compiler (valac) when the 'vapi' option is enabled, which it is by default -- this project has no Vala toolchain and doesn't need Vala bindings for GIMP's C-level use of gexiv2, so '-D vapi=false' skips generating them and avoids the dependency entirely.
0.14.7 Libraries 151.6 KB 44 Download PackageSource Download .tar.gz
giflibNot in ISO
giflib 5.2.2 -- GIF image read/write.
giflib 5.2.2 -- GIF image read/write. Plain Makefile (BLFS giflib recipe). EFL's evas gif image loader requires it. ship_in_iso=false.
5.2.2 Libraries 190.1 KB 36 Download PackageSource Download .tar.gz
gimpNot in ISO
BLFS xsoft/gimp.html (GNU Image Manipulation Program).
BLFS xsoft/gimp.html (GNU Image Manipulation Program). User-requested extra, explicitly kept OUT of linuxdoors.iso (ship_in_iso=false -- see engine/builder.py's Package.ship_in_iso / engine/manifest.py) so it's a real, downloadable/installable package on linuxdoors.com and via the OS package manager, without inflating the ISO's own size. Real GIMP 3.2.4 uses GTK3 (not GTK4 -- that's still on GIMP's own roadmap, not yet shipped), so this project's existing, already-working GTK3 stack (with introspection enabled, from the Phase 1.5 installer work) is reused directly -- no new GUI toolkit needed. Dependency chain assembled fresh for this package, verified against the live BLFS book package-by-package: babl -> gegl (+ json-glib) -> {exiv2 (+ brotli, + inih) -> gexiv2} + {libmypaint (+ json-c) -> mypaint-brushes} + {cargo-c -> librsvg} + {openjpeg -> poppler} + tiff + lcms2, all landing on the live $LFS normally (ship_in_iso defaults true for all of these -- only the final gimp package itself is excluded from the ISO). AppStream was initially assumed skippable via -D appdata-test=disabled (avoids the appdata.xml *validation* step) -- also wrong: GIMP's meson.build has a second, separate, unconditional dependency('appstream') lookup elsewhere, caught by a real 'Dependency "appstream" not found' failure. Built the real AppStream (see packages/appstream/metadata.json) -- turned out to need neither elogind nor Wayland despite BLFS listing both as 'Required' (confirmed directly from AppStream's own meson.build: systemd integration is satisfied by this project's real systemd/libsystemd, and Wayland isn't referenced in the build at all), so the real new dependency surface was much smaller than first feared (just libfyaml + libxmlb). glib-networking was initially assumed skippable (theory: only needed for GIMP's optional startup update-check feature, disabled via -D check-update=no) -- that theory was wrong, caught by a real build failure: GIMP's meson.build has an unconditional 'Test for glib-networking failed. This is required.' check with no disable flag. Built the real chain instead: libunistring, libtasn1, nettle, p11-kit -> gnutls -> glib-networking (see packages/glib-networking/metadata.json). -D headless-tests=disabled per the book (avoids needing xvfb-run/dbus-run-session). Test with the LinuxDoors libvirt test VM (hot-patch the built binary + its real dependency closure onto the live domain and launch it under a real X session), not the disposable dev/build VM, since ship_in_iso=false means it never lands on that VM's own live $LFS at all -- verification has to happen against a real running desktop.
3.2.6 Graphics 40.0 MB 50 Download PackageSource Download .tar.gz
gjsNot in ISO
GJS -- GNOME JavaScript bindings (embeds mozjs).
GJS -- GNOME JavaScript bindings (embeds mozjs). GNOME Shell is written in it. ship_in_iso=false -- GNOME Shell is a Packages-page / Package Manager install, kept off linuxdoors.iso (XFCE + MATE are the shipped desktops). Built on .101 against the existing rustc/llvm/p11-kit/librsvg/gi/glib2/pango/cairo stack; only the GNOME-specific libraries are new packages.
1.84.2 Libraries 869.0 KB 48 Download PackageSource Download .tar.gz