User-friendliness of update tools and abundance of packages available are important

Easy to use; hard to build

* Development cycle

In-house craft model

One or a few developers grasp the whole system and build systems manually

LFS (Linux From Scratch)

Source code oriented model

Do everything at building time, using Makefiles or such kind of scripts

Gentoo, *BSD

Binary code oriented model

Packages all components in the system and combines them

Fedora, Debian

==> They adopted this approach

Others

Gets source code from Debian, patches as wanted and builds up

* Development cycle of Debian

Large scale project

More than 1,400 developers

More than 18,000 packages

Four stages

experimental

unstable

testing

stable Most packages are incorporated in unstable phase, then moved to testing, stable as conditions are satisfied Scripts control combination of depending packages, testing status Tracking bug numbers etc. coordinated Moved to "stable" when the quality reaches a certain level

==> Automatic release management in principle

* APT for MontaVista Linux

All componets are RPM(MVL)'ized

Available both from host and target

Package commands can be issues from host and target

Wrapper of APT

Dir, Dir::Bin::rpm,

RPM::PM,

RPM::RootDir, RPM::Options

==> This wrapper enable to update the toolchain and the target file system

The latest development environment is always available

This can be applied to other distributions

Trend of the cross development environment

-APT-MVL-RPM

MontaVista officially supports (MVL5.0)

* Merits of APT/RPM

Reusability

Efficient management of development environment

Installation

Update

Debigging (debuginfo)

When building packages on some of recent distributions, binaries (stripped and with debugging symbols) to be generated and source code may also be included

==> Preparing such packages, you can debug when you want, just by additionally installing the package

Unified building procedure

rpmbuild -ba

Version control

For tracking the cause of trouble

* Issues to use APT/RPM

Handling on cross development environment is dependent on systems

File locations

Names of cross tools

Automatic generation of dependency

To check depedency among libraries, you have to develop original script