From 1d11db9f36751e0994b57b6915935a390d2a9cc6 Mon Sep 17 00:00:00 2001 From: Julien Gautier Date: Sun, 24 May 2026 21:02:24 +0200 Subject: [PATCH] docs(setup): drop deprecated apt packages on Debian 13 trixie (#223) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Follow-up on [#220](https://git.unespace.com/julien/apf_portal/pulls/220). [`10-base-packages.sh`](docs/setup/scripts/10-base-packages.sh) fails on a fresh Debian 13 Trixie VM with `E: Impossible de trouver le paquet software-properties-common`. The package is no longer shipped on Trixie — and it was never used by any of our downstream scripts in the first place. Drop three deprecated / unused packages from the install list. Add an inline comment explaining each kept package's purpose so a drive-by addition doesn't reintroduce the dropped ones. ## What lands | File | Change | | --- | --- | | `docs/setup/scripts/10-base-packages.sh` | Drop `software-properties-common`, `apt-transport-https`, `lsb-release`. Remaining minimal set: `curl wget git ca-certificates gnupg build-essential pkg-config`. Inline comment lists which downstream script consumes each kept package + which three were deliberately removed and why. | | `docs/setup/01-dev-debian-vm-setup.md` | Step-3 table row for `10-base-packages.sh` updated to match the new package list. | ## Why each removed package wasn't needed | Package | Why removed | | --- | --- | | `software-properties-common` | Drops `add-apt-repository`. We don't use it — [`50-docker.sh`](docs/setup/scripts/50-docker.sh) writes `/etc/apt/sources.list.d/docker.list` manually with the keyring-pinned `signed-by=` form. Also no longer in Trixie. | | `apt-transport-https` | Transitional package since apt 1.5 (2018) — apt has native HTTPS. Intermittently absent on Trixie. | | `lsb-release` | Shell scripts read `/etc/os-release` directly (see `50-docker.sh`'s `. /etc/os-release && echo "${VERSION_CODENAME}"`). | ## Unblock path (manual, if you're stuck mid-bootstrap) The user can either pull this PR and re-run, or shortcut manually: ```bash sudo apt-get install -y curl wget git ca-certificates gnupg build-essential pkg-config ./docs/setup/scripts/20-zsh.sh # continue from the next step ``` Scripts are idempotent — re-running `bootstrap.sh` after pulling this PR is also safe. ## Test plan - [ ] On a fresh Trixie VM, `./docs/setup/scripts/10-base-packages.sh` exits successfully. - [ ] Verify each downstream script still has the binaries it expects (curl in 40-node.sh, gpg in 50-docker.sh, build-essential in pnpm install, …). - [x] `pnpm exec prettier --check` clean on the touched files. - [x] `bash -n docs/setup/scripts/10-base-packages.sh` clean. --------- Co-authored-by: Julien Gautier Reviewed-on: https://git.unespace.com/julien/apf_portal/pulls/223 --- docs/setup/01-dev-debian-vm-setup.md | 2 +- docs/setup/scripts/10-base-packages.sh | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/docs/setup/01-dev-debian-vm-setup.md b/docs/setup/01-dev-debian-vm-setup.md index 2f41ffb..54256e4 100644 --- a/docs/setup/01-dev-debian-vm-setup.md +++ b/docs/setup/01-dev-debian-vm-setup.md @@ -162,7 +162,7 @@ What each script does: | Script | Effect | Idempotent? | | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | -| [`10-base-packages.sh`](scripts/10-base-packages.sh) | `apt update` + install base packages (curl wget git build-essential ca-certificates gnupg software-properties-common) | ✅ | +| [`10-base-packages.sh`](scripts/10-base-packages.sh) | `apt update` + install the minimal set every other script depends on: `curl wget git ca-certificates gnupg build-essential pkg-config`. | ✅ | | [`20-zsh.sh`](scripts/20-zsh.sh) | Install zsh + Oh My Zsh + Powerlevel10k + plugins (autosuggestions, syntax-highlighting). Patch `~/.zshrc` (theme + plugins + fzf hook) and `~/.bashrc` (exec zsh on interactive shells — `chsh` is blocked on the corp VM). | ✅ | | [`30-cli-tools.sh`](scripts/30-cli-tools.sh) | Install `bat eza fd-find ripgrep fzf zoxide ncdu keychain` + `jq yq httpie make tree htop tmux direnv dnsutils unzip`. Aliases for the Debian-renamed binaries (`batcat`→`bat`, `fdfind`→`fd`). | ✅ | | [`40-node.sh`](scripts/40-node.sh) | Install nvm. Install Node from the repo's `.nvmrc` (currently `24`). Enable corepack, pin pnpm to `package.json`'s `packageManager`. | ✅ | diff --git a/docs/setup/scripts/10-base-packages.sh b/docs/setup/scripts/10-base-packages.sh index a2766ed..39bfb26 100755 --- a/docs/setup/scripts/10-base-packages.sh +++ b/docs/setup/scripts/10-base-packages.sh @@ -9,9 +9,23 @@ require_not_root log "apt update" sudo apt-get update -qq +# Minimal set actually consumed by the other scripts: +# - curl/wget used by 40-node.sh (nvm install), 50-docker.sh (gpg key) +# and the .NET appendix (wget packages-microsoft-prod.deb) +# - git every other script that touches the repo +# - ca-certs HTTPS over apt + curl/wget +# - gnupg verifying the Docker apt repo key +# - build-essential / pkg-config — native deps during pnpm install +# +# Deliberately NOT installed (deprecated or unused on Debian 13 Trixie): +# - software-properties-common: drops `add-apt-repository`, which we +# don't use (50-docker.sh writes /etc/apt/sources.list.d/docker.list +# manually). Also failing to resolve on a fresh Trixie install. +# - apt-transport-https: apt has had native HTTPS support since 1.5 (2018), +# the transitional package isn't needed and is intermittently absent. +# - lsb-release: shell scripts read /etc/os-release directly (see 50-docker.sh). apt_install \ - curl wget git ca-certificates gnupg lsb-release \ - software-properties-common apt-transport-https \ + curl wget git ca-certificates gnupg \ build-essential pkg-config ok "Base packages ready."