% Debian Pure Blends
% Jonas Smedegaard (& Andreas Tille)
% Hồ Chí Minh, Việt Nam, November 12th, 2010
Overview
- Debian is generic - Blends are specific
- Purity: all is Debian
- Why bother?
- Technical details
- Team, community, users
- Future
Debian - the universal Operating System
Debian is the universal Operating System.
Goal
: Usable everywhere
Debian - very flexible...
Debian - too flexible!
- Flexible: good
- ~~Very flexible: very good~~
- Very flexible: very confusing!
Debian is too flexible: confusing and to some even scary!
Debian - ways to simplify
- Keep things as-is - educate users instead
- Remove choice
- Provide multiple defaults
Debian - simple if generic defaults are ok
- Mainstream (but not too new) hardware
- GNOME desktop
- Iceweasel web browser
- Exim MTA
- Apache web server
- MySQL database server
Debian is simple - if you happen to like its defaults.
Debian Pure Blend - Debian for a specific purpose
Debian Pure Blend (in short DDD): 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 - technical parts
- package selection(s)
- customizations
The concrete work to include as packages with official Debian.
Debian Pure Blend - reality parts
- goals & noise about progress
- package health + encourage additional software packaging
- passion & patience
- good relations with Debian package maintainers, competitors, and upstream authors
- good relations with users
Surrounding work making a Blend relevant.
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
Projects working on Blends - some pure, some not (yet)...
Debian Pure Blends - all Debian
- Debian packages - selections (e.g. for tasksel to pick up)
- Debian configuration - use of policy-compliant package-provided interfaces
- Debian distribution media - installing via Debian itself
DDD
: Debian packages Debian configured from Debian distribution
Debian Pure Blends - why bother?
Nice on paper with ideals and priciples, 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 support overloading choices
- Debian installer
- tasksel
- debconf
- aptitude
Tech - examples of non-pure blending
- include non-Debian packages or non-packaged stuff
- include Debian packages from different Debian suite
- configure system other than via Debian package installation
- install using non-Debian media
You don't own your system - you provide one for others to own.
So don't refine it like a (sloppy) user: Handle it like a Debian developer!
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