New Local Build Environment Features

Easy build and debugging in KVM and Emulator environments

We have just created osc 0.167 release which focuses on the local build functionality. It is way easier now to deal with VM builds (eg. inside of KVM) and also building for foreign hardware architecture becomes way easier now.

Local shell support in any VM

osc used to have a special implementation for jumping inside of a chroot. This functionality has been moved to the build script, so this is also working with other VM modes. All what you need to run is

# osc shell

to jump into your last build environment. You can also create a new environment for any of your configured build targets by running

# osc shell [–vm-type=VM] REPOSITORY

Please note that you don’t have network configured usually inside of VM builds. konsole (KDE) users can easily transfer files using the old famous Z-Modem protocol, simply by typing

# sz FILENAME

or to receive a file

# rz FILENAME

and click on Edit -> Upload Z-Modem

Once you don’t need your build environment anymore it can be dropped by a simple

osc wipe

Run builds for foreign hardware

You may need a local build for some hardware you do not own. For example when building for aarch64 you can build now via

# osc build –vm-type=qemu openSUSE_Factory_ARM aarch64

This assumes that you have a repository called openSUSE_Factory_ARM which builds against the openSUSE:Factory:ARM project in your project.

But also just reproducing what happens in main projects is easy, for example for RISCV64

# osc co openSUSE:Factory:RISCV hello # cd openSUSE:Factory:RISCV/hello # osc build –vm-type=qemu native riscv64

will run the build local. You can of cause also a shell via

# osc shell

To get some more packages installed for debugging you can run

# osc shell -x valgrind -x sysprof

for example.

Lot’s of smaller stuff

Support for product builds

The kiwi product builds (not the appliances) are supported now as well for local building. Just checkout the .kiwi file and build it (usually for images/local).

Local builds for CentOS 8 using Modules

RedHat has introduced a new mechanic to have modules inside of repositories. This means the packages of these modules are not available by default (since they may conflict or have a different support cycle). OBS 2.11 and this new osc are now supporting to build against repositories where packages are in modules.

Allow to specify root disk size

Esp kiwi builds needs KVM (chroot builds of fail because scripts of various packages depend on the device nodes). However, appliance images may be large, so it is important that a large enough root disk for the VM can be created. The new osc supports this via

# osc build –vm-type=kvm –vm-disk-size=MB –clean

Distribution specific debug package list

osc used to have a single fixed list of packages which got installed in addition to help debugging. This caused a problem when the distribution is not providing this package.

The new osc is now requesting this list from the server, which has it configured per base distribution.