The Mer Wiki now uses your Mer user account and password (create account on https://bugs.merproject.org/)
SB2
Line 4: | Line 4: | ||
WARNING: this is in-development code and may cause damage | 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 install will fail with: | ||
+ | |||
+ | installing systemd-35-2.1.Mer | ||
+ | error: unpacking of archive failed on file /run: cpio: mkdir failed - Permission denied | ||
+ | error: systemd-35-2.1.Mer.armv7l: install failed | ||
+ | exit ... | ||
+ | |||
== Steps == | == Steps == |
Revision as of 12:21, 11 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 install will fail with:
installing systemd-35-2.1.Mer error: unpacking of archive failed on file /run: cpio: mkdir failed - Permission denied error: systemd-35-2.1.Mer.armv7l: install failed exit ...
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 home:Admin:sb2:noaccel acl
- cd home:Admin:sb2:noaccel 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