Jump to content

Scratchbox 2: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Fviard (talk | contribs)
No edit summary
Olf01 (talk | contribs)
m External links: Fix `webarchive`-macro usage
 
(42 intermediate revisions by 22 users not shown)
Line 1: Line 1:
{{Multiple issues|
{{multiple issues|orphan=March 2012|unreferenced=March 2012|notability=March 2012}}
{{refimprove|date=September 2024}}
{{Primary sources|date=December 2024}}
}}

{{Infobox software
{{Infobox software
| name = Scratchbox2
| name = Scratchbox 2
| logo =
| logo =
| screenshot =
| screenshot =
| caption =
| collapsible =
| collapsible =
| author = Lauri Leukkunen, Lauri T. Aarnio, Valtteri Rahkonen, Riku Voipio
| caption =
| developer =
| ver layout = stacked
| released =
| author = [[Nokia]]
| developer = [[Jolla]]
| latest release version = 2.3.42
| latest release date = 07/03/2012
| released = 2009-04-01
| latest preview version =
| latest release version = 2.2.4<ref>{{cite web
| url=https://github.com/sailfishos/scratchbox2/tree/2.2.4
| latest preview date =
| title=Scratchbox 2.2.4
| frequently updated =
| work=Scratchbox 2 (sb2)
| programming language =
| date=2012-04-01
| accessdate=2023-01-27}}</ref>
| latest release date = 2012-04-01
| latest preview version = 2.3.90<ref>{{cite web
| url=https://github.com/sailfishos/scratchbox2/tree/2.3.90
| title=Scratchbox 2.3.90
| work=Scratchbox 2 (sb2)
| date=2012-09-05
| accessdate=2023-01-27}}</ref>
| latest preview date = 2012-09-05
| programming language = [[C (programming language)|C]]
| operating system = [[Linux]]
| operating system = [[Linux]]
| platform = [[Cross-platform]]
| platform = [[Cross-platform]]
| status = Active
| genre = [[Build automation]]
| genre = [[Build automation]]
| license = [[LGPL license|LGPL]] 2.1
| license = [[LGPL license|LGPL]] 2.1<ref>{{cite web
| url=https://github.com/sailfishos/scratchbox2?tab=LGPL-2.1-1-ov-file#readme
| website = [http://www.freedesktop.org/wiki/Software/sbox2/ www.freedesktop.org/wiki/Software/sbox2] [http://www.gitorious.org/scratchbox2 www.gitorious.org/scratchbox2]
| title=LGPL-2.1 license
| work=Scratchbox 2
| date=2013-09-05
| accessdate=2024-02-26}}</ref>
| website = {{URL|https://github.com/sailfishos/scratchbox2}}
}}
}}


'''Scratchbox2''' 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&nbsp;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]].

== Predecessor ==
'''Scratchbox''' was a [[Linux]] embedded application development toolkit which also provided [[Cross compiler|cross compilation]] support for [[Linux distribution|Linux distributions]].

The project was initially developed by [[Movial]] and was sponsored by [[Nokia]]. It was licensed under the GNU General Public License ([[GPL]]).

Scratchbox was designed for the [[Maemo]] development platform (Nokia [[Nokia 770 Internet Tablet|770]], [[N800]], [[N810]] Internet Tablets and Nokia [[Nokia N900|N900]] and [[Nokia N9|N9]] phones) and supported [[ARM architecture]] and [[x86]]. Targets like [[PowerPC]] and [[MIPS architecture]] worked at experimental level.


== Functional description==
'''sbox2''' or '''sb2''' are common aliases of Scratchbox2.
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, hence the name cross-compilation.


Without Scratchbox&nbsp;2, one has to manually set many parameters and [[Hack (computer science)|"hack"]] the "configure process" to generate working executable code for the embedded target.
In the Linux world, when building a software, a lot of parameters are auto-detected based on the host system (like installed libraries and system configurations). Through autotools "./configure" scripts for example. But so, when you want to build for an embedded target (cross-compilation), most of the detected parameters are incorrect (ie host configuration is not the same as the embedded target configuration).


Scratchbox&nbsp;2 allows one to set up a [[Virtualization|"virtual"]] environment that will trick Autotools and other executables into thinking that they are directly running on the embedded target with its configuration.
Without Scratchbox2, one have to manually set a lot of parameters and to "hack" the "configure" process to be able to generate code for the embedded target.


Moreover, Scratchbox&nbsp;2 provides a technique 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 automation|build process]] can mix using programs built for different CPU-architectures. That is especially useful when a build process requires to build a software component first as a [[Library (computing)|build dependency]] for building another software component: For example, a [[Lexical analysis|"Lexer"]] must be built first in order to generate code for / of another software component with it.
At the opposite, Scratchbox2 allows to setup a "virtual" environment that will trick the autotools and executables into thinking that they are directly running on the embedded target with its configuration.


==Historic Git repositories of Scratchbox&nbsp;2==
Moreover, Scratchbox2 provides a technology called cpu-transparency that go 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 your build process requires that you build the program X to be able to use it to build the program Y (Example: building a Lexer that you will be used to generate code for a specific package).
* <code>[https://github.com/BinChengfei/scratchbox2 BinChengfei/scratchbox2]</code> at [[GitHub]] provides an unaltered mirror of the former Scratchbox&nbsp;2 [[Git]] repository at [[Gitorious]] with its latest Git tag being <code>2.3.90</code> on 2012-09-05.
* <code>[https://github.com/lbt/scratchbox2/tags lbt/scratchbox2]</code> (up to tag <code>pkg-mer-2.3.90-4</code> on 2013-04-25) and <code>[https://github.com/mer-packages/scratchbox2/tags mer-packages/scratchbox2]</code> (up to tag <code>2.3.90-git2</code> on 2014-03-05), both at GitHub, show intermediate states before the [[Mer (software_distribution)#Revival with "MeeGo_Reconstructed"|Nemo / Mer merger]], when Scratchbox 2's active source tree was moved to the now dissolved <code>git.merproject.org</code>.
* The continuation of the former source code repository <code>git.merproject.org/mer-core/scratchbox2</code> is <code>[https://github.com/sailfishos/scratchbox2 sailfishos/scratchbox2]</code> at GitHub, which contains all commit history and Git tags of all aforementioned Git repositories.


==References==
==Projects using Scratchbox2==
{{reflist}}
* [[Tizen]]
* [[Maemo]]
* [[MeeGo]] / [[Mer]]
* [[WIDK]] webOS Internals Development Kit
* [[RaspberryPi]] (Used to build binaries for the RaspberryPi alphaboard)


==External links==
==External links==
* [https://github.com/sailfishos/scratchbox2/tree/master/docs Scratchbox&nbsp;2 documentation]
* [http://freedesktop.org/wiki/Software/sbox2 Official Scratchbox2 website and wiki]
* {{webarchive|url=https://web.archive.org/web/20130602210814/http://maemo.gitorious.org/scratchbox2|title=An archived version of the original Scratchbox 2 website}}
* [http://www.daimi.au.dk/~cvm/sb2.pdf Scratchbox2 for Debian presentation by Riku Voipio]


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

Latest revision as of 19:54, 14 December 2024

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.90[2] / 2012-09-05
Written inC
Operating systemLinux
PlatformCross-platform
TypeBuild automation
LicenseLGPL 2.1[3]
Websitegithub.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.

Predecessor

[edit]

Scratchbox was a Linux embedded application development toolkit which also provided cross compilation support for Linux distributions.

The project was initially developed by Movial and was sponsored by Nokia. It was licensed under the GNU General Public License (GPL).

Scratchbox was designed for the Maemo development platform (Nokia 770, N800, N810 Internet Tablets and Nokia N900 and N9 phones) and supported ARM architecture and x86. Targets like PowerPC and MIPS architecture worked at experimental level.

Functional description

[edit]

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, hence the name cross-compilation.

Without Scratchbox 2, one has to manually set many parameters and "hack" the "configure process" to generate working executable code for the embedded target.

Scratchbox 2 allows one to set up a "virtual" environment that will trick Autotools and other executables into thinking that they are directly running on the embedded target with its configuration.

Moreover, Scratchbox 2 provides a technique 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 to build a software component first as a build dependency for building another software component: For example, a "Lexer" must be built first in order to generate code for / of another software component with it.

Historic Git repositories of Scratchbox 2

[edit]
  • BinChengfei/scratchbox2 at GitHub provides an unaltered mirror of the former Scratchbox 2 Git repository at Gitorious with its latest Git tag being 2.3.90 on 2012-09-05.
  • lbt/scratchbox2 (up to tag pkg-mer-2.3.90-4 on 2013-04-25) and mer-packages/scratchbox2 (up to tag 2.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 dissolved git.merproject.org.
  • The continuation of the former source code repository git.merproject.org/mer-core/scratchbox2 is sailfishos/scratchbox2 at GitHub, which contains all commit history and Git tags of all aforementioned Git repositories.

References

[edit]
  1. ^ "Scratchbox 2.2.4". Scratchbox 2 (sb2). 2012-04-01. Retrieved 2023-01-27.
  2. ^ "Scratchbox 2.3.90". Scratchbox 2 (sb2). 2012-09-05. Retrieved 2023-01-27.
  3. ^ "LGPL-2.1 license". Scratchbox 2. 2013-09-05. Retrieved 2024-02-26.
[edit]