% Debian Pure Blends
% Jonas Smedegaard
% Paris, France, November 4th, 2013
Creating sustainable hacks
Debian - the universal operating system
18722 source packages
~1000 members
4-5000 non-member contributors
19 years old
Debian Pure Blends - Debian universally relevant
Debian Pure Blends - Debian universally relevant
Light(er than GNOME) desktop
Specific (non-english) language
Custom-designed taskbar
Custom applications included
Custom emphasized applications in menu
Custom default desktop background
Custom branding
Ideas as water
Downstream <-> Upstream
Derivatives
Wandering off?
Running ahead?
Scouting?
Making a blend
pick a base distro
hack on it
optimize hacks
get hacks adopted upstream
Maintaining a blend
Debian environment
Social contract
Constitution
Policy
Blends
- Debian Jr
- Debian Med
- Debian Edu
- Debian Science
- Debian EzGo
- BrDesktop
- Debian Accessibility
- Debian Lex
- DebiChem
- Debian GIS
- Debian Multimedia
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
Sources for this talk