Custom Debian Distributions
The Ultimate Step Towards Total World Domination

III Jornades de Programari Lliure

Campus de Manresa, UPC

8 July 2004

Sergio Talens-Oliag

sto@debian.org

What is Debian?

The Debian Project is an association of individuals who have made common cause to create a free operating system.

This operating system is based on the Linux Kernel and the GNU tools and is called Debian GNU/Linux, or simply Debian for short.

There is work in progress to support other Unix like kernels (Hurd, kFreeBSD, ...)

Why Debian?

More than 900 developers from all around the world that agree with the Debian Social Contract.

More than 10.000 packages for 12 architectures.

Standarization: Debian Policy Manual.

Quality assurance: BTS, QA Team.

Security team and security updates.

All software in main is free (it has to comply with the Debian Free Software Guidelines).

Why Debian?

More than 900 developers from all around the world that agree with the Debian Social Contract.

More than 10.000 packages for 11 architectures.

Standarization: Debian Policy Manual.

Quality assurance: BTS, QA Team.

Security team and security updates.

Everything in main is free (it has to comply with the Debian Free Software Guidelines).

Why not Debian?

Too many packages: general users are only interested in a subset of those packages.

Complicated to install and configure for unexperienced users.

Special interest groups have different skills and needs (and usually they are users, not system administrators).

Solution: Custom and Derived Distributions

Derived Debian Distributions

Operating System Distributions based on Debian:

deb package format

apt repositories with reduced package lists

Local packages and custom versions of official ones

Custom installers (PGI, Anaconda for Debian)

Problems:

Duplication of the infrastructure already in Debian

Packages don't have to be Policy Compliant

Local changes don't come back to Debian

Custom vs Derived Distributions

Custom Debian Distributions are distributions derived from Debian that are 100% Debian.

No fork from Debian: do not make a separate distribution but make Debian fit for special purpose needs instead.

All CDD contribute to Debian and all Debian improvements contribute to all Custom Debian Distributions.

Motivation (1)

Support of target users with common profile:

Less technical competence

Not able to install upstream programs with acceptable effort

No interest in administration

Interest in defined subset of available Free Software

Need for easy usage

Defined security profile

Motivation (2)

Support of administrators with common profile:

Limited time frame

Seaking for time saving in often repeated tasks

Lack of specialist knowledge

With CDD you can:

Market to specific groups and needs

Provide and/or sell user support

Create targeted documentation

Existing CDDs

Debian Junior: Debian for children from 1 to 99

Debian-Med: Debian in Health Care

Debian-Edu: Debian for Education

DeMuDi: Debian Multimedia Distribution

Debian-Desktop: Debian GNU/Linux for everybody

Debian-Lex: Debian GNU/Linux for Lawyers

Existing CDDs (2)

Debian-NP: Debian GNU/Linux for Non-profit Organisations

Debian Accessibility Project

Debian Enterprise

Other possible Custom Debian Distributions:

Debian-eGov, Office, Accounting, Geography (GIS), Biology, Physics, Mathematics

How?

If you need special software, package it in Debian

If you need special configurations, work with maintainers

If you need stable software, fix bugs and submit patches to the BTS

If you need translations, work with Debian translators

If you need security, work with the Debian security team

Current Technology

Metapackages:

Dependencies on other Debian packages (essential):

Use "Depends" for packages addressing an area of interest

Use "Recommends" for further interesting packages

Use "Suggests" for less important or non-free packages

Menu entries (recommended)

Configuration stuff (optional):

debconf questions (pre-seeding)

cfengine scripts

Special meta package: <cdd>-common

Open issues (1)

Use of Debian Package Tags for CDDs (tags could be used instead of dependencies in metapackages, adds flexibility).

Debconf preseeding support for all packages in a CDD (sometimes difficult, maintainers don't want to support special cases and there's no conscience about the importance of the CDD phenomenon).

Better configuration support for debconf or a standard way of modifying configurations after installation (cfengine, config4gnu, ...?).

Open issues (2)

Standard way of generating CDD installation CDs (currently done in DebianEdu using d-i).

Increase visibility of CDD in the standard Debian installation system.

Standard way of generating Live CD's of Custom Distributions: Knoppix, Morphix, Metadistros, ...

Assuming the current release cycle, add support for updating data for packages on stable (discover, l10n, ...).

Open issues (3)

We need a new Debian Release System.

Proposal 1:

Each CDD is a branch of the archive and has its own stable/testing package list and all packages are uploaded the same unstable pool; this needs:

Special promotion rules (to move packages inside each branch),

Reasonable subsets (CDDs or Core + Components),

BTS Support (for CDD specific bugs),

Security teams for each CDD.

Open issues (4)

Proposal 2:

Find a common set of packages obtained from the releasable set of testing (i.e. no rc-bugs) and release stable CDDs from it.

Proposal 3:

Testing proposed updates: some essential packages could be moved much faster to testing backporting from unstable on some architectures (when bugs are not present in those architectures).

More Information About CDD

Mailing list

debian-custom@lists.debian.org

CDD Paper

# apt-get install cdd-doc

Wiki

http://wiki.debian.net/?CustomDebian

Alioth project

http://alioth.debian.org/projects/cdd/

That's all, folks !

2004-07-06T18:15:47