https://blue-build.org/ logo
General questions, config recipe.yaml, error missi...
# questions
h
Hi all, i'm new to Fedora, coming from Arch i switched because i really liked the idea of an immutable system. For now i switched to Fedora Sway Atomic and loving it so far. I got into BlueBuild and trying to build my own distro based on Sway Atomic, which i than will also install on my workstation (currently only using fedora on my laptop). My plan is to use the BlueBuild recipe.yaml file to kind of sync my machines. My idea of the workflow is, that for example if i want to install a new app with flatpak, i change the recipe.yaml and use the bluebuild switch command to apply the changes. Same for the other machine, i pull the changed recipe.yaml from github and do bluebuild switch. To my questions: 1. Is that a reliable workflow? Could i "sync" my two machines like that? What about installing apps without the recipe.yaml, will they stay when i rebase to another image? 2. Can i use Fedora Sway Atomic as base? And if yes, what URL do i need to use as ⁨`base-image`⁩? 3. When i try to use ⁨`bluebuild switch`⁩ i always get the error ⁨`missing field container-image-reference`⁩. If i do ⁨`bluebuild validate`⁩ my recipe.yaml seem to be ok. Any ideas what the problem is? As reference i attached my recipe.yaml. Thanks ahead to all of you! Really looking forward to learn more on that awesome project. https://cdn.discordapp.com/attachments/1467195242947154100/1467195243798724905/recipe.yml?ex=697f7f8d&is=697e2e0d&hm=672297c9e3812d3aa678972b6357005f8ba848dc3e2c6707239a4862e76ab03b&
a
message has been deleted
x
1. Yes, that is what I do as well to keep two computers in "sync". Flatpak apps, ~/.local/bin, etc. will stay in tact when rebasing to another image. 2. Yes, there are a few options. [Wayblue](https://github.com/wayblueorg/wayblue) has sway images, and so does the almost-official-but-not [fedora-ostree-desktops](https://quay.io/repository/fedora-ostree-desktops/sway-atomic)
3. I'm not sure about what the issue is here, @gmpinder might have some clue though. It's probably not an issue with your recipe or anything, though.
Also acknowledge that ⁨`bluebuild switch`⁩ is mostly good for when you really really want to keep builds local on your machine, but it needs you to update manually or set up a cronjob to do that. A more common approach is building images on GitHub/Gitlab or a self-hosted CI/CD
h
Thanks for the fast answer. Few more questions to your answers: 2. Which one would you choose and why? Atm i installed the fedora-ostree version. 3. Just found this Github issue, but i still don't understand what the problem is. https://github.com/blue-build/cli/issues/418 Ok when im building images on github how to i updated my machines with the newest image? Do i need to rebase? Or just upgrade?
x
2. I would probably choose Wayblue if I found that the "minimal opinions" about what software my desktop should be built out of aligned with mine, or I did not really care. The version from ⁨`fedora-ostree-desktops`⁩ is pretty much exactly the same as what you're running right now if you installed the official version, so if you just want to start adding on top of that I'd pick that.
3. So, what this means is that since you installed Atomic Fedora from an official ISO downloaded from the website, what you're running is a so-called "ostree deployment". With bootc and bootable/native containers, though, there is now a new type of deployment, a "container deployment" if you will. BlueBuild, Universal Blue, Wayblue, ⁨`fedora-ostree-desktops`⁩ on quay etc. all build these OCI (basically container) images using OCI tech like podman/docker/etc. Apparently there is an issue using ⁨`bluebuild switch`⁩ on non-container deployments, which is what you are running currently, so if you want to use that command you can first use ⁨`rpm-ostree rebase`⁩ (or the newer ⁨`bootc switch`⁩ might work too if that is installed by default, not sure) to switch to a container tech based image.
After rebasing onto an image built on GitHub for example, just updating will be enough to get the latest version. Automatic updates are often enabled as well, with ⁨`rpm-ostreed-automatic.timer`⁩ or ⁨`bootc-fetch-apply-updates.timer`⁩.
If you rebased/switch onto an image with a version tag like ⁨`:43`⁩, you will not be rolled onto Fedora 44 automatically and will have to rebase again when wanting to update. If you're on the ⁨`:latest`⁩ tag, you will always get the latest version no matter what.
That applies to the ⁨`image-version:`⁩ option in the recipe as well
h
Oh ok, now its getting a lot clearer, thanks mate for helping me out, really appreciated! As you mentioned correctly im currently running the official version. So i think i will base my recipe than on wayblue sway version. Is it recommended to rebase to the "standard" wayblue image first or can i directly rebase to my custom image? Or should i even do a clean install first?
As i understood it right, after i finally created my recipe.yaml, i push it to github and than build an iso with ⁨`sudo bluebuild generate-iso --iso-name weird-os.iso image ghcr.io/octocat/weird-os`⁩ (example from docs) and than i can rebase to this iso. Is that how it works? Do i have my Github repo set to public or can i have it private, would prefer private?
x
you can rebase to your custom image without any preparation
no need to build an ISO, those are only for fresh installs
assuming your repo is generated based on the template, it should have instructions for rebasing
h
Yes sorry just found it, ok now its clear! Its not even that complicated! Thanks a lot for your help.
One last question, do you know if i can have my github repo private?
x
you can, but i believe github puts greater restrictions on actions in private repositories
and the image that is pushed to the github registry needs to be private as well if you want to keep its contents private, at which point you have to figure out how to log in to the registry on your system
h
Hm ok, i think i need to have a look in more detail. Thanks for the explanation. Is there are chnace to buy you a coffee or something like that?
x
bluebuild as a project? no, probably not in a long time. me personally? well, i don't really have any official donation paths right now, but i have gotten one donation via someone buying an ambient album i have released on bandcamp lol (https://xyny.bandcamp.com/)
i could also look into github sponsors or something like that, just haven't had any real need for that yet
i do have crypto wallets too but i dont use crypto for anything ever so it's a bit cumbersome
h
OK tell me when your profile is approved!
Ok, so well, I have some more questions after all 😄 I created a new recipe.yaml today and rebased to my build now. But no im gnome silverblue, in my yaml i used ⁨`ghcr.io/wayblueorg/sway`⁩as base. Any idea why that happened? As reference here is a link to my repo: https://github.com/Hema2301/hema-os/blob/main/recipes/recipe.yml
Ok, i just saw it failed to build because of two dnf packages. Any dnf repos you can recommend? I have problems to install yazi for example.
x
i myself install yazi and such terminal utils using https://mise.jdx.dev/, which allows for user-wide configs and is very convenient imo
yazi docs recommend this unofficial copr https://yazi-rs.github.io/docs/installation#copr
it's basically up to you how you install something, though
1password shall be installed from their repo
our weirdly-named bling module has a script for installing it, but i'm not totally sure how maintained it is https://github.com/blue-build/modules/blob/main/modules/bling/installers/1password.sh
if you look at the docs for the bling module, though, you'll see how to use it pretty easily
h
Ok, i think i got most of it right now. But after trying to upgrade i get the error that 1password is already installed what is right because i installed it before with dnf. So i thought, ok i remove it with dnf, but that is not possible `Error: this bootc system is configured to be read-only. For more information, run `bootc --help``. Any other ideas what i could do?
x
rpm-ostree reset
maybe
if
rpm-ostree uninstall
doesn't work either
there is a way to enable/disable layering on bootc systems, but i'm not quite sure what the command is
h
So and another question, any idea how icould add ohmyzsh to my recipe file?
x
i believe it installs in your homedir, so i'm not sure if it's possible
maybe with a custom script
h
I'm making good progress, thanks again for your help, are you approved at github sponsors now?
Question to dnf packages, installed a few via the recipe.yml, as i understood, thats the recommended way to install system packages. But once i try to remove packages i always get
Copy code
Error: this bootc system is configured to be read-only. For more information, run `bootc --help`.
How can i remove dnf packages again? Just remoing them from the recipe.yml?
x
if you try to remove packages on a running system that is the message you get i think
and yes, if you want to get rid of a package you added yourself, just remove the install step
the removal will come to your machine as part of a system update
seems so, there should be a sponsor button here https://github.com/xynydev
4 Views