About
The Crocodile project aims to cross-compile
Debian from scratch by using
Scratchbox. Currently the essential packages of the
Sarge distribution can be built for the
ARM (little-endian) architecture. Support for the
MIPS (big-endian) and
CRIS architectures is under development.
See the
DebConf 5 presentation about Crocodile.
Build instructions
The following steps instruct you how to build a Debian system using Crocodile. See the next section for architecture-specific toolchain and CPU-transparency method issues.
Install
Scratchbox Apophis r4. Create a Scratchbox target using doctools, debian and perl devkits.
Select the new target.
Check out the Crocodile scripts to your Scratchbox home directory:
-
darcs get --set-scripts-executable http://scratchbox.org/repos/crocodile
-
Add your nearest Debian mirror to etc/sources.list (optional):
-
echo 'deb-src ftp://ftp.fi.debian.org/debian sarge main' > etc/sources.list
-
Update source package list:
-
apt-get update
-
Create a directory and add sources you want to build there. To emulate the old build-essential plan, use
-
# mkdir crocodile-packages # cd crocodile-packages # apt-get source -d acl attr base-files base-passwd bash bc bzip2 chrpath coreuti ls cpio cracklib2 db1-compat db3 db4.2 debianutils diffutils dpkg e2fsprogs find utils fribidi gdbm grep gzip hostname libcap libselinux libsepol makedev mawk mo dutils ncurses netbase pam perl procps readline4 sed shadow slang sysvinit tar t cl8.3 tcl8.4 util-linux zlib
-
Create a Sources.gz
-
# dpkg-scansources . /dev/null|gzip>Sources.gz
-
Go to the crocodile directory.
-
# cd ../crocodile
-
Add Sources.gz to Crocodile sources.list
-
# echo "deb-src file:/home/${USER}/crocodile-packages ./" > etc/sources.list
-
Build and install the packages by running:
-
./unplanned-build.sh --clean
-
You only need a source package location for building Crocodile by following this example. (A binary package location may be required for advanced usage.) The sources.list is read from the ./etc directory, and the list of available packages is written to the ./work/lists directory. So the Scratchbox target can be destroyed, etc. without affecting the APT configuration.
Architecture notes
Contact
See the
Scratchbox contacts page.