% Debian Pure Blends
% Jonas Smedegaard
% Sarada, Khammam, October 20th, 2011

# Overview

  * Internet
  * Home
  * Passion
  * Trust
  * Debian
  * Debian Pure Blends

# Internet

Internet is our digital parallel World...

# Home

  * Where you are **safe**
  * Where you can **store** goods
  * Where you can **fumble** and experiment

# Passion

  >* Purpose
  * Astronaut?
  * Nuclear Scientist?

# Passion

  * ~~Purpose~~
  * Passion!

# Passion

  * ~~Purpose~~
  * Passions!

# Trust

  >* trust: feeling comfortable as guest in another home
  * proper trust == mutual trust

# Healthy environment

  * everyone has a **home**
  * everyone is driven by **passions**
  * everyone finds mutual **trust** in some others

# Debian - the universal Operating System

  * Free Software
  * Ruled 100% by its own volunteers
  * Stable
  * Flexible
  * very very big

Debian is "the universal Operating System"

Goal: Usable everywhere

# Debian - your new home?

  * Your home is **not** a **commercial** product of someone else
  * Your home can be in any of **100+ languages**
  * Your neighbourhood has **friendly** users
  * Maintained by **passionate** developers
  * You are **welcome to share** your passions as an **equal peer**

# Debian - very flexible...

> * Flexible: good
  * Very flexible: very good

# Debian - **too** flexible!

  * Flexible: good
  * ~~Very flexible: very good~~
  * Very flexible: very confusing!

Debian is maybe too flexible: confusing or even scary...

# Debian - ways to simplify

  1. Tolerate it: Use it as-is
  1. Remove choice: Use e.g. Ubuntu
  1. Use a Debian Pure Blend

# Debian - simple if generic defaults are ok

  * Mainstream (but not too new) hardware
  * GNOME desktop
  * Iceweasel web browser (= Firefox)
  * Exim MTA
  * Apache web server
  * MySQL database server

Debian *is* simple - if you like the defaults.

# Debian Pure Blend - Debian for a specific purpose

a subset of Debian configured to
support a particular target group out-of-the-box.

Goal 1
  : Turn Debian into the distribution of choice for a specific target
    group
Goal 2
  : Advertise this fact to the world to attract users and developers

# Debian Pure Blend - current blending projects

  * Debian Jr
  * Debian Med
  * Debian Edu
  * Debian Science
  * Debian EzGo
  * BrDesktop
  * Debian Accessibility
  * Debian Lex
  * DebiChem
  * Debian GIS
  * Debian Multimedia

# Deebian Pure Blends - future blends

  * FreedomBox
  * Debian LAN

# Debian Pure Blends - all Debian

  * **D**ebian packages - selections (e.g. for tasksel to pick up)
  * **D**ebian configuration - use of policy-compliant package-provided interfaces
  * **D**ebian distribution media - installing via Debian itself

DDD
  : **Debian** packages **Debian** configured from **Debian** distribution

# Debian Pure Blends - why bother?

Nice ideals and principles in theory, but...

What's in it for me?!?

# Debian Pure Blends - downsides

  * **annoying** - Debian package maintainers may not like proposed changes
  * **slow** - stable distribution is released infrequently
  * **rigid** - all contributions must match Debian Free Software Guidelines
  * **complex** - packages must obey Debian Policy

# Debian Pure Blends - Benefits

  * backed by Debian - help, bug tracking, translations, etc.
  * teamwork - others might help you refine and maintain your setups
  * common structures - others might take over if you loose interest

# Tech - Debian, generic setup

  * select package profile(s)
  * install

# Tech - Debian, hand-tuned

  * select package profile(s)
  * select additional packages
  * install
  * (re)configure packages

# Tech - Debian, auto-tuned

  * pre-seed package selection
  * pre-seed package configurations
  * install
  * (re)configure non-debconf packages

# Tech - Debian Pure Blend = generic

  * select blend profile
  * install

# Tech - tasks involved

  * extra software → into Debian officially
  * manual configurations → preseeding
  * maybe create temporary dirty hacks
  * maybe use/create reusable tweaks
  * eliminate dirty hacks and tweaks
  * convince others in Debian to add as tasksel task

# Tech - blends-dev

Tool to help maintain package lists and prospective packages.

Example: <http://debian-med.alioth.debian.org/tasks/psychology>

# Tech - dirty tricks

Avoid configuration files...

  * config.d folders
  * databases
  * networked data

# Tech - tweaks

Reusable scripts compatible with one or more of...

  * FAI
  * hands-off at http://hands.com/d-i/
  * CFengine
  * Puppet

# Tech - good style

  * Aptitude
  * debconf
  * Config::Model

# Tech - When is it "Pure"?

When all is in Debian, with no dirty tricks:

  * package selection(s)
  * customizations
  * installation

# Team - getting involved

  * identify and isolate tweaks at your own system
  * register missing software - on wiki page or (better!) in Debian BTS
  * write documentation
  * write the dream of how things ought to work
  * wite how details work now
  * discuss downstream (i.e. with users and subdistros) how things work /
    should work
  * discuss upstream (i.e. with authors) what is possible now / soon

# Team - getting involved II

  * write intro for peer enthusiasts
  * decide and document ideal formats  - translations, graphics etc.
  * prioritize pending tasks - of various kinds to encourage many
    different contributions
  * document where it is ok to ask beginners' questions
  * document if beginners can ask for a mentor

# Team - getting involved III

  * make illustration
  * make screendumps
  * make fan graphics
  * make desktop backgrounds, CD covers, stickers, etc.
  * Register the project as a DOAP file, and maybe at Ohloh and Freshmeat
    etc.
  * Register and maintain relevant Debtags

# Team - getting involved IV

  * Translate package descriptions
  * Translate debconf dialogs
  * Translate upstream code

# Team - getting involved V

  * Help integrate contributions from graphics artists, translators and
    others
  * document decision processes of the team (and Debian and upstreams?)
  * document workflows in teams
  * insist on transparency - not only for code!

# Team - Continuous status checks

  * Ask users about their needs - you will forget over time!
  * Ask teams about their tasks - each participant has slightly different
    perception of the common vision and status
  * Ask upstreams about use: perhaps potentials are missed, or code or
    persons feel as being abused

# Debian Pure Blends - Future

 * debconf dontcare vs. explicit choice of default option
 * debconf query mechanism (and fill buffer from live system)
 * APT explicit choice of alternate dependency/recommendation
 * APT dontcare vs. explicit choice of default dependency/recommendation
 * Config::Model - semantic configfile handling

# Final words...

Be **passionate**!

**Share** your passion!

# Final words...

Be **passionate**!

**Share** your passion!

This talk: <http://dr.jones.dk/blends/talk/khammam/>