summaryrefslogtreecommitdiff
path: root/blends/talk/paris.mkd
blob: f2a8bdb9923a7b99f6c21a4ab84416ce00acc1ab (plain)

% 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

Photo: George Hodan

Downstream <-> Upstream

Sketch: Siri Reiter

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

Photo: Thinkgeek

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