Chapter 2. The LEAF Project

Table of Contents

Current LEAF Distributions
How Does the LEAF Distribution Used Affect Development?

What is the LEAF project? The LEAF project is a collaboration between LRP derivative designers, and is designed to increase cooperation between the different LRP derivative developers. The two main LRP derived distributions are Oxygen and Dachstein (the successor to Eigerstein and Eigerstein2Beta).

There are many kernels, packages, and disk images released by various developers under the LEAF project. There is also extensive documentation. All are available at http://leaf-project.org/.

Current LEAF Distributions

If you choose to develop for a LEAF distribution, the problem becomes which one — or will you develop for all distributions? Will you develop for LRP also?

LRP is the original distribution, though it is not a LEAF distribution. In the past, LRP has been slated for obsolescence in favor of a new project by the main developer, Dave Cinege. LRP is not a LEAF project.

Dachstein is the successor to Eigerstein. Dachstein is known for:

  • Easy setup

  • Large number of novice and professional users

Dachstein is the brainchild of Charles Steinkuehler.

Oxygen is the newest, and is much less like LRP than Dachstein is. Oxygen has these features:

  • Load multiple packages from multiple sources, including networking and floppies.

  • Uses the Openwall kernel patch for security.

  • Updated packages — which includes many security updates.

  • More available commands — and more like standard UNIX.

  • No need to specify packages to load: automatically loads all packages on disk.

  • Advanced package management: more bullet-proof, load packages from disk or network, save packages without worrying about running out of disk space without warning, and more!

Oxygen is being developed by David Douthitt who is also the original author of this document.

How Does the LEAF Distribution Used Affect Development?

There are several differences between distributions that need to be accounted for by a future developer:

Version of glibc.

Eigerstein and Dachstein have continued to use glibc 2.0 (as does LRP); the most recent version of Oxygen has been using glibc 2.1. Both are already obsoleted by glibc 2.2. If you want your packages to work as widely as possible, compile with glibc 2.0.

Support for the programs netstat, ifconfig, route, etc.

These programs are standard UNIX programs, and are present in LRP and older Oxygen versions; the ip program (sometimes refered to as iproute2) replaces all of these. If you write a script which uses any of these commands, you must account for the fact that the commands may not be present.

Linux kernel version.

LRP used Linux 2.0 and later had an add-on package for Linux 2.2. Dachstein and Oxygen have been using Linux 2.2 for a while. Current development is towards using Linux 2.4. This may affect your choices for firewalls and other things. Linux 2.0 used ipfwadm to administrate firewalls; Linux 2.2 shifted to ipchains; Linux 2.4 now shifts to ipfilter. However, Linux 2.4 has modules to allow ipchains and ipfwadm to work with Linux 2.4. All of this must be accounted for.

Firewall support.

In actuality, this is a kernel version problem. Firewalls under Linux 2.0 used the ipfwadm utility to control the firewall. Linux 2.2 introduced an entirely new set of tools and firewall design that used something called ipchains. Linux 2.4 introduces yet another new firewall design called iptables. Linux 2.4 iptables offers support for older firewall control commands, even though it is a complete redesign. Whatever firewall tool you use, make sure the kernel supports it.

Ncurses.

LRP and Dachstein only come with a stripped down version of ncurses 3. Oxygen came with ncurses 4 initially; later this was moved to an LRP package and then upgraded to ncurses 5. A lot of things require full ncurses, especially editors such as elvis-tiny; also many networking tools with full screen color displays require ncurses. Some programs will require ncurses 5 and will not work with ncurses 4.