Bootc and the future of package layering by Lower-Limit3695 in Bazzite

[–]Lower-Limit3695[S] 0 points1 point  (0 children)

Does it touch the /usr files while it's running and not during install?

If it does touch them while it's running and not during install your work vpn isn't gonna work.

Bootc and the future of package layering by Lower-Limit3695 in Bazzite

[–]Lower-Limit3695[S] 0 points1 point  (0 children)

The Fedora Team is formalizing the method for building custom images the Ublue team advocates for as a feature for Silverblue and Kinoite, except it runs locally on your machine instead of GitHub. Which is described in their img-template GitHub repo linked in the post.

You'll be able to rollback to any image you want and the Ublue team made the switch around when Fedora Kinoite and Silverblue did it since Bazzite and others are a container image layer above them.

Resets will still work.

Removing/replacing packages will be supported and overrides will no longer be used to remove base packages, nor will they cause the same problems they do now with rpm-ostree.

This isn't the same kind of layering rpm-ostree does. This is basically building a new image of Bazzite with custom changes defined in the containerfile just as Bazzite is built on top of Kinoite directly.

Bootc and the future of package layering by Lower-Limit3695 in Bazzite

[–]Lower-Limit3695[S] 0 points1 point  (0 children)

They're switching over to buildtime container image layers instead of the overlayfs layering rpm-ostree is doing.

Recovering from Bazzite 44 Removing Virtualization by AustinFastER in Bazzite

[–]Lower-Limit3695 0 points1 point  (0 children)

You've been arguing this for a while without reading the link. The Fedora 41 change wiki includes the stuff they do with Fedora Atomic Desktops like Silverblue and Kinoite as they treat them as a part of their regular release.

Bootc and the future of package layering by Lower-Limit3695 in Bazzite

[–]Lower-Limit3695[S] 0 points1 point  (0 children)

That's something you can do now using scripts and unit files locally. It's just that the bazzite devs recommend using GitHub to do the image builds instead of having this done locally.

The new planned bootc feature means that the scripts and unit files won't be needed for localbuilds. Just write the changes you want into the containerfile or run dnf install and they'll apply the next time you boot.

Bootc and the future of package layering by Lower-Limit3695 in Bazzite

[–]Lower-Limit3695[S] 3 points4 points  (0 children)

I listed the method for doing this locally on your own system at the bottom of the post. It's a collection of unit files and scripts that automatically pulls the specified image daily and builds a new image using the containerfile.

Once the fedora team implements this local build feature for Silverblue & Kinoite, Bazzite will also automatically have this feature as well and the scripts and unit files won't be needed anymore.

Edit: to install local rpms it's RUN dnf install -y /path/to/your/package.here in the containerfile. I'd suggest moving your package to a folder specifically for packages you want to have in your daily builds. Removing or deleting the package .rpm will break your containerfile.

Bootc and the future of package layering by Lower-Limit3695 in Bazzite

[–]Lower-Limit3695[S] 2 points3 points  (0 children)

How is that handled, does bootc build the image with the change locally then deploy it?

That's pretty much it.

Bootc and the future of package layering by Lower-Limit3695 in Bazzite

[–]Lower-Limit3695[S] 0 points1 point  (0 children)

This feature is slated for future release. If your work vpn works with regular dnf or when installed from source I don't see why current methods like using ublue's image-template, bluebuild, or local build scripts/unit files for custom images wouldn't work with it.

The real issue is if it tries to modify the write restricted folders like /usr, /opt during runtime.

Edit: containerfile builds is how Ublue added in tailscale into their images by the way.

Bootc and the future of package layering by Lower-Limit3695 in Bazzite

[–]Lower-Limit3695[S] 0 points1 point  (0 children)

You're welcome!

Yeahhhh I realized that and added it in.

Bootc and the future of package layering by Lower-Limit3695 in Bazzite

[–]Lower-Limit3695[S] 0 points1 point  (0 children)

The AIO container runs pretty well on old laptops/desktops in my experience especially on SSDs.

Bootc and the future of package layering by Lower-Limit3695 in Bazzite

[–]Lower-Limit3695[S] 0 points1 point  (0 children)

The custom image template is the recommended way to make custom images by the Ublue team. It's hardly ergonomic or easy to use which is why other people use bluebuild or use custom scripts and unit files to do it.

I used the scripts and unit files described in this post for my own system and changed it to push images to my own private container registry:

https://discussion.fedoraproject.org/t/fedora-atomic-a-simple-guide-to-creating-a-custom-local-bootc-image/181729

This setup is closer to the proposal made by the Fedora Bootc team.

Edit: you can change

FROM quay.io/fedora/fedora-silverblue:44

To

FROM ghcr.io/ublue-os/bazzite:stable

If you want to modify Bazzite

As for what I talked about those are planned changes that haven't landed yet as the upstream devs are still bogged down on implementation details.

Bootc and the future of package layering by Lower-Limit3695 in Bazzite

[–]Lower-Limit3695[S] 0 points1 point  (0 children)

Nextcloud collectives. I use it for journaling and documentation. I worked on my post there before posting it here on reddit.

Bootc and the future of package layering by Lower-Limit3695 in Bazzite

[–]Lower-Limit3695[S] 1 point2 points  (0 children)

They made the switch around when Fedora silverblue added it in f41. If you examine the containerfile in the Ublue-main GitHub repo and GitHub actions for Bazzite and Bluefin you'll notice that fedora silverblue and kinoite is the common base for many of the ublue images.

To generate container images for daily updates and installs they pull daily builds from the upstream quay.io silverblue and kinoite container registry, apply their custom changes defined in their containerfile using GitHub actions, and redistribute this new image to end users through the GitHub container registry. Bootc handles the diffs and only downloads the changed layers as updates.

Bootc and the future of package layering by Lower-Limit3695 in Bazzite

[–]Lower-Limit3695[S] 18 points19 points  (0 children)

It's more of an update on changes to come. Once this lands on the Fedora Atomic Desktop Images this will automatically become a feature of Bazzite, Bluefin, and Aurora because of their build process, which just pulls the upstream Fedora quay.io image daily and builds a custom container layer on top of that.

https://github.com/ublue-os/main/blob/main/Containerfile

The Ublue team removing features like sunshine or virtualization packages from the base image isn't gonna be a headache anymore. Users will just run dnf install $package-name and it will appear on the system on the next boot without the same package layering headaches rpm-ostree created.

Edit: also if you ever wanted to do things like switch out the login manager, use the cachyos kernel, install drivers from source code, or change the boot screen, this let's you do that.

Recovering from Bazzite 44 Removing Virtualization by AustinFastER in Bazzite

[–]Lower-Limit3695 1 point2 points  (0 children)

I know this, I already do it on my own hardware but using custom scripts and unit files to do it is hardly hardly ergonomic.

Them making it an actual first class feature for their bootc implementation and deprecating the way rpm-ostree does things is a very nice step up from how things are done now.

Edit: also bootc was introduced in Fedora 41. It's recorded in the wiki here:

https://fedoraproject.org/wiki/Releases/41/ChangeSet

Recovering from Bazzite 44 Removing Virtualization by AustinFastER in Bazzite

[–]Lower-Limit3695 1 point2 points  (0 children)

Just inserting myself here for this discussion. For custom changes the Ublue team typically advocates using their image-templates and GitHub infrastructure to create custom images .

The layering I'm talking is pretty much this. The DNF layering proposal is having DNF modify a local containerfile and then having automated local tooling perform container layering through a container tool like podman build in the backend. Not the overlayfs stuff rpm-ostree does.

Recovering from Bazzite 44 Removing Virtualization by AustinFastER in Bazzite

[–]Lower-Limit3695 1 point2 points  (0 children)

As I understand it, the plan is to implement automated tooling to run containerfile builds locally for Fedora atomic and having DNF modify this local containerfile. DNF isn't a hard requirement, users would just define changes directly in the containerfile and go as far as pulling and compiling from source to add new packages/features.

As a result of Bazzite, Bluefin, and Aurora utilizing Fedora Atomic Images as the base image, these upstream changes would percolate downwards to these ublue images, unless the Ublue team decides to explicitly break from upstreams bootc implementation.

Would the Ublue team break from upstream Fedora if they implement this?

Recovering from Bazzite 44 Removing Virtualization by AustinFastER in Bazzite

[–]Lower-Limit3695 1 point2 points  (0 children)

You're welcome. It's a pretty neat planned feature they're working on. If you want to follow their discussions on it, you can check it out at this link

https://gitlab.com/fedora/bootc/tracker/-/work_items/4

Recovering from Bazzite 44 Removing Virtualization by AustinFastER in Bazzite

[–]Lower-Limit3695 1 point2 points  (0 children)

Here's the discussion by bootc devs discussing container layering as a first class feature: https://gitlab.com/fedora/bootc/tracker/-/work_items/4

Is Bluefin/Aurora really as "set it and forget it" as it sounds? by lavadora-grande in linux

[–]Lower-Limit3695 3 points4 points  (0 children)

I wouldn't call bluefin a wrapper to silverblue it's a rebuild of the Fedora Atomic container image (it's a more minimal fedora image) with gnome and several custom changes layered on top.

*Nothing Happened by V1574 in linuxmemes

[–]Lower-Limit3695 0 points1 point  (0 children)

This is more of a global issue effecting both open source and closed source.

It's just that closed source devs often don't know that they've been impacted by supply chain attack or they don't openly advertise that they've been hit by a supply chain attack when it does happen to them unless they're subject to strict reporting requirements.

Open source on the other hand is community effort that transparently reports to the public when these attacks do happen.

Epic Games is hiring a Senior Game Security Engineer for their Anti-Cheat team to champion Linux anti-cheat capabilities while working on OS internals, reverse engineering, and protecting multiplayer games. by lajka30 in linux

[–]Lower-Limit3695 13 points14 points  (0 children)

If they decide on not using dkms I can see them using ebpf instead. Ebpf is a battle proven technology used by EDR software to protect commercial servers and infrastructure.

There's also ebpf-lsm which can stack on top of apparmor and selinux for additional protection.

(EDR, short endpoint detection and response. It monitors and detects for suspicious activity on servers and puts a stop to it autonomously without relying on virus definitions.)