The Mer Wiki now uses your Mer user account and password (create account on https://bugs.merproject.org/)


SB2

From Mer Wiki
(Difference between revisions)
Jump to: navigation, search
(State)
Line 34: Line 34:
 
* osc -A http://api-ci.tspre.org ls     
 
* osc -A http://api-ci.tspre.org ls     
 
* (type in your username/password)
 
* (type in your username/password)
* osc -A http://api-ci.tspre.org checkout home:Admin:sb2:noaccel acl
+
* osc -A http://api-ci.tspre.org checkout Core:armv7l:sb2 acl
* cd home:Admin:sb2:noaccel/acl
+
* cd Core:armv7l:sb2/acl
 
* osc build --clean --no-verify Core_armv7l armv7el
 
* osc build --clean --no-verify Core_armv7l armv7el
  
Line 66: Line 66:
 
   sb2flags: --toolchain /opt/cross/bin/armv7l-meego-linux-gnueabi-gcc --qemu /usr/bin/qemu-arm --debug
 
   sb2flags: --toolchain /opt/cross/bin/armv7l-meego-linux-gnueabi-gcc --qemu /usr/bin/qemu-arm --debug
 
   %endif
 
   %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.

Revision as of 11:43, 21 December 2011

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.

Trying it out

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.

Personal tools