blue-build / modules

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

feat: `gnome-extensions` module #190

Closed fiftydinar closed 2 months ago

fiftydinar commented 2 months ago

If you wished to install some Gnome extension, but couldn't find it in RPM, this extension will help you in that.

Basically all extensions are supported, with some rare extensions like Pano just additionally needing some system dependencies.

See README for more details.

PR is in draft as it just needs some cosmetic refinements in some areas & probably some documentation fixes.

It's not a big code, so I believe that it will suit the future bash module code guidelines nicely.

Some check like extension compatibility with Gnome version can also be implemented to fail if detected, based on metadata.json. I forgot that I could implement that.

EDIT: Implemented the compatibility check between extension & Gnome version.

fiftydinar commented 2 months ago

I found out that GSConnect doesn't have settings-schema key in metadata.json for some reason, so the module would fail to copy gschema xml.

The workaround would be to manually supply the key, to make extension work. I will have to think on how the recipe YML would look with this feature If it's desired to implement.

Real solution is for developer to implement it.

I added checks for shell-version, uuid & settings-schema key in metadata.json, so if any of those are not present in the extension, build will fail.

EDIT: This issue is solved, I got rid of settings-schema dependency. I can just copy .gschema.xml without knowing the source name! So basically all extensions are supported now.

fiftydinar commented 2 months ago

I think that this is ready for review.

I currently didn't find any other way to improve the module, while not making the maintenance much harder.

xynydev commented 2 months ago

Looks great overall! I'll review with a couple small things.