Download LinuxDoors v1.45

Hot off the build. A hybrid Linux distribution: install from fast prebuilt zips, or flip a switch and build any package from real source instead.

Download linuxdoors.iso (3.95 GB)

256 downloads so far

linuxdoors.iso is a 3.95 GB BIOS+UEFI hybrid ISO as an LFS-based and Debian-compatible Linux distro for any x86_64 (64-bit Intel/AMD) CPU -- boots straight to a working XFCE desktop with real networking, a text editor, and two real web browsers built from source (Firefox and ungoogled-chromium). Default login: linuxdoors / linuxdoors (root is also linuxdoors) and relax knowing that ssh is off upon first boot though you may turn on at any time for networking convienence.

SHA-256: 42bb99b095c8283ba272383e46bcdb680cb68e50f9cdbc048eb0cd82a4522b0c

Hybrid, by design

Compiled zips are the default. Source builds are one switch away.

LinuxDoors is built from Linux From Scratch and BLFS, programmer implemented, package by package -- and every package keeps its own build script and pinned source tarball around after it's built, not just the finished binary. That means every install here can go one of two ways: take the small prebuilt zip (fast, the default), or toggle source mode and have that exact package compiled fresh on your own machine instead, live, using the same script LinuxDoors itself used.

How a source build works

Live today, right from LinuxDoors' own package manager. The short version:

Everything compiles on your own LinuxDoors computer, never on our servers -- linuxdoors.com never reaches into your machine, and it never runs code on your behalf. When you toggle "build from source" on a package, your computer requests a single-use, short-lived key from linuxdoors.com, then uses it to open an outbound connection back to us and download that package's exact build script and pinned source code (the same ones this whole distribution was built from) -- the key is only good for that one file transfer and expires within minutes either way. Your computer then compiles it itself, inside an isolated sandbox account, the same way LinuxDoors compiles its own packages -- never touching your real system directly until the finished result is ready to install.

Version history

Every real milestone, in order.

v1.45

Security update: all three browsers, the kernel, and bash

All three web browsers move to their newest security releases: ungoogled-chromium 155.0.8059.39 (built from a matching ungoogled-chromium release), Firefox ESR 153.5.0esr and FreedomFox 158.0 -- each tested starting up and loading web pages on this exact ISO. The Linux kernel moves to 7.2.10 with every LinuxDoors kernel setting carried over (USB and NVMe booting, the open-source nouveau NVIDIA driver, the UEFI screen fix, sched_ext, the ufw firewall). New: the newest kernel now always starts first, automatically -- in the live ISO, on a fresh install, and after every kernel upgrade; older kernels stay in the boot menu as a fallback. bash and readline now include all of their upstream fixes (bash 5.3 patch 20, readline 8.3 patch 6). Also updated: vim 9.2.1178, Thunar 4.20.10, FreeType 2.15.0, at-spi2-core 2.62.1, GEGL 0.4.72, xorgproto 2026.1, Class::Inspector 1.36 and the LXDE icon theme 0.5.2. Fixed: the installer again gives every installed system its own machine ID, SSH on a fresh install accepts connections normally, and an unused leftover key file is no longer included. LinuxDoors Kernel Config now rebuilds from the 7.2.10 kernel with the current settings (it was handing out an older 7.2.9 setup without the UEFI screen fix). Already installed? Run "sudo pkg update" then "sudo pkg upgrade" -- the new kernel becomes the default by itself. On systems installed from v1.44 or earlier the boot menu switches during the first restart after upgrading, so the new kernel runs from the second restart on (or run "sudo /usr/sbin/linuxdoors-update-grub" once before restarting).

v1.44

Security fix: every install now gets its own SSH keys

Versions 1.43 and earlier accidentally included the build computer's SSH host keys and machine ID, so every install shared the same keys -- and anyone with the ISO had them. The ISO no longer contains them: the live session makes new ones each boot, and the installer gives every installed system its own. Also fixed: curl works again out of the box (a library it needs was missing), and two stray backup files are no longer included. Installed 1.43 or earlier? Give your machine new SSH keys with "sudo rm /etc/ssh/ssh_host_* && sudo ssh-keygen -A && sudo systemctl restart sshd" (your SSH client will warn once that the key changed -- that is expected), and fix curl with "sudo pkg install libnghttp2".

v1.43

New compiler: GCC 16, systemd 262, everything rebuilt

LinuxDoors now follows the current Linux From Scratch toolchain: GCC 16.2 and systemd 262. Every package -- the base system and all the optional desktops and programs, about 590 in all -- was rebuilt with the new compiler. Login sessions are now properly registered with systemd (pam_systemd was installed in the wrong folder before). Fixed along the way: Audacity no longer replaces system libraries when you install it (4.0.1-1), and MLT 7.42.0-1 loads video files again in Kdenlive and Shotcut. Already installed? Run "sudo pkg update" then "sudo pkg upgrade" before installing new programs, so the new C++ runtime that comes with GCC 16 is in place first.

v1.42

Core and desktop updates, safer upgrades

Qt 6.12 (with PySide6 6.12 and QtWebEngine rebuilt to match, plus the KDE Plasma packages that depend on it), GLib 2.90, HarfBuzz 14.6, Poppler 26.10, librsvg 2.63, at-spi2-core 2.62, LightDM 1.33.1, opus 1.6.1, libvpx 1.17, brotli 1.2, AppStream 1.2.1, CMake 4.4.4 and about a dozen smaller updates. The Linux-PAM 1.7.3 security fix from 1.41 now really takes effect (that build had installed into the wrong folder). The package manager no longer overwrites your settings files when it upgrades a program -- your copy is kept and the new default is saved next to it as ".ldpkg-new" -- and it restarts the SSH server after an OpenSSH upgrade. If SSH stopped accepting connections ("Connection reset by peer") after upgrading to 1.41, run "sudo systemctl restart sshd" once on that computer; check /etc/ssh/sshd_config first if you had changed it. Already installed? Run "sudo pkg update" then "sudo pkg upgrade".

v1.41

Security updates

Security and bug-fix updates for programs that handle logins, network connections and untrusted files: OpenSSH 10.6p1 (the ssh client and server), Linux-PAM 1.7.3 (the login and password system), NSS 3.131 (the certificate and encryption library Firefox uses), expat 2.9.0 (the XML parser), SQLite 3.54.0 and Vim 9.2.1172. Already installed? Open a terminal and run "sudo pkg update" then "sudo pkg upgrade" to get the same updates without reinstalling.

v1.40

curl fixed, LFS updates and a safer package installer

Fixed: the curl command in 1.39 could not start because a library it needs (libnghttp2) was left out of the ISO. A full check of every program in the image found the same problem in a few other places, now fixed too: the PDF tools (pdftotext and friends), the NetSurf browser, exiv2 and the MATE panel clock (brotli), MATE "About Me" (accountsservice) and sound support (libsndfile, opus). The console login, su and passwd also now use LinuxDoors' own libcrypt.so.1 instead of relying on a Debian copy. Updated to match the Linux From Scratch development book: less 710, elfutils (libelf/libdw) 0.196, iana-etc 20260911 and time-zone data 2026e. The package installer now replaces each file atomically, so upgrading a program that is running can no longer fail or crash it. Already installed? Run "sudo pkg update" then "sudo pkg upgrade" -- in particular this installs the libcrypt fix, so su and passwd keep working after you install other packages.

v1.39

FreedomFox 157.0.1 and security updates

FreedomFox, the private and hardened browser that comes with LinuxDoors, is updated to 157.0.1, the current regular Firefox release. Seven security updates are also included: the X server (xorg-server 21.1.25) and Xwayland 24.1.14, the PNG image library (libpng 1.6.59), the libgcrypt crypto library (1.12.4), the CUPS printing system (2.4.20), libtirpc 1.3.8 and libseccomp 2.6.1. Already installed? Open a terminal and run "sudo pkg update" then "sudo pkg upgrade" to get the same updates without reinstalling.

v1.38

Fixed: login-screen bounce, LinuxDoors Kernel Config improved, and LinuxNoteText 0.3

A real, confirmed bug: on some installs, entering your password at the login screen would briefly flash and then return right back to the login screen instead of opening your MATE or XFCE desktop. Root cause was the LinuxDoors Kernel Config program's own install step, which left the default user's home folder owned by the wrong account, so the desktop session could not even start. It now gives your home folder, your Desktop folder and the Kernel Config Desktop icon the correct owner -- fixed and verified end-to-end with a real login on a freshly booted copy of this exact ISO. The latest LinuxDoors ISO (this v1.38 download) now ships the full Qt 6 and PySide6 runtime Kernel Config needs, already installed, so it opens on the first double-click. On an older install where the icon does nothing, open a terminal and run "sudo pkg install qt6-full" to add the missing Qt 6 libraries, then try the icon again. Also new: LinuxNoteText 0.3, the text and source editor. It adds Highlight All Instances of Selection to the View menu (select a word and every other copy of it in the file is outlined, without opening Find) and moves to Scintilla 5.6.7 and Lexilla 5.5.4. It is not part of the ISO: get it from the AppImage Store, or install it with "sudo pkg install linuxnotetext" (already have it? "sudo pkg upgrade").

v1.37

New: LinuxDoors Kernel Config

A new native app, right on the Desktop like the other LinuxDoors tools: toggle optional kernel features -- WiFi and USB-Ethernet drivers, NTFS/exFAT/Btrfs/XFS/F2FS filesystem support, KVM virtualization, and a few security hardening options -- then rebuild the kernel for real with one click. The new kernel is always installed alongside your current one with its own GRUB entry, so your original, working kernel is never touched or at risk.

v1.36

Installer: readable erase-warning text

LinuxDoors Install's confirmation screen ("Everything on /dev/... will be permanently erased") was hard to read on real hardware. Changed to a clear, high-contrast danger-red, matching the seriousness of the warning.

v1.35

UEFI boot now actually shows the kernel loading

Follow-up to the previous UEFI fix: on real hardware, UEFI boot got past the GRUB menu but then showed nothing at all -- no hang, just an invisible kernel, because this kernel had no driver able to display text on a UEFI graphics framebuffer (only the old legacy VGA text console was enabled, which does not exist under pure UEFI -- legacy BIOS boot always worked for exactly this reason). Added real UEFI framebuffer console support so boot text is visible the whole way through on both legacy BIOS and UEFI.

v1.34

Real UEFI boot fixed

Booting the live ISO on a real PC in UEFI mode reached the GRUB menu fine but selecting an entry did nothing -- the UEFI boot image was missing the GRUB module that actually loads the kernel and initrd (legacy BIOS boot was never affected, which is why USB boot worked before). Fixed and verified with a real UEFI firmware boot test: the kernel now loads correctly under both legacy BIOS and real UEFI.

v1.33

Chromium security update, PowerToys now included

Ungoogled Chromium rebuilt against the current Chromium Stable security release (154.0.8037.97) -- a real, from-source, multi-hour rebuild with every patch re-verified against the fresh source before compiling, not just a version bump. LinuxDoors PowerToys (the color picker / screen ruler / always-on-top utility hub) is now bundled in the ISO itself instead of being a separate install. Also cleaned up a handful of stale desktop shortcuts left over from earlier builds that pointed at apps not actually included in the image, so a fresh install no longer shows broken icons for them. Boot-tested clean under KVM: Graphical Interface reached, zero failed services.

v1.32

A fresh build, package versions brought current

No kernel or feature change since the last update -- this is a fresh build of the same image, bringing every bundled package up to its current version, FlashScp included. Boot-tested clean under KVM: Graphical Interface reached, zero failed services, the kernel's USB Ethernet and NAT/MASQUERADE support both reconfirmed present and loadable.

v1.31

Linux kernel 7.2.9

The Linux kernel moves to 7.2.9, an ordinary stability update -- the USB Ethernet and NAT/MASQUERADE support added in the last update carry forward unchanged. Boot-tested clean under KVM: Graphical Interface reached, zero failed services, both drivers confirmed present and loadable. Separately, on the AppImage Store: several AppImages (LinuxNoteText, LinuxUltraGrep, LinuxAmp, Basketball, Bowling, Pool Table, and Skee Ball) failed to open at all on Linux Mint and some Ubuntu-based desktops, printing a Qt platform-plugin error and exiting. The cause was a single small graphics library (libxcb-cursor) that these AppImages relied on the host system already having -- true on Debian and LinuxDoors, but not installed by default on Mint or Ubuntu. That library now travels inside the AppImage itself, so these downloads no longer depend on anything from the host to open correctly.

v1.30

USB Ethernet adapters, real router-style port forwarding, and a more reliable boot

The kernel now recognizes USB-based Ethernet adapters (Realtek RTL8152/RTL8153 -- the chipset in most USB-to-Ethernet dongles), so a second wired connection no longer needs a PCI card. LinuxDoors Network Settings was fixed to match: it used to share one configuration between every network device, so setting up a second one quietly erased the first -- each device now keeps its own independent settings, the picker actually shows the right fields when you switch devices, and a static address no longer requires a gateway (useful for a device that only needs to talk on its own local network). Separately, the kernel gained real NAT/MASQUERADE support, so port forwarding and connection sharing through iptables now genuinely works instead of failing with a missing-table error while looking like it succeeded. The installer now sets up both a legacy BIOS boot path and a real UEFI one on every install, since a legacy-only boot was found to leave some real machines with no working boot path at all -- whichever one a given computer's firmware actually uses, it now has something to boot. Also fixed: Make Secure LinuxDoors no longer misreports a deliberately IP-restricted SSH setup as wide open, and a configuration-writing bug that could corrupt sshd's own config file on a system with custom SSH rules is fixed in both of LinuxDoors' SSH tools. Boot-tested clean under KVM: Graphical Interface reached, zero failed services, the new kernel and both new modules confirmed present and loadable.

v1.29

FlashScp fixes now in the image, and a real launch test for both browsers

FlashScp (the scp-over-SSH file transfer tool) is rebuilt into this image with its latest fixes: a locked, passphrase-protected private key now works correctly instead of being silently refused, and the key-file browse dialog no longer comes up empty on systems using the desktop portal file picker. Firefox 153.4.0esr and FreedomFox 157.0, added in the last update, were this time verified with an actual live boot test rather than just a version check -- both browsers launched for real in a booted virtual machine and rendered a real page to a screenshot. Boot-tested clean under KVM: Graphical Interface reached, zero failed services.

v1.28

Firefox and FreedomFox, current releases

Firefox moves to 153.4.0esr, the current ESR security release. FreedomFox (the hardened, privacy-focused browser built on the same LibreWolf approach as Mullvad and other privacy-first browsers) jumps a full version to 157.0, tracking what a real desktop Firefox install actually runs today. Boot-tested clean under KVM: Graphical Interface reached, zero failed services, both browsers confirmed launching correctly.

v1.27

Real NVIDIA GPU support, Xwayland, and a Plasma Wayland fix

The base image now actually ships the Linux 7.2.8 kernel promised in the last update (it had been built but never deployed) and adds real hardware-accelerated OpenGL support for NVIDIA GPUs (the nouveau driver) alongside the existing virtual-machine renderers — a genuine difference on real desktop hardware, not just virtualized installs. Xwayland (X11 app support under Wayland) moves from a build over a year old to the current release, and five core system libraries used throughout the desktop — libxml2, PCRE2, Expat, HarfBuzz and Cairo — all move to their current upstream releases. Boot-tested clean under KVM: Graphical Interface reached, zero failed services. Separately, on the Packages page: KDE Plasma’s Wayland session had a real bug where it would busy-loop retrying failed GPU acceleration instead of falling back cleanly — measured at over twenty CPU-minutes per minute of actual use — now fixed, and Budgie moves to its current 10.10.3 release with a real native Wayland session of its own. Vulkan support libraries, OpenShot, ffmpeg (a major version jump), and the JavaScript engine behind Cinnamon also updated to their current releases.

v1.26

Linux kernel 7.2.8, ungoogled Chromium 154

The Linux kernel moves to 7.2.8, an ordinary stability update. ungoogled-chromium moves to a new major release, 154 -- the telemetry-stripped Chromium browser now tracks Google's newer release line. Two optional, less-common features (Isolated Web App signature checking, and an anonymous-token anti-fraud mechanism some sites use) are turned off in this build rather than left half-working; ordinary browsing is unaffected. Boot-tested clean: zero failed services, real page loads confirmed.

v1.25

Linux kernel 7.2.7, FreedomFox 156.0.1, ungoogled-chromium security fix -- and a much smaller image

Three real package updates, plus a real reduction in the ISO's own size. The Linux kernel moves to 7.2.7, FreedomFox (the privacy-hardened browser) to 156.0.1-lw1, and ungoogled-chromium picks up upstream Chromium security fixes. Also fixed: the build process was quietly letting build-machine housekeeping files -- nothing an end user would ever see or want -- ride along into the image. That's now caught and stripped before packaging, and double-checked with a full test boot afterward to make sure nothing needed was removed along with it. Net result: a smaller download with newer, more secure software inside.

v1.24

Real source code downloads, on the AppImage Store and the Packages page

A website update, not a new linuxdoors.iso -- nothing changed in the ISO itself this pass. Both the AppImage Store and the Packages page now offer a real "Source Download .tar.gz" beside the compiled download for every free app and package: the real upstream source, any patches, and the literal build.sh LinuxDoors compiled it with, bundled into one archive -- not the pre-built binary, the actual code you would compile to get it. Paid apps with no license obligation to publish source (LinuxUltraGrep) show a plain badge instead, offering the source directly to anyone who pays; LinuxUltraOffice, built on LibreOffice (MPL-2.0/LGPL), gets the free source download too, as its license requires.

v1.23

LinuxUltraGrep: folder-name search added

LinuxUltraGrep updated on the AppImage Store and the Packages page: file-name search can now match folder names too, not just files -- a folder's own results carry an arrow to open and browse into it, and the command line gained a matching --folders flag. Also added: a text-size slider under Tools.

v1.22

GCC updated to 14.4.0

The system's own compiler moves 14.2.0 -> 14.4.0, a same-major point release fully compatible with everything already built. Also fixed along the way: the old 14.2.0 compiler's internals (nearly a gigabyte) were never cleaned up when the new one landed, quietly bloating the image -- caught by a real, unexplained size jump and fixed properly rather than ignored. Verified with an actual compile inside the booted ISO: gcc compiled and ran a real C program with the correct output, no warnings, exit code 0. Boot-tested under KVM: zero failed units, systemctl reports the system fully running.

v1.21

ungoogled-chromium fix baked into the ISO

A rebuilt ungoogled-chromium (153.0.8010.37) that fixes a real ESLint failure hit during the last rebase now ships in the ISO itself, not just the standalone package download. Also fixed along the way: a real ISO-size regression from stray test files that had built up in the build host's own home directory -- caught before it shipped, not after. Boot-tested under KVM: zero failed units, systemctl reports the system fully running, and the corrected Chromium build confirmed live on the booted image.

v1.20

LinuxUltraGrep added to the AppImage Store

A new paid ($2.99) app on the AppImage Store: LinuxUltraGrep, a grepWin-style search and replace tool -- text or regular-expression search inside files, file-name search across a whole tree, and a preview before any replace is written. It runs both real GNU grep and a built-in Python engine and cross-checks them against each other, with a full command-line mode for anyone who already knows grep's own flags. No ISO change -- this is a Store-only addition, installed the same way as every other AppImage on the site.

v1.19

Kernel, Mesa, Firefox, FreedomFox, and Chromium all updated

A routine currency pass across the fastest-moving parts of the system: the Linux kernel (7.2.6), Mesa (26.2.3), Firefox ESR (153.3.0esr), FreedomFox (rebased onto Firefox 156.0), and the bundled ungoogled-chromium (153.0.8010.37, a real security point release). All the kernel tuning from earlier releases -- direct AppImage support, sched_ext, the netfilter/firewall fixes, and the rest -- carried forward unchanged. Boot-tested under KVM: zero failed units, graphical.target active, and every one of the five updated components confirmed running its new version on the freshly booted image.

v1.18

Real FUSE support -- AppImages run directly, no wrapper needed

LinuxDoors previously shipped with no FUSE support at all, so an AppImage could not mount and run itself the normal way -- it needed a LinuxDoors-specific helper script just to start. This build adds a real, from-source libfuse3 (fusermount3, /dev/fuse, the standard udev rule) and turns on FUSE support in the kernel, so a downloaded AppImage now works exactly the way it does on any other Linux distribution: mark it executable and run it, or just double-click it -- nothing else required. Verified for real, not just built: a genuine FUSE mount was confirmed for a real AppImage run with zero flags and zero wrapper, on every desktop environment LinuxDoors offers -- Xfce, MATE, GNOME, Cinnamon, KDE Plasma, LXQt and Enlightenment, all seven. Boot-tested under KVM: zero failed units, graphical.target active.

v1.17

LinuxUltraOffice 26.8.0.3, FreedomFox, and systemd

LinuxUltraOffice (and its Draw/Base/Math add-ons) rebuilt on the current LibreOffice 26.8.0.3 release; FreedomFox rebased onto the latest hardened Firefox release; systemd updated; and a couple of small underlying libraries fixed (NSS, libdw) that a few packages quietly depended on. Also: checked this system’s entire core package list against the newly-released Linux From Scratch 13.1 -- everything was already current, so nothing else needed to change there. Boot-tested under KVM: zero failed units, graphical.target active, and LinuxUltraOffice (Writer/Calc/Impress plus the Draw/Base/Math add-ons) and FreedomFox both confirmed working on the freshly booted image.

v1.16

Kernel, Node.js, and Rust updated to their latest releases

Routine upstream update: the Linux kernel (7.2.5), the bundled Node.js runtime (24.21.0), and the Rust compiler used to build parts of this system (1.98.1) are all now on their latest available point releases. No new features -- just staying current with upstream bugfixes and security patches. Boot-tested under KVM: kernel 7.2.5 confirmed running, graphical.target active, zero failed units.

v1.15

ungoogled-chromium security update: fixes an actively-exploited critical bug

Rebuilds the bundled ungoogled-chromium browser onto Chromium 153.0.8010.36, which fixes a critical, actively exploited security flaw in the JavaScript engine (CVE-2026-87491) along with the rest of Google’s usual batch of fixes for that release. This was a much bigger jump than a routine update -- five real bugs in Chromium’s own source (not our changes) had to be tracked down and fixed one at a time to get it compiling at all, plus several patch and build-configuration fixes specific to this ungoogled, no-telemetry build. Verified end to end: the browser reports the correct version, opens and loads real pages, and its security sandbox is confirmed working for an ordinary logged-in user. Boot-tested under KVM: graphical.target active, zero failed units.

v1.14

FreedomFox browser, plus FlashPhoto / FlashZip / FlashScp built in

This build adds FreedomFox, a hardened, private web browser built for LinuxDoors on the LibreWolf project and rebased onto the current Firefox ESR (153.2.0esr) so it carries the latest Firefox security fixes. It ships in the image alongside Firefox and ungoogled-chromium, with LibreWolf’s strict anti-tracking and anti-fingerprinting defaults, no telemetry, Pocket and sponsored tiles removed, DuckDuckGo as the search box, and its own FreedomFox name, icon and About box. It is also on the LinuxDoors AppImage Store as a one-file portable download. Boot-verified in the image: "LinuxDoors FreedomFox 153.2.0esr". Three more of the LinuxDoors apps now come with the image, installed as real packages rather than downloads: FlashPhoto (a fast photo viewer and editor that crops a JPEG without re-encoding it), FlashZip (an archive manager for zip and the tar family, with 7z when a 7z tool is present), and FlashScp (a two-pane scp-over-SSH file transfer GUI). They appear in the Applications menu and, because they are installed as packages, the pkg command and the LinuxDoors Package Manager both list them as installed and can update or remove them. The Qt runtime they share (Qt 6 + PySide6) is now part of the base image too, so any other Qt app from the Packages page installs without pulling a few hundred megabytes first. This build also moves the Linux kernel to 7.2.4 (upstream stable -- security and bugfix backports, no config change) and rebuilds LinuxUltraOffice on LibreOffice 26.2.6.3 (the current release of the 26.2 line, and the first build without the "Dev" label in its window titles and About box). Boot-tested under KVM: kernel 7.2.4, graphical.target active, zero failed units, the sched_ext CPU scheduler enabled, all three Flash apps launch and pkg reports them installed, and LinuxUltraOffice 26.2.6.3 runs from the shipped image, and FreedomFox reports "LinuxDoors FreedomFox 153.2.0esr". The download also dropped by more than a gigabyte (it had been 4.8 GB): build-only bulk that had been coming along for the ride -- Chromium’s private compiler and build tools, a JavaScript engine only the optional GNOME desktop uses, LLVM static archives, and debug symbols in the browser binary -- is now stripped out. The full C/C++/Rust toolchain (gcc, make, cmake, headers) stays, so building a program from source on the machine still works.

v1.13

LinuxMovieMaker built in

LinuxMovieMaker -- the LinuxDoors video editor -- is now part of the image and on the desktop, no download needed. This is build 2: the editing window stays responsive while you scrub and drag timeline clips (frames are composed on a background thread now), playback reads from a compose-ahead buffer so a slow decode never freezes the preview, the picture is timed from the sound so it stays in step across a cut, pressing Play from a moved playhead no longer snaps the timeline back, and exporting composes frames across every CPU core (byte-for-byte the same file as before; set LMM_EXPORT_WORKERS=1 to opt out). It runs straight from /opt/linuxmoviemaker with its own Python, Qt and ffmpeg, and its editing sound works out of the box (the Kerberos, PulseAudio, libsndfile and ffmpeg libraries Qt's media stack needs all travel with it now). Boot-tested under KVM: kernel 7.2.3, graphical.target active, zero failed units, and LinuxMovieMaker launches from the shipped image.

v1.12

Desktop fixes: GNOME logout, Budgie, MATE login

Built on the 1.11.6 package refresh, with a round of real desktop bug fixes. GNOME is now a normal Xorg session managed by the login screen instead of one that spun up its own private X server -- logging out of GNOME no longer leaves the mouse and keyboard dead at the login screen. On Budgie, Log Out now actually ends the session, desktop icons default to double-click (a double-click had been opening two windows of everything), and a new "Click to open" single/double toggle was added to LinuxDoors Desktop Selections. The MATE session's own runtime libraries are back in the image (an over-eager trim of install-only packages had broken MATE login while leaving XFCE fine), and a stray failed x2go service unit is gone. Boot-tested under KVM: kernel 7.2.3, graphical.target active, zero failed units.

v1.11.6

Core package refresh: kernel 7.2.3, Mesa 26.2.2, Vulkan 1.4.357

A from-source update pass across the low-level stack: the Linux kernel to the 7.2.3 stable point release (bug and security fixes), Mesa to 26.2.2 (graphics driver fixes), the Vulkan headers and loader from 1.4.304 to 1.4.357, and wayland-protocols to 1.49. Everything else in the tree was checked against upstream and is already current (Firefox 153.2.0esr, ungoogled-chromium 152.0.7977.82, OpenSSL 4.0.2, curl 8.22.0, SQLite 3.53.4, Node.js 24.20.0, systemd 261.2, and the rest). Boot-tested under KVM: graphical.target active, zero failed units.

v1.11.5

Fixed: dead mouse/keyboard at the login screen

On real hardware (and in a VM) the graphical login screen had no working mouse or keyboard — the X server was looking for its input drivers in one directory while they were installed in another, so no pointer or keyboard driver could load. (Remote x2go sessions were unaffected, which is why it only showed up on the local console.) The X server now searches both locations and the login screen accepts input normally. Boot-tested under KVM: graphical.target active, zero failed units, greeter takes mouse + keyboard.

v1.11.4

Networking, optional-desktop installs, SSH + desktop-tool fixes

Fixed: a fresh install now gets working DHCP networking on any machine (the previous image had its wired-network config pinned to one specific network-card name, so it came up with no network on most hardware). Fixed: installing an optional desktop — LXQt, Cinnamon or KDE Plasma — from the Packages page now correctly pulls in its Qt/KDE base libraries instead of producing a session that will not start. The root-password desktop tools (Installer, Package Manager, Network Settings, Make Secure, Manage SSH) always get a usable X display now, and OpenSSH is built with PAM so SSH logins create real login sessions and root password login over SSH works again. LXQt and Cinnamon are installable from the Packages page and deliberately NOT bundled in the ISO. Boot-tested under KVM: graphical.target active, zero failed units; LXQt verified installing and launching from a clean image.

v1.11.3

Security library updates: curl, poppler, harfbuzz

Three core libraries refreshed to their current upstream releases: curl 8.22.0 (HTTP/TLS networking), poppler 26.09.0 (PDF rendering — a common target for document-parsing vulnerabilities), and HarfBuzz 14.4.0 (text shaping). Also fixed a broken "Manage Printing" menu entry that pointed at a helper program that was never installed. Boot-tested under KVM: graphical.target active, zero failed units. Everything else in the package set was checked against upstream and is current or ahead (Firefox is on the newest ESR track, GIMP is current, and the Linux From Scratch core is tracked to 13.1).

v1.11.2

Chromium security fix, GNOME over remote desktop working, live resolution changes

ungoogled-chromium updated to 152.0.7977.82, fixing a critical, actively-exploited V8 type-confusion vulnerability (CVE-2026-85046). Also: GNOME sessions over the bundled remote-desktop server now genuinely work end to end -- previously they either failed to start or showed a black screen, caused by two separate underlying issues (the X server transport lacked modern input/display-resizing support, and SSH sessions were not getting a real login session set up), both fixed at the source. GNOME also gained a real Displays settings panel for changing screen resolution, and a screen-resolution choice made there now correctly carries over the next time you log back in. Boot-tested under KVM: graphical.target active, zero failed units.

v1.11.1

KDE Plasma 6.7.4 desktop packages

A full KDE Plasma 6.7.4 desktop is now on the <a href="/packages">Packages</a> page as a working session — Plasma Workspace, plasma-desktop, System Settings, KScreen, PowerDevil, Milou, the Breeze theme and the Plasma library stack, all compiled from real KDE source against LinuxDoors’ own Qt 6.11 and KDE Frameworks 6.29 (about thirty packages). Not bundled in the ISO — install it like any other package and it adds a “Plasma (X11)” entry to the login screen. Getting the shell to launch needed a Plasma-side null guard in ScreenPool, the KF6 QML/plugin search paths pointed at /usr/lib, and startplasma-x11 wrapped so it always has a session D-Bus bus. The Wayland compositor is not built yet — KWin’s Vulkan backend needs a GCC 15 / std::expected toolchain LinuxDoors has not moved to. No change to the bundled ISO.

v1.11.0

Software OpenGL fallback + login-screen fixes

Mesa is now built with llvmpipe, a real software-OpenGL renderer (GL 4.5). Before this, LinuxDoors only had the old softpipe path, so any machine without a working hardware GL driver — nouveau on many NVIDIA cards, or a VM without GPU passthrough — could not run a modern GL desktop at all. This is also what lets the optional GNOME 48 desktop (from the Packages page) actually render. Two login-screen fixes ride along: /etc/shells is now shipped, so installing GNOME (which brings in accountsservice) no longer empties the greeter user list; and polkit / gsettings-desktop-schemas now ship their GObject-Introspection data. No change to the bundled app set (Firefox 153.2.0esr, ungoogled-chromium, LFS 13.1, kernel 7.2.2). Boot-tested under KVM: graphical.target active, zero failed units, MATE / XFCE / both browsers intact.

v1.10.9

Readable GRUB menu + safer installer

Two fixes on the 1.10.8 base (same package set — Firefox 153.2.0esr, LFS 13.1, kernel 7.2.2). The boot menu now loads a font before switching to graphical mode, so the GRUB screen shows real text instead of placeholder boxes. And "LinuxDoors Install" now erases the target disk properly before installing: it refuses to touch a disk that is mounted or in use, then does a full discard + wipefs + zeroes the start and end of the disk (killing any stale partition table, filesystem, or backup GPT), and lays down a GPT layout — so drives larger than 2 TB are used in full instead of being silently capped. Boot-tested under KVM: graphical.target active, zero failed units.

v1.10.8

Firefox 153.2.0esr

The bundled Firefox is rebuilt from source to the current ESR, 153.1.0esr → 153.2.0esr — a security and stability update on the same extended-support line. The ffmpeg compatibility patch carried for 153.1 is no longer needed and was dropped. firefox --version confirmed 153.2.0esr in the built image; boot-tested with zero failed units. This image also carries the ten Linux From Scratch 13.1 package updates from 1.10.7.

v1.10.7

Core packages tracked up to Linux From Scratch 13.1

Ten base-system packages rebuilt from source to match the LFS 13.1 (systemd) package set: Bash 5.2.32 → 5.3, Vim 9.2.0858 → 9.2.1025, Meson 1.11.2 → 1.12.0, setuptools 83.0.0 → 84.0.0, wheel 0.47.0 → 0.48.0, procps-ng 4.0.6 → 4.0.7, Shadow 4.20.0 → 4.20.2, libffi 3.7.1 → 3.8.0, Expat 2.8.2 → 2.8.3, and iana-etc 20260723 → 20260805. Every one was smoke-tested on the build host — shell, editor, build tooling, ctypes/libffi, XML parsing, the login/passwd stack and the C/C++ toolchain all verified before the image was cut. GCC stays at 14 (LFS 13.1 moves to GCC 16, a system-wide rebuild held for a later pass). Boot-tested with zero failed units.

v1.10.6

PostgreSQL 18.6 and pgAdmin 4 — new packages

Four new installable packages (Databases category): PostgreSQL 18.6, built from source against LinuxDoors's own OpenSSL / ICU / readline (PL/Python, PL/Perl, PL/Tcl and the standard contrib modules included); and pgAdmin 4 9.17, from source on Python 3.14 — pgadmin4-server (the web app), pgadmin4-desktop (a native PySide6 + QtWebEngine window, not Electron, with real file dialogs and a runtime config), and pgadmin4-web (a gunicorn service). Install them from the Packages page or the LinuxDoors Package Manager. These are not bundled in the ISO — the linuxdoors.iso download is unchanged from 1.10.5.

v1.10.5

Core packages updated from source

Six packages rebuilt from their latest upstream source: the Linux kernel 7.2 → 7.2.2, OpenSSL 4.0.1 → 4.0.2, Node.js 24.19 → 24.20, Mesa 26.1.3 → 26.2.1, libaom 3.14.1 → 3.15.0, and Rust 1.97.1 → 1.98.0. Every kernel config fix carries forward and was re-verified against the fresh 7.2.2 source (USB-boot drivers, NVMe, the Intel I226 NIC, Nouveau, the full firewall/netfilter set, sched_ext, zstd squashfs). Boot-tested with zero failed units. Also in this build: the LinuxDoors Package Manager's root-password box now shows readable dark text instead of white-on-white.

v1.10.4

Desktop icon rename

The "Install LinuxDoors" desktop icon (the one on the desktop itself, separate from the Applications menu entry renamed in 1.10.3) is now "LinuxDoors Install" too. The installer program's own window is left as it was.

v1.10.3

Naming tidy-up

The built-in desktop tools are renamed to read name-first and consistently: "Network Settings LinuxDoors" becomes "LinuxDoors Network Settings", "Install LinuxDoors" becomes "LinuxDoors Install", and "Make Secure LinuxDoors" becomes "LinuxDoors Make Secure" -- matching LinuxDoors Package Manager, LinuxDoors Desktop Selections, and the rest.

v1.10.2

Creative apps: GIMP, LazPaint, Audacity, Shotcut, Kdenlive

Five real creative applications are now available as downloadable packages -- GIMP 3.2.4 and LazPaint 7.3 for image editing, Audacity 3.7.8 for audio, and Shotcut 26.8 and Kdenlive 26.08 for video. Each is built entirely from source on LinuxDoors and installs with all of its dependencies resolved automatically. They are deliberately NOT bundled in the ISO -- the download stays lean and you add only what you want -- so getting here meant building a lot of new toolchain as packages too: a Free Pascal / Lazarus compiler chain for LazPaint; ffmpeg 7.1.5 (H.264/5, VP9, AV1, Opus, MP3), the MLT 7.40 video engine, frei0r effects and SDL2 for Shotcut; and for Kdenlive, Qt 6.11 plus 39 KDE Frameworks 6 libraries, KDDockWidgets, OpenTimelineIO and Imath. ffmpeg now ships ffplay, and MLT can load Lottie animations, so Kdenlive's own startup check comes back clean. Two fixes ride along: GTK3 apps (GIMP included) no longer crash on launch inside an x2go remote session -- x2go's display server lacks an XRender gradient call GTK3 needs, so x2go sessions now render client-side -- and installing any app package now refreshes the Applications menu immediately, so a newly installed program shows up under Graphics or Sound & Video without logging out first.

v1.10.1

Ungoogled Chromium 152 + MATE System Monitor

Ungoogled Chromium is rebased from 151.0.7922.173 to 152.0.7977.64, picking up the current upstream Chromium security fixes -- still built entirely from source on LinuxDoors itself, telemetry and Google services stripped. Getting 152 to compile took two real fixes: Chromium 152 added an always-on Rust CBOR parser our prebuilt-Rust toolchain can't satisfy, so the C++ CBOR path is forced back on; and the build host's C startup objects had drifted out of sync with its own C library, quietly crashing every Rust build step until they were refreshed. Verified on real hardware: reports Chromium 152.0.7977.64 and renders pages both as a normal user and as root. This release also adds MATE System Monitor for the MATE desktop -- a process, resource, and filesystem viewer with live CPU / memory / network graphs. It is pure C++/gtkmm, so the whole GNOME C++ binding stack (mm-common, libsigc++, glibmm, cairomm, pangomm, atkmm, gtkmm, libgtop) was built from source alongside it -- eight new packages, all also installable on their own. The ISO is rebuilt with both.

v1.10

Clock, network settings, and a tidier desktop

On the optional MATE desktop, opening the clock's Preferences no longer crashes it -- the world-locations data it reads is now shipped uncompressed so it always loads. Network Settings LinuxDoors stops guessing your DNS: pick a provider (Verizon FiOS, Google, Cloudflare, OpenDNS) from a dropdown to fill the fields, or type your own, and the address fields are now dark-on-white instead of hard-to-read. The Welcome and Other Notes files move into a hidden ~/.linuxdoors folder and open through a launcher that uses your chosen editor; Desktop Selections gains a third panel for picking that editor (Pluma, Mousepad, gedit, ...); and every desktop launcher is now marked trusted, so double-clicking one no longer throws an "untrusted / may be a binary file" prompt. Two more desktop fixes: XFCE no longer shows a duplicate Trash icon (the MATE-only Home/Computer/Trash launchers are hidden from XFCE, which has its own), and the door wallpaper now also applies on the MATE desktop, not just XFCE -- with a red variant for the root account.

v1.9

Desktop Selections: choose your file manager and browser

A new "LinuxDoors Desktop Selections" app lets each user pick, for their session, which file manager the desktop uses (Thunar or, on the optional MATE desktop, Caja) and which browser opens web links (Firefox or Ungoogled Chromium) -- and it reads the live setting, so it stays in step with a browser's own "make default" button. The optional MATE desktop gains a working "Computer" icon via a minimal from-source GVfs build. Two real bugs fixed along the way: installing certain packages could wipe the system file-type database and break icon loading in every GTK app -- package installs now rebuild it automatically -- and Firefox and Ungoogled Chromium finally have proper Applications-menu icons (Firefox had shipped with none).

v1.8

Real PC support: boots and installs off a USB stick, no VM required

Every earlier build had only ever been verified in a virtual machine. This release fixes what real hardware actually needs: USB host-controller and keyboard drivers built directly into the kernel (a VM's virtual disk needs none of this, which hid the gap), a boot-device search that dynamically finds the right drive instead of guessing a fixed list of names, real Nvidia and Intel ethernet drivers in place of the old QEMU-only ones, and NVMe support built in so an installed system can find its own root filesystem with no VM disk emulation to lean on. Verified for real: booted from a physical USB drive, installed to a real NVMe SSD, and rebooted into a working XFCE desktop -- all on ordinary PC hardware, zero failed services.

v1.7

Chromium security rebase: 151.0.7922.173, faster builds

A further security rebase (7 more fixes per Google's own release notes), and the first LinuxDoors build produced on a new, much faster 24-core build machine -- the same 56,000-target Chromium compile that used to take hours now finishes in under 3.

v1.6

Chromium security rebase: 151.0.7922.169

A real, program-verified rebase onto Chromium 151.0.7922.169, fixing two Critical sandbox-escape RCEs (a WebGL heap buffer overflow and a Dawn/WebGPU buffer overflow) plus a High-severity CORS issue and about a dozen more fixes. The ungoogled-chromium patch set was verified to apply cleanly against the newer source before the real build ever started.

v1.5

Real, from-source ungoogled Chromium

A second full browser, this time ungoogled Chromium -- telemetry and Google services stripped, built entirely from source with our own from-scratch Clang and Rust toolchains rather than Google's prebuilt binaries. Roughly 56,000 real compile targets, verified with zero build errors.

v1.4

Firefox, Chrome*, net-tools

A full LLVM + Rust toolchain, built specifically to compile real, unmodified Firefox from source -- plus the classic net-tools (netstat/route/arp/...) alongside iproute2. (*Chrome itself is proprietary and not source-buildable; Chromium was considered and set aside in favor of completing real Firefox first.)

v1.3

Network: DHCP, ping works

Found and fixed the real bug: systemd-networkd had no .network file telling it to manage any interface. A generic Type=ether/DHCP=yes config brought up real DHCP, a real default route, and working DNS resolution.

v1.2

NetSurf (no network)

A real, lightweight web browser (NetSurf) and the Mousepad text editor, both built from source with no Rust toolchain required. Still no working network.

v1.1

First working distribution with XFCE (no network)

A full minimal XFCE4 desktop -- X11, Mesa, GTK3, lightdm, the XFCE4 core apps -- boot-verified with zero failed systemd units. Networking not wired up yet.

v1.0

First working live ISO

The very first LinuxDoors boot -- programmer-built from Linux From Scratch (systemd edition), verified end to end in QEMU: kernel, initramfs, squashfs+overlay root, systemd, and a real login.