Nimbin[12]?Linux From Scratch / Packagemanager-LFS-PackageUser-System / stacks/dev.stack

Packagemanager-LFS-PackageUser-System git · main

Package-user based package manager for LFS/BLFS

lfs blfs package-manager bash · first commit 2026-08-18 · last commit 2026-10-26 (8 days ago) · synced 8 hours ago · upstream: github.com/nimbin2/Packagemanager-LFS-PackageUser-System

Shell 63.7% Markdown 35.8%
git clone https://git.christianimmanuel.de/linux-from-scratch/Packagemanager-LFS-PackageUser-System.gitwget https://git.christianimmanuel.de/linux-from-scratch/Packagemanager-LFS-PackageUser-System/archive/Packagemanager-LFS-PackageUser-System.tar.gz
stacks/dev.stack 2.1 KB · 43 lines raw
# dev.stack -- the tools for looking at a program that has gone wrong.
# stack-version: 1.14.320
#
# WHAT THIS MACHINE NEVER BUILDS is in avoid.stack, included by every stack
# here: the exclusions are a property of the machine, not of one stack.
include avoid

#
#   packagemanager stack dev --run
#
# WHY ITS OWN STACK, and not one of the others.  Every stack here answers one
# question.  services = what starts at boot; network = how the machine gets an
# address; sway = the desktop; diag = is the GPU doing what I think; media =
# what plays.  A debugger is none of those, and putting it in the nearest one
# would be the start of a stack that means nothing.  This is the one that
# means "the program crashed and I want to know why".
#
# Nothing depends on these.  They are safe to build last, and safe not to
# build at all -- which is the other reason they are not in a stack whose
# entries the desktop needs.

# GDB.  The book's page takes --with-system-readline, --with-system-zlib and
# --with-python=/usr/bin/python3, and installs gdb, gdbserver, gcore, gstack
# and gdb-add-index; the generated script comes from that page, so none of it
# is repeated here.
#
# Its only "required" dependency is the python module `six`, and that is for
# gdb's own Python scripting at RUNTIME -- gdb builds and debugs without it.
# The rest of the book's list (guile, doxygen, valgrind, rustc, SystemTap) is
# for gdb's test suite, not for gdb.
#
# On a package-user system the thing to remember is the OTHER half of
# debugging: a binary built by a package user carries whatever debug
# information its own build left in, and `packagemanager` does not strip
# anything.  If a backtrace is all `??`, the package was built without -g and
# has to be rebuilt, not re-debugged:
#     packagemanager update <pkg> --reinstall --regenerate --run
# with `[<pkg>] cflags = -g` in machine.conf.
book   gdb expect="test -x /usr/bin/gdb"

# Room here, deliberately: strace, ltrace and valgrind are the obvious
# neighbours and each is a BLFS page.  They are not added unasked -- an entry
# in a stack is a package that gets built on every replay of it.