Custom Debian Distributions

This talk was held at the Debian Workshop which was embedded in the I Congreso Software Libre from 6. to 8. May in Valencia (Spain).

6. May 2004

Abstract

After the Open Source World Conference Custom Debian Distributions did a really great spin of. An extensive documentation now describes the goals and techniques very detailed. This talk covers an overview about the current state and the latest development issues.

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

Custom Debian Distributions

A new approach to cover interests of specialised users

(page 1)

Overview

(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 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 specialised 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
  • Specialised 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)

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

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

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)
  • In fact SkoleLinux now is more or less Debian-Edu
  • Integrate changes from the French Debian Education distribution into Debian
  • Cooperate with other education-related projects (like SEUL/edu, Ofset, KdeEdu)
  • Very active
  • Integration of LliureX, LinEX, Guadalinex, ... ?
(page 13)

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

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
  • Latest move: Care about more up to date software
(page 15)

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

Debian-NP

Debian GNU/Linux for Nonprofit Organisations
  • Addresses requirements of small non-profit organisations
  • Desktop use in non-profit organisations
  • Non-profits often familiar with Free Software
  • Many common tasks with other Custom Distributions
  • Specialised uses:
    • Fund raising
    • Developing membership lists
    • Conference organisation
  • Morphix based Live CD
(page 17)

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 synthesisers
    • Speech recognition software
    • Scanner drivers and OCR software
    • Specialised software like edbrowse (web-browse in the spirit of line-editors)
  • Making text-mode interfaces available
  • Providing screen reader functionality during installation
(page 18)

Debian Enterprise

Debian GNU/Linux for Enterprise Computing
  • Apply the UserLinux Manifesto
  • Establishes the benchmark in world class Enterprise operating systems engineered within an industry driven shared-cost development model
  • Vigorously defends its distinctive trademarks and branding
  • Develops extensive and professional quality documentation
  • Provides engineer certification through partner organisations
  • Certifies the Debian Enterprise GNU/Linux operating system to specific industry
(page 19)

Other possible CDDs

  • Debian-eGov
    → Government issues, administration, authorities office, accounting
  • Debian-Geo
    → Geographic information systems (GIS)
  • Debian-Physics
    → Simulation, statistics, numerics
  • Debian-Bio
    → Care for biology related stuff which is currently in Debian-Med
  • ???
    → Suggestions?
(page 20)

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 = "Doocracy"
(page 21)

Why not just forking from Debian?

  • Separate distribution would cost extra effort
    • Would be hardly better than Debian
    • Continuous work to keep base system, installer 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 22)

Meta Packages - Developers point of view

A meta package is a Debian package which contains:
  • Dependencies from other Debian packages
    • Depend from packages to do a certain task
    • Recommend further interesting packages
    • Suggest others or non-free packages
  • User menu entries (recommended)
    • in /etc/cdd/<cdd>/menu/<pkg-name>
    • maintained via role based tools
  • debconf questions or pre-seeding (optional)
  • cfengine scripts (optional)
  • Special meta package: <cdd>-common
(page 23)

Meta Packages - Users point of view

  • 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
  • Documentation packages
    • Packaging and creating of relevant documentation
    • Translation
(page 24)

Handling of meta packages

  • No special help by usual package handling tools
  • Tricks to obtain informations about meta packages
    (Mentioned in Custom Debian Distributions paper)
  • Target of future development
    • Searching for existing meta packages
    • Overview about dependencies
    • Enhancing tools like aptitude, synaptic, etc.
    • Special tasksel section
    • Web tools which keep meta package information up to date
    • 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 25)

User roles

  • Role based user menu system
  • User with role <cdd> is provided with additional menu
  • Currently implemented: UNIX group based role system
    • Define a list of users in group <cdd> in /etc/group
    • Using debconf questions in <cdd>-common Package
    • Users in this group get extra menu
    • Do not bother other users with those additional menus
    • Either user has to call update-menus or this can be done in package postinst script
  • Implemented in current Debian-Med packages
  • Roles system is implemented by flexible plugins
(page 26)

Tools to develop meta packages

  • The package cdd-dev provides development tools
    • Scan packages list for available packages
    • Build control files from meta packages according to templates
    • Build menu entries for user menus in meta packages
    • Contains examples how to build meta packages
  • cdd-gen-control
    • Builds debian/control file from templates in tasks directory
    • Checks sources.list file for available packages
  • cdd-install-helper
    • Moves menu files from menu directory into right place
    • Moves documentation files from docs directory into right place
    • Creates <cdd>-common package
    • Take care for general config file /etc/cdd/<cdd>/<cdd>.conf
  • Usage of these tools is strongly recommended
  • Debian-Med packages provide a working example
(page 27)

Common dependency package

Using cdd-dev introduces dependency from cdd-common
  • Creates common registry for all CDDs in /etc/cdd
  • Configuration file /etc/cdd/cdd.conf
    • Set DBBACKEND (currently only unixgroups implemented)
    • Settings can be overridden by /etc/cdd/<cdd>/<cdd>.conf
  • cdd-role: add/remove roles in registered CDD
  • cdd-update-menus: add menu to all CDD users
    (users have to call update-menus if not done in postinst script)
  • cdd-user: add/remove user to role of a registered CDD
(page 27)

Documentation & Translation

(page 28)

Communication

(page 29)

To do

  • Create common web page about general CDD issues
  • 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
      • Customise chroot environment for intended purpose
      • Create ISO image from chroot environment
      • Make use of jigdo
      • Fabian Franz is working on this stuff
(page 30)

Future

(page 31)

Further Information

(page 32)

Homepage Andreas Tille