Custom Debian Distributions

Talk at LinuxDays Luxembourg 2003

8. November 2003

Abstract

Customized Debian Distributions (formerly known as Debian Internal Projects) are the way how Debian wants to support special user interests. For instance special users might be children, lawyers, medical stuff, visually impaired people etc. In the last year several new Customized Debian Distributions evolved. The goal of all these is to make installation and administration of computers for these target users as easy as possible. Moreover a specially designed Knoppix CD might be issued for demonstration purpose. To accomplish this a plan for creating customized Knoppix-CDs directly from Debian-Mirror will be introduced.

This talk wants to give an overview about techniques and tools used by Customized Debian Distributions and draws a sketch how Knoppix might be implemented into this concept in the future.

Here you can find the MagicPoint source including the necessary MagicPoint style of the talk.
Also the preformated slides are available.

Custom Debian Distributions

Debian-Junior

Debian-Med

Debian-Edu

DeMuDi

Debian-Desktop

Debian-Lex

Debian-NP

Debian-Accessibility

(page 1)

Overview

  • What are Custom Debian Distributions?
  • Debian - adaptable for any purpose?
  • Technology
    • Meta packages
    • User Menus
    • Live CDs
  • Future
(page 2)

What is Debian?

  • Linux is just the kernel of your operating system.
  • You need a lot of applications around.
  • Those collections of software around the Linux kernel is called operating system or distribution.
  • Companies who build such distributions are called distributors.
  • They make money by selling their distribution in boxes, doing support and training.
  • You might know Mandrake, RedHat, SuSE^H^H^H^HNovell etc.
  • Debian is just one of them.
(page 3)
Sorry.
That was wrong.
(page 4)

What is Debian? (next try)

The Debian Project is an association of individuals who have made common cause to create a free operating system. This operating system that we have created is called
Debian GNU/Linux,
or simply Debian for short.
Moreover, work is in progress to provide Debian for other than Linux kernels, primarily for the Hurd. Other possible kernels are BSD and even ports to MS Windows are planed.
(page 5)

Web of trust

Debian developers keyring
(page 6)

Differences to other distributions

  • Debian is not a company but an organisation.
  • It does not sell anything.
  • Debian members - generally called maintainers - are volunteers.
  • Maintainers are working on a common goal: building the best operating system they can
  • Largest collection of ready-to-install Free Software on the Internet
  • Two ways to obtain Debian GNU/Linux
    • Buying it from any other distributor on CD
    • Downloading from the Web for free
  • The latter is the common way and there are really great tools to do it this way.
(page 7)

What are Custom Debian Distributions?

  • Debian contains nearly 10000 binary packages
  • General users interested in a subset of those packages
  • Care for special groups of target users with different skills and interests
  • Not only handy collections of specific program packages but care for easy installation and configuration for the intended purpose.
  • No fork from Debian

→ Basic idea: Do not make a separate distribution but make Debian fit for special purpose instead

(page 8)

Looking beyond

  • Commercial Linux distributors sell certain products
    • Enterprise (Corporate Server - Mandrake, Advanced Server - Red Hat, Enterprise Server - SuSE)2
    • Workstation or home editions, Office desktops
    • Special task products
      • Mail server (SuSE Linux Openexchange Server)
      • Firewall (Multi Network Firewall - Mandrake, SuSE Firewall on CD)
      • Cluster (Mandrake Clustering)
      • Content Management System (Red Hat)
      • Portal Server (Red Hat)
  • These products address specific user interests

→ Debian uses Custom Distributions

(page 9)

Motivation

  • 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
  • Support of administrators with common profile:
    • Limited time frame
    • Seeking for time saving in often repeated tasks
    • Lack of specialist knowledge
(page 10)

Status of specialized Free Software

  • Hard to install
  • Hard to maintain
  • Hard to use because of lacking GUI
  • Strange Licenses
  • Orphaned upstream
  • Porting issues (architectures, byte order, 32 vis 64 bit)
  • Data format not exchangeable
  • Parallel development of the same functionality
  • Used tools or back ends are not intended for those applications

→ Lack of an integrated framework

(page 11)

General problem

  • Free Software development is kind of evolutionary process
  • Needs a critical mass of supporters which are
    • programmers
    • users
  • Specialized software has a limited set of users (specialists)
  • Results in a limited set of programmers
  • Debian wants to attract both groups to get it working ...

→ Debian is the missing link between upstream developers and users

(page 12)

History of Custom Debian Distributions (1)

  • Debian-Junior
    • Start: beginning of 2000
    • Initiator: Ben Armstrong <synrg@debian.org>
    • First Custom Distributions - in fact the idea of Custom Distributions was born
    • Released in the current stable Debian code name Woody
  • Debian-Med
    • Start: beginning of 2002
    • Initiator: Andreas Tille <tille@debian.org>
    • Adapted ideas from Debian-Junior and added some stuff
  • Debian-Edu
    • Start: summer 2002
    • Initiator: RaphaŽl Hertzog <hertzog@debian.org>
    • Bringing back a fork from Debian
    • SkoleLinux people recently dropped in
  • Demudi
    • Start: not really started yet
    • Initiator: Marco Trevisani <marco@centrotemporeale.it>
    • Bringing back a fork from Debian
(page 13)

History of Custom Debian Distributions (2)

  • Debian-Desktop
    • Start: October 2002
    • Initiator: Colin Walters <walters@debian.org>
    • Many common issues with other Custom Distributions
  • Debian-Lex
    • Start: April 2003
    • Initiator: Jeremy Malcolm <Jeremy@Malcolm.id.au>
    • Debian for lawyers
  • Debian-NP
    • Start: July 2003
    • Initiator: Benjamin Mako Hill <mako@debian.org>
    • Debian for Nonprofit Organizations
  • Other possible projects:
    • debian-accessibility (suggested by Mario Lang)
    • Authorities
    • Office
    • Enterprise / accounting
    • ???
(page 14)

Debian-Junior

Debian for children from 1 to 99
  • Make Debian an OS that children of all ages will want to use
  • Making it so nice that they like it
  • Making it a playground for children experiments
  • Not only providing games but care for their quality
  • Main target are young children, teens should become comfortable with using Debian without any special modifications
(page 15)

Debian-Med

Debian in Health Care
  • Integrated software environment for all medical tasks
  • Special care for the quality of program packages in the field of medicine which are integrated in Debian yet
  • Building packages of medical software which are missing inside Debian and inclusion of those packages
  • Caring for a general infrastructure for medical users
  • Efforts to increase the quality of third party software
(page 16)

Debian-Edu

Debian for educational purposes
  • Make Debian the best distribution available for educational use
  • Federate many initiatives around education (which are partly based on forks of Debian)
  • Integrate changes from the French Debian Education distribution into Debian
  • SkoleLinux people recently took over maintenance
  • Focus on easy installation in schools
  • Cooperate with other education-related projects (like Seul, Ofset, KdeEdu)
(page 17)

DeMuDi

Debian Multimedia Distribution
  • Currently not announced as official Custom Distribution but coordinator is in touch
  • Oriented toward music and multimedia
  • Make GNU/Linux a platform of choice for the musician and the multimedia artist
  • Part of a project funded by the European Community, called AGNULA
  • Initiator is not yet Debian developer but you are able to work on Debian without being an official developer
(page 18)

Debian-Desktop

Debian GNU/Linux for everybody
  • best possible operating system for home and corporate workstation use
  • Motto: "Software, which just works"
  • Desktops like Gnome and KDE should coexist well in Debian and work optimal
  • Easy usage for beginners without restrictions of flexibility for experts
  • Easy configuration (hardware-detection)
  • Internationalisation
(page 19)

Debian-Lex

Debian GNU/Linux for Lawyers
  • lex originates from latin word for law
  • Complete system for all tasks in legal practice
  • Add value to existing packages by providing customised templates for lawyers
    • OpenOffice.org
    • SQL-Ledger
    • Sample database schema for PostgreSQL.
(page 20)

Debian-NP

Debian GNU/Linux for Nonprofit Organizations
  • Adresses requirements of small non-profit organizations
  • Desktop use in non-profit organizations
  • Non-profits often familiar with Free Software
  • Many common tasks with other Custom Distributions
  • Specialized uses:
    • Fund raising
    • Developing membership lists
    • Conference organisation
(page 21)

Debian Accessibility Project

Debian for blind and visually impaired people
  • Debian accessible to people with disabilities
  • Special care for
    • Screen readers
    • Screen magnification programs
    • Software speech synthesizers
    • Speech recognition software
    • Scanner drivers and OCR software
    • Specialized software like edbrowse (web-browse in the spirit of line-editors)
  • Making text-mode interfaces available
  • Providing screen reader functionality during installation
(page 22)

Why not just forking from Debian?

  • Separate distribution would cost extra effort
    • Would be hardly better than Debian
    • Continuous work to keep base system boot-floppies etc up to date
    • Nearly impossible to get security fixes as fast as Debian
    → Forking would be a bad idea.
  • Integration into Debian has advantages
    • Huge user base all over the world thus becoming public on the back of Debian
    • Secure and stable system without extra effort
    • Bug Tracking System for free
    • Infra structure (HTTP-, FTP-, Mailserver, PKI, ...) for free
  • Bringing back something to Debian
    • Enhancing quality of packages by making them more user friendly
(page 23)

Debian - adaptable for any purpose?

  • Developed by about 1000 volunteers
  • Flexible, not bound on commercial interest
  • Strict rules (policy) glue all things together
  • Common interest of each individual developer to get the best operating system for himself
  • Developers have children in real life or work in the field of medicine etc.
  • In contrast to employees of companies every single Debian developer has the freedom and ability to realize his vision
  • Thus single developers have influence on development - they just have to do it
(page 24)

Technology (1): Meta Packages

  • Collection of specific software
    • No research for available software necessary
    • User is not forced to browse the whole package list of Debian
    • Easy comparison between software covering the same task
    • Safety against accidental removal of dependencies
    • Conflicts to incompatible packages
    • Easy installation
    • Low effort for administration
  • Adapted configuration inside meta packages
    • Care for special needs of project users
  • Documentation packages
    • Packaging and creating of relevant documentation
    • Translation
(page 25)

Handling of meta packages

  • Overview over
    • Command line tools
    • Text user interfaces
    • Graphical user interfaces
    • Web interfaces
  • Hints for administration
  • Future development
(page 26)

Command line tools

apt-cache
Search for relevant keywords in package descriptions
~> apt-cache search med | grep '^med-'

→ Not really straightforward currently

grep-dctrl
~> grep-dctrl -r ': med-' /var/lib/dpkg/available | grep -v '^[ SIMAVF]' | grep -v '^Pri'

→ Also a bit cryptic

auto-apt
~> sudo auto-apt update
~> auto-apt -x -y run

&rarr Cool! But you do not really want it on a production machine ...

(page 27)

Text user interfaces

dselect
  • Provides no special help for installing meta packages
tasksel
  • Debian Task Installer
  • End-user section contains entry for each Custom Distribution
  • Easy installation
aptitude
  • Better replacement for dselect
  • Searching for and grouping of packages
(page 28)

Graphical user interfaces

gnome-apt
  • Package -> Search -> "junior-*"
  • Reasonable overview about meta packages of project
synaptic
  • Synaptic's filters are a great tool here.
  • Synaptic-debtags supports package tags
kpackage
  • Similliar to both above regarding features
  • For KDE lovers
(page 29)

Web interfaces

Web search

Package Tracking System
http://qa.debian.org/developer.php?login=<developer>
use synrg for the junior packages and tille for the med packages
http://packages.qa.debian.org/<letter>
append 'j' or 'm' for junior or med, respectively

→ Also not really straightforward currently but becoming comfortable with the Package Tracking System is an extra plus here :-)

/usr/share/doc/junior-doc/examples/scripts/list-junior

→ Not yet a tool but a start of it

(page 30)

Future handling of meta packages

  • Obviously there are no nifty tools as you might know them from Debian available yet.
  • Tools which grep the apt cache directly for meta packages have to be written.
  • Policy agreement about additional flag for debian/control file
  • Find a set of keywords for each Custom Distribution and write a tool to search comfortable
  • Make use of Debian Package Tags
(page 31

Tools to develop meta packages

  • Building a meta package is more or less equal for each meta package
  • Those stuff should be parameterised and supported by tools to
    • Make it easier
    • Reduce probability of bugs
  • There is no common agreement about this but at least Debian-Med is using the med-common-dev for package building
  • Each Debian-Med package build-depends from this package which provides templates and tools for meta package building and some examples
(page 32)

Technology (2): User menus

  • Define a list of sub project users using debconf to manage groups like junior and med in /etc/group
  • These users are provided with an extra menu
  • Do not bother other users with those additional menus
  • Provide script update-subproject to update user menus after new package installation or additions of users to those groups
  • Current Debian-Med packages give an idea of the look and feel
(page 33)

User menu tools

Package med-common contains debconf scripts to configure project users
Med-common debconf screenshot
(page 34)

General menu rewrite

  • Currently Debian menu system is completely rewritten
  • Debian packages update general menu after installation automatically
  • Key features like user roles and translation will be added
  • Plan: Meta packages contain role specific menu entries which are updated on a per user basis
  • Enabling clean administration of multi user systems
(page 35)

Technology (3): Live CDs

  • Issue for each Custom Debian Distribution
  • Knoppix = "mother" of Debian based Live CDs
  • There are a lot of Knoppix derivatives
    • Morphix
      modular; consists of a number of parts which together form a working distribution
    • Gnoppix
      Debian GNU/Linux Woody extended with a GNOME 2 desktop environment
    • Quantian
      tailored to numerical and quantitative analysis
    • ClusterKnoppix
      Knoppix distro using the OpenMosix kernel
    • LiveOIO
      Knoppix with PostgreSQL + Zope to run OIO
    • Knoppix with GnuMed (ISO image)
      Demonstration of GnuMed
(page 36)

Integrate Knoppix build system into Debian

  • Might be an Custom Distribution for itself
  • Goal: Enabling easy creation and customisation of Knoppix derivates from native Debian mirror
    • debootstrap
    • Install Knoppix stuff into chroot environment
    • Customize chroot environment for intendet purpose
    • Create ISO image from chroot environment
    • Make use of Jigdo
    • Fabian Franz is working on this stuff

→ Everybody is invited to join the freshly created project debian-knoppix on alioth.debian.org

(page 37)

Documentation

  • All Custom Distributions care especially for documentation and translation because target users have big need for this
  • Have a close look on <project>-doc packages!
  • There is an interesting package: subproject-howto
    It explains how to start and maintain a Custom Debian Distribution in general
(page 38)

To do

  • Create a common mailing list (#160229)
  • Update tasksel (#186085)
  • Debian Package Tags
  • Realize the Live CD system
(page 39)

Future

  • First Custom Distributions evolved
  • Tools for better support have to be developed
  • Spreading the idea to developers and users
  • Provide customized Knoppix CDs of projects
(page 40)

Further Information

(page 41)

Homepage Andreas Tille