Files
os-build/editions/workstation/packages.list
Blake Ridgway 0361c12c07 fix: resolve grub-pc / grub-efi-amd64 "held broken packages" conflict
The edition package lists installed BOTH grub-pc and grub-efi-amd64
(+ shim-signed). Those provide the same bootloader role and conflict in
apt, so every rootfs build failed with "unable to correct problems, you
have held broken packages".

A rootfs now carries exactly ONE bootloader, chosen by the BOOT variable
(mirroring the existing --boot bios|efi deploy option):

- versions.mk / common.sh: BOOT := bios (bios -> grub-pc,
  efi -> grub-efi-amd64 + shim-signed + mokutil), exported via the
  Makefile.
- build-rootfs.sh validates BOOT early and injects the matching boot
  packages into the apt install; the static package lists no longer
  contain any grub package.
- deploy-disk.sh / build-image.sh / install.sh default --boot from the
  same BOOT variable, so a rootfs and the artifact deployed from it can
  never disagree (BOOT=efi make image-cloud produces a UEFI image).
- mokutil is now installed explicitly in the efi flavour (it was not
  pulled in because we install with --no-install-recommends).
- docs updated (building.md knob + rationale, secureboot.md note).
2026-08-21 14:15:10 -05:00

103 lines
3.0 KiB
Plaintext

# Arcline Workstation — package set
# Curated KDE Plasma desktop (not the full task-* meta-package) plus a
# complete developer toolchain.
# ── base system ─────────────────────────────────────────────────────────────
systemd
systemd-sysv
dbus
libpam-systemd
ca-certificates
locales
tzdata
# ── boot ────────────────────────────────────────────────────────────────────
# The bootloader is chosen by the BOOT build variable and injected by
# build-rootfs.sh: bios → grub-pc, efi → grub-efi-amd64 + shim-signed.
# (Installing grub-pc and grub-efi-amd64 together makes apt fail with a
# "held broken packages" conflict — exactly one is ever installed.)
os-prober
# ── kernel / firmware ───────────────────────────────────────────────────────
linux-image-amd64
firmware-linux-free
firmware-misc-nonfree # broadcom/intel wifi + gpu firmware
# ── filesystem ──────────────────────────────────────────────────────────────
btrfs-progs
snapper
zstd
xz-utils
# ── desktop: X + KDE Plasma ─────────────────────────────────────────────────
xserver-xorg
xinit
plasma-desktop
sddm
konsole
dolphin
kate
ark
gwenview
plasma-discover
network-manager
network-manager-gnome
pipewire
pipewire-pulse
wireplumber
pulseaudio-utils
# ── display / audio / input extras ──────────────────────────────────────────
fonts-noto-core
fonts-liberation
firefox-esr
# ── security / hardening ────────────────────────────────────────────────────
openssh-server
nftables
apparmor
apparmor-utils
fail2ban
# ── developer toolchain ─────────────────────────────────────────────────────
build-essential
gcc
g++
clang
clang-format
llvm
lld
gdb
cmake
ninja-build
pkg-config
golang-go
rustc
cargo
python3
python3-pip
python3-venv
nodejs
npm
git
make
curl
wget
jq
vim
nano
htop
tmux
ripgrep
fd-find
bat
docker.io
podman
runc
containernetworking-plugins
# ── Arcline toolchain (built from toolchain/) ───────────────────────────────
# arcline-uptime arcline-check arcline-audit arcline-dns
# arcline-vault arcline-email arcline-migrate arcline-billing
# arcline-portal arcline-website arcline-status