% Debian Pure Blends % Jonas Smedegaard % HCU, Hyderabad, October 21th, 2011 # Overview * Internet * Home * Debian * Debian Pure Blends * FreedomBox # Internet Internet is **parallel** to the real World # Your mission in this World? * Astronaut? * Professor? * Mother? * Millionaire? # Passion * ~~Missions~~ * Passions! * Curiosity! # Key elements in life (and computer life) * Passions * Curiosity * Home * Trust # Home * Where you are **safe** * Where you can **store** goods * Where you can **fumble** and experiment # 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 - your new home? * **Independent** from commercial interests * Localized into **100+ languages** * Neighbourhood of **friendly** users * Maintained by **passionate** developers * You are **welcome to share** your passions as an **equal peer** # Debian - the universal Operating System * Free Software * 100% created and governed by volunteers * Very very stable * Very very big * Flexible... Debian is "the universal Operating System" # 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. # Ubuntu - your new home? * Nicer than Debian - 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. # 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 # Home alone... * Calls are lost when you are out * Friends cannot see your "wall" when you are out # A bigger house for all your devices >* Your desktop/laptop * Your phone * Another computer at school or at a friend... # Have a butler! * Lets friends in, holds back random guests (=spam) * shows guests what they are allowed to see (=wall) * ... # Example: Store and play music >* Chat with butler * Make backup of your computer/phone * → Butler notice music files, and suggests starting jukebox * Chat with a friend * → Butler suggest sharing with friend what you are listening to * Friend also share jukebox status * → Butler # FreedomBox - your personal privacy manager * Provides tools to keep in control of your privacy # FreedomBox - Dreams... * Follows your activities and learns your trust paths * Calculates new trust paths * Suggests use of the tools * # 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: