Skip to content

Commit e3cde12

Browse files
committed
fix(common): flatten Bluefin face icons into /usr/share/pixmaps/faces
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 #353 Assisted-by: Claude Sonnet 4.6 via goose
1 parent 3f61e21 commit e3cde12

2 files changed

Lines changed: 31 additions & 0 deletions

File tree

docs/skills/oci-layers.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,3 +181,22 @@ The OCI assembly script in `elements/oci/bluefin.bst` must run steps in this exa
181181
4. `build-oci` (assemble image)
182182

183183
Running `ldconfig` after `build-oci` has no effect. Running `build-oci` before `dconf update` produces an image with stale/missing dconf databases.
184+
185+
### Bluefin content shipped in a subdirectory GNOME reads non-recursively (2026-08-07)
186+
187+
`projectbluefin/common` ships the Bluefin user-avatar art under
188+
`system_files/bluefin/usr/share/pixmaps/faces/bluefin/`, which
189+
`elements/bluefin/common.bst` copies verbatim into the image. GNOME's account
190+
avatar chooser scans `/usr/share/pixmaps/faces` non-recursively, so the files
191+
were present in the image but never visible to users (dakota#353).
192+
193+
`ublue-os/bluefin` handles this in `build_files/base/05-override-install.sh` by
194+
flattening `faces/bluefin/*` over `faces/` at build time. The BST equivalent is
195+
a flatten step in the `install-commands` of `elements/bluefin/common.bst`, plus
196+
an `overlap-whitelist` entry for `/usr/share/pixmaps/faces/*` because the
197+
flattened filenames collide with the GNOME OS defaults from
198+
`core/gnome-control-center.bst`.
199+
200+
General rule: when `common` places files in a vendor subdirectory, check whether
201+
the consuming component actually scans subdirectories before assuming the copy
202+
is sufficient.

elements/bluefin/common.bst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ public:
2525
- /etc/environment
2626
- /etc/containers/policy.json
2727
- /usr/share/pixmaps/gnome-boot-logo.png
28+
# Bluefin user-avatar art replaces the GNOME OS defaults shipped by
29+
# core/gnome-control-center.bst (same 15 filenames).
30+
- /usr/share/pixmaps/faces/*
2831

2932
variables:
3033
strip-binaries: ""
@@ -64,6 +67,15 @@ config:
6467
cp "%{install-root}%{datadir}/pixmaps/fedora-logo-icon.png" "%{install-root}%{datadir}/pixmaps/img-logo-icon-dark.png"
6568
# Override GNOME OS boot logo with Bluefin branding
6669
cp "%{install-root}%{datadir}/pixmaps/fedora-gdm-logo.png" "%{install-root}%{datadir}/pixmaps/gnome-boot-logo.png"
70+
# User-avatar art: common ships Bluefin faces under faces/bluefin/, but
71+
# gnome-control-center only reads %{datadir}/pixmaps/faces (non-recursive),
72+
# so the images never appear in the account-avatar chooser. Flatten them
73+
# over the GNOME OS defaults, matching ublue-os/bluefin's
74+
# build_files/base/05-override-install.sh.
75+
if [ -d "%{install-root}%{datadir}/pixmaps/faces/bluefin" ]; then
76+
mv "%{install-root}%{datadir}/pixmaps/faces/bluefin/"* "%{install-root}%{datadir}/pixmaps/faces/"
77+
rmdir "%{install-root}%{datadir}/pixmaps/faces/bluefin"
78+
fi
6779
install -Dm755 bluefin-wallpaper-month-sync "%{install-root}%{prefix}/libexec/bluefin-wallpaper-month-sync"
6880
install -Dm644 bluefin-wallpaper-month.service "%{install-root}%{prefix}/lib/systemd/system/bluefin-wallpaper-month.service"
6981
mkdir -p "%{install-root}%{prefix}/lib/systemd/system/multi-user.target.wants"

0 commit comments

Comments
 (0)