Crocodile

About

The Crocodile project aims to cross-compile [WWW] Debian from scratch by using [WWW] Scratchbox. Currently the essential packages of the [WWW] Sarge distribution can be built for the [WWW] ARM (little-endian) architecture. Support for the [WWW] MIPS (big-endian) and [WWW] CRIS architectures is under development.

See the [WWW] 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.

  1. Install [WWW] Scratchbox Apophis r4.

  2. Create a Scratchbox target using doctools, debian and perl devkits.

  3. Select the new target.

  4. Check out the Crocodile scripts to your Scratchbox home directory:

    •     darcs get --set-scripts-executable http://scratchbox.org/repos/crocodile
      
  5. Add your nearest Debian mirror to etc/sources.list (optional):

    •     echo 'deb-src ftp://ftp.fi.debian.org/debian sarge main' > etc/sources.list
      
  6. Update source package list:

    •     apt-get update
      
  7. 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
      
  8. Create a Sources.gz

    • # dpkg-scansources . /dev/null|gzip>Sources.gz
      
  9. Go to the crocodile directory.

    • # cd ../crocodile
      
  10. Add Sources.gz to Crocodile sources.list

    • # echo "deb-src file:/home/${USER}/crocodile-packages ./" > etc/sources.list
      
  11. 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 [WWW] Scratchbox contacts page.


CategoryProject

last edited 2006-12-01 11:39:56 by JussiHakala