Scratchbox 2
Original author(s) | Nokia |
---|---|
Developer(s) | Jolla |
Initial release | 2009-04-01 |
Stable release(s) | |
2.2.4[1]
/ 2012-04-01 | |
Preview release(s) | |
2.3.90[2]
/ 2012-09-05 | |
Written in | C |
Operating system | Linux |
Platform | Cross-platform |
Type | Build automation |
License | LGPL 2.1 |
Website | https://github.com/sailfishos/scratchbox2 |
Scratchbox 2 (often abbreviated to "sb2" or "sbox2") is a cross-compilation toolkit designed to make embedded Linux application development easier. It also provides a full set of tools to integrate and cross-compile an entire Linux distribution.
Functional description
In the Linux world, when building software, many parameters are auto-detected on the host system (like installed libraries and system configuration), for example through Autotools' ./configure
scripts. When one wants to build software for an embedded target by cross-compilation, most auto-detected parameters are incorrect: I.e. host configuration is not the same as the embedded target's configuration.
Without Scratchbox 2, one has to manually set many parameters and "hack" the "configure" process to be able to generate code for the embedded target.
Scratchbox 2 allows one to set up a "virtual" environment that will trick the Autotools and executables into thinking that they are directly running on the embedded target with its configuration.
Moreover, Scratchbox 2 provides a technology called CPU-transparency that goes further: With CPU-transparency, executables built for the host CPU or for the target CPU could be executed directly on the host with sb2 handling the task to emulate a different CPU-architecture if necessary to run software components compiled for the target CPU. Hence a build process can mix using programs built for different CPU-architectures. That is especially useful when a build process requires building a software component X first as a build dependency for building software component Y: For example, a "Lexer" has to by built first in order to generate code for / of another software component.
Projects using Scratchbox 2
- Tizen
- Maemo
- MeeGo / Mer
- Sailfish OS
- WIDK − WebOS Internals Development Kit
- Raspberry Pi (used to build binaries for the Raspberry Pi alpha board)
Historic Git repositories of Scratchbox 2
BinChengfei/scratchbox2
at GitHub provides an unaltered mirror of the former Scratchbox 2 Git repository at Gitorious with its latest Git tag being2.3.90
on 2012-09-05.lbt/scratchbox2
(up to tagpkg-mer-2.3.90-4
on 2013-04-25) andmer-packages/scratchbox2
(up to tag2.3.90-git2
on 2014-03-05), both at GitHub, show intermediate states before the Nemo / Mer merger, when Scratchbox 2's active source tree was moved to the now dissolvedgit.merproject.org
.- The continuation of the former source code repository
git.merproject.org/mer-core/scratchbox2
issailfishos/scratchbox2
at GitHub, which contains all commit history and Git tags of all aforementioned Git repositories.
References
- ^ "Scratchbox 2.2.4". Scratchbox 2 (sb2). 2012-04-01. Retrieved 2023-01-27.
- ^ "Scratchbox 2.3.90". Scratchbox 2 (sb2). 2012-09-05. Retrieved 2023-01-27.