Scratchbox SDK logo
Scratchbox > Download > Scratchbox 0.9.7

Scratchbox 0.9.7

1. Release 0.9.7.3

2004-04-23

1.1. Changes since 0.9.7.2

  • Perl is wrapped so that /host_usr/perl directory is searched first when loading modules

  • /scratchbox/packages/scratchbox-perl-dev.tar.gz provides XML::Parser::Expat Perl module

  • Perl configuration changed and dynamic loading enabled

  • Perl documentation added to /scratchbox/doc

  • aclocal-1.4 patched to support dirlist

  • aclocal-1.4 will show /usr/share/aclocal as --print-ac-dir

  • dpkg upgraded to 1.10.20

  • debhelper looks for autoscripts from Debian devkit and /usr

  • pkgconfig uses /usr/lib/pkgconfig instead of /lib/pkgconfig

1.2. About Perl

Perl has been fixed so that it is possible to install and use CPAN modules under /host_usr/perl -directory. Modules can be installes simply via CPAN module by issuing "perl -MCPAN -e shell", which invokes interactive shell. Help can be obtained by saying "?". When one runs CPAN module for the very first time, some questions will be asked. Defaults should be fine but can be finetuned to match setup.

XML::Parser::Expat has been the most problematic module so far, and that's why files needed by it are provided as a separate package. If ao. module is needed, following instructions inside Scratchbox will get it in the use:

[sbox-ARM: ~] > cd /host_usr [sbox-ARM: ~] > tar -xzvf /scratchbox/packages/scratchbox-perl-dev.tar.gz

Module can be tested with simple oneliner, which should exit with no further output if everything is ok:

[sbox-ARM: ~] > perl -e 'use XML::Parser::Expat'

More detailed information about Scratchbox's Perl is in /scratchbox/doc/perl.txt

1.3. About libtool

You need to set up libtool for every target separately. It is normally set up by the 'sbox-config -cc' command, but if you are using a roostrap, see the Rootstrap 0.9.7.2 Release Notes for instructions.

2. Release 0.9.7.2

2004-04-19

2.4. Changes since 0.9.7.1

  • Fixed hashbangs of some Python and Perl scripts (bug #108)

  • Removed hardcoded -L options from compilers' gcc.specs

  • Perl upgraded to 5.8.3 and removed OS version check from Errno.pm

  • autoconf upgraded to 2.59

  • automake-1.8 added

  • aclocal's dirlist mechanism is used to fix some m4 macro problems

  • libtool is not provided out-of-the-box, instead it is shipped as tarball and compiled inside Scratchbox per toolchain basis

  • debhelper uses Scratchbox's Perl to find out installation paths

  • debhelper upgraded to 4.1.83 and fixed

  • gettext upgraded to 0.13.1

  • Building and installing Perl modules fixed

2.5. About libtool

As the environment in Scratchbox is very non-standard, libtool needs to be configured and installed separately.

If rootstrap is not used, executing 'sbox-config -cc' should build a correct libtool under /host_usr/.

If rootstrap is used, 'install-libtool.sh' needs to be executed after the rootstrap is installed. 'install-libtool.sh' also builds a proper libtool under /host_usr/.

Both of the above methods require a working CPU-transparency environment!

Some Debian packages also presume that:

  1. libtool resides in /usr/bin/libtool

  2. libtoolize resides in /usr/bin/libtoolize

  3. libtool.m4 resides in /usr/share/aclocal/libtool.m4



Neither 'install-libtool.sh' or 'sbox-config -cc' copy those binaries in the "right" locations, they need to be copied there manually for some Debian packages to build successfully.

2.5.1. Summary

If you are using rootstrap for Debian development, first install a rootstrap to your ARM target, then execute:

[sbox-ARM: ~] > install-libtool.sh [sbox-ARM: ~] > cp /host_usr/bin/libtool /host_usr/bin/libtoolize /usr/bin/ [sbox-ARM: ~] > cp /host_usr/libtool/aclocal/libtool.m4 /usr/share/aclocal/

For non-Debian development 'sbox-config -cc' is sufficient.

2.6. About Perl

Using dynamic modules in Perl causes problems as a i386 executable may try to use ARM libraries dynamically. There is no simple fix at the moment. Additional "patches" to Scratchbox will be provided later which should atleast provide a working XML parser so 'intltool' should work.

2.7. Environment variables

There are a few environment variables that should be set in the user's ~/.bashrc file so that Scratchbox works better and faster. Following is an example .bashrc:

LIST=/usr/bin/perl:/scratchbox/tools/bin/perl LIST=$LIST#/usr/bin/make:/scratchbox/tools/bin/make LIST=$LIST#/usr/bin/python:/scratchbox/tools/bin/python LIST=$LIST#/usr/bin/file:/scratchbox/tools/bin/file export SBOX_REDIRECT_BINARIES=$LIST export SBOX_DPKG_INST_ARCH=arm export SBOX_UNAME_MACHINE=arm export TMPDIR=/var/tmp export PKG_CONFIG_PATH=/usr/lib/pkgconfig

3. Release 0.9.7.1

2004-01-18

Bug fixes:

  • '/scratchbox/sbin/sbox_adduser' works also on non-Debian systems

  • '/usr/include/asm-generic' is correctly created by the 'sbox-config --copy-clibrary' command

4. Release 0.9.7

2003-12-24

Changes from 0.9.6 release:

  • Devkit support

  • Sudo-mode option

  • Improvements and enhancements

4.8. Tools in this release

Gcc toolchains and related utilities for ARM and i386 architectures:

  • gcc-2.95.3 + 40 patches, glibc-2.2.4, binutils-2.12.1 to be used for compiling kernels

  • gcc-3.3.2ds5-4, glibc-2.3.2ds1-10, binutils-2.14.90.0.7-2 for non-kernel compilations

  • gcc-3.3.1, uClibc-0.9.21, binutils-2.14.90.0.5-0.2

  • ccache 2.2

  • dist-cc 2.5

  • sbrsh 1.3.25

  • fakeroot-net 0.9.6-1

  • scratchbox-base 1.31

  • scratchbox-libs 0.9.5

  • scratchbox-utils 0.9.46

Other build tools:

  • autoconf 2.13-47

  • autoconf 2.57

  • automake 1.4

  • automake 1.7

  • bash 2.05b

  • bison 1.35

  • busybox 0.61

  • bzip2 1.0.2

  • coreutils 5.0

  • cvs 1.11.5

  • dialog 0.9b-20020814

  • diffutils 2.8.1

  • ed 0.2

  • file 3.41

  • fileutils 4.1

  • findutils 4.1.20

  • flex 2.5.4a

  • gawk 3.1.1

  • gdb 5.2.1

  • gettext 0.11.5

  • grep 2.5

  • gzip 1.3.5

  • kbd 1.06

  • less 381

  • libtool 1.5

  • m4 1.4

  • make 3.80

  • mktemp 1.4

  • modutils 2.4.25

  • openssh 3.5p1

  • patch 2.5.4

  • perl 5.8.0

  • pkgconfig 0.14.0

  • python 2.2.2

  • rpm 4.1

  • sed 4.0.8

  • sh-utils 2.0

  • strace 4.4.94

  • tar 1.13.25

  • textutils 2.1

  • unzip 5.50

  • util-linux 2.11z

  • vim 6.1

  • wget 1.8.2

  • which 2.14

  • zip 2.3

Debian devkit:

  • apt 0.5.14

  • dbs 0.23

  • debhelper 4.1.64

  • debianutils 2.6

  • devscripts 2.7.91

  • dh-make 0.33

  • dpkg 1.10.10

  • html2text 1.3.1-2

  • sgml-base 1.19

  • sgmltools-lite 3.0.3.0.cvs.20010909-13

If any of these features don't work, mail detailed bug report to the scratchbox-devel mailing list.

4.9. Known bugs and other issues

Links are to Bugzilla bugs

Other issues:

  • X11 compilation sometimes stop without a reason when you're using Gnome-terminal as your terminal emulator.

    workaround: Run SDK from xterm terminal emulator (we don't know what is the significant different between these terminal emulators, but that fixes it). For example to run SDK in a login shell, use this:

    $ xterm -ls -e /scratchbox/users/$USER/run.sh &

    Rxvt and gnome-terminal 2.2.1 have also been reported not to interrupt X11 compilation (the problem has manifested with gnome-terminal 2.0.1).

    Tip: if you differentiate the SDK terminal from your other terminals with colors, you don't accidentally try to compile software in a wrong window. To get xterm with scrollbar on the right, 256 line buffer, larger font, black background with gray text and text effects reversed, add these options: -sb -rightbar -sl 256 -fn 9x15 -bg Black -fg Gray -rv

  • On ARM running a program complains about not finding a library that 'ldd' finds for that program, e.g. xterm doesn't find Xft library. This is related to above problem (/etc/ld.so.cache).

    workaround: login to ARM machine (after compiling busybox, so that you have shell there) and run 'ldconfig' there before running the program, for example:

    [sbox-ARM: ~] /login_target.sh $ /sbin/ldconfig -v $ xterm &

(Rest of the bugs are undocumented features.)

Created by MOVIAL and sponsored by NOKIA