BlueBuild

B

BlueBuild

Join the community to ask questions about BlueBuild and get answers from other members.

Join

How to change file permissions of an executeable pulled into an image

In my custom image I'm including the secureblue copr of Chromium, which doesn't ship with widevine included. That can be downloaded from google, but needs to be put into a directory in the read-only area, so it must be included in the image. I have done so with this script: https://github.com/Oakleafknight06/startingleaf/blob/main/files/scripts/install-widevine.sh based on this blog post: https://andreafortuna.org/2019/09/24/how-to-install-latest-widevine-plugin-on-chromium/ Which seems like it should work, but the file is not set as executeable properly. How should i do this?...

Custom Kernel with NVIDIA drivers

Is there an easy way to install nvidia drivers without forking kernel-cache and akmods? Preferably with nvidia container toolkit support. The kernel seems to be working fine. https://github.com/virt-10/blublu-base/blob/main/recipes/cachyos-kernel.yml ...
Solution:
I have given up on the cachyos kernel, but I did move my recipe to use the akmods module. Works well. https://github.com/virt-10/blublu/blob/main/recipes/main/fsync-nvidia-open.yml...

1Password app nowhere to be found and ISO building

Hi, I have created my custom template based off bazzite-gnome-nvidia-open (https://github.com/michal-grzelak/bazzite-custom-dx) with some dev tools and few apps. One of those apps is 1Password and after installing the OS I cannot find it on the system. Weird thing, I tried to run rpm-ostree install 1password thinking it might not get installed and I get the message saying that it’s already installed (which is kind of expected given the recipe 🙂, see the screenshot). Also a side question. I generate the ISO using the instruction provided here https://blue-build.org/learn/universal-blue/. I am confused with VARIANT env variable. For my case should it be Bazzite or Silverblue as in example? Also when I don’t provide VERSION env variable (which is not in example), it tries to generate ISO for version 39 instead of the current 40, which is weird given that current Bazzite is based off v40. I have to manually put 40. Why is that?...
Solution:
The Variant envvar is the installers variant, and selects the branding and functionality of the installer.
No description

Building custom ARM64 images?

Hello! Is it possible to build arm64 images with Blue-Build? If so, what should be changed in the build recipe or the GitHub workflow, based on the Blue-Build template? I found this PR (https://github.com/blue-build/cli/pull/191) from the blue-build/cli repo mentioning ARM, but as far as I can see it's only adding support for building an ARM64 binary for the cli tool. Or is it better to try building from scratch by writing a Containerfile? The docs about this topic aren't finished yet unfortunately (https://blue-build.org/how-to/from-scratch/), but this link seems to have some useful information: https://github.com/ublue-os/website/pull/688/files...

Lacking space within distrobox

Not sure whether this is a problem caused by the immutable file system or just a distrobox error, but when I run ujust update my davinciibox distrobox says that it has run out of space to install the packages in /usr: ``` The downloaded packages were saved in cache until the next successful transaction. You can remove cached packages by executing 'dnf clean packages'....
Solution:
ask on the ublue discord, davincibox github, or some distrobox community space if you can't figure it out

Github action cannot push the image to ghcr

Every time the action tries to build an image, it fails on pushing it to the registry. I haven't even done any customization to it yet. ``` [09:18:01 g.i/k/test-image:latest] => #35 ERROR: failed to push ghcr.io/krzychhoo/test-image:latest: unexpected status from POST request to https://ghcr.io/v2/krzychhoo/test-image/blobs/uploads/: 403 Forbidden [09:18:01 g.i/k/test-image:latest] => ------ [09:18:01 g.i/k/test-image:latest] => > exporting to image:...

Gschema overrides not reliably sticking?

Something I've noticed (particularly with making images off of Bazzite) is that only about half of the gschemas I define (using BlueBuild's gschema module) seem to actually stick. My assumption here is that there's a race condition happening and I need to somehow push my settings lower down the chain of events. What's the best way to do that? Should I just rename my gschema files like zz50-whatever or something as opposed to zz1-?...
Solution:
Bazzite uses dconf for their customization, so maybe some of the settings from them are overriding your gschema-overrides

Signature issue when rebasing to signed image.

I'm trying to set up a laptop with the image I've been using on my desktop for a few months. I was able to successfully rebase to the unsigned image, but when trying to rebase to the signed image, I'm getting the following error
error: Creating importer: Failed to invoke skopeo proxy method OpenImage: remote error: A signature was required, but no signature exists
error: Creating importer: Failed to invoke skopeo proxy method OpenImage: remote error: A signature was required, but no signature exists
I haven't changed the cosign key I'm using, and it seems like it's stored in both /etc/pki/containers and /usr/etc/pki/containers. ...
Solution:
Thanks for the responses! It seemed like maybe it was just because my github action build failed, but I didn't think of looking at that. Once a new pipeline successfully finished and I upgraded to the newly built unsigned image I was able to rebase to the signed image. Before upgrading, I did do a diff of both policy.json and they were the same. So, I'm pretty confident something went wrong with the failed pipeline.

after "Successfully built and pushed image", Error: signing

Solution:
I think there was a server error for sigstore. My test build failed around the same time. I just re-ran it and it works

Run Failed: unable to parse image ghcr.io/MrQvest/my-ublue invalid reference format

Builds were successfull yesterday, but scheduled rebuilds and even manual builds are failing with this error. Image repo: https://github.com/MrQvest/my-ublue Relevant (maybe?) log: `[11:52:12 ERROR] => Failed:...
Solution:
can't find an issue in your repo, it's probably something cli-related

invalid signature when validating ASN.1 encoded signature

i've replaced the keys in my repository because i thought something broke and would be a possible solution, then realized nothing was actually broken but it was already too late and have changed them the images build fine, but when trying to do rpm-ostree upgrade or rebase to the unverified image, i get error: Creating importer: Failed to invoke skopeo proxy method OpenImage: remote error: cryptographic signature verification failed: invalid signature when validating ASN.1 encoded signature (repo link)...
Solution:
I'll copy my answer: For anyone who encounters this, those are the steps to solve the issue: Copy new cosign.pub from your repo to /etc/pki/containers/$your_image_name.pub...
No description

Specify release tag for UBlue build

Does anyone here know how to build and deploy ublue with the testing tag instead of the latest tag? I tried
alt-tags
-testing
alt-tags
-testing
...
Solution:
If you set alt-tags: to testing, then it should push an image with the tags testing, testing-$VERSION, $TIMESTAMP-testing-$VERSION, and $COMMIT_SHA-testing-$VERSION when built on your main branch

ERROR: failed to solve: cannot copy to non-directory: /var/lib/[...]/usr/local

i'm trying to make a new image for myself, my current setup consists of 2 separate images: - one simply does stuff such as compiling software or downloading other content to prevent filling the main image with build dependecies - the other is the actual bluebuild image, where it copies the files of the first image into the image itself for some reason, despite essentially just cloning the setup from another image, this is erroring out. bluebuild gives me ERROR: cannot copy to non-directory: /var/lib/buildkit/runc-overlayfs/cachemounts/buildkit2036245495/usr/local. it seems like it doesn't like doing anything with /usr/local, but i think i've confirmed that the first image doesn't have that directory. so i'm completely lost here....

Virt Manager: Failed to connect socket to '/var/run/libvirt/virtnetworkd-sock'

Since ~August 26th, I've been having issues running virt manager on the latest builds of Wayblue and other Bluebuild based systems. I get the warning Failed to connect socket to '/var/run/libvirt/virtnetworkd-sock' despite all of the appropriate packages being layered correctly and most of the advice I find online for other linux systems (changing the permissions of said file) seem to fail. Notably, my system is missing that file in both 08262024 (the non working image) and 08212024 (where virt manager is still working, as expected.) Anybody have any advice for fixing this? Thanks to ostree I'm not pressed for time or anything, but it would be nice to have it working on newer operating system images. 🙂...
Solution:
Have you tried enabling virt-manager services? ``` systemctl enable virtnetworkd.socket virtstoraged.socket virtnodedevd.socket ...

Why rpm dependencies conflict is not stopping the build

In my rpm-ostree module I wanted to remove some package without knowing they were needed by other packages. This leads to error while resolving dependencies at build time. Somehow the build in the CI was successful and I rebased without being aware of these conflicts. I would like to know if this behavior is on purpose or not. Here is a link to the action log (line 3355) : https://github.com/benoitlx/custom-desktop-image/actions/runs/10683413026/job/29611427107...

What does the `base` image include by default?

so, i'm considering making an image that uses the niri window manager with all of my configurations and stuff. i know using the sericea base would be an easy way to do it since thats based on sway and includes everything out of the box for a wayland window manager setup, but i'd prefer a way to not have any of the default applications/utilities installed (sway, mako etc) or for the ability to simply remove them without having to do anything else so i can use my own set of programs/utilities. so, again, what does the base by default? i assume its minimal out of the box, but what exactly would be missing? would i need to install things like cups or any of the default fedora tools/packages that are configured for desktop, or is it just a better idea to use the sericea image and do it that way?...
Solution:
base has most things you need

Questions about firstboot scripts

Does the ublue-os/firstboot directory run any bash script that is there on the first boot or is it only for yafti.yml? I wanted to make a firstboot script just to configure and download some things at the beginning and never run it again....

What is a compiler-based build

So I was looking at the docs and saw this big yellow warning on a few modules (containerfile and copy to be exact) and I wanna know what it means, and most importantly if I can use the modules on GH Actions
Solution:
This is just to distinguish between the legacy build system that was in the UBlue project to our current system.
No description

yafti configuration

I created the file in this directory, now I just need to include yafti in the recipe? usr/share/ublue-os/firstboot/yafti.yml like this: ```yaml...
Solution:
yes

Entering emergency mode on boot

Hey team, Every time I turn my computer on, it will give me the "Emergency mode" screen as shown in the attached picture. I have to press Enter, write systemctl reboot, then it will take me to the regular fedora Grub menu so I can select the second ostree image which works. Note that I did also rebase to the same exact version as the last functional image but still for some reason when I select anything besides the "old" image it won't work. Any ideas on what might be the problem, and how to fix? Thanks...
No description