% 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: # 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: