<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>Debian Pure Blends</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="generator" content="pandoc" /> <meta name="author" content="Jonas Smedegaard (& Andreas Tille)" /> <meta name="date" content="Hồ Chí Minh, Việt Nam, November 12th, 2010" /> <link rel="stylesheet" type="text/css" media="screen, projection, print" href="../slidy.min.css" /> <script src="../slidy.min.js" charset="utf-8" type="text/javascript"></script> </head> <body> <div class="slide cover title"> <h1 class="title">Debian Pure Blends</h1> <p class="author"> Jonas Smedegaard (& Andreas Tille) </p> <p class="date">Hồ Chí Minh, Việt Nam, November 12th, 2010</p> </div> <div class="slide"> <h1 >Overview</h1 ><ul ><li >Debian is generic - Blends are specific</li ><li >Purity: all is Debian</li ><li >Why bother?</li ><li >Technical details</li ><li >Team, community, users</li ><li >Future</li ></ul ></div> <div class="slide"> <h1 >Debian - the universal Operating System</h1 ><ul ><li >Stable</li ><li >Flexible</li ></ul ><p >Debian is the universal Operating System.</p ><dl ><dt >Goal</dt ><dd >Usable everywhere</dd ></dl ></div> <div class="slide"> <h1 >Debian - very flexible...</h1 ><ul class="incremental" ><li >Flexible: good</li ><li >Very flexible: very good</li ></ul ></div> <div class="slide"> <h1 >Debian - <strong >too</strong > flexible!</h1 ><ul ><li >Flexible: good</li ><li ><span style="text-decoration: line-through;" >Very flexible: very good</span ></li ><li >Very flexible: very confusing!</li ></ul ><p >Debian is too flexible: confusing and to some even scary!</p ></div> <div class="slide"> <h1 >Debian - ways to simplify</h1 ><ol style="list-style-type: decimal;" ><li >Keep things as-is - educate users instead</li ><li >Remove choice</li ><li >Provide multiple defaults</li ></ol ></div> <div class="slide"> <h1 >Debian - simple if generic defaults are ok</h1 ><ul ><li >Mainstream (but not too new) hardware</li ><li >GNOME desktop</li ><li >Iceweasel web browser</li ><li >Exim MTA</li ><li >Apache web server</li ><li >MySQL database server</li ></ul ><p >Debian <em >is</em > simple - if you happen to like its defaults.</p ></div> <div class="slide"> <h1 >Debian Pure Blend - Debian for a specific purpose</h1 ><p >Debian Pure Blend (in short DDD): a subset of Debian configured to support a particular target group out-of-the-box.</p ><dl ><dt >Goal 1</dt ><dd >Turn Debian into the distribution of choice for a specific target group</dd ><dt >Goal 2</dt ><dd >Advertise this fact to the world to attract users and developers</dd ></dl ></div> <div class="slide"> <h1 >Debian Pure Blend - technical parts</h1 ><ul ><li >package selection(s)</li ><li >customizations</li ></ul ><p >The concrete work to include as packages with official Debian.</p ></div> <div class="slide"> <h1 >Debian Pure Blend - reality parts</h1 ><ul ><li >goals & noise about progress</li ><li >package health + encourage additional software packaging</li ><li >passion & patience</li ><li >good relations with Debian package maintainers, competitors, and upstream authors</li ><li >good relations with users</li ></ul ><p >Surrounding work making a Blend relevant.</p ></div> <div class="slide"> <h1 >Debian Pure Blend - current blending projects</h1 ><ul ><li >Debian Jr</li ><li >Debian Med</li ><li >Debian Edu</li ><li >Debian Science</li ><li >Debian EzGo</li ><li >BrDesktop</li ><li >Debian Accessibility</li ><li >Debian Lex</li ><li >DebiChem</li ><li >Debian GIS</li ><li >Debian Multimedia</li ></ul ><p >Projects working on Blends - some pure, some not (yet)...</p ></div> <div class="slide"> <h1 >Debian Pure Blends - all Debian</h1 ><ul ><li ><strong >D</strong >ebian packages - selections (e.g. for tasksel to pick up)</li ><li ><strong >D</strong >ebian configuration - use of policy-compliant package-provided interfaces</li ><li ><strong >D</strong >ebian distribution media - installing via Debian itself</li ></ul ><dl ><dt >DDD</dt ><dd ><strong >Debian</strong > packages <strong >Debian</strong > configured from <strong >Debian</strong > distribution</dd ></dl ></div> <div class="slide"> <h1 >Debian Pure Blends - why bother?</h1 ><p >Nice on paper with ideals and priciples, but...</p ><p >What's in it for me?!?</p ></div> <div class="slide"> <h1 >Debian Pure Blends - downsides</h1 ><ul ><li ><strong >annoying</strong > - Debian package maintainers may not like proposed changes</li ><li ><strong >slow</strong > - stable distribution is released infrequently</li ><li ><strong >rigid</strong > - all contributions must match Debian Free Software Guidelines</li ><li ><strong >complex</strong > - packages must obey Debian Policy</li ></ul ></div> <div class="slide"> <h1 >Debian Pure Blends - Benefits</h1 ><ul ><li >backed by Debian - help, bug tracking, translations, etc.</li ><li >teamwork - others might help you refine and maintain your setups</li ><li >common structures - others might take over if you loose interest</li ></ul ></div> <div class="slide"> <h1 >Tech - Debian support overloading choices</h1 ><ul ><li >Debian installer</li ><li >tasksel</li ><li >debconf</li ><li >aptitude</li ></ul ></div> <div class="slide"> <h1 >Tech - examples of non-pure blending</h1 ><ul ><li >include non-Debian packages or non-packaged stuff</li ><li >include Debian packages from different Debian suite</li ><li >configure system other than via Debian package installation</li ><li >install using non-Debian media</li ></ul ><p >You don't own your system - you provide one for others to own.</p ><p >So don't refine it like a (sloppy) user: Handle it like a Debian developer!</p ></div> <div class="slide"> <h1 >Tech - Debian, generic setup</h1 ><ul ><li >select package profile(s)</li ><li >install</li ></ul ></div> <div class="slide"> <h1 >Tech - Debian, hand-tuned</h1 ><ul ><li >select package profile(s)</li ><li >select additional packages</li ><li >install</li ><li >(re)configure packages</li ></ul ></div> <div class="slide"> <h1 >Tech - Debian, auto-tuned</h1 ><ul ><li >pre-seed package selection</li ><li >pre-seed package configurations</li ><li >install</li ><li >(re)configure non-debconf packages</li ></ul ></div> <div class="slide"> <h1 >Tech - Debian Pure Blend = generic</h1 ><ul ><li >select blend profile</li ><li >install</li ></ul ></div> <div class="slide"> <h1 >Tech - tasks involved</h1 ><ul ><li >extra software → into Debian officially</li ><li >manual configurations → preseeding</li ><li >maybe create temporary dirty hacks</li ><li >maybe use/create reusable tweaks</li ><li >eliminate dirty hacks and tweaks</li ><li >convince others in Debian to add as tasksel task</li ></ul ></div> <div class="slide"> <h1 >Tech - blends-dev</h1 ><p >Tool to help maintain package lists and prospective packages.</p ><p >Example: <a href="http://debian-med.alioth.debian.org/tasks/psychology" ><code >http://debian-med.alioth.debian.org/tasks/psychology</code ></a ></p ></div> <div class="slide"> <h1 >Tech - dirty tricks</h1 ><p >Avoid configuration files...</p ><ul ><li >config.d folders</li ><li >databases</li ><li >networked data</li ></ul ></div> <div class="slide"> <h1 >Tech - tweaks</h1 ><p >Reusable scripts compatible with one or more of...</p ><ul ><li >FAI</li ><li >hands-off at http://hands.com/d-i/</li ><li >CFengine</li ><li >Puppet</li ></ul ></div> <div class="slide"> <h1 >Tech - good style</h1 ><ul ><li >Aptitude</li ><li >debconf</li ><li >Config::Model</li ></ul ></div> <div class="slide"> <h1 >Tech - When is it "Pure"?</h1 ><p >When all is in Debian, with no dirty tricks:</p ><ul ><li >package selection(s)</li ><li >customizations</li ><li >installation</li ></ul ></div> <div class="slide"> <h1 >Team - getting involved</h1 ><ul ><li >identify and isolate tweaks at your own system</li ><li >register missing software - on wiki page or (better!) in Debian BTS</li ><li >write documentation</li ><li >write the dream of how things ought to work</li ><li >wite how details work now</li ><li >discuss downstream (i.e. with users and subdistros) how things work / should work</li ><li >discuss upstream (i.e. with authors) what is possible now / soon</li ></ul ></div> <div class="slide"> <h1 >Team - getting involved II</h1 ><ul ><li >write intro for peer enthusiasts</li ><li >decide and document ideal formats - translations, graphics etc.</li ><li >prioritize pending tasks - of various kinds to encourage many different contributions</li ><li >document where it is ok to ask beginners' questions</li ><li >document if beginners can ask for a mentor</li ></ul ></div> <div class="slide"> <h1 >Team - getting involved III</h1 ><ul ><li >make illustration</li ><li >make screendumps</li ><li >make fan graphics</li ><li >make desktop backgrounds, CD covers, stickers, etc.</li ><li >Register the project as a DOAP file, and maybe at Ohloh and Freshmeat etc.</li ><li >Register and maintain relevant Debtags</li ></ul ></div> <div class="slide"> <h1 >Team - getting involved IV</h1 ><ul ><li >Translate package descriptions</li ><li >Translate debconf dialogs</li ><li >Translate upstream code</li ></ul ></div> <div class="slide"> <h1 >Team - getting involved V</h1 ><ul ><li >Help integrate contributions from graphics artists, translators and others</li ><li >document decision processes of the team (and Debian and upstreams?)</li ><li >document workflows in teams</li ><li >insist on transparency - not only for code!</li ></ul ></div> <div class="slide"> <h1 >Team - Continuous status checks</h1 ><ul ><li >Ask users about their needs - you will forget over time!</li ><li >Ask teams about their tasks - each participant has slightly different perception of the common vision and status</li ><li >Ask upstreams about use: perhaps potentials are missed, or code or persons feel as being abused</li ></ul ></div> <div class="slide"> <h1 >Debian Pure Blends - Future</h1 ><ul ><li >debconf dontcare vs. explicit choice of default option</li ><li >debconf query mechanism (and fill buffer from live system)</li ><li >APT explicit choice of alternate dependency/recommendation</li ><li >APT dontcare vs. explicit choice of default dependency/recommendation</li ><li >Config::Model - semantic configfile handling</li ></ul ></div> </body> </html>