[opensuse-buildservice] New "osc build" features
Hi, our unstable versions of osc and build script have some new options where I would like to gather some more experiences. 1) osc shell [--vm-type=VM] [REPOSITORY ARCH] creates or jumps into the build environment. This works independend of the used VM mode, so using it with image based VMs like KVM should become WAY more handy now. The old "osc chroot" is obsoleted by this, but basically doing the same as "osc shell" for chroot. 2) Building for foreign architectures using qemu system emulator. osc is offering now to use any hardware architecture. (Thanks a lot Guillaume for the initial implementation of that code!). For example osc build --vm-type=qemu openSUSE_Factory_ARM aarch64 will build for aarch64 on your x86_64 workstation for example. But it should work for any architecture. The downside (compared to our former qemu user land emulation) is that it works way slower due to emulation overhead and it works currently only in projects where a kernel-obs-build is defined. But it should allow everybody to build at least for openSUSE and SUSE SLE armv7l, aarch64, ppc*, s390*, riscv64 and so on architectures. 3) osc wipe for easy cleanup of your build environment. I am still improving documentation and will blog about it after we released official updates. For now you need to use osc build packages from OBS:Server:Unstable project to test it. But I would definitive love to have some feedback! thanks adrian PS: someone broke the CI version in devel:tools:scm project, so you need to switch to OBS:Server:Unstable in case you are used to get it from there. -- Adrian Schroeter <adrian@suse.de> Build Infrastructure Project Manager SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany (HRB 247165, AG München), Geschäftsführer: Felix Imendörffer -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Friday 2019-11-29 14:25, Adrian Schröter wrote:
2) Building for foreign architectures using qemu system emulator.
osc is offering now to use any hardware architecture. (Thanks a lot Guillaume for the initial implementation of that code!). For example
osc build --vm-type=qemu openSUSE_Factory_ARM aarch64
will build for aarch64 on your x86_64 workstation for example. But it should work for any architecture. The downside (compared to our former qemu user land emulation) is that it works way slower due to emulation overhead and it works currently only in projects where a kernel-obs-build is defined.
logging output to /var/tmp/build-root/standard-riscv64/.build.log... [ 0s] Using BUILD_ROOT=/var/tmp/build-root/standard-riscv64/.mount [ 0s] Using BUILD_ARCH=riscv64 [ 0s] Doing qemu build in /var/tmp/build-root/standard-riscv64/img [ 0s] [ 0s] [ 0s] fj.lh started "build libHX.spec" at Fri Nov 29 22:20:25 UTC 2019. [ 0s] [ 0s] [ 0s] processing recipe /tmp/openSUSE:Factory:RISCV/libHX/libHX.spec ... [ 0s] running changelog2spec --target rpm --file /tmp/openSUSE:Factory:RISCV/libHX/libHX.spec [ 0s] init_buildsystem --configdir /usr/lib/build/configs --cachedir /var/cache/build --prepare --rpmlist /tmp/rpmlist.cxvdea89 /tmp/openSUSE:Factory:RISCV/libHX/libHX.sp. [ 0s] copying packages... [ 1s] reordering...done [ 1s] Warning: cross compile not possible due to missing static binaries. please install build-initvm package for that purpose. [ 1s] check that the right architecture is available for your build host, you need initvm.x86_64 for this one. [ 1s] booting qemu... [ 1s] -nodefaults -no-reboot -nographic -vga none -runas qemu -net none -kernel /var/tmp/build-root/standard-riscv64/.mount/boot/kernel -initrd /var/tmp/build-root/standa8 [ 1s] /usr/lib/build/build-vm-qemu: line 187: -nodefaults: command not found [ 1s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [ 1s] or the build host has a kernel or hardware problem... -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Freitag, 29. November 2019, 23:30:50 CET Jan Engelhardt wrote:
On Friday 2019-11-29 14:25, Adrian Schröter wrote:
2) Building for foreign architectures using qemu system emulator.
osc is offering now to use any hardware architecture. (Thanks a lot Guillaume for the initial implementation of that code!). For example
osc build --vm-type=qemu openSUSE_Factory_ARM aarch64
will build for aarch64 on your x86_64 workstation for example. But it should work for any architecture. The downside (compared to our former qemu user land emulation) is that it works way slower due to emulation overhead and it works currently only in projects where a kernel-obs-build is defined.
logging output to /var/tmp/build-root/standard-riscv64/.build.log... [ 0s] Using BUILD_ROOT=/var/tmp/build-root/standard-riscv64/.mount [ 0s] Using BUILD_ARCH=riscv64 [ 0s] Doing qemu build in /var/tmp/build-root/standard-riscv64/img [ 0s] [ 0s] [ 0s] fj.lh started "build libHX.spec" at Fri Nov 29 22:20:25 UTC 2019. [ 0s] [ 0s] [ 0s] processing recipe /tmp/openSUSE:Factory:RISCV/libHX/libHX.spec ... [ 0s] running changelog2spec --target rpm --file /tmp/openSUSE:Factory:RISCV/libHX/libHX.spec [ 0s] init_buildsystem --configdir /usr/lib/build/configs --cachedir /var/cache/build --prepare --rpmlist /tmp/rpmlist.cxvdea89 /tmp/openSUSE:Factory:RISCV/libHX/libHX.sp. [ 0s] copying packages... [ 1s] reordering...done [ 1s] Warning: cross compile not possible due to missing static binaries. please install build-initvm package for that purpose. [ 1s] check that the right architecture is available for your build host, you need initvm.x86_64 for this one. [ 1s] booting qemu... [ 1s] -nodefaults -no-reboot -nographic -vga none -runas qemu -net none -kernel /var/tmp/build-root/standard-riscv64/.mount/boot/kernel -initrd /var/tmp/build-root/standa8 [ 1s] /usr/lib/build/build-vm-qemu: line 187: -nodefaults: command not found [ 1s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [ 1s] or the build host has a kernel or hardware problem...
The "standard" repository of openSUSE:Factory:RISCV is setup for user land qemu emulator. This is conflicting, so you need to use "native" repository. However, I noticed there are also some pieces still missing for RISCV in osc & build. And we need to have riscv enabled in our qemu package. Will check with Andreas Schwab later today hopefully about this. -- Adrian Schroeter <adrian@suse.de> Build Infrastructure Project Manager SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany (HRB 247165, AG München), Geschäftsführer: Felix Imendörffer -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Montag, 2. Dezember 2019, 08:36:20 CET Adrian Schröter wrote:
On Freitag, 29. November 2019, 23:30:50 CET Jan Engelhardt wrote:
On Friday 2019-11-29 14:25, Adrian Schröter wrote:
2) Building for foreign architectures using qemu system emulator.
osc is offering now to use any hardware architecture. (Thanks a lot Guillaume for the initial implementation of that code!). For example
osc build --vm-type=qemu openSUSE_Factory_ARM aarch64
will build for aarch64 on your x86_64 workstation for example. But it should work for any architecture. The downside (compared to our former qemu user land emulation) is that it works way slower due to emulation overhead and it works currently only in projects where a kernel-obs-build is defined.
logging output to /var/tmp/build-root/standard-riscv64/.build.log... [ 0s] Using BUILD_ROOT=/var/tmp/build-root/standard-riscv64/.mount [ 0s] Using BUILD_ARCH=riscv64 [ 0s] Doing qemu build in /var/tmp/build-root/standard-riscv64/img [ 0s] [ 0s] [ 0s] fj.lh started "build libHX.spec" at Fri Nov 29 22:20:25 UTC 2019. [ 0s] [ 0s] [ 0s] processing recipe /tmp/openSUSE:Factory:RISCV/libHX/libHX.spec ... [ 0s] running changelog2spec --target rpm --file /tmp/openSUSE:Factory:RISCV/libHX/libHX.spec [ 0s] init_buildsystem --configdir /usr/lib/build/configs --cachedir /var/cache/build --prepare --rpmlist /tmp/rpmlist.cxvdea89 /tmp/openSUSE:Factory:RISCV/libHX/libHX.sp. [ 0s] copying packages... [ 1s] reordering...done [ 1s] Warning: cross compile not possible due to missing static binaries. please install build-initvm package for that purpose. [ 1s] check that the right architecture is available for your build host, you need initvm.x86_64 for this one. [ 1s] booting qemu... [ 1s] -nodefaults -no-reboot -nographic -vga none -runas qemu -net none -kernel /var/tmp/build-root/standard-riscv64/.mount/boot/kernel -initrd /var/tmp/build-root/standa8 [ 1s] /usr/lib/build/build-vm-qemu: line 187: -nodefaults: command not found [ 1s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [ 1s] or the build host has a kernel or hardware problem...
The "standard" repository of openSUSE:Factory:RISCV is setup for user land qemu emulator. This is conflicting, so you need to use "native" repository.
However, I noticed there are also some pieces still missing for RISCV in osc & build. And we need to have riscv enabled in our qemu package. Will check with Andreas Schwab later today hopefully about this.
okay, I needed two more fixes in build and osc for riscv64 Andreas, I also created an aggregate in openSUSE:Factory:RISCV to get a riscv64 kernel-obs-build to be able to boot at all. The build process is starting now with some kernel output, but our kernel-obs-build waits forever for the root device. Maybe virtio support is not working/compiled in our riscv64 kernel? Nevertheless, I leave it like that for now and wait for Andreas coming out of vacation for now. Jan, thanks a lot for testing! adrian -- Adrian Schroeter <adrian@suse.de> Build Infrastructure Project Manager SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany (HRB 247165, AG München), Geschäftsführer: Felix Imendörffer -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
participants (2)
-
Adrian Schröter
-
Jan Engelhardt