Nimbin[12]?Linux From Scratch / Packagemanager-LFS-PackageUser-System / stacks/avoid.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/avoid.stack 6.7 KB · 170 lines raw
# avoid.stack -- what no stack on this machine builds, and why.
# stack-version: 1.14.320
#
# An `avoid` entry does not build anything: it tells a dependency plan that
# this machine will not have that package, so the plan stops walking into it
# and its own dependencies never appear either.  87 entries here keep a
# desktop build from dragging in qt6, cups, texlive, openjdk, systemd and
# the rest of two other desktop environments.
#
# WHY A FILE OF ITS OWN.  These lived in sway.stack, and when the media
# chain moved into media.stack it lost all of them -- so
# `packagemanager stack media --status` planned 274 packages including
# systemd, polkit, linux-pam, qt6 and cups, on a SysV machine that must
# never have systemd.  The exclusions are a property of the MACHINE, not of
# one stack, so every stack includes this file:
#
#     include avoid
#
# Nothing here is ever built, so including it costs nothing and forgetting
# it costs an afternoon.
#
# DUPLICATES REMOVED when this was split out: libkexiv2, libfm-qt,
# xdg-desktop-portal-lxqt and xdg-desktop-portal-gnome were each listed
# twice, which is why `stack sway` used to print some names twice in its
# "never built by this stack" line.  Harmless, and it made the composed plan
# impossible to check against, so now one entry per package.

# Never built by this stack, however they are reached.  harfbuzz RECOMMENDS
# texlive and LibreOffice; a sway desktop with a webkit browser wants
# neither, and texlive alone is hours of build time and a /opt tree.
# NOT BUILT BY THIS STACK.  The book's recommendations are followed --
# a recommendation the build actually needs (curl for cmake, icu for
# libxml2) must not be dropped by a blanket rule.  These are the branches
# this desktop does not want, named one at a time, and everything they alone
# pull in goes with them.
avoid  libreoffice
avoid  asymptote
avoid  biber
avoid  qt6
avoid  okular
avoid  phonon
avoid  phonon-backend-vlc
avoid  vlc
avoid  cups
avoid  openjdk
avoid  java
avoid  apache-ant
avoid  postgresql
avoid  openldap
avoid  unixodbc
avoid  graphviz
avoid  gegl

# the KDE leaves okular pulls in: named individually, because a package can
# have several parents and pruning by one of them drops shared dependencies
# (graphite2 was lost that way)
avoid  plasma-activities
avoid  libkexiv2
avoid  kwindowsystem
avoid  libfm-qt
avoid  xdg-desktop-portal-lxqt
avoid  xdg-desktop-portal-gnome
avoid  gnome-desktop

# The desktop-portal tail.  The book makes xdg-desktop-portal REQUIRE all
# four backends -- gtk, wlr, gnome AND lxqt -- so one recommendation from
# gtk4 drags in the whole of xfce and lxqt, gnome-desktop and libfm-qt.
# Sway needs none of it to run; screen sharing wants xdg-desktop-portal-wlr,
# which can be built on its own later:
#     packagemanager install xdg-desktop-portal-wlr --run
avoid  xdg-desktop-portal
avoid  xdg-desktop-portal-gtk
avoid  xdg-desktop-portal-wlr
avoid  xfce4-panel
avoid  xfce4-notifyd
avoid  xfce4-dev-tools
avoid  xfconf
avoid  libxfce4util
avoid  libxfce4ui
avoid  libxfce4windowing
avoid  exo
avoid  garcon
avoid  liblxqt
avoid  lxqt-build-tools
avoid  lxqt-notificationd
avoid  lxqt-kwindowsystem
avoid  libqtxdg
avoid  polkit-qt
avoid  menu-cache
avoid  libwnck
avoid  notification-daemon

# Not this desktop either: a systemd package on a SysV system, phone modem
# stacks, a mail/ssh server, spell-checking dictionaries.
avoid  systemd
avoid  ModemManager
avoid  libmbim
avoid  libqmi
avoid  geoclue2

# openssh is AVOIDED here and INSTALLED by network.stack, where it belongs:
# it is networking, not desktop.  Letting a dependency plan pull it in
# mid-sway would put its system-account question in the middle of a graphics
# build.
# openssh WAS avoided here.  network.stack BUILDS it (with the install-sshd
# bootscript), so the two files contradicted each other: an `avoid` entry
# and a `book` entry for one package, and whichever a plan saw first won.
# Removed in 1.14.241 -- it is wanted.
avoid  ruby
avoid  aspell
avoid  enchant
avoid  gnome-keyring
avoid  gcr
avoid  startup-notification

# Tails of things already avoided.  Each of these is in the plan ONLY to
# serve a package this stack does not build, and the tools cannot yet work
# that out for themselves (see 1.12.83: pruning by the single parent that
# `blfs order` reports dropped shared dependencies, and broke harfbuzz).
# Checked one by one against the plan's parent column:
avoid  libcupsfilters        # cups   (avoided)
avoid  libppd                # cups
avoid  cups-filters          # cups
avoid  exiv2                 # libkexiv2
avoid  clucene               # libreoffice (avoided)
avoid  redland               # libreoffice
avoid  rasqal                # redland
avoid  raptor                # rasqal
avoid  jasper                # qt6    (avoided)
avoid  libmng                # qt6
avoid  double-conversion     # qt6
# poppler WAS avoided here (libcupsfilters was its only parent, and that is
# avoided).  It moved to sway.stack in 1.14.241: zathura's PDF backend needs
# it, so it is now something this machine WANTS rather than something it is
# dragged into.  mupdf below stays avoided -- it is the OTHER backend and
# one is enough.
avoid  mupdf                 # libcupsfilters
avoid  gs                    # libcupsfilters
avoid  qpdf                  # libcupsfilters
avoid  nss                   # poppler
avoid  boost                 # poppler
avoid  pdfio                 # libcupsfilters
avoid  gpgmepp               # poppler

# Checked against EVERY parent, not just the one the plan prints: these have
# no parent left in the plan at all.
avoid  colord                # cups (avoided) -- no live parent
# linux-pam WAS avoided here: it only ever arrived as systemd's dependency,
# and systemd is avoided.  It moved to services.stack in 1.14.235 because
# passwordless `su - u_<app>` needs pam_exec, which needs pam -- so it is
# now something this machine WANTS rather than something it is dragged into.
# (Left as a comment rather than deleted: the reason it was here is the
# reason it must not come back by accident.)
avoid  xdg-utils             # cups -- no live parent
avoid  freeglut              # mupdf (avoided) -- no live parent
avoid  polkit                # colord + systemd (both avoided) -- no live parent
avoid  libgusb               # colord


# TeX is NOT built by this stack.
#
# Putting `book texlive` last only moved the ENTRY: texlive is harfbuzz's
# recommendation, so it was still pulled into an early entry's plan and
# failed there (its configure wants freetype-config, which FreeType removed
# years ago -- an upstream problem, not this desktop's).  Nothing here needs
# TeX: the book's `make ... pdf ps` manual builds are commented out (1.12.87)
# and asymptote/biber are avoided.
#
# To build it later, on its own:  packagemanager install texlive --run
avoid  texlive