Packages
624 packages, searchable and sortable. Every one of these already exists as a real, built LinuxDoors package.
| Package | Version | Category | Size | Downloads | |
|---|---|---|---|---|---|
glibc-ch8 LFS ch8, named glibc-ch8 (not plain 'glibc') to avoid colliding with the already-built chapter 5 cross-compiled glibc package, which many other packages' "depends" reference by that name -- an intentional exception to... LFS ch8, named glibc-ch8 (not plain 'glibc') to avoid colliding with the already-built chapter 5 cross-compiled glibc package, which many other packages' "depends" reference by that name -- an intentional exception to the usual -tmp naming convention, documented in CLAUDE.md. This is a REAL full native rebuild, not a transient bootstrap build. Simplifications from the book: skips the optional test suite, skips the live-system nscd-disable steps (not applicable to a fresh chroot build), skips the early partial-DESTDIR .so install trick (not needed since nothing is live-replacing its own running libc here), uses `make localedata/install-locales` for the full locale set instead of a curated list, and defaults /etc/localtime to UTC instead of the book's interactive tzselect step -- installers/users can reconfigure the timezone later. |
2.44 | Core System | 75.1 MB | 31 | Download PackageSource Download .tar.gz |
glibmmNot in ISO C++ bindings for glib/gio -- the 2.66 series, which provides the glibmm-2.4 and giomm-2.4 pkg-config modules gtkmm-3.0 / mate-system-monitor require (glibmm-2.68+ is the gtkmm-4 line). C++ bindings for glib/gio -- the 2.66 series, which provides the glibmm-2.4 and giomm-2.4 pkg-config modules gtkmm-3.0 / mate-system-monitor require (glibmm-2.68+ is the gtkmm-4 line). meson; --libdir=lib. ship_in_iso:false. |
2.66.10 | Libraries | 1.7 MB | 22 | Download PackageSource Download .tar.gz |
glib-networking BLFS basicnet/glib-networking.html (GIO TLS backend modules). BLFS basicnet/glib-networking.html (GIO TLS backend modules). Originally scoped OUT of GIMP's dependency chain (see packages/gimp/metadata.json's original notes) on the theory it was only needed for GIMP's optional startup update-check feature -- that theory was wrong. GIMP 3.2.4's meson.build has a real, unconditional 'Test for glib-networking failed. This is required.' check (confirmed directly in the live meson.build, not gated behind -D check-update or any other option), so this whole real GnuTLS chain (libunistring, libtasn1, nettle, p11-kit, gnutls) turned out to be a genuine hard requirement after all, caught by a real build failure. -D libproxy=disabled per the book (this project has no libproxy). |
2.90.0 | Libraries | 196.5 KB | 30 | Download PackageSource Download .tar.gz |
glycinNot in ISO Glycin -- GNOME's sandboxed image-loading library (Rust, using seccomp to sandbox each format decoder in its own subprocess), a hard requirement of gnome-shell 51.0's own meson.build (glycin-2, >= 2.0, no way to disab... Glycin -- GNOME's sandboxed image-loading library (Rust, using seccomp to sandbox each format decoder in its own subprocess), a hard requirement of gnome-shell 51.0's own meson.build (glycin-2, >= 2.0, no way to disable). Added 2026-09-18, part of the GNOME 51 push. Isolated to /opt/gnome51 -- see packages/libgnome-desktop/build.sh for the full isolation reasoning; nothing else in this project uses glycin. Real sha256 verified against GNOME's own published sha256sum file. Built via meson+cargo (a Rust project) against this project's existing rustc/cargo toolchain -- not yet build-verified as of this note; real errors (likely around cargo's crates.io fetch needing a CA trust store, matching the same class of gap already hit for pip/curl/npm elsewhere in this project) get fixed against the actual build.sh as they surface. |
2.2.2 | Libraries | 7.0 MB | 14 | Download PackageSource Download .tar.gz |
gmp LFS ch8. LFS ch8. Skips make html/install-html (docs) and the (book-recommended but optional for us) make check test suite. |
6.3.0 | Core System | 465.2 KB | 27 | Download PackageSource Download .tar.gz |
gnome51-desktopNot in ISO One-statement installer for GNOME 51, LinuxDoors' headless-over-VNC GNOME desktop -- 'pkg install gnome51-desktop' resolves gnome-shell (which itself already depends on mutter/gjs/gnome-session/gnome-settings-daemon)... One-statement installer for GNOME 51, LinuxDoors' headless-over-VNC GNOME desktop -- 'pkg install gnome51-desktop' resolves gnome-shell (which itself already depends on mutter/gjs/gnome-session/gnome-settings-daemon) plus gnome-remote-desktop (the real VNC server). Same marker-metapackage pattern as packages/lxqt-desktop / packages/gnome-desktop (source.url is a label; resolve_source never contacts it -- the tarball is pre-placed in download/ with a matching sha256; ships no binaries of its own, just a README so the captured zip/manifest are non-empty). Unlike every other desktop entry on linuxdoors.com/desktops, GNOME 51 dropped X11 entirely -- there is no local Xorg session and nothing to pick from a login-screen session menu. Reaching it for real needs LinuxDoors' own patched X2GoClientGnome51Vnc.AppImage (x2goclient-gnome51vnc + linuxdoors-vncviewer packages) connecting over x2go's 'GNOME 51 (VNC)' session type, which tunnels a local port to the gnome-remote-desktop VNC server this metapackage's own gnome-remote-desktop dependency provides. Added specifically so linuxdoors.com/desktops lists a GNOME 51 entry with a real, working one-line install command, matching the site's own established pattern for every other desktop, rather than leaving it undocumented while GNOME 48 (a genuinely different, X11-based desktop) has its own entry. || 2026-09-28: `gnome-session-51` added explicitly to `depends` -- the plain `gnome-session` package was split into `gnome-session` (real, /usr, GNOME 48) and `gnome-session-51` (the /opt/gnome51 headless-VNC build this metapackage actually needs) after they'd been silently colliding under one build.sh for a while. `gnome-shell`'s own comment above ("already depends on ... gnome-session") now means the real GNOME 48 gnome-session, NOT this one -- relying on that transitive edge alone would have pulled the wrong package once the split landed, which is why `gnome-session-51` is now listed here directly. |
51.0 | Libraries | 2.4 KB | 11 | Download PackageSource Download .tar.gz |
gnome-backgroundsNot in ISO gnome-backgrounds -- the default wallpapers gnome-shell references. gnome-backgrounds -- the default wallpapers gnome-shell references. 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. || 48.0 -> 48.2.1 (2026-09-14 real upstream-currency bump, real sha256 computed from the downloaded tarball, archive integrity verified before trusting it). || Bumped 48.2.1 -> 51.0 (2026-09-18, part of the GNOME 51 push). Real sha256 verified against GNOME's own published sha256sum file. |
51.0.1 | Desktop | 40.7 MB | 22 | Download PackageSource Download .tar.gz |
gnome-control-centerNot in ISO gnome-control-center -- GNOME's real Settings app, added specifically for its Displays panel (user-reported: right-clicking / opening Settings to change resolution did nothing, because this whole app never existed on... gnome-control-center -- GNOME's real Settings app, added specifically for its Displays panel (user-reported: right-clicking / opening Settings to change resolution did nothing, because this whole app never existed on LinuxDoors -- only gnome-settings-daemon, the background daemon, was ever built). BLFS documents 50.4, but this project deliberately stays on GNOME 48 (GNOME 50 drops X11 entirely -- see memory gnome-50-x11-removed-stay-on-48.md), so 50.4 was tried first and rejected by a real build failure: it requires libadwaita >= 1.8, but this project has 1.7.6 (matching the GNOME 48 stack). Switched to 48.7 (the latest 48.x release), which matches the installed libadwaita/gtk4/gnome-desktop versions with no bump needed. Deliberately scoped down per explicit user choice ('minimal: just the Displays panel') -- panels/meson.build's `panels` list is patched (see build.sh) to keep only `display` (plus `keyboard`, which is a required `dependent_panels` entry other code paths assume exists, not optional). This drops the need for Bluetooth/ModemManager/Samba/Kerberos/gnome-online-accounts/gnome-bluetooth/libnma/libpwquality/Tecla entirely -- confirmed via panels/display/meson.build's own dependency() calls that Displays only needs colord, gnome_rr (from packages/gnome-desktop), upower-glib, and libm, all already built. snap/malcontent/wayland explicitly disabled (irrelevant on this X11-only setup); ibus/accountsservice/polkit/geoclue left enabled since all four were already built and the keyboard panel + shell chrome expect them. || Bumped 48.7 -> 51.0 (2026-09-18, part of the GNOME 51 push). Real sha256 verified against GNOME's own published sha256sum file. || Real build failure hit and fixed here (2026-09-19): 51.0's own meson.build requires gtk4 '>= 4.23.0' -- this project's built gtk4 is 4.22.5, one minor version short -- and with no matching system gtk4, meson fell through to its git-based subproject fallback, which itself then failed needing glib2 '>= 2.89.3' (this project has 2.88.3). Rather than chase that version cascade by upgrading the shared, project-wide gtk4/glib2 packages (real cross-cutting risk to everything else using them), checked 50.4's own real upstream meson.build directly (gitlab.gnome.org raw file view) first: gtk_version '>= 4.15.2', libadwaita_version '>= 1.8.alpha' -- both comfortably satisfied by this project's existing gtk4 4.22.5 / libadwaita 1.8.8, no rebuild of anything else needed. Downgraded to 50.4 (still real GNOME, still Wayland-native, still far newer than the previously-rejected 48.7). The cc-panel-loader.c patch step in build.sh had to be rewritten from exact-line matching to substring-matching-by-function-name, since 50.4's PANEL_TYPE(...) formatting (column-aligned, no space before the paren) differs from 51.0's (space before the paren, no alignment) -- confirmed directly by fetching and diffing both real source trees rather than assumed. |
50.4 | Libraries | 5.7 MB | 24 | Download PackageSource Download .tar.gz |
gnome-desktopNot in ISO One-statement installer for the GNOME 48 desktop -- 'pkg install gnome' resolves the whole GNOME 48 component set (gnome-shell + gnome-session + gnome-control-center + gnome-keyring + gnome-backgrounds + gnome-menus +... One-statement installer for the GNOME 48 desktop -- 'pkg install gnome' resolves the whole GNOME 48 component set (gnome-shell + gnome-session + gnome-control-center + gnome-keyring + gnome-backgrounds + gnome-menus + adwaita icon themes) plus their transitive deps (mutter 48, gjs, gnome-settings-daemon, gtk4, libadwaita, gnome-desktop, ...). Ships no binaries -- just /usr/share/doc/gnome/README as a marker so the zip/manifest are non-empty and uninstall works. Same 'local hand-authored asset as a pinned source' pattern as packages/sudo and packages/lxqt-desktop. Named 'gnome-desktop' to match budgie-desktop/lxqt-desktop; the shared library formerly called 'gnome-desktop' is now 'libgnome-desktop'. GNOME 48 is the last X11-capable series -- GNOME 49 disables the X11 session by default, GNOME 50 removed the X11 code entirely (Wayland-only), so this stays pinned to 48 -- x2go's own X11-based remote desktop needs it. Listed on linuxdoors.com/desktops. A parallel GNOME 51 chain (Wayland-only, remoted via gnome-remote-desktop/RDP instead of x2go's nxagent) is a SEPARATE metapackage, gnome51-desktop -- this one is untouched by that work. (2026-09-18: corrected after a real mistake -- an earlier edit this same session briefly, wrongly, overwrote this file's version/source with the real upstream libgnome-desktop-51.0 tarball data, which belongs on packages/libgnome-desktop instead. Reverted here; the 51.0 bump was moved to the correct package.) |
48 | Desktop | 1.9 KB | 29 | Download PackageSource Download .tar.gz |
gnome-keyringNot in ISO gnome-keyring -- secret/ssh/pkcs11 daemon. gnome-keyring -- secret/ssh/pkcs11 daemon. Provides the Secret Service for GNOME apps. 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. || Bumped 48.0 -> 51.1 (2026-09-18, part of the GNOME 51 push). Real sha256 verified against GNOME's own published sha256sum file. |
51.1 | Desktop | 1.8 MB | 24 | Download PackageSource Download .tar.gz |
gnome-menusNot in ISO gnome-menus -- the app-menu spec impl gnome-shell's app grid uses. |
3.38.1 | Desktop | 353.4 KB | 20 | Download PackageSource Download .tar.gz |
gnome-remote-desktopNot in ISO gnome-remote-desktop 51.0 -- the actual remote-desktop daemon, wrapping Mutter's org.gnome.Mutter.ScreenCast/RemoteDesktop D-Bus interfaces (see packages/mutter's own notes -- built with -Dremote_desktop=true specific... gnome-remote-desktop 51.0 -- the actual remote-desktop daemon, wrapping Mutter's org.gnome.Mutter.ScreenCast/RemoteDesktop D-Bus interfaces (see packages/mutter's own notes -- built with -Dremote_desktop=true specifically for this) into a real network protocol. Built with -Drdp=false -Dvnc=true, a deliberate choice confirmed with the user directly: RDP needs a massive chain (FreeRDP, a full TPM2 stack tss2-esys/mu/rc/tctildr, Kerberos, VAAPI/Vulkan hardware encoding) for the same end-user result the VNC backend gets with just packages/libvncserver -- both achieve 'connect from x2goclient to a real remote GNOME 51 desktop', VNC just gets there with a fraction of the new infrastructure. Isolated to /opt/gnome51 -- see packages/libgnome-desktop/build.sh for the full isolation reasoning. krb5 and tpm2-tss are real, confirmed build-time deps too -- gnome-remote-desktop's own meson.build calls dependency('krb5')/dependency('tss2-esys') UNCONDITIONALLY, before the rdp/vnc branch, regardless of which backend is actually selected. build.sh also patches a real upstream gap: grd-enable-service.c (the generic, backend-agnostic systemd-unit-toggle helper grdctl's 'vnc enable'/'headless' commands need) is only built inside `if have_rdp` in src/meson.build even though its own C code has zero RDP-specific logic -- patched to build unconditionally. Also ships a sysusers.d entry for the gnome-remote-desktop system user grdctl's own getpwnam() call requires (a real NULL-deref crash otherwise, root-caused via gdb). |
51.0 | Libraries | 413.3 KB | 12 | Download PackageSource Download .tar.gz |
gnome-sessionNot in ISO gnome-session -- the REAL /usr session manager behind the 'GNOME' and 'GNOME on Wayland' entries lightdm's own session picker shows. gnome-session -- the REAL /usr session manager behind the 'GNOME' and 'GNOME on Wayland' entries lightdm's own session picker shows. ship_in_iso=false -- GNOME is a Packages-page / Package Manager install, kept off linuxdoors.iso (XFCE + MATE are the shipped desktops). || 2026-09-28: REWRITTEN FROM SCRATCH for real reproducibility. This package's own build.sh had been silently repurposed to build the completely separate /opt/gnome51 headless-VNC feature for a long time (see the long history below, kept for the record) -- that content has been split out into its own dedicated packages/gnome-session-51 (same real functionality, unchanged, just correctly named so the two stop colliding). This package is now, for the first time since that repurposing, a real, verified, /usr-targeting build of the ACTUAL GNOME 48.0 session manager, built and tested for real (not just written and assumed) via `_drv_mm`-style engine.builder.build_package against a fresh chroot on .101. Real dependency additions verified against the actual upstream meson.build's own dependency() calls: gtk+-3.0 (NOT gtk4 -- gnome-session's own dialogs are GTK3; gnome-shell is the GTK4/libadwaita one), gnome-desktop-3.0 (libgnome-desktop), and ice/sm/x11/xtrans (all bundled in this project's x7lib meta-page, confirmed via the real .pc files already present on .101 before this rebuild). Dropped from the old /opt/gnome51-era depends list (xinit, pygobject3, python -- none referenced by the real gnome-session meson.build's own dependency() calls; harmless to have had them, just not actually needed here). Real fix carried over from the live, hand-patched version already proven working end-to-end (see packages/gnome-shell's own notes for the full diagnostic story, including a real screenshot of a working GNOME Wayland desktop): build.sh patches data/meson.build's `required_components` dict down to an empty list for the plain 'gnome' session (so RequiredComponents= in the generated /usr/share/gnome-session/sessions/gnome.session ends up just 'org.gnome.Shell', exactly matching the hand-made file already confirmed working) rather than shipping upstream's full default of Shell plus 16 org.gnome.SettingsDaemon.* plugin names -- this project's gnome-settings-daemon-48 was deliberately built with several plugins disabled (Smartcard confirmed off via -Dsmartcard=false) and the rest have never been individually verified to register their real D-Bus names at runtime; RequiredComponents= is a HARD requirement gnome-session-binary itself enforces (unlike the sibling gnome-session@gnome.target.d/gnome.session.conf systemd drop-in's Wants= lines, which are soft and were left at their real, full upstream value since a missing Wants= target is harmless). Widen the trimmed list later, one real org.gnome.SettingsDaemon.* entry at a time, only after confirming each one genuinely registers live (e.g. `busctl --user list | grep SettingsDaemon`) -- a listed-but-never-appearing entry reproduces the exact 'session failed'/'Cannot open display' crash this whole investigation started from. Also confirmed for real: upstream's own gnome-wayland.desktop.in.in already outputs literally 'gnome-wayland.desktop' (not 'gnome.desktop') into wayland-sessions/ -- the earlier hand-made file's rename to gnome-wayland.desktop (done to dodge an apparent collision with xsessions/gnome.desktop) turns out to exactly match real upstream naming, not a LinuxDoors-specific workaround; no renaming logic needed in this build.sh at all. Build produces both /usr/share/xsessions/gnome.desktop ('GNOME') and /usr/share/wayland-sessions/gnome-wayland.desktop ('GNOME on Wayland') automatically, plus the real /usr/share/gnome-session/sessions/gnome.session file and the gnome-session@gnome.target.d/gnome.session.conf systemd drop-in, all from one real, ordinary meson build -- no more manual file creation needed on any future fresh install once this package is built and installed via `pkg install gnome-desktop`. Still needed on top |
48.0 | Desktop | 499.3 KB | 22 | Download PackageSource Download .tar.gz |
gnome-session-51Not in ISO 2026-09-28: SPLIT OUT of the old `gnome-session` package -- this is the real, dedicated, isolated-to-/opt/gnome51 build (headless GNOME 51 desktop, reachable over VNC via gnome-remote-desktop). 2026-09-28: SPLIT OUT of the old `gnome-session` package -- this is the real, dedicated, isolated-to-/opt/gnome51 build (headless GNOME 51 desktop, reachable over VNC via gnome-remote-desktop). Renamed to `gnome-session-51` specifically so `gnome-session` (the plain name) is free to go back to being the real, /usr-targeting, GNOME 48 build that the actual login-screen GNOME/GNOME-on-Wayland sessions need -- the two were colliding under one package/build.sh for a long time (this build.sh used to silently repurpose the plain `gnome-session` package's own build.sh to target /opt/gnome51, leaving the real 48.0 /usr build with no reproducible source at all -- see packages/gnome-session's own notes for that whole story and its real fix). Nothing about this package's own actual content changed in the split -- same build.sh, same /opt/gnome51 prefix, same linuxdoors-gnome51-vnc/linuxdoors-gnome51-resolution/linuxdoors-gnome51-sessionmanager tooling, same real, confirmed-working headless-GNOME-51-over-VNC feature. `packages/gnome51-desktop` (the metapackage `pkg install gnome51-desktop` installs) should depend on this package directly by name (`gnome-session-51`) rather than relying on it being pulled in incidentally through `gnome-shell`/`gnome-remote-desktop` -- check and fix that dependency list if it doesn't already list `gnome-session-51` explicitly. |
51.0 | Libraries | 430.2 KB | 11 | Download PackageSource Download .tar.gz |
gnome-settings-daemonNot in ISO gnome-settings-daemon -- applies GSettings to the running session (keyboard, display, media keys, power). gnome-settings-daemon -- applies GSettings to the running session (keyboard, display, media keys, power). REWORKED 2026-09-20 into a GNOME 51 build isolated to /opt/gnome51 (same discipline as mutter/gnome-shell/gnome-session/gnome-control-center/libgnome-desktop in this exact stack -- see libgnome-desktop's own build.sh for the full isolation reasoning) -- the OLDER 48.1, --prefix=/usr, GTK4-listed recipe this file used to be is gone; the real GNOME 48 desktop's already-installed /usr copy from that earlier build is untouched by this change, only a FUTURE rebuild of this package now targets /opt/gnome51 instead. || WHY THIS WAS BUILT: a real user request (2026-09-20), after building linuxdoors-gnome51-resolution (a small app to change the headless GNOME 51 session's resolution from inside the session itself) -- the user wanted a keyboard shortcut to open it, and nothing in this isolated stack was actually listening for gsettings-configured custom keybindings at all, since gnome-settings-daemon (whose media-keys plugin does exactly that) had never been built for /opt/gnome51, despite packages/gnome-shell's own depends list already naming it (confirmed: that dependency was bookkeeping-only, no real files had ever landed in /opt/gnome51 for it). || Real dependency differences found reading 51.0's own meson.build directly, not assumed from the 48.1 recipe: no gtk4/libadwaita dependency anywhere in this version; plugins/media-keys and plugins/sound both have a real, completely unconditional hard dependency on libpulse-mainloop-glib, satisfied by a real PulseAudio 17.0 already present system-wide (not built here -- discovered via pkg-config, presumably pulled in as a side effect of some earlier, unrelated deb-bridge install on this exact host); libgeoclue-2.0 is now a real separate hard dependency alongside geocode-glib-2.0 (48.1 only needed the latter); the real pkg-config name wanted is "gweather4", not "libgweather" (same upstream project, different soname/version); gcr3=false (the meson default) wants gcr-4 >= 3.90.0, satisfied by this project's own real gcr-4.3.1 package. The hard `assert(enable_network_manager or not host_is_linux)` is still there, worded identically to 48.1's -- same sed fix carried over. || Wired into linuxdoors-gnome51-vnc (packages/gnome-session): started alongside pipewire/wireplumber at session startup, plus a real custom keybinding (org.gnome.settings-daemon.plugins.media-keys custom-keybindings) bound to launch linuxdoors-gnome51-resolution -- see that script's own notes for the exact key chosen and how it was verified working. |
51.0 | Libraries | 1.9 MB | 34 | Download PackageSource Download .tar.gz |
gnome-settings-daemon-48Not in ISO Real /usr-targeting gnome-settings-daemon for the GNOME 48 X11/Wayland desktop (gnome-shell 48.8 + gnome-session 48.0), a SEPARATE package name from plain 'gnome-settings-daemon' -- that name was repurposed on 2026-09... Real /usr-targeting gnome-settings-daemon for the GNOME 48 X11/Wayland desktop (gnome-shell 48.8 + gnome-session 48.0), a SEPARATE package name from plain 'gnome-settings-daemon' -- that name was repurposed on 2026-09-20 into an isolated /opt/gnome51 build for the separate headless-VNC GNOME 51 feature (see its own metadata.json/build.sh). Added 2026-09-28 after a real boot test found the actual desktop had NO working settings daemon at all: gnome-session was launching stale, unowned /usr/libexec/gsd-* binaries left over from an old ISO build (dated 2026-09-03, no package manifest claimed them), which then crashed gnome-shell/gsd-* with real missing-library errors (libnghttp2.so.14 via libsoup, libpulse.so.0 via PulseAudio) since nothing had ever declared or installed those as real dependencies for this desktop. || packages/gnome-shell's own `depends` was repointed from plain 'gnome-settings-daemon' to this package name -- gnome-shell's own build.sh/metadata.json were deliberately NOT touched/rebuilt in this same pass, since they too were silently repurposed for /opt/gnome51 on 2026-09-20 (confirmed: current build.sh targets PREFIX=/opt/gnome51) but the REAL, currently-served download zip for gnome-shell is still the old, working 48.8 /usr build -- rebuilding gnome-shell now would destroy that working zip and break the real desktop. Future session note: don't rebuild packages/gnome-shell or packages/gnome-session without first re-deriving a correct /usr-targeting recipe the same way this package was (real source verification, not reuse of the current /opt/gnome51 build.sh) -- both are in the same silently-stale state as gnome-settings-daemon was. || Real dependency verification against the actual gnome-settings-daemon-48.1 source (not assumed): meson_options.txt has no 'xwayland' or 'systemd-units' option at all (both exist only in the later 51.0 recipe -- passing them here would be a meson 'unknown option' error); real hard deps are gtk+-3.0, gtk+-x11-3.0, gweather4, libcanberra-gtk3, libgeoclue-2.0 (>=2.3.1), libpulse-mainloop-glib (>=2.0), gcr-4 (gcr3=false default) -- all confirmed already satisfied on .101 via pkg-config before writing build.sh. The `assert(enable_network_manager or not host_is_linux, ...)` hard-fails configure unless neutralized (no host_is_linux escape hatch for -Dnetwork_manager=false alone) -- same sed fix already established in the (now /opt/gnome51-targeting) sibling package's own build.sh, reused verbatim here since the assert's exact wording is identical between 48.1 and 51.0. |
48.1 | Libraries | 1.9 MB | 12 | Download PackageSource Download .tar.gz |
gnome-shellNot in ISO GNOME Shell -- the panel/overview/lock UI. GNOME Shell -- the panel/overview/lock UI. Built without NetworkManager and without the captive-portal helper for a lean session. 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. || 48.5 -> 48.8 (2026-09-14 real upstream-currency bump, real sha256 computed from the downloaded tarball, archive integrity verified before trusting it). || Bumped 48.8 -> 51.0 (2026-09-18, part of the GNOME 51 push). Real sha256 verified against GNOME's own published sha256sum file. || 2026-09-28: real boot test found this package's own build.sh has ALSO been silently repurposed to target PREFIX=/opt/gnome51 (same as gnome-session/gnome-settings-daemon), even though this metadata.json still says version 51.0 -- but the REAL, currently-served download zip is still the OLD, working 48.8 /usr build (confirmed live: gnome-shell --version reports 48.8 after a real pkg install, not 51.0). DO NOT rebuild this package without first writing a correct /usr-targeting build.sh (verified against the real 48.8 source, the same way packages/gnome-settings-daemon-48 was) -- running the current build.sh as-is would destroy the working 48.8 zip and break the real GNOME desktop, leaving only the /opt/gnome51 headless-VNC feature. depends repointed from plain 'gnome-settings-daemon' (now /opt/gnome51-only) to the new 'gnome-settings-daemon-48' package, and 'libnghttp2' added (real crash fix: gnome-shell's own libsoup-3.0 typelib load fails without it, see gnome-settings-daemon-48's own notes for the full story). || 2026-09-28, continued: real end-to-end boot test (on a genuinely fresh install, not .101 which had accumulated these libraries from unrelated earlier work) found FIVE more real missing runtime dependencies, found one at a time as each was fixed and the next 'cannot open shared object file' surfaced -- gjs (was already listed in depends but never actually got pulled by 'pkg install gnome-desktop' -- a real gap in dependency resolution worth investigating separately), graphene, colord, libgudev, libwacom, libei. All added here for real. This was the ACTUAL final blocker for a genuine native-Wayland GNOME session on lightdm -- once every one of these was present, 'ldd /usr/bin/gnome-shell' came back completely clean and the real systemd unit chain (gnome-session-wayland@<name>.target -> gnome-session.target -> graphical-session.target -> org.gnome.Shell@wayland.service) worked correctly end to end. The earlier working theory that this needed an actual lightdm source patch was WRONG -- lightdm's own self-relaunch/StartUnit handling for a GNOME session that hands off to systemd already works correctly; every failure up to this point was purely missing libraries, not a structural lightdm/GNOME incompatibility. || 2026-09-28, REAL WAYLAND SESSION CONFIRMED WORKING END TO END (real screenshot obtained via a genuine seat0 lightdm login, not a manual/synthetic invocation). Two more real fixes were needed after ldd came back clean, both because gnome-shell's own main.js does its own gi.require_version() imports at runtime that ldd can never catch: (1) 'Gdm-1.0.typelib' (Gdm-1.0, from the 'gdm' package) -- gnome-shell's ui/init.js unconditionally imports it even for a Wayland session with no real GDM running; (2) 'IBus-1.0.typelib' (from the 'ibus' package) -- also unconditionally imported by init.js for input-method support. Both added to depends here, and both had ALSO silently regressed on the live test VM mid-investigation because a `virsh reset` on that disposable domain rolls back recent filesystem writes (a real, separately-documented VM behavior) -- worth remembering that a `pkg install` fix applied earlier in the same session can vanish after a `virsh reset` and needs re-verifying, not just re-trusted. || The ACTUAL final structu |
51.0 | Desktop | 3.9 MB | 29 | Download PackageSource Download .tar.gz |
gnutls BLFS postlfs/gnutls.html (TLS library). BLFS postlfs/gnutls.html (TLS library). Part of the real GnuTLS chain -- see packages/libunistring/metadata.json for why this exists (GIMP 3.2.4's meson.build unconditionally requires a working glib-networking, which itself needs gnutls as its real TLS backend). Skips the test suite (large and slow). All four recommended deps (nettle, libunistring, libtasn1, p11-kit) built as real required-in-practice dependencies for this project's purposes. |
3.8.13 | Libraries | 6.9 MB | 30 | Download PackageSource Download .tar.gz |
gobject-introspection BLFS general/glib2.html -- this isn't its own book chapter page; BLFS documents it as a 'Build GObject Introspection' subsection of the GLib page itself, built from its own separately-extracted tarball. BLFS general/glib2.html -- this isn't its own book chapter page; BLFS documents it as a 'Build GObject Introspection' subsection of the GLib page itself, built from its own separately-extracted tarball. Phase 1.5 installer prerequisite (user chose GTK3+PyGObject over PySide6/Qt6): built against the introspection=disabled glib2 that's already installed (GI's own build doesn't require glib to already have introspection data -- it generates that data for OTHER libraries). After this builds, glib2 and gtk3 get rebuilt in place with introspection enabled (same pattern as the shadow/systemd PAM rebuilds earlier in this project). |
1.86.0 | Libraries | 642.0 KB | 30 | Download PackageSource Download .tar.gz |
gperf LFS ch8. LFS ch8. Skips the optional make check. |
3.3 | Core System | 267.8 KB | 29 | Download PackageSource Download .tar.gz |
grapheneNot in ISO graphene -- SIMD 3D maths types. graphene -- SIMD 3D maths types. Hard dep of GTK4 and Mutter. 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.10.8 | Libraries | 140.4 KB | 34 | Download PackageSource Download .tar.gz |
grep LFS ch8, final native build. LFS ch8, final native build. Skips the optional make check. |
3.12 | Core System | 554.9 KB | 30 | Download PackageSource Download .tar.gz |
grep-tmp LFS ch6 temporary tools stage. |
3.12 | Toolchain | — | 0 | not yet builtSource Download .tar.gz |
groff LFS ch8. LFS ch8. PAGE=letter chosen as a default paper size (book's other option is A4); reconfigurable later. Single-threaded make (-j1) per the book. Skips the optional test suite. |
1.24.2 | Core System | 13.1 MB | 35 | Download PackageSource Download .tar.gz |