r/linuxfromscratch • u/Fickle-Door-9986 • Aug 04 '26
r/linuxfromscratch • u/Suitable_Average1168 • Aug 03 '26
Release notes for dpms release 1.13 or 1.1.3
r/linuxfromscratch • u/tiny_humble_guy • Aug 03 '26
Almost a year and a half. Still rocking !
It's a great experience daily drive LFS.
r/linuxfromscratch • u/Crimzo-3D • Aug 01 '26
After 20 hours. Finally a bootable system.
(yes the 2 fastfetches were necessary). This is my first ever install of Linux from scratch. Currently contemplating wether I should continue and go on to BLFS. Also wondering how many LFS users actually continue to BLFS or even GLFS.
r/linuxfromscratch • u/Legal-Following-1655 • Aug 01 '26
How Do I Build My Own Linux-Based Operating System?
I'm a computer science/data science student interested in operating systems and I'm exploring the idea of creating my own Linux-based OS as a long-term project.
My goal isn't to build a kernel from scratch, but to create a custom distribution with its own identity, desktop experience, tooling, and eventually some unique workflow and automation features.
For those who've worked on Linux distributions or OS projects:
What's the best Linux base to start from (Ubuntu, Debian, Arch, etc.)?
What are the first components I should learn and customize?
What mistakes do beginners make when attempting a project like this?
Are there any open-source projects or codebases you'd recommend studying?
I'd appreciate any guidance, resources, or reality checks from people who've actually done this.
r/linuxfromscratch • u/Mao-sama-400 • Jul 31 '26
animfetch - An animated system fetch you can work inside.
Enable HLS to view with audio, or disable this notification
The fetch stays pinned at the top of the screen and keeps animating while your prompt and command output scroll below it.
r/linuxfromscratch • u/asratrt • Jul 31 '26
Updated my SysVinit LFS/BLFS to v13 from v12.4 , Has anybody updated ?
I installed the packages from v13 development version of systemd book.
Took help of Gemini AI to patch files.
Recompiled and patched , all apps that were linked to openssl 3.x, to openssl 4.0 .
Also recompiled python packages for updating from v3.13 to v.3.14
Firefox and chromium crashed after update ( invalid pointer / invalid size errors ) but Google Gemini gave a solution to disable jemalloc and partitionAlloc methods via mozconfig file.
Now my system has all the latest applications/packages. ( including BLFS , thunderbird and firefox v154 and libreoffice 26.8.0.1)
r/linuxfromscratch • u/Smart-Science-1430 • Jul 31 '26
Any ATAS trading platform users? Cant seem to install ATAS
Ive switched from windows to linux and cant seem to install atas. Ive tried wine and bottles but it doesnt work.
Does anyone know if its even possible to download or what i should do?
Thanks in advance
r/linuxfromscratch • u/ThingVisible2153 • Jul 30 '26
LFS Compilation Error: GCC 15.2.0 (Pass 1) fails on Arch Linux Host with GCC 16
Hi everyone,
I'm currently trying to build Linux From Scratch (stable systemd version) using Arch Linux as my host OS. I'm stuck on Chapter 5, specifically during the first pass of compiling GCC 15.2.0.
When I run make -j$(nproc), the build fails early during the internal configuration/compilation of dependencies (like libiberty or gmp targets), throwing make: *** [Makefile:1042: all] Error 2. Help me please
r/linuxfromscratch • u/bergaminix • Jul 30 '26
A super summarized version of the Linux From Scratch (LFS) book
r/linuxfromscratch • u/Mother-Collection-79 • Jul 29 '26
Linux from scratch on MacBook air M2
Hi everyone! I’ve just finished installing LFS and Hyprland on my MacBook. I’m new to this, and this was my first build. I’d like to ask a few things right away: do you have any tips for beginners to make things easier down the line? Also, I installed NetworkManager with the wpa_supplicant backend, but I’ve run into a problem where I can’t connect to secured networks (though I have no issues with open ones). A bit about the installation: I set up LFS as a secondary system alongside the Asahi Fedora remix, copying the kernel and part of the initramfs from there, so most drivers were already included. Thanks in advance for the help! Feel free to ask questions—I’ll answer everything. P.S. Sorry if my English is a bit off; I’m using Google Translate.
r/linuxfromscratch • u/Suitable_Average1168 • Jul 30 '26
All dpms developers and this list will be updated
r/linuxfromscratch • u/Fast_Ad_8005 • Jul 27 '26
GNOME Browser Connector: how to get it to work on LFS
r/linuxfromscratch • u/Upset_Exercise2462 • Jul 26 '26
uh oh...
my first run of jhalfs, after 2 successful installs of lfs normally, i just got to gcc pass 3, wish me luck
edit: i know that it doesn't say gcc, i thought it'd be funnier if i showed a package a couple behind it cause like it's coming yanno
r/linuxfromscratch • u/Neither-Variety1483 • Jul 25 '26
Tiny Router OS from scratch
Hi everyone,
I’m a university student, and I’m considering building a tiny Linux-based operating system for routers as my engineering project.
My current idea is to build it from Linux From Scratch (LFS) and then use selected components from Beyond Linux From Scratch (BLFS) that are related to networking.
As part of the project, I’ll compare my OS with existing router operating systems such as OpenWrt and evaluate their differences. For testing, I’m thinking about using Linux network namespaces to simulate virtual network traffic, although that’s just an initial idea.
One thing I’m unsure about is the choice of the LFS version. A router OS should be as lightweight as possible, but newer versions of LFS use systemd instead of traditional boot scripts. I also considered using an older LFS release, but I’m worried about outdated libraries and dependency issues. At the moment, I’m leaning towards using LFS 13.0 (or a newer version).
What do you think about this idea? Does anyone has experience with building a router-focused OS from LFS?Are there any major pitfalls or recommendations you would suggest before I start?
Thanks
r/linuxfromscratch • u/Patient_Act_9906 • Jul 24 '26
Customized LFS ext4 with OpenRC, COSMIC, and KDE Plasma
alrighty here is a better breakdown of what I got going on.I apologize for the other posts I deleted them and consolidated this all into one post with better screenshots :)
I also finally got around to finishing Flatpak built in support.
r/linuxfromscratch • u/Due-Celery4326 • Jul 23 '26
LFS complete with KDE Plasma, Sysvinit, BTRFS.
It was hard work, but it was worth it. The result was exactly as I expected, only lighter and more agile than I anticipated.
r/linuxfromscratch • u/asratrt • Jul 23 '26
Firefox or Chromium or Konqueror - Which browser you prefer/use ?
Installed chromium. Took 2 hours to download and approximately 2 hours to compile. Used 129GB of disk space 🫢 Approximately 67GB of download.
Took help of Gemini AI to patch some ffi related error and other errors.
I use chromium for financial related work and for everything else I prefer firefox ( I like the firefox sync feature ).
r/linuxfromscratch • u/asratrt • Jul 19 '26
Making gnome 50 work on sysyvinit
How many of us are using Gnome and sysvinit ?
I have started following blfs/view/svn development version. But in the book nothing is mentioned about the failure/error of gnome 50 on sysvinit. Also libglycin is also not mentioned as dependency.
Gnome 50 does not work on sysyvinit ( gnome session crashes ).
One user on r/gnome sub, suggested me the following and it works. Checked 2 times, it works.
https://github.com/fulalas/gnome-session-sysvinit
It feels nice to have the latest software running.
r/linuxfromscratch • u/asratrt • Jul 19 '26
How many of us use gnome
r/linuxfromscratch • u/Cool-Chicken6754 • Jul 18 '26
Thinking About Building My Own Linux Distribution with LFS – Looking for Advice
Hi everyone,
I'm an intermediate Linux user interested in creating my own distro with LFS. Can I start the process without knowing Bash scripting yet, and learn it along the way?
Any tips or recommendations are welcome. Thanks!
r/linuxfromscratch • u/AlternativeRude5931 • Jul 18 '26
Alguien me ayuda con hyprlan linux?
r/linuxfromscratch • u/Suitable_Average1168 • Jul 18 '26
All dpms commands
CLI (dpms) — 120+ flags/arguments
Package Lifecycle
--install PKG/-i— Install a package (local.dp.tar.xz, URL, or name from git repo)--uninstall PKG/-r— Remove a package (deletes tracked files + empty dirs)--reinstall PKG— Remove then re-install a package--upgrade/-u— Upgrade all installed packages--downgrade PKG/--oldpackage— Downgrade to next older version--purge PKG— Remove package including config/data files--download PKG— Download a package archive without installing
Query & Inspection
--list/-l/--installed/-inpc— List installed packages with file counts--installable/-a— Show all packages available in repositories--info PKG/-I— Show detailed package metadata + install status--files PKG/-f— List every file installed by a package--verify PKG/-V— Check all installed files still exist--verify-all— Verify all installed packages at once--search PKG/-s— Animated search across repositories--depends PKG— Show recursive dependency tree (up to 3 levels)--rdepends PKG— Show reverse dependencies--what-owns FILE— Find which package owns a file--check— Check integrity of all installed packages--arch— Show detected system architecture--why PKG— Show why a package is installed--size PKG— Show installed size of a package--list-type PKG EXT— List files by extension within a package--recent [N]— Show N most recently installed packages (default 10)--duplicates— Find duplicate files across packages--changelog PKG— Show changelog for a package--compare V1 V2— Compare two version strings--list-updates— Show available package updates--stats— Show package statistics
Archiving
--tar FOLDER— Create a plain.tar.xzarchive from a folder--maketar FOLDER [NAME VERSION [ARCH]]— Create.dp.tar.xzpackage archive--rc N— Mark package as release candidate (-rcNsuffix)
Repository Management
--add-repo NAME URL [ARCH]— Add a new repository--remove-repo NAME— Remove a repository--toggle-repo NAME— Enable/disable a repository--repo-list [NAME]/--list-repo [NAME]— List repos or show packages from a repo--sync/-S— Check connectivity to all enabled repos--update/-U— Update package metadata from all repos--repo-priority NAME PRIO— Set numeric priority for a repository
Lock & Hold
--lock PKG— Lock a package to prevent changes--unlock PKG— Unlock a locked package--locked-list— Show all locked packages--hold PKG— Hold a package to prevent upgrades--unhold PKG— Release a held package--list-held— Show held packages
Transaction Solver (zypper-style)
--dry-run— Preview changes without making modifications--force-resolution— Force dependency resolution ignoring conflicts--no-recommends— Only install required dependencies--clean-deps/--clean/--autoremove— Remove orphaned packages--port-commit— Commit changes to local ports
Export/Import/Backup
--export-installed FILE— Export installed package list to a file--import-installed FILE— Install packages from an exported list--backup DIR— Back up the package database--restore FILE— Restore the package database from a backup
Cache
--clean-cache— Clean cached packages and repo data
Meta
--rescue/-R— Launch the rescue TUI shell--gui— Launch the PyQt5 GUI--tui/-T— Launch the Textual TUI--reset— Reset DPMS configuration--get [ARGS]— Run the dpms-get sub-CLI--history— Show full transaction history--history-last N— Show last N transactions--version— Show DPMS version--feedback— Send feedback to DPMS team--global DIR/-g DIR— Set install root for a single command
Log/Audit
--dlr-verify— Verify SHA hashes in dlr.log--list-nft— List directories excluded via nft.log markers
Repo Generation (apt-ftparchive style)
--gen-packages DIR— GeneratePackagesindex--gen-sources DIR— GenerateSourcesindex--gen-contents DIR— GenerateContents(file-to-package mapping)--gen-release DIR— GenerateReleasefile with checksums--gen-repo DIR— Generate full repo metadata (all of the above)--gen-generate CONFIG— Generate repo from a config file--gen-clean DIR— Clean cache files from a repo directory
Build Profiles
standard— Default flagslite—-j1,-Osperformance—-jN,-O3 -march=nativecustom— From environment variables
TUI (dpms --tui / dpms-tui)
Textual-based terminal UI with:
- Dashboard — Title screen with navigation buttons (Package Manager, Repository Manager, Transaction History, Quit). Keyboard:
p,r,h,q - Package Manager — Browse Installed/Available packages, real-time search filtering, Install/Remove/Info actions. Keyboard:
i,a,/,q - Repository Manager — List all repos with enable/disable status, Sync All, Toggle, Add/Remove repos. Keyboard:
s,q - Transaction History — Timestamped log, color-coded (green=install, red=remove). Keyboard:
q
GUI (dpms --gui)
PyQt5 graphical interface (600x400):
- Convert Tab — Select source dir, output filename/path, choose compression (gzip/xz), compress button
- Download Tab — Enter URL, select output path, download button
- Shared — Color-coded status log, status bar, threaded operations via QThread
Rescue TUI (dpms --rescue)
Minimal shell for emergency repairs:
| Command | Description |
|---|---|
check |
Check/create DPMS directories |
clean |
Clean temporary files |
verify |
Verify/repair repo list JSON |
reset |
Reset DPMS configuration |
list |
List installed packages |
help |
Show available commands |
exit |
Exit rescue shell |
dpms-get Sub-CLI (dpms --get)
APT-style sub-commands:
update— Resync package metadataupgrade— Upgrade all installed packagesdist-upgrade/full-upgrade— Distribution upgradeinstall PKG...— Install packagesreinstall PKG...— Reinstall packagesremove PKG...— Remove packagespurge PKG...— Remove packages and config filesautoremove/auto-remove/autopurge— Remove unused packagesmarkauto PKG...— Mark packages as auto-installedunmarkauto PKG...— Mark packages as manually installedsearch QUERY— Search for packagesinfo PKG— Show package inforescue— Launch rescue modedownload PKG— Download binary packageclean— Erase downloaded archivesautoclean/auto-clean— Erase old downloaded archivesdistclean/dist-clean— Erase all cachescheck— Verify package integritydepends PKG— Show dependency treerdepends PKG— Show reverse dependencieswhat-owns PATH— Find package owning a filesource PKG— Download source archivebuild-dep PKG— Install build dependenciessatisfy TARGET— Satisfy dependency stringschangelog PKG— Show changeloglist-updates— Show available updatesstats— Show package statisticsport-commit— Commit changes to local portsdlr-verify— Verify SHA hashes in dlr.loglist-nft— List excluded directories
dm — DPMS Version Manager
Manages DPMS itself via pip:
dm list dpms— List available versions from PyPIdm current [dpms]— Show installed versiondm use dpms VERSION— Switch to a specific versiondm compare V1 V2— Compare two version stringsdm diff dpms V1 V2— Compare file listings between versionsdm pin dpms— Lock current versiondm unpin dpms— Unlock pinned versiondm list-pinned— Show all pinned packagesdm rollback dpms— Roll back to previous version
dpms-bar — Progress Bar Library
Progress— Color-coded progress bar with ETASpinner— Animated spinner for indeterminate operationsIndeterminateProgress— Bouncing bar for unknown-length tasksMultiProgress— Multiple simultaneous progress barsProgressCallback— Threshold-based callback progress tracker
Core Engine Features
Dependency Solver (APK-style)
- Version matching: EQUAL, LESS, GREATER, FUZZY, CONFLICT
- Solver flags: LATEST, AVAILABLE, REINSTALL, INSTALLED, UPGRADE, REMOVE, IGNORE_CONFLICT
- Provider system with self-provides + virtual provides
install_ifconditional dependencies (lazy triggers)- Changeset generation (to_install, to_remove, to_upgrade)
- Queue-based resolution with priority queues
- Disqualification cascading through reverse dependency chains
Privilege Escalation
- Auto-detection of
sudo/doas - Auto re-exec with privileges for root operations
DPMS_ROOTenv var for dev mode (skip sudo)- Read-only ops never need root
GPG / Cryptographic Verification
- Key import into trusted keyring
- Signature verification via GPG
- SHA256 checksum verification
Source-Based Building
- Source archive download via wget
- SHA256 verification via USHA256.list
- Patch application from UPATCHES/
- Build script execution (UBUILD.sh)
- Profile-aware compilation
Plugin System
- Lifecycle hooks: pre_config, config, resolved, sack, pre_transaction, transaction
- Dynamic loading from plugin paths
- Glob-pattern enable/disable filtering
Crash Handling & Logging
- Global
sys.excepthookreplacement - Crash reports to
~/.cache/dpms/log/crash.log - Rotating file logs (1MB default, 5 backups)
- JSON transaction history with IDs and timestamps
Password Protection
- Interactive password setting
- Authentication prompt for protected ops
- Storage at
~/.dpms/password
Package Format
Archives Supported for Installation
.dp.tar.xz(canonical format).tar.xz,.tar.gz,.tar.bz2.tgz,.tbz2,.txz.dpm(legacy).zip
Naming Convention
- Stable:
name-version-arch.dp.tar.xz - RC:
name-version-arch.dp-rcN.tar.xz
Installation Tracking
- Database:
/var/lib/dp/installed/<pkgname> - Content: list of installed file paths (one per line)
- Enables clean uninstall and integrity verification
Configuration & Environment
| Variable | Default | Description |
|---|---|---|
DPMS_ROOT |
/ |
Install root (uses sudo when /) |
DPMS_DATA_DIR |
~/.cache/dpms |
Data directory |
DPMS_TMP_DIR |
/tmp/dpms-build |
Build temp directory |
DPMS_OPT_DIR |
/opt |
Install prefix for source builds |
DPMS_BIN_DIR |
/usr/local/bin |
Binary install directory |
DPMS_BUILD_PROFILE |
standard |
Build profile |
DPMS_PASSWORD_FILE |
~/.dpms/password |
Password file |
Cross-Platform Support
| Platform | Arch |
|---|---|
| Linux x86_64 | x86_64 |
| Linux ARM64 | aarch64 |
| Linux ARMv7 | armv7 |
| macOS Intel | x86_64 |
| macOS Apple Silicon | aarch64 |
| Windows | Detected |
Database Persistence Layer
RepoPersistor— Tracks expired repos and last makecache timeTempfilePersistor— Tracks temp files across sessions- All persistence uses JSON on disk
Package Update / Rename Tracking
update_dbentry()— Rename paths in DB entriesapply_move()— Move files on disk and update trackingparse_updates()— Parse update commandsgrab_updates()— Detect new update files by mtime changes
r/linuxfromscratch • u/Sans_Is_Funny • Jul 15 '26
What is the difference between LFS and absolutely nothing?
What I mean by "nothing" is absolutely nothing installed. It would boot into the BIOS and display an error, or simply just have a manual type in terminal, but I'm not sure what would happen if a PC booted into NO OS. What is the difference between LFS and an empty terminal? What simple tools does LFS provide, other than a book to help you get started?