QubesOS / qubes-issues

The Qubes OS Project issue tracker
https://www.qubes-os.org/doc/issue-tracking/
541 stars 48 forks source link

Builder v2 error: `linux-kernel:host-fedora-37.x86_64:kernel.spec: Failed to generate SRPM...` #8439

Closed grince closed 1 year ago

grince commented 1 year ago

How to file a helpful issue

Qubes OS release

qubes-builderv2

Brief summary

I try to create an qubes-ISO with some linux-modules added, to work with my Microsoft Surface Pro 8 and the keyboard. Therefore I created a fedora-38 VM and followed the README.md to build Qubes via qubes-builderv2. "./qc -c linux-kernel package all" starts fine but brings an error:

Error: linux-kernel:host-fedora-37.x86_64:kernel.spec: Failed to generate SRPM: Failed to run 'sudo mkdir -p /builder /builder/build /builder/plugins [..]

Steps to reproduce

have a new created VM with fedora-38 and the fresh checkd-out qubes-builderv2.

Expected behavior

create the docker-image with the linux-kernel

Actual behavior

having an error

qbv2-error.txt

xaki23 commented 1 year ago

"how to build a kernel-latest for qubes 4.2"

1) in dom0/adminvm ... create a buildvm with enough ooomph/space

qvm-create -l gray build-kernelv2b qvm-prefs build-kernelv2b vcpus 16 qvm-prefs build-kernelv2b memory 4000 qvm-prefs build-kernelv2b maxmem 40000 qvm-prefs build-kernelv2b template fedora-38 qvm-run build-kernelv2b gnome-terminal qvm-volume resize build-kernelv2b:root 30GiB qvm-volume resize build-kernelv2b:private 30GiB

2) inside that buildvm ... install/deps part of the README

sudo dnf install python3-packaging createrepo_c devscripts gpg python3-pyyaml rpm docker python3-docker podman python3-podman reprepro python3-pathspec rpm-sign mktorrent openssl tree mock python3-jinja2-cli pacman m4 asciidoc rsync

git clone https://github.com/QubesOS/qubes-infrastructure-mirrors cd qubes-infrastructure-mirrors/ sudo dnf install python3-lxml sudo python3 setup.py build sudo python3 setup.py install cd ~

sudo systemctl start docker sudo usermod -aG docker user sudo su user

3) setup/prime builderv2

git clone https://github.com/QubesOS/qubes-builderv2 cd qubes-builderv2/

cp example-configs/qubes-os-r4.2.yml builder.yml

edit builder.yml uncomment docker executor comment out qubes executor add:

use-qubes-repo:
  version: '4.2'
  testing: true

skip-git-fetch: true

4) prep docker image

edit dockerfiles/fedora-mock.Dockerfile add python3-dnf-plugins-core to the installed deps

tools/generate-container-image.sh docker fedora-37-x86_64

5) run the actual build

./qb -c linux-kernel-latest package all

6) verify it worked

find artifacts/components/linux-kernel-latest -name "*.rpm" -ls

xaki23 commented 1 year ago

the "add python3-dnf-plugins-core to the installed deps" in section (4) avoids the problem this issue is about. i am not sure if it is a proper fix or just a worksforme workaround.

grince commented 1 year ago

I think the main issue was / is that the README.md is saying oen should use the example-configs/builder-devel.yml as builder.yml instead of qubes-os-r4.2.yml . So the README should be adapted. the additional dependency should be included in the mock-config.

fepitre commented 1 year ago

I reproduce the issue even with Fedroa 38 mock config. I'm on it.

fepitre commented 1 year ago

It looks like it is more simple, don't even need to change the mock config, simply install dnf-plugins-core in the container image of Qubes executor.