On Montag, 10. Januar 2022, 21:53:41 CET Marcus Schäfer wrote:
Hi,
It think you are missing "VMinstall: kernel-obs-build" in the prjconf.
Thanks, I tried that and it results in an unresolvable. It seems there is no kernel-obs-build for aarch64 available.
We have it on all of our current supported distros IIRC.
I wanted to understand the concept better and was reading more code. Please correct me when wrong. In the build package code there is:
/usr/lib/build/build-vm-kvm
and
---snip
armv8l|aarch64) kvm_bin="/usr/bin/qemu-system-aarch64" kvm_console=ttyAMA0 vm_kernel=/boot/Image vm_initrd=/boot/initrd test -e /boot/kernel.obs.guest && vm_kernel=/boot/kernel.obs.guest test -e /boot/initrd.obs.guest && vm_initrd=/boot/initrd.obs.guest
---snap
This is the issue we see. The worker does not provide /boot/kernel.obs.guest and /boot/initrd.obs.guest. The default settings for kernel and initrd applies but that doesn't work.
These are just fallbacks, but for a clean and reproducible build only the kernel-obs-build content should be used.
The suggested instruction:
VMinstall: kernel-obs-build
would install the package on the worker prior the build-vm-kvm code and this would lead to the use of obs.guest initrd/kernel files. Is that correct ?
it would unpack it during preinstall phase, and kvm would use it then.
Next I looked at one of my packages that builds successfully on build.opensuse.org. In the log I see:
[ 1s] unpacking preinstall image Ubuntu:debbuild/Ubuntu_20.04/preinstallimage-base [6fe2b94cfc6f3d08b3f38c628716bdc5] [ 4s] booting kvm...
ah, debian, no one has packaged a kernel-obs-build there yet. Should be done, but no one invested the time yet.
[ 4s] ### VM INTERACTION START ### [ 4s] Using UART console [ 4s] /usr/bin/qemu-system-aarch64 ... -kernel /boot/kernel.obs.guest -initrd /boot/initrd.obs.guest ...
There is no extra install of kernel-obs-build. Instead a preinstall image which probably provides the required data is used.
I see this behavior when building for Ubuntu using debbuild. Package builds for e.g Leap, Fedora on aarch64 seems to provide a kernel-obs-build package and contains:
[ 15s] [8/47] preinstalling kernel-obs-build...
In all of this situations the location for initrd and kernel is passed to kvm as
-kernel /var/cache/obs/worker/root_13/.mount/boot/kernel -initrd /var/cache/obs/worker/root_13/.mount/boot/initrd
Which was weird because I thought it would also be *.obs.guest
Can you advise what the preferred solution is to fix this OBS instance to allow package builds on the aarch64 workers ?
do not use *.obs.guest, it is more a hack and it means that the worker setup
has an influence on the build result. Also you would maybe need different
workers per distribution in future ...
--
Adrian Schroeter