blue-build / modules

BlueBuild standard modules used for building your Atomic Images
Apache License 2.0
23 stars 25 forks source link

feat: Add `gschema-overrides` module #110

Closed fiftydinar closed 5 months ago

fiftydinar commented 5 months ago

This module should mostly replace dconf-service-update entry in bling, as a more cleaner & better solution.

Biggest advantage is that it fails on build if errors are found.

More details in README.

fiftydinar commented 5 months ago

I'm thinking on implementing auto-detection of current gschema override names & auto-assigning the higher prefix to your gschema override so it takes advantage.

fiftydinar commented 5 months ago

Some gschema overrides are installed after image-build: https://src.fedoraproject.org/rpms/gnome-software/blob/rawhide/f/gnome-software.spec#_175

This makes gschema override preference detection unreliable.

So I would abandon "preferred gschema-override" troubleshooting for now & mark this as ready.

I will just edit prefix to be z1- instead of z0-, as this preference would likely be used by upstream Universal Blue images in the future.

xynydev commented 5 months ago

This looks pretty good! Some README comments incoming...

fiftydinar commented 5 months ago
  • should also have either a link to a guide or a short guide & example regarding how gschema overrides are written and what sorts of settings can be changed with them

I included link for that in last line

If you think that link can be improved, I'm in to change it

xynydev commented 5 months ago

I included link for that in last line.

Oh yeah! I saw that. Didn't think it fit the usecase though, since a lot of that is stuff already covered in this README, while there's only little coverage on the actual how to figure out what to put in the override files part.

fiftydinar commented 5 months ago

I included link for that in last line.

Oh yeah! I saw that. Didn't think it fit the usecase though, since a lot of that is stuff already covered in this README, while there's only little coverage on the actual how to figure out what to put in the override files part.

I agree that a lot of the stuff is covered in README. I will figure out something

fiftydinar commented 5 months ago

One issue is that there is no alternative to dconf watch / for gsettings, so some unsupported relocatable schema can slip in.

So I added a note that you should always use gsettings list-recursively command for checking setting availability,

I tried to make some gsettings monitor all type of command & it works, but it only lists the key & value, not the full schema path, which is not ideal for rookie maintainers:

#!/bin/bash

schemas=$(gsettings list-schemas)

for schema in $schemas; do
    gsettings monitor $schema &
done

trap 'echo "Schema: $schema"' USR1

read -rsp $'Press any key to stop monitoring...\n\n' -n1 key

kill $(jobs -p)