Use when removing a software package from the Bluefin image, deleting a .bst element, or unwiring a package from the build
83
78%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./.opencode/skills/removing-packages/SKILL.mdSystematic checklist for safely removing a package from the Bluefin image. The reverse of adding-a-package. Every step includes a verification command -- skip nothing.
bluefin/ or core/ element from the buildWork through every step. Some steps will be no-ops -- the verification command tells you.
# Find the element and any arch-specific variants
ls elements/bluefin/<name>*.bst elements/core/<name>*.bst 2>/dev/nullMulti-arch packages have a stack (e.g., tailscale.bst) plus per-arch elements (tailscale-x86_64.bst, tailscale-aarch64.bst). Remove all of them.
grep -r "<name>.bst" elements/If other elements depend on this package, you must update or remove them too. Do not proceed until all reverse dependencies are resolved.
Edit elements/bluefin/deps.bst -- remove the bluefin/<name>.bst line from depends:.
For core/ override elements, this step is different -- see Special Cases below.
rm elements/bluefin/<name>.bst # main element
rm elements/bluefin/<name>-*.bst # arch variants (if any)grep -rl "<alias_name>" elements/bluefin/ elements/core/ include/Look at the element's url: fields to find which aliases it used. If an alias in include/aliases.yml is used only by the removed element, remove that alias.
grep "<name>" .github/workflows/track-bst-sources.ymlRemove the element path from auto-merge or manual-merge groups. Also check the track-tarballs job for tarball-sourced elements.
grep -i "<name>" .github/renovate.json5Remove any customManagers entries or packageRules that reference the element or its upstream dependency.
grep -r "<name>" files/
ls files/<name>/ 2>/dev/nullRemove directories/files in files/ that were only used by this element (e.g., files/plymouth/ for the plymouth theme).
ls patches/freedesktop-sdk/*<name>* patches/gnome-build-meta/*<name>* 2>/dev/nullRemove patches that only existed for this element. Check patch filenames and content.
just bst show oci/bluefin.bst # dependency graph resolves
just build # full image buildselements/core/)Core elements are referenced from elements/gnome-build-meta.bst via config.overrides, not from deps.bst. To remove:
elements/core/overrides: entry in elements/gnome-build-meta.bstA multi-arch package typically has 3 files: a stack element plus per-arch elements. The stack is listed in deps.bst; the arch elements are dependencies of the stack. Remove all files.
Extensions live in elements/bluefin/shell-extensions/. Also remove from the elements/bluefin/gnome-shell-extensions.bst stack (not deps.bst).
| Mistake | Consequence |
|---|---|
| Skip reverse dependency check | Other elements fail to build |
| Leave element in tracking workflow | Cron job fails daily |
| Remove alias still used by other elements | Other elements lose their source URL |
| Forget junction override entry | gnome-build-meta override points to missing file |
| Only delete main element, miss arch variants | Orphaned arch elements in tree |
adding-a-package -- reverse workflowpatching-upstream-junctions -- for junction patch cleanupbuildstream-element-reference -- element kinds and structuref062bf8
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.