The Mer Wiki now uses your Mer user account and password (create account on https://bugs.merproject.org/)
SB2
Contents |
SB2
In Mer, we're currently experimenting with integrating SB2 into OBS to provide a better and more flexible cross compilation method. This is instructions to help you get started testing/developing this project.
WARNING: this is in-development code and may cause damage
What does SB2-OBS do differently than current approach
When a SB2flags: configuration item is encountered, 'build' switches behaviour. When it is preinstalling packages, it will install packages listed in SB2install: to BUILD_ROOT and rest to BUILD_TARGET (typically /target). The packages in SB2install are typically a X86 tools/bootstrap, which includes SB2, QEMU and cross compilers.
Upon booting the VM, it will set up an abuild user and chown -R abuild /target. It will then set up a SB2 target in /target and begin to install RPM packages utilizing RPM.
State
The setup can currently build 308 out of 320 packages in Mer Core
Steps
It is assumed you already have a functioning osc+build install on your computer.
- Install modified osc client
- git clone git://github.com/stskeeps/osc.git
- cd osc
- (as root) python setup.py install --prefix=/usr
- If you are on ubuntu, you might need to install into dist-packages instead of site-packages
- Install modified 'build'
- git clone git://github.com/stskeeps/obs-build.git
- cd obs-build
- (as root) make install
Trying it out
- Register an account on http://webui-ci.tspre.org
- osc -A http://api-ci.tspre.org ls
- (type in your username/password)
- osc -A http://api-ci.tspre.org checkout Core:armv7l:sb2 acl
- cd Core:armv7l:sb2/acl
- osc build --clean --no-verify Core_armv7l armv7el
In a KVM
- You need to set up so you can do KVM builds
- osc build --clean --no-verify --vm-type=kvm Core_armv7l armv7el
OBS project configuration settings
In the fork of 'build' and Carsten Munk's https://github.com/stskeeps/open-build-service OBS fork, it is now possible to do the following configuration settings
%ifarch armv7el SB2install: packages-to-be-installed-in-root SB2flags: --toolchain /opt/cross/bin/armv7l-meego-linux-gnueabi-gcc --qemu /usr/bin/qemu-arm --debug %endif
The sb2flags available:
--toolchain /path/to/your/crosscompiler-gcc/in/tools --qemu /path/to/your/dynamic/qemu --installmode name-of-sb2-mode-used-for-buildsystem-setup --defaultmode name-of-sb2-mode-used-for-rpmbuild --debug, will enable SB2 debugging/logs
As an example, current home:Admin:sb2:noaccel project configuration is:
%ifarch armv7el sb2install: sb2-tools-arm sb2flags: --toolchain /opt/cross/bin/armv7l-meego-linux-gnueabi-gcc --qemu /usr/bin/qemu-arm --debug %endif
SB2 enablement details of Mer Core
First off, deploy obs-build, opensuse-build-service patches to OBS and to osc for developer's clients from http://github.com/stskeeps/
It is important to deploy obs-build -and- opensuse-build-service to your OBS backend as these are interconnected and the OBS is what publishes 'build' code to the OBS workers. obs-build and osc goes on developer clients.
For opensuse-build-service, it might be easier simply to grab the patch from https://github.com/stskeeps/open-build-service/commit/d54b286f821954f0938fb19a1e7f710e66ebf5ae and patch it directly to your installed setup.