Known issues
Kernel related issues
In linux kernels 2.6.23 onward there's support for additional security check for mmap operations which is used for example in kernel that ships with latest Ubuntu, Hardy Heron. Ubuntu ships with 65536 as a default value for mmap_min_addr, which prevents qemu from mmapping the low address spaces, thus breaking the qemu based cpu transparencies inside Scratchbox as well. The problem can fixed with assigning a reasonably low value in mmap_min_addr.
> sudo 'echo 4096 > /proc/sys/vm/mmap_min_addr'
Compability among packages
In general you should be able to use any version of a toolchain or a devkit on top of a fairly recent (>= 1.0.3 or Apophis R1) version of scratchbox,
although it's recommended to use the latest versions within the branch (stable, legacy) you're using.
For scratchbox >= 1.0.9, it's recommended to use debian devkit 1.0.10 and maemo3 devkit 1.0.2. Older versions should work in general, but the changes
in host_shared libraries between 1.0.8 and 1.0.9 versions of scratchbox may lead to trouble and hence the configuration is unsupported.
When using scratchbox version prior to 1.0.3, bear in mind that the cpu transparency methods are a part of scratchbox-core instead of scratchbox-devkit-cputransp.
Use always the same version of core, libs and host-gcc, they're built from the same source.
As always, using the latest versions of each component is recommended
Maemo SDK
If you're using Maemo 3.X (bora) SDK, do not upgrade the debian devkit beyond 1.0.7.1. (May be out of date; check out
http://tablets-dev.nokia.com/3.1/INSTALL.txt) If you did, you can try fixing the situation with
Reinstalling old devkit (dpkg -i <package-name>) from
Apophis download page Modify your target to use debian-sarge and maemo3-debian devkits instead of debian devkit (use sb-conf st -f or edit /targets/<target-name>.config by hand)
From 1.0.8 on the debian devkit has changed significantly
debian-sarge is now an independent devkit
added:
debian-etch
debian-lenny (depends from debian-etch)
removed:
debian
Debian environment for maemo 3.x is now provided with a new devkit (maemo3-debian, depends from debian-sarge, provided by maemo3-devkit)
APT
If you're using apt-https devkit, you need to have one version of debian devkit selected for your target, apt won't work without it
Apt-https devkit is for accessing debian repositories over https. If you don't have such repositories, you won't need this.
There's no dependency to debian specified, because with debian devkit 1.0.8 onward, there are multiple flavors of debian available (might be feasible to think some provides/conflicts/replaces mechanism for sb-conf)
To override apt in the debian devkit, make sure apt-https devkit comes before any other (debian) devkit containing apt, ie.
> sb-conf st my-target -c my-compiler -d cputransp:perl:debian-etch:apt-https -t /scratchbox/devkits/cputransp/bin/qemu-my-arch-cvs > sb-conf in my-target -c -d -e -F -G -S > sb-conf se my-target
For maemo bora (3.x)
> sb-conf st my-bora -c cs2005q3.2-glibc2.5-arm -d cputransp:perl:debian-sarge:maemo3-debian:apt-https -t /scratchbox/devkits/cputransp/bin/qemu-arm-0.8.2-sb2 > sb-conf in my-bora -c -d -e -F -G -S > sb-conf se my-bora
Note that the order in PATH is reversed when selecting devkits
If you don't explicitly specify maemo3-debian for bora, it'll be inserted automatically by the Scratchbox configuration. The end result may not be the same, but this shouldn't matter, maemo3-debian doesn't contain apt. As long as the apt in debian-sarge is overridden (ie. apt-https is after debian-sarge in the select line), everything should work.
Be aware that the apt in apt-https is very up-to-date (lenny version), it may not work correctly with very old version of dpkg
Crocodile
From Scratchbox 1.0.7 on, flex is not regarded as a provided package when checking debian build deps
You can fix this with
# mkdir /scratchbox/users/${USER}/targets/`sb-conf cu`_deb_list
# cat > /scratchbox/users/${USER}/targets/`sb-conf cu`_deb_list/flex << EOF
Source: flex
Version: 2.5.31
Binary: flex
EOF
Legacy toolchains
Scratchbox 0.9.8 toolchains can be used with Scratchbox Apophis r4, but there are some known limitations when using them:
Files cannot be installed on a target before the target has been selected.
If you install files on a target after selecting it (due to the issue described in the previous bullet) and use the Debian or Debian Sarge devkit, you have to re-select the target to configure the dpkg installation architecture.
The legacy toolchains contain old device tools (such as fakeroot). Repackaged versions of some legacy toolchains with updated device tools are available from
Apophis download page.
Change logs
|
Repository |
Binary packages |
Version |
|
scratchbox-core, |
1.0.6 (updated to 1.0.9) |
|
|
scratchbox-devkit-apt-https |
1.0 (new devkit, updated to 1.0.3) |
|
|
scratchbox-devkit-cputransp |
1.0.1 (updated to 1.0.6) |
|
|
scratchbox-devkit-debian |
1.0.4 (updated to 1.0.10) |
|
|
scratchbox-devkit-doctools |
1.0.5 (updated to 1.0.8) |
|
|
scratchbox-devkit-maemo3 |
1.0 (new devkit, updated to 1.0.2) |
|
|
scratchbox-devkit-perl |
1.0.4 |
|
|
all foreign toolchain packages |
1.0.4 (updated to 1.0.7) |
Lists of tools
apt-https devkit
apt 0.7.6
curl 7.15.5
gnutls13 1.4.4
libgcrypt 1.2.4
libgpg-error 1.4
maemo3 devkit
dpkg 1.13.18
curl 7.16.1
diffstat 1.43
git 1.4.4.4
mercurial 0.9.1
neon 0.26.2
openssl 0.9.8d
pkg-config 0.21
quilt 0.45
subversion 1.4.3
svn-buildpackage 0.6.16
swig 1.3.29