Skip to content

fix(common): flatten Bluefin face icons into /usr/share/pixmaps/faces - #1296

Open
castrojo wants to merge 1 commit into
projectbluefin:mainfrom
castrojo:fix/353-dinosaur-faces
Open

fix(common): flatten Bluefin face icons into /usr/share/pixmaps/faces#1296
castrojo wants to merge 1 commit into
projectbluefin:mainfrom
castrojo:fix/353-dinosaur-faces

Conversation

@castrojo

@castrojo castrojo commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Closes #353

Problem

projectbluefin/common ships the Bluefin user-avatar art under
system_files/bluefin/usr/share/pixmaps/faces/bluefin/ (15 JPEGs, including the
dinosaur images). elements/bluefin/common.bst copies system_files/bluefin/usr/
verbatim, so those files land at /usr/share/pixmaps/faces/bluefin/ in the image
— confirmed by files/fakecap-manifest.tsv:657723-657737, which maps all 15 to
bluefin/common.bst.

GNOME's account-avatar chooser reads /usr/share/pixmaps/faces only, so the
images are present on disk but never offered to users. ublue-os/bluefin solves
this in build_files/base/05-override-install.sh (lines 29-32) by flattening
faces/bluefin/* over faces/ at build time; dakota has no equivalent step.

Change

  • elements/bluefin/common.bst install-commands: move
    %{datadir}/pixmaps/faces/bluefin/* into %{datadir}/pixmaps/faces/ and
    remove the now-empty subdirectory, guarded by a -d test.
  • Same element overlap-whitelist: add /usr/share/pixmaps/faces/*. The
    flattened filenames are identical to the GNOME OS defaults from
    core/gnome-control-center.bst (files/fakecap-manifest.tsv:657738-657752),
    so the overlap is intentional and must be declared.
  • docs/skills/oci-layers.md: record the vendor-subdirectory pattern.

Validation

Not run — this environment has no container runtime (podman/docker absent),
so just bst, just validate, just build, just lint, and just boot-test
all cannot execute here. The change is unverified by build; please treat CI
validate + e2e as the gate.

What to check after a build:

just bst artifact list-contents oci/layers/bluefin.bst | grep pixmaps/faces
# expect 15 entries directly under usr/share/pixmaps/faces, no faces/bluefin/

Note on generated files: files/filemap.json and files/fakecap-manifest.tsv
still list the old faces/bluefin/* paths. Regenerating them requires
bst artifact list-contents against a populated local cache
(docs/skills/ci.md, "Generated Files"), which is not possible here. They are
refreshed by the monthly update-filemap.yml workflow; a maintainer can run
workflow_dispatch with force_regenerate after merge if an immediate refresh
is wanted. Stale entries are non-fatal — fakecap-restore skips paths that do
not exist (files/fakecap/fakecap-restore.c:67-73); the effect is only that the
15 avatars are unlabelled for chunkah layer assignment until regeneration.

  • I am using an agent and I take responsibility for this PR

common ships the Bluefin user-avatar art (including the dinosaur images)
under /usr/share/pixmaps/faces/bluefin/. GNOME's account avatar chooser
scans /usr/share/pixmaps/faces non-recursively, so the files landed in
the image but never appeared in Settings > Users.

Flatten faces/bluefin/* over faces/ in install-commands, matching
ublue-os/bluefin build_files/base/05-override-install.sh. The flattened
filenames collide with the GNOME OS defaults from
core/gnome-control-center.bst, so add /usr/share/pixmaps/faces/* to the
overlap-whitelist.

Closes projectbluefin#353

Assisted-by: Claude Sonnet 4.6 via goose
@castrojo
castrojo requested a review from a team as a code owner August 7, 2026 03:56
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This PR targets main — please retarget it to testing. All content PRs (features, fixes, BST changes) land on testing. The main branch is a release bookmark only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant