Deutsche Version

Custom Debian Distributions

Talk at Debian Conference 3

20. July 2003

Abstract

The talk is intended to people who are interested in the philosophy for Custom Debian Distributions and the technique which is used to manage those projects. It is explained in detail why this are no forks from Debian but reside completely inside the Debian GNU/Linux distribution and which advantages can by gathered by this approach. The concept of meta-packages and user role based menus is explained.

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
  • 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 and others.
  • 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.
  • Web of trust
  • Differences to other distributions
(page 5)

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 6)

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 7)

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 8)

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 9)

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
  • We have to attract both groups to get it working ...

→ We are the missing link between upstream developers and users

(page 10)

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: just starting
    • Initiator: RaphaŽl Hertzog <hertzog@debian.org>
    • Bringing back a fork from Debian
  • Demudi
    • Start: not really started yet
    • Initiator: Marco Trevisani <marco@centrotemporeale.it>
    • Bringing back a fork from Debian
(page 11)

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 12)

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 13)

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 14)

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
  • Cooperate with Debian based SkoleLinux in Norway
  • Cooperate with other education-related projects (like Seul, Ofset, KdeEdu)
  • Just started, mailing list and web site in preparation
(page 15)

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 16)

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 17)

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 18)

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 19)

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 20)

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 21)

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 22)

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 23)

Handling of meta packages

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

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 25)

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 26)

Graphical user interfaces

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

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 28)

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 29

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 30)

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 31)

User menu tools

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

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 33)

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!
  • Ben Armstrong has started a Debian Subproject HOWTO: It explains how to start and maintain a Custom Debian Distribution in general
(page 34)

To do

  • Create a common mailing list (#160229)
  • Update tasksel (#186085)
  • Debian Package Tags
  • Integrate Knoppix build system into Debian
    • Might be an Custom Distribution for itself
    • Enabling easy creation and customisation of Knoppix derivatives 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
(page 35)

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 36)

Further Information

(page 37)

Homepage Andreas Tille