The talk is inteded to people who are interested in the philosophy for
Debian internal projects 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.
This talk is intended for a technically interested audience.
Debian Internal Projects
- What is Debian?
- What are Debian internal projects?
- Debian - adaptable for any purpose?
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 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.
That was wrong.
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
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
- Debian is no company but an organisation.
- It does not sell anything.
- Debian members (maintainers) are volunteers.
- Maintainers are working on the common goal: building the best operating
system they could afford
- 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 later is the common way and there are really great tools to do it this way.
What are Debian internal projects?
- 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
- 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
- Profile of target users:
- Less technical competence
- Not able to install upstream programs with acceptable
- No interest in administration
- Interest in defined subset of available free
- Need for easy usage
- Defined security profile
- Other possible projects:
- Enterprise / accounting
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
→ Lack of an integrated framework
History of Debian internal projects (1)
- Start: beginning of 2000
- Initiator: Ben
- First internal Projekt - in fact the idea of internal
projects was born
- Released in the current stable Debian code name Woody
- Start: beginning of 2002
- Initiator: Andreas
- Adapted ideas from Debian-Junior and added some stuff
- Start: just starting
- Initiator: Raphaël
- Bringing back a fork from Debian
History of Debian internal projects (2)
- Start: not really started yet
- Initiator: Marco
- Bringing back a fork from Debian
- Start: October 2002
- Initiator: Colin Walters <email@example.com>
- Many common issues with other internal projects
Debian for children from 1 to 99
- Make Debian an OS that children of all ages will want
- 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
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
Debian for educational purposes
- Make Debian the best distribution available for educational
- Federate many initiatives around education (which are partly based on
forks of Debian)
- Integrate changes from the French Debian Education distribution
- 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
Debian Multimedia Distribution
- Currently not announced as official internal project 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
- Initiator is not yet Debian developer but you are able to work on Debian
without being an official developer
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
- Easy usage for beginners without restrictions of flexibility
- Easy configuration (hardware-detection)
Why not just forking from Debian?
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
- 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
Technical reasons for adaptability
- Focus on
- Careful testing (BTS)
- Continuity (take care for old configuration)
- Powerful packaging tools
- Support of 11 hardware architectures (auto
builders: alpha, arm, hppa, i386, ia64, m68k, mips, mipsel,
powerpc, s390, sparc)
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
Handling of meta packages
- Overview over
- Command line tools
- Text user interfaces
You know dselect?
→ Forget it!
- Graphical user interfaces
- Web interfaces
- Hints for administration
- Future development
Command line tools (1)
Search for relevant keywords in package descriptions
~> apt-cache search med | grep '^med-'
med-bio - Debian Med Bio-Informatik-Pakete
med-common - Debian-Med-Projekt: gemeinsames Paket
med-common-dev - Debian Med Project common files for developing meta packages
med-dent - Medizinische Debian-Pakete für die Zahnarztpraxis
med-doc - Debian Pakete mit medizinischen Dokumentationen
med-imaging-dev - Debian Med packages for medical image development
med-tools - Debian Med - verschiedene Programe
med-bio-contrib - Debian Med bioinformatics packages (contrib and non-free)
med-imaging - Debian Med Imaging Packete
→ Not really straightforward currently
Command line tools (2)
~> grep-dctrl -r ': med-' /var/lib/dpkg/available | grep -v '^[ SIMAVF]' | grep -v '^Pri'
Depends: odontolinux, galeon | www-browser
Description: Debian Med packages for dental practice
Depends: librumba-dev, libgtkimreg-dev
Description: Debian Med packages for medical image development
Depends: doc-linux-html | doc-linux-text, resmed-doc, galeon | www-browser
Description: Debian Med documentation packages
Description: Debian Med several tools
Depends: debconf (>= 0.5)
Description: Debian Med Project common files for developing meta packages
Depends: rumbaview, paul
Description: Debian Med imaging packages
Depends: adduser, debconf (>= 0.5), menu
Description: Debian-Med-Projekt: gemeinsames Paket
Depends: bugsx, fastdnaml, fastlink, garlic, njplot, readseq, tree-puzzle
Description: Debian Med bioinformatics packages
Depends: clustalw, clustalx, molphy, phylip, seaview, treetool
Description: Debian Med bioinformatics packages (contrib and non-free)
→ Also a bit cryptic
Command line tools (3)
~> sudo auto-apt update
put: 880730 files, 1074158 entries
put: 903018 files, 1101981 entries
~> auto-apt -x -y run
Entering auto-apt mode: /bin/bash
Exit the command to leave auto-apt mode.
bash-2.05b$ less /usr/share/doc/med-bio/copyright
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
bugsx fastlink readseq
The following NEW packages will be installed:
bugsx fastlink med-bio readseq
0 packages upgraded, 4 newly installed, 0 to remove and 183 not upgraded.
Need to get 0B/1263kB of archives. After unpacking 2008kB will be used.
Reading changelogs... Done
Selecting previously deselected package bugsx.
(Reading database ... 133094 files and directories currently installed.)
Unpacking bugsx (from .../b/bugsx/bugsx_1.08-6_i386.deb) ...
Selecting previously deselected package fastlink.
Unpacking fastlink (from .../fastlink_4.1P-fix81-2_i386.deb) ...
Selecting previously deselected package med-bio.
Unpacking med-bio (from .../med-bio_0.4-1_all.deb) ...
Setting up bugsx (1.08-6) ...
Setting up fastlink (4.1P-fix81-2) ...
Setting up med-bio (0.4-1) ...
localepurge: checking for new locale files ...
localepurge: processing locale files ...
localepurge: processing man pages ...
This package is Copyright 2002 by Andreas Tille <firstname.lastname@example.org>
This software is licensed under the GPL.
On Debian systems, the GPL can be found at /usr/share/common-licenses/GPL.
&rarr Isn't this great?
Text user interfaces
- Debian Task Installer
- End-user section contains entry for each internal project
- Easy installation
Graphical user interfaces (1)
Graphical user interfaces (2)
→ Synaptic's filters are a great tool here.
Web interfaces (1)
Web interfaces (2)
Package Tracking System
→ Also not really straightforward currently
but becoming comfortable with the Package Tracking System is an
extra plus here :-)
- Recently developed web tool
- Great help in watching package status
- Supports subscription to interesting packages
Package Tracking System
Web interfaces (3)
→ Not yet a tool but a start of it
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 internal project and write a
tool to search comfortable
Tools to develop meta packages
- Building a meta package is more or less equal for each meta
- 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
- Each Debian-Med package build-depends from this package which
provides templates and tools for meta package building and some
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
User menu tools
Package med-common contains debconf scripts to configure project users
General menu rewrite
- Currently Debian menu system is completely rewritten
- Debian packages update general menu after installation
- 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
- All internal projects care especially for documentation and
translation because target users have big need for this
- Have a close look on <project>-doc
- Ben Armstrong has started a Debian Subproject HOWTO:
It explains how to start and maintain a Debian internal project
- First release with Debian Woody
- Included in task selection list of install CD
- First steps
- Some meta packages ready
- Great interest from developers and users
- First version in Sarge
- Knoppix based Live-CD
- Creating web site and mailing lists
- Integrating stuff from educational distributions which is not
yet in Debian
- Care for new Debian-installer based CDs
- Same as above
- Care for really free multimedia software (patent issues, licenses, etc.)
- Impact onto all other internal projects, because it is end user
- Take part in development of Debian-Installer