scratchbox2

scratchbox2 - sb2 for short - is a cross-compiling environment. At its core, it is simply a collection of bash scripts that set up and chroot into a qemu environment, yet there is much more to it: sb2 has support for a lot of different architectures, sets up all the needed paths and linker variables, networking and many other features.

The scratchbox2 tool is developed at the mer project’s GitLab instance under mer-core/scratchbox2.

sb2 is part of the Sailfish SDK suite and resides at /usr/bin/sb2 in the SDK chroot.

Usage

sb2 [OPTION]... [COMMAND] [PARAMETERS]

If no COMMAND is given, a bash shell in the scratchbox2 environment is started.

Options

Argument

Explanation

-v

display version

-L level

enable logging (levels=one of error,warning,notice,net,info,debug,noise,noise2,noise3)

-d

debug mode: log all redirections (logging level=debug)

-h

print this help

-t TARGET

target to use, use sb2-config -d TARGET to set a default

-e

emulation mode

-m MODE

use mapping mode MODE

-M file

read mapping rules from “file”

-n NET_MODE

use networking rules NET_MODE

-s DIRECTORY

load mapping scripts from alternative location

-Q BUGLIST

emulate bugs of the old scratchbox 1 (BUGLIST consists of letters: ‘x’ enables exec permission checking bug emulation)

-O options

set options for the selected mapping mode (“options” is a mode-specific string)

-R

use simulated root permissions (activates the Vperm subsystem)

-U UID.GID

use UID and GID as owner and group of “unknown” files (for all files that are unknown to the Vperm subsystem)

-p

Do not simulate special FS privileges of the “root” user, when option -R is active

-S file

Write session information to “file” (see option -J)

-J file

Don’t create a new session; join an existing one (see -S)

-D file

delete an old session (see -S). Warning: this does not check if the session is still in use!

-P file

print all logs related to a persistent session (see -S)

-W dir

Use “dir” as the session directory when creating the session (“dir” must be absolute path and must not exist. N.B. long pathnames here may cause trouble with socket operations)

-c

When creating a session, also create a private copy of target_root (rootstrap). Note that this can be really slow, depending on the size of the orig.target_root

-C dir

When creating a session, create copy of “dir” and use it as the target_root (rootstrap).

-T dir

use “dir” as tools_root (overriding the value from config file)

-u

Disable automatic configuration upgrade.

-g

Create a new session with setsid(); useful when executing commands in the background

-G file

Append process group number to “file”

-b dir

Produce graphs and log summaries to directory dir (implies ‘-L info’, graphs are created by sb2-logz and ‘dot’, if the graphviz package is available)

-B dir

As -b, but also include process accounting data. (This may require special permissions, because acct(2) system call is used)

-q

quiet; don’t print debugging details to stdout etc.

-N

Do not delete the session dir even if sb2 script fails to enter the session

-x OPTIONS

specify additional options for “sb2d”

Examples

sb2 ./configure
sb2 make
sb2 -e make install
sb2 -m emulate make install