Custom Debian Distributions

This talk was held at the Libre Software Meeting Bordeaux 2004.

9. July 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.

This talk was given in the Accessibility track of LSM because Custom Debian Distributions also do cover this topic and thus it includes some special issues regarding accessibility and the idea how to build live CDs which was of special interest.

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

How Debian might be used by impaired people

(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 kernels, including in particular the Hurd and NetBSD. There have even been discussions of a possible port to Windows.
(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)

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

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

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

Existing Custom Debian Distributions

(page 10)

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

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
  • Do-O-Cracy = "The doer decides"
(page 12)

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

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
  • Configuration (optional)
    • debconf questions or pre-seeding
    • cfengine scripts
  • Special meta package: <cdd>-common
(page 14)

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

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
    • Find a set of keywords for each Custom Distribution and write a tool to search comfortable
    • Make use of Debian Package Tags
(page 16)

User roles

  • Role based user menu system
  • User with role <cdd> is provided with additional menu
  • Do not bother other users with those additional menus
  • Implemented in current Debian-Med packages
  • Roles system is implemented by flexible plugins
(page 17)

Developing meta packages

  • The package cdd-dev provides development tools
    • Examples and templates to fill in dependencies
    • Verification of dependencies inside distribution
    • Simple method to provide user menus
    • Verification of dependencies
    • Creates <cdd>-common package
  • Package <cdd>-common: user roles configuration
  • Usage of these tools is strongly recommended
  • Debian-Med packages provide a working example
(page 18)

Documentation & Translation

(page 19)

Communication

(page 20)

What is a (customised) live CD?

  • Boot an operating system
  • Autodetect hardware
  • Copy writable data to RAM disk and mount it writable
  • Configure and start services
  • Contain all applications for a certain task ready to run
  • User is able to
    • Work with his special applications
    • Carry his own environment around
    • Demonstrate (or even show off using) his fine system
  • Leave the local harddisk untouched
(page 21)

Further usage of live CDs

  • Frisbee
  • Coffee coaster
  • Prevent birds to fly into your window
  • Stencil for circles with two different radius sizes
  • Installer for your system
    → Ups, sorry this breaks the definition above because we did not want to touch the local hard disk.
    Well, it works as all the other possibilities but this is not what I want to talk about today.
(page 22)

Selection of Debian based live CDs

(page 23)

Mastering a live CD - the right way™

  • Today Knoppix-Remastering:
    Get Knoppix-ISO and remove files
    → Makes no sense even with bittorrent
  • Tomorrow Knoppix-Mastering:
    "Basic-Knoppix" in chroot and adding packages
    → Integrate Knoppix build system into Debian
    • Might be an Custom Distribution for itself
    • Creation and customisation of live CDs 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 debix
        → Portable to other architectures (PowerPC)
(page 24)

To do

  • Enhance tools for handling meta packages
  • Fix tasksel to present list of CDDs
  • Debian Package Tags
  • Integrate live CD build system into Debian
(page 25)

Future

(page 26)

Further Information

(page 27)

Homepage Andreas Tille