ublue-os / sysext

EXPERIMENTAL: ublue systemd-sysext
Apache License 2.0
23 stars 2 forks source link

bluefin-dx tracking issue #2

Open bketelsen opened 8 months ago

bketelsen commented 8 months ago

in order to serve as a replacement for the -dx experience we need the following included in a single sysext:

Some of these are packaged by and maintained upstream by Fedora. I think those should be "installed" in the sysext as-is.

Others require some custom build steps and bring in dependencies that Fedora doesn't carry. Those should be installed in a custom prefix. I've proposed /usr/bluefin in Discord, but I think that's thinking too small, so I'm thinking /usr/ublue to make this a little more general feeling. (even though it's just an alpha/Proof Of Concept it's never bad to shoot for the stars)

Tools installed in the custom prefix will not be available without modifying PATH variables. This is intentional, a user of the system won't even see the -dx tools without enabling them. This prevents -dx tools from masking system provided tools, and prevents third party dependency libraries from appearing in LD CPP PKG* type paths.

How to build

There are at least two obvious paths for building sysexts.

These are two very different recipes for the same outcome. The "quick way" feels very fast and loose with fewer guardrails. The mkosi way is far more rigid and structured, with a steeper learning curve.

We should explore both, especially from the CI/CD perspective. I'm not sure mkosi + Fedora and Github Actions are a good combo, but that's just because I haven't seen it done yet. The "quick way" is very GHA friendly, the first commits to this repo show using a podman container to build and compress the tools, which we've already shown in the UBlue universe to be a very effective way to build and distribute.

Other notes to track

m2Giles commented 8 months ago

Login (from VT) does not pass environment variables sourced from login shell to systemd user session.

GDM does this.

So if we are placing something to set a path in /etc/profile.d does systemd user session need to know this path or not? Will there be a different behavior for a user?

I'm assuming no, but should be something we check as well.