2004-04-23
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
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
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.
2004-04-19
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
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:
libtool resides in /usr/bin/libtool
libtoolize resides in /usr/bin/libtoolize
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.
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.
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.
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
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
2003-12-24
Changes from 0.9.6 release:
Devkit support
Sudo-mode option
Improvements and enhancements
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.
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.)