Jump to content

Scratchbox 2: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m improve link: C (programming language)
Overhaul
Line 1: Line 1:
{{Multiple issues|
{{unreferenced|date=March 2012}}
{{Notability|Products|date=March 2012}}
}}

{{Infobox software
{{Infobox software
| name = Scratchbox 2
| name = Scratchbox 2
| logo =
| logo =
| screenshot =
| screenshot =
Line 37: Line 32:
}}
}}


'''Scratchbox2''' ('''sbox2''' or '''sb2''') 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.
'''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 compiler|cross-compile]] an entire [[Linux distribution]].


In the Linux world, when building software, many parameters are auto-detected based on the host system (like installed libraries and system configurations), through autotools "./configure" scripts for example. When one wants to build for an embedded target (cross-compilation), most of the detected parameters are incorrect (i.e. host configuration is not the same as the embedded target configuration).
In the Linux world, when [[Software build|building software]], many parameters are auto-detected on the host system (like installed libraries and system configuration), for example through [[GNU Autotools|Autotools]]' [[Configure script|<code>./configure</code> 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 system|embedded target]]'s configuration.


Without Scratchbox2, one has to manually set many parameters and "hack" the "configure" process to be able to generate code for the embedded target.
Without Scratchbox&nbsp;2, one has to manually set many parameters and "hack" the "configure" process to be able to generate code for the embedded target.


Scratchbox2 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.
Scratchbox&nbsp;2 allows one to set up a [Virtualization|"virtual"]] environment that will trick the Autotools and executables into thinking that they are directly running on the embedded target with its configuration.


Moreover, Scratchbox2 provides a technology called CPU-transparency that goes further in that area. With CPU-transparency, executables built for the host CPU or for the target CPU could be executed directly on the host with sbox2 handling the task to CPU-emulate if needed to run a program compiled for the target CPU. So, a build process could mix the usage of program built for different CPU architectures. That is especially useful when a build process requires building the program X to be able to use it to build the program Y (Example: building a Lexer that will be used to generate code for a specific package).
Moreover, Scratchbox&nbsp;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 [[Instruction set architecture|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 [[Lexical analysis|"Lexer"]] has to by built first in order to generate code for / of another software component.


==Projects using Scratchbox2==
==Projects using Scratchbox&nbsp;2==
* [[Tizen]]
* [[Tizen]]
* [[Maemo]]
* [[Maemo]]
* [[MeeGo]] / [[Mer (operating system)|Mer]]
* [[MeeGo]] / [[Mer (operating system)|Mer]]
* [[WIDK]] webOS Internals Development Kit
* [[Raspberry Pi]] (Used to build binaries for the Raspberry Pi alphaboard)
* [[Sailfish OS]]
* [[Sailfish OS]]
* WIDK − [https://www.webos-internals.org/wiki/WebOS_Internals_PDK WebOS Internals Development Kit]
* [[Raspberry Pi]] (used to build binaries for the [[Raspberry_Pi#Pre-launch|Raspberry Pi alpha board]])



==External links==
==External links==
* [https://github.com/sailfishos/scratchbox2/tree/master/docs Scratchbox 2 documentation]
* [https://github.com/sailfishos/scratchbox2/tree/master/docs Scratchbox&nbsp;2 documentation]
* [https://web.archive.org/web/20130602210814/http://maemo.gitorious.org/scratchbox2 Archive of the original Scratchbox 2 website]
* [https://web.archive.org/web/20130602210814/http://maemo.gitorious.org/scratchbox2 Archive of the original Scratchbox&nbsp;2 website]


{{Mobile operating systems}}
{{Mobile operating systems}}

Revision as of 20:35, 28 January 2023

Scratchbox 2
Original author(s)Nokia
Developer(s)Jolla
Initial release2009-04-01
Stable release(s)
2.2.4[1] / 2012-04-01
Preview release(s)
2.3.62[2] / 2012-06-05
Written inC
Operating systemLinux
PlatformCross-platform
TypeBuild automation
LicenseLGPL 2.1
Websitehttps://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.

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 [Virtualization|"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


  1. ^ "Scratchbox 2.2.4". Scratchbox 2 (sb2). 2012-04-01. Retrieved 2023-01-27.
  2. ^ "Scratchbox 2.3.63". Scratchbox 2 (sb2). 2012-06-05. Retrieved 2023-01-27.