Open is not enough: benefits from as an integrated, community-driven computing platform

Yaroslav O. Halchenko & Michael Hanke

Debian Project Dartmouth College, New Hampshire University of Magdeburg, Germany

SEA 2013, Boulder CO

March 2 2013

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 1 / 38 Am I the right person?

To: [email protected] Subject: Duplicating Debian Installations? From: [email protected] (Tres Hofmeister) Date: Mon, 19 Aug 1996 19:10:41 -0600 (MDT)

Can someone point me towards info. on how one can duplicate the packages installed on one Debian system on another? Going through by hand seems just a bit too tedious for multiple installations... Thanks.

-- Tres Hofmeister Research Applications Program [email protected] National Center for Atmospheric Research

https://lists.debian.org/debian-user/1996/08/msg00890.html H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 2 / 38 Based on a true story...

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 3 / 38 Who is talking?

I and

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 4 / 38 Who is talking?

http://www.pymvpa.org H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 5 / 38 Who is talking?

http://www.debian.org H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 5 / 38 Who is talking?

http://neuro.debian.net H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 5 / 38 Our domain

Poline et. al, Data sharing in neuroimaging research, 10.3389/fninf.2012.00009 H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 6 / 38 Our belief #1

There is no alternative to free and open-source software for scientific research.

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 7 / 38 “Standard” model of scientific software deployment To download and install A on your system, you need to: Register/Request an account from the B Read these notes for C and D systems Download the source code and/or appropriate binaries for your system from E Remove old versions Install software Test software

Common problem: Availability != Accessibility

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 8 / 38 Common problem: Availability != Accessibility

“Standard” model of scientific software deployment To download and install A on your system, you need to: Register/Request an account from the B Read these notes for C and D systems Download the source code and/or appropriate binaries for your system from E Remove old versions Install software Test software

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 8 / 38 Common problem: Availability != Accessibility

“Standard” model of scientific software deployment To download and install A on your system, you need to: Register/Request an account from the B Read these notes for C and D systems Download the source code and/or appropriate binaries for your system from E Remove old versions Install software Test software If you decide to go forth with building from source code, good luck!

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 8 / 38 Student’s life is short: Having A on one box should be enough I better not have to upgrade it ever again I will not even think about F and G alternatives I value others’ time: let me blog a “HOWTO install A v. x.y.z on C”

Positive

Only an hour and “A” seems to be running – I can get back to do research again!

Possible user experiences

Not so positive

Software developers have no access to my system X and I need to build a few (dozens) of additional pre-requisites first: I better ask our IT personnel to deploy it – usually takes less than a month PhD students have all the time in the universe . . .

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 9 / 38 Student’s life is short: Having A on one box should be enough I better not have to upgrade it ever again I will not even think about F and G alternatives I value others’ time: let me blog a “HOWTO install A v. x.y.z on C”

Possible user experiences

Not so positive

Software developers have no access to my system X and I need to build a few (dozens) of additional pre-requisites first: I better ask our IT personnel to deploy it – usually takes less than a month PhD students have all the time in the universe . . .

Positive

Only an hour and “A” seems to be running – I can get back to do research again!

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 9 / 38 Possible user experiences

Not so positive

Software developers have no access to my system X and I need to build a few (dozens) of additional pre-requisites first: I better ask our IT personnel to deploy it – usually takes less than a month PhD students have all the time in the universe . . .

Positive

Only an hour and “A” seems to be running – I can get back to do research again! Student’s life is short: Having A on one box should be enough I better not have to upgrade it ever again I will not even think about F and G alternatives I value others’ time: let me blog a “HOWTO install A v. x.y.z on C”

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 9 / 38 Hanke, M. (2012). Share your tools! But fear the wombat! http://youtu.be/8t6znEOEDVo Not so positive

Software developers have no access to my system X and I need to build a few (dozens) of additional pre-requisites first: I better ask our IT personnel to deploy it – usually takes less than a month PhD students have all the time in the universe . . .

Positive

Only an hour and “A” seems to be running – I can get back to do research again! Student’s life is short: Having A on one box should be enough I better not have to upgrade it ever again I will not even think about F and G alternatives I value others’ time: let me blog a “HOWTO install A v. x.y.z on C”

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 9 / 38 Scientists report:

Hanke M and Halchenko YO (2011) Neuroscience runs on GNU/. Front. Neuroinform. 5:8. doi: 10.3389/fninf.2011.00008 GNU/Linux’es MCC Interim 1992 1992 TAMU SLS GNU/ Timeline Yggdrasil DLD

1993 Version 12.2 1993 Debian A. Lundqvist, D. Rodic - futurist.se/gldt LST

Bogus Published under the GNU Free Documentation License S.u.S.E 1994 1994 WGS Linux Pro Linux-FT Xdenu MNIS Mini Trans-Ameritech 1995 1995 Unifix Linux Universe Craftworks Caldera 1996 1996 DILINUX mkLinux Monkey 1997 1997 LinuxPPC Burapha UltraPenguin Weaver DOSLINUX Conectiva Stampede Buhawi PLD Eurielec µClinux 1998 1998 Turbolinux Mandrake ROCK Fermi Demolinux Project Ballantin Project SuSE Coyote e-smith KRUD eIT easyLinux Eridani Yellow Dog 1999 1999 Vine FREESCO Red Flag Corel Armed Kondara Peanut Scratch Linux From Enoch BluePoint Storm Astaro Linpus ELX (Arma) Omoikane 2000 2000 Tiny BU VectorLinux Miracle Gibraltar Happy GPL Pingo Caixa Mágica Best LEAF Rocks ClarkConnect SLES CRUX Beehive 2001 2001 Midori ASP ALT Leka Rescue Floppy Leka Rescue Progeny SuperRescue Openwall Independence dyne:bolic OpenWRT K12 DeMuDi SME Server SME HP Secure Lindows NetStation Virtual Sorcerer Aurora EnGarde Redmond gnuLiNex IPCop Haydar Tinfoil Hat Lunar Arch 2002 2002 Red Hat Enterprise Gentoo Source SOT EvilEntity Bayanihan SCO Topologilinux LinuxConsole BLAG DeLi Aurox United Linux Rxart GoboLinux LinuxInstall Yoper ZENIX Gentoox 2003 2003 miniwoody Morphix Berry Jollix UHU MEPIS GeeXboX Damn Small AnNyung AL-AMLUG KnoppMyth ATmission Thinstation Stux SAM PCLinuxOS ASLinux SUSE Devil Kwort SmoothWall Express Impi Fedora Core Fedora Danix Sun JDS NST CentOS blackPanther Feather White Box OpenSLS Shabdix Bonzai Dizinha Bluewall STUX BioBrew DARKSTAR DNALinux Kalango Amber K-DEMar Bioknoppix Guadalinex Hiwix AUSTRUMI Ututo-e 2004 2004 Euronode QiLinux Natures Linux Joatha DeadCD LBA CERN Openfiler Aquamorph Live Clonezilla Scientific Minislack Linux Security Auditor MAX Navyn OS ZoneCD B2D Desktop Underground Octoz GoblinX Kaella Specifix HostGIS Hiweed Whoppix Momonga StartCom SimplyMEPIS Annvix Hikarunix FoX T2 VidaLinux NimbleX Frugalware MOPSLinux NLD Asterisk@Home BeatriX Tao Arco-Debian Slamd64 Resulinux Pentoo Tirwal BlankOn Voyage aLinux Foresight epiOS Arabian Poseidon 2005 2005 Archie Mandriva 64Studio ParallelKnoppix KateOS NetSecL Symphony OS Symphony rPath Ututo XS MythDora VENENUX LliureX WHAX AsianLinux pQui Elive Wolvix IPFire VLOS Lihuen Tuquito Musix Hedinux SLAMPP Slackintosh RR4 BrazilFW OS2005 ThinClientOS Bintoo Kororaa nUbuntu NepaLinux Pardus Sauver Jarro Negro Jarro Epidemic 2006 2006 Ophcrack Librassoc Olive Alpine NeoDizinha RIP DSL-N Backtrack SLED Voltalinux Gnu-HALO Everest Bardinux Christian Edition Christian PUD PureOS Sabayon Ekaaty Mint Linkat Bluewhite64 How-Tux Absolute Oracle Enterprise TinyMe Papug gNewSense sidux openSUSE Ulteo Satanic Edition Wifislax Granular Oz DEFT BOSS Muslim Edition Muslim Uberyl TEENpup Patinho Faminto Patinho 2007 2007 Madbox LPS Webconverger Fedora openmamba Calculate ComFusion SMS antiX Ubuntulite Geubuntu Greenie Vixta Syllable Server Syllable Kiwi Fluxbuntu gOS Mamona NuTyX Toorox Eeebuntu PLoP CrunchBang Zebuntu SystemRescueCD PelicanHPC Ubuntu Rescue Remix Ubuntu Rescue 2008 2008 GALPon MiniNo GALPon Ultimate Edition Exherbo Simplis xPUD OpenGEU Estrella Roja Estrella Ubuntu eee Macpup Inquisitor MoonOS Maryan Ojuba Moblin 2 Moblin Funtoo Zorin OS Zorin eBox U-lite XBMC Live XBMC Newtoos Arc-Live VortexBox Chaox Wifiway Metamorphose ZevenOS Chakra PLATYPUX Xange BlueOnyx Tiny Core LinHES Kongoni A/V Qimo 2009 2009 Dragora Linvo Lin2Go Easy Peasy Qomo Sabily kademar FireFly webOS Canaima AV wattOS KahelOS OS CTKarchLive Arch Linux ARM Salix ClearOS Leeenux Maemo Hanthana Semplice Ylmf ArchBang Element Igelle 0 2010 2010 Netrunner QubesOS AgiliaLinux GnackTrack OS Peppermint Dax OS Quirky MeeGo OS Aurora Superb Mini Server Mini Superb Tiny SliTaz DoudouLinux Synergy Imagineos Jolicloud FrameOS ChameleonOS AriOS Legacy OS Zentyal aptosid Debian Linux Mint Dream Studio Dream Pinguy OS Pinguy 4M Fusion Parabola Fuduntu ConnochaetOS Swift Bodhi Progress Parsidora GNUGuitarINUX SalineOS Conducit Liquid Lemur Liquid 2011 2011 CTKArch Garuda AnikOS SlaXBMC Meego Harmattan Meego Porteus Pear OS Pear Viperr 2012 2012

http://futurist.se/gldt H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 11 / 38 GNU/Linux’es MCC Interim 1992 1992 TAMU SLS GNU/Linux Distribution Timeline Yggdrasil DLD

1993 Version 12.2 1993 Slackware Debian A. Lundqvist, D. Rodic - futurist.se/gldt LST

Bogus Published under the GNU Free Documentation License S.u.S.E 1994 1994 Red Hat WGS Linux Pro Linux-FT Xdenu MNIS Mini Jurix Trans-Ameritech 1995 1995 Unifix Linux Universe Craftworks Caldera 1996 1996 DILINUX mkLinux Monkey 1997 1997 LinuxPPC Burapha UltraPenguin Weaver DOSLINUX Conectiva Stampede Buhawi PLD Eurielec µClinux 1998 1998 Turbolinux Mandrake ROCK Fermi Demolinux Project Ballantin Project tomsrtbt SuSE Coyote e-smith KRUD eIT easyLinux Eridani Yellow Dog 1999 1999 Vine FREESCO Red Flag Corel Armed Immunix Kondara Libranet Peanut Scratch Linux From Enoch BluePoint Storm Astaro Linpus ELX (Arma) Omoikane Trustix 2000 2000 Finnix Tiny BU VectorLinux Miracle Gibraltar Happy SmoothWall GPL Knoppix Pingo Caixa Mágica Ututo Best LEAF Rocks ClarkConnect SLES CRUX Beehive 2001 2001 Midori ASP ALT Leka Rescue Floppy Leka Rescue Progeny SuperRescue Openwall Independence dyne:bolic OpenWRT K12 Skolelinux DeMuDi SME Server SME HP Secure Ark Lindows Xandros NetStation Virtual Sorcerer Aurora EnGarde Redmond gnuLiNex IPCop Haydar Tinfoil Hat Lunar Arch 2002 2002 Red Hat Enterprise Gentoo Source Mage Source SOT EvilEntity Slax Bayanihan SCO Lycoris Topologilinux LinuxConsole BLAG DeLi Aurox United Linux Rxart GoboLinux LinuxInstall Yoper ZENIX Kurumin Gentoox Quantian 2003 2003 miniwoody Morphix Berry Jollix UHU MEPIS GeeXboX Puppy Linux Damn Small AnNyung AL-AMLUG KnoppMyth ATmission Thinstation Stux SAM PCLinuxOS ASLinux SUSE Devil Kwort SmoothWall Express Impi Fedora Core Fedora Danix Sun JDS NST CentOS blackPanther Feather White Box OpenSLS Shabdix Kanotix Bonzai Nitix Linspire Dizinha Bluewall STUX BioBrew DARKSTAR DNALinux Kalango Amber K-DEMar Bioknoppix Guadalinex Hiwix AUSTRUMI Ututo-e 2004 2004 Euronode QiLinux Natures Linux Joatha DeadCD LBA CERN Openfiler Aquamorph Live Clonezilla Scientific Minislack Linux Security Auditor MAX Asianux Navyn OS ZoneCD B2D Desktop Underground Octoz GoblinX Kaella Specifix HostGIS Hiweed Whoppix Momonga StartCom SimplyMEPIS grml Annvix Hikarunix FoX T2 VidaLinux Kate NimbleX Ubuntu Frugalware MOPSLinux NLD Asterisk@Home BeatriX Tao Arco-Debian Paldo MoLinux Slamd64 Parsix Resulinux Pentoo Tirwal BlankOn Voyage aLinux Foresight epiOS Arabian Poseidon 2005 2005 Archie Mandriva 64Studio Trisquel Kubuntu ParallelKnoppix KateOS NetSecL Symphony OS Symphony rPath Ututo XS MythDora VENENUX LliureX WHAX AsianLinux pQui Elive Wolvix IPFire Zenwalk VLOS Lihuen Tuquito Musix Hedinux SLAMPP Slackintosh RR4 BrazilFW Edubuntu OS2005 ThinClientOS Bintoo Kororaa nUbuntu NepaLinux Pardus Sauver Jarro Negro Jarro Dreamlinux Epidemic Vyatta 2006 2006 Ophcrack Librassoc Olive Freespire Alpine NeoDizinha RIP DSL-N Backtrack trixbox SLED Voltalinux Gnu-HALO Xubuntu Everest Zeroshell Bardinux Christian Edition Christian PUD PureOS Sabayon Ekaaty Mint Linkat Bluewhite64 How-Tux Absolute Oracle Enterprise TinyMe Papug Damn Vulnerable Linux gNewSense sidux openSUSE Ulteo Satanic Edition Wifislax Elastix Granular Oz DEFT BOSS Muslim Edition Muslim Uberyl TEENpup Patinho Faminto Patinho 2007 2007 Madbox LPS SliTaz Webconverger Fedora openmamba Mythbuntu Calculate Moblin ComFusion SMS antiX Ubuntulite Geubuntu Greenie Vixta Syllable Server Syllable Kiwi Fluxbuntu gOS Mamona NuTyX Toorox Eeebuntu PLoP CrunchBang Zebuntu SystemRescueCD PelicanHPC Ubuntu Rescue Remix Ubuntu Rescue 2008 2008 GALPon MiniNo GALPon Ultimate Edition Exherbo Simplis xPUD OpenGEU Estrella Roja Estrella Ubuntu eee Macpup Inquisitor MoonOS Maryan Ojuba Moblin 2 Moblin Funtoo Zorin OS Zorin eBox U-lite XBMC Live XBMC Newtoos Arc-Live VortexBox Chaox Wifiway Metamorphose ZevenOS Chakra PLATYPUX Xange BlueOnyx Tiny Core LinHES Kongoni A/V Nova Qimo 2009 2009 Dragora Linvo Lin2Go Lubuntu Easy Peasy Qomo Sabily kademar FireFly webOS Canaima AV Tails wattOS KahelOS OS Chromium CTKarchLive Arch Linux Arch Linux ARM Salix ClearOS Leeenux Maemo Hanthana Deepin Semplice Unity Ylmf ArchBang Element Igelle 0 2010 2010 Netrunner QubesOS AgiliaLinux GnackTrack OS Peppermint Dax OS Quirky MeeGo OS Aurora Superb Mini Server Mini Superb Tiny SliTaz DoudouLinux Synergy Imagineos Jolicloud FrameOS ChameleonOS AriOS Legacy OS Zentyal aptosid Linux Mint Debian Linux Mint Dream Studio Dream Mageia Pinguy OS Pinguy 4M Fusion Parabola Fuduntu ConnochaetOS Swift Bodhi Progress Parsidora GNUGuitarINUX SalineOS Conducit Liquid Lemur Liquid 2011 2011 CTKArch Garuda AnikOS SlaXBMC Meego Harmattan Meego Porteus Manjaro Pear OS Pear Viperr 2012 2012

http://futurist.se/gldt H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 11 / 38 Our belief #2

Debian provides the best proven, scalable, and sustainable approach toward free and open-source software platform for scientific research.

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 12 / 38 Extensible distribution and archival infrastructure

Debian’s recipe

Open standards Vibrant community: democracy and do-o-cracy Integration starting with the core OS Binary distribution based on source packages

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 13 / 38 Extensible distribution and archival infrastructure

Debian’s recipe: Binary distribution

Open standards Vibrant community: democracy and do-o-cracy Integration starting with the core OS Binary distribution based on source packages

http://xkcd.com/303 H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 13 / 38 Debian’s recipe

Open standards Vibrant community: democracy and do-o-cracy Integration starting with the core OS Binary distribution based on source packages Extensible distribution and archival infrastructure

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 13 / 38 Pros

you know that everything is free and open-source eases integration helps to assure longevity http://popcon.debian.org is there to replace “registration” pages

Legal assurance Was: Register/Request an account from the B

3 Debian archive areas

main – software under DFSG compliant licenses 1 contrib – DFSG-wannabees (depend on non-free) or helpers (e.g., matlab-support) non-free – (re-)distributable but restricted

1See http://www.debian.org/social_contract H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 14 / 38 Legal assurance Was: Register/Request an account from the B

3 Debian archive areas

main – software under DFSG compliant licenses 1 contrib – DFSG-wannabees (depend on non-free) or helpers (e.g., matlab-support) non-free – (re-)distributable but restricted

Pros

you know that everything is free and open-source eases integration helps to assure longevity http://popcon.debian.org is there to replace “registration” pages

1See Debian Social Contract http://www.debian.org/social_contract H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 14 / 38 Legal assurance Was: Register/Request an account from the B

3 Debian archive areas

main – software under DFSG compliant licenses 1 contrib – DFSG-wannabees (depend on non-free) or helpers (e.g., matlab-support) non-free – (re-)distributable but restricted

Pros

you know that everything is free and open-source eases integration helps to assure longevity http://popcon.debian.org is there to replace “registration” pages

1See Debian Social Contract http://www.debian.org/social_contract H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 14 / 38 Legal assurance Was: Register/Request an account from the B

Recommendations

use standard OSI (http://opensource.org) and DFSG compliant licenses do not restrict the domain of application without need do not insert code/data with questionable license terms maintain a top-level list of licenses used in you project beware-of and/or state your trademark policies

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 14 / 38 Building

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 15 / 38 Building : developers

Image by Lewis Hine, 1930

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 15 / 38 Building : well-engineered software

Image by Lewis Hine, 1930 Image by Ad Meskens H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 15 / 38 Building : “state-of-art”

Image (C) 2006 by Nora Vass and Gergely Vass, GDFL H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 15 / 38 Pros

anyone can build any PACKAGE: -get source -b PACKAGE simplifies contributions allow for archive-wide QA rebuilds library migrations new compilers new ports

Building Was: If you decide to go with building from source code, good luck!

Debian packaging strictly follows Debian Policy1 3rd-party modules become 1st-class citizens Figure out dependencies once – specify in debian/control Figure out building/installation once – specify in debian/rules

1http://www.debian.org/doc/debian-policy/ H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 16 / 38 Building Was: If you decide to go with building from source code, good luck!

Debian packaging strictly follows Debian Policy1 3rd-party modules become 1st-class citizens Figure out dependencies once – specify in debian/control Figure out building/installation once – specify in debian/rules

Pros

anyone can build any PACKAGE: apt-get source -b PACKAGE simplifies contributions allow for archive-wide QA rebuilds library migrations new compilers new ports

1http://www.debian.org/doc/debian-policy/ H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 16 / 38 Above recommendations will help to deliver your software to any integration/distribution platform, not just Debian.

Building Was: If you decide to go with building from source code, good luck!

Recommendations keep source distribution modular: code-vs-data keep 3rd party as 3rd party – do not clone have a deterministic version provide exhaustive specification of (build-)dependencies assure API/ABI compatibility if you deliver libraries: http://upstream-tracker.org/ http://github.com/lvc/abi-compliance-checker

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 16 / 38 Building Was: If you decide to go with building from source code, good luck!

Recommendations keep source distribution modular: code-vs-data keep 3rd party as 3rd party – do not clone have a deterministic version provide exhaustive specification of (build-)dependencies assure API/ABI compatibility if you deliver libraries: http://upstream-tracker.org/ http://github.com/lvc/abi-compliance-checker

Above recommendations will help to deliver your software to any integration/distribution platform, not just Debian.

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 16 / 38 Testing

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 17 / 38 Bruno “btco” Oliveira https://plus.google.com/+BrunoOliveira/posts/MGxauXypb1Y Pros

obtain a CI farm with > 13 architectures/ports have I mentioned archive wide QA rebuilds? Go ahead of the OS not behind preclude problems on users’ deployments

Testing Was: Test software

debian/rules: can exercise tests while building the binary packages

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 18 / 38 Testing Was: Test software

debian/rules: can exercise tests while building the binary packages

Pros

obtain a CI farm with > 13 architectures/ports have I mentioned archive wide QA rebuilds? Go ahead of the OS not behind preclude problems on users’ deployments

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 18 / 38 Testing Was: Test software

debian/rules: can exercise tests while building the binary packages

Pros

obtain a CI farm with > 13 architectures/ports have I mentioned archive wide QA rebuilds? Go ahead of the OS not behind preclude problems on users’ deployments

autopkgtest: automatic as-installed package testing

Pros

exercise testing on installed machines could be “heavy” tests

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 18 / 38 more problems we catch before delivering to users – less of WOMBAT

Testing Was: Test software

Recommendations

share your unit-, regression-, integration- tests work on your tests coverage

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 19 / 38 Testing Was: Test software

Recommendations

share your unit-, regression-, integration- tests work on your tests coverage more problems we catch before delivering to users – less of WOMBAT

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 19 / 38 Install workload management system apt-get install condor

Install the entire suite of packages for meteorology apt-get install science-meteorology

Keep the whole system up-to-date apt-get update && apt-get upgrade

Installation, upgrades Was: Remove old versions; Install software

Install simple editor apt-get install

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 20 / 38 Install the entire suite of packages for meteorology apt-get install science-meteorology

Keep the whole system up-to-date apt-get update && apt-get upgrade

Installation, upgrades Was: Remove old versions; Install software

Install simple editor apt-get install gedit

Install workload management system apt-get install condor

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 20 / 38 Keep the whole system up-to-date apt-get update && apt-get upgrade

Installation, upgrades Was: Remove old versions; Install software

Install simple editor apt-get install gedit

Install workload management system apt-get install condor

Install the entire suite of packages for meteorology apt-get install science-meteorology

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 20 / 38 Installation, upgrades Was: Remove old versions; Install software

Install simple editor apt-get install gedit

Install workload management system apt-get install condor

Install the entire suite of packages for meteorology apt-get install science-meteorology

Keep the whole system up-to-date apt-get update && apt-get upgrade

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 20 / 38 Debian GIS: http://wiki.debian.org/DebianGis http://blends.alioth.debian.org/gis/tasks/ Francesco P. Lovergine”

Climate/atmospheric research FOSS in Debian

Debian Science: http://wiki.debian.org/DebianScience http://blends.alioth.debian.org/science/tasks/meteorology Task pages: astronomy, astronomy-dev, bci, biology, chemistry, dataacquisition, dataacquisition-dev, distributedcomputing, electronics, electrophysiology, engineering, engineering-dev, geography, highenergy-physics, highenergy-physics-dev, imageanalysis, linguistics, machine-learning, mathematics, mathematics-dev, meteorology, meteorology-dev, nanoscale-physics, nanoscale-physics-dev, neuroscience-cognitive, neuroscience-datasets, neuroscience-modeling, numericalcomputation, physics, physics-dev, psychophysics, robotics, simulations, statistics, typesetting, viewing

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 21 / 38 Debian GIS: http://wiki.debian.org/DebianGis http://blends.alioth.debian.org/gis/tasks/ Francesco P. Lovergine”

Climate/atmospheric research FOSS in Debian

Debian Science: http://wiki.debian.org/DebianScience http://blends.alioth.debian.org/science/tasks/meteorology

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 21 / 38 Debian GIS: http://wiki.debian.org/DebianGis http://blends.alioth.debian.org/gis/tasks/ Francesco P. Lovergine”

Climate/atmospheric research FOSS in Debian

Debian Science: http://wiki.debian.org/DebianScience http://blends.alioth.debian.org/science/tasks/meteorology Alastair McKinstry Ireland’s High-Performance Computing Centre http://www.ichec.ie

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 21 / 38 Debian GIS: http://wiki.debian.org/DebianGis http://blends.alioth.debian.org/gis/tasks/ Francesco P. Lovergine”

Climate/atmospheric research FOSS in Debian

Debian Science: http://wiki.debian.org/DebianScience http://blends.alioth.debian.org/science/tasks/meteorology Alastair McKinstry Ireland’s High-Performance Computing Centre http://www.ichec.ie

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 21 / 38 Debian GIS: http://wiki.debian.org/DebianGis http://blends.alioth.debian.org/gis/tasks/ Francesco P. Lovergine”

Climate/atmospheric research FOSS in Debian

Debian Science: http://wiki.debian.org/DebianScience http://blends.alioth.debian.org/science/tasks/meteorology Alastair McKinstry Ireland’s High-Performance Computing Centre http://www.ichec.ie

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 21 / 38 Debian GIS: http://wiki.debian.org/DebianGis http://blends.alioth.debian.org/gis/tasks/ Francesco P. Lovergine”

Climate/atmospheric research FOSS in Debian

Debian Science: http://wiki.debian.org/DebianScience http://blends.alioth.debian.org/science/tasks/meteorology Alastair McKinstry Ireland’s High-Performance Computing Centre http://www.ichec.ie

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 21 / 38 Debian GIS: http://wiki.debian.org/DebianGis http://blends.alioth.debian.org/gis/tasks/ Francesco P. Lovergine”

Climate/atmospheric research FOSS in Debian

Debian Science: http://wiki.debian.org/DebianScience http://blends.alioth.debian.org/science/tasks/meteorology Alastair McKinstry Ireland’s High-Performance Computing Centre http://www.ichec.ie

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 21 / 38 Climate/atmospheric research FOSS in Debian

Debian Science: http://wiki.debian.org/DebianScience http://blends.alioth.debian.org/science/tasks/meteorology Alastair McKinstry Ireland’s High-Performance Computing Centre http://www.ichec.ie Debian GIS: http://wiki.debian.org/DebianGis http://blends.alioth.debian.org/gis/tasks/ Francesco P. Lovergine”

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 21 / 38 Climate/atmospheric research FOSS in Debian

Debian Science: http://wiki.debian.org/DebianScience http://blends.alioth.debian.org/science/tasks/meteorology Alastair McKinstry Ireland’s High-Performance Computing Centre http://www.ichec.ie Debian GIS: http://wiki.debian.org/DebianGis http://blends.alioth.debian.org/gis/tasks/ Francesco P. Lovergine”

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 21 / 38 Additional benefits (in examples)

Longevity Reproducibility

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 22 / 38 Longevity

XGKS: Graphical Kernel System for the http://xgks.sourceforge.net developed within unidata.ucar.edu now considered legacy: 2.6 in 2000, 2.6.2 release in 2005-02-03 still used by Ferret: http://www.ferret.noaa.gov UV-CDAT: http://uvcdat.llnl.gov from LLNL, DOE and is still maintained in Debian

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 23 / 38 Longevity

Recommendations

do not under-estimate the number of your users prepare your software for the after-life: clean legal terms commented code reliable build infrastructure

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 24 / 38 Example: state of a development box in 2003: debootstrap --arch= --include=build-essential,emacs20,netcdf3 \ potato /tmp/potato http://archive.debian.org/debian

schroot – enter into the environment upon your convenience > cat /etc/schroot/chroot.d/lenny-20080407 [potato] description=Antique Debian from 2003 directory=/tmp/potato users=YOURLOGIN > schroot -c potato

http://snapshots.debian.org – snapshots of the archive debootstrap --arch=i386 --include build-essential,libnetcdf-dev \ testing /tmp/testing \ http://snapshot.debian.org/archive/debian/20080407T000000Z/

Reproducibility

http://archive.debian.org – archive of ever existed releases

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 25 / 38 schroot – enter into the environment upon your convenience > cat /etc/schroot/chroot.d/lenny-20080407 [potato] description=Antique Debian from 2003 directory=/tmp/potato users=YOURLOGIN > schroot -c potato

http://snapshots.debian.org – snapshots of the archive debootstrap --arch=i386 --include build-essential,libnetcdf-dev \ testing /tmp/testing \ http://snapshot.debian.org/archive/debian/20080407T000000Z/

Reproducibility

http://archive.debian.org – archive of ever existed releases Example: state of a development box in 2003: debootstrap --arch=i386 --include=build-essential,emacs20,netcdf3 \ potato /tmp/potato http://archive.debian.org/debian

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 25 / 38 http://snapshots.debian.org – snapshots of the archive debootstrap --arch=i386 --include build-essential,libnetcdf-dev \ testing /tmp/testing \ http://snapshot.debian.org/archive/debian/20080407T000000Z/

Reproducibility

http://archive.debian.org – archive of ever existed releases Example: state of a development box in 2003: debootstrap --arch=i386 --include=build-essential,emacs20,netcdf3 \ potato /tmp/potato http://archive.debian.org/debian

schroot – enter into the environment upon your convenience > cat /etc/schroot/chroot.d/lenny-20080407 [potato] description=Antique Debian from 2003 directory=/tmp/potato users=YOURLOGIN > schroot -c potato

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 25 / 38 Reproducibility

http://archive.debian.org – archive of ever existed releases Example: state of a development box in 2003: debootstrap --arch=i386 --include=build-essential,emacs20,netcdf3 \ potato /tmp/potato http://archive.debian.org/debian

schroot – enter into the environment upon your convenience > cat /etc/schroot/chroot.d/lenny-20080407 [potato] description=Antique Debian from 2003 directory=/tmp/potato users=YOURLOGIN > schroot -c potato

http://snapshots.debian.org – snapshots of the archive debootstrap --arch=i386 --include build-essential,libnetcdf-dev \ testing /tmp/testing \ http://snapshot.debian.org/archive/debian/20080407T000000Z/

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 25 / 38 Take home

If you care about open, accessible and reproducible science: Get all software you care about into Debian!

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 26 / 38 Thanks

http://www.debian.org http://neuro.debian.net

Yaroslav O. Halchenko [email protected] Michael Hanke [email protected]

about the slides: available at http://neuro.debian.net/#publications copyright c 2013 Yaroslav O. Halchenko & Michael Hanke, front/end slide style inspired by CC BY-SA 3.0 — Creative Commons Attribution-ShareAlike 3.0

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 27 / 38 apt-get install -t audience [-a microphone] questions

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 28 / 38 2 1/2 rolling releases: testing, unstable (sid), experimental > 130 “derivative” distributions (source: .com) ≈ 900 active DDs+ ≈200 DMs + thousands other contributors

12 stable releases

Debian, 19 years old

≈ 18’704 (main), 222 (contrib), 506 (non-free) source packages ≈ 38’537 (main), 141 (contrib), 289 (non-free) binary packages largest n. of ports among mainstream distros (11 official, 11 unofficial) 2 non-Linux ports: GNU/kFreeBSD + (unofficial Hurd)

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 29 / 38 (source: distrowatch.com) ≈ 900 active DDs+ ≈200 DMs + thousands other contributors

2 1/2 rolling releases: testing, unstable (sid), experimental > 130 “derivative” distributions

Debian, 19 years old

≈ 18’704 (main), 222 (contrib), 506 (non-free) source packages ≈ 38’537 (main), 141 (contrib), 289 (non-free) binary packages largest n. of ports among mainstream distros (11 official, 11 unofficial) 2 non-Linux ports: GNU/kFreeBSD + (unofficial Hurd) 12 stable releases The latest stable release: 6.0 Squeeze, February 6th 2011 Upcoming stable release: 7.0 Wheezy, TBA 2013 Released ≈ 2-3 years Security support for 3 years Upgradable

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 29 / 38 > 130 “derivative” distributions (source: distrowatch.com) ≈ 900 active DDs+ ≈200 DMs + thousands other contributors

Debian, 19 years old

≈ 18’704 (main), 222 (contrib), 506 (non-free) source packages ≈ 38’537 (main), 141 (contrib), 289 (non-free) binary packages largest n. of ports among mainstream distros (11 official, 11 unofficial) 2 non-Linux ports: GNU/kFreeBSD + (unofficial Hurd) 12 stable releases 2 1/2 rolling releases: testing, unstable (sid), experimental

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 29 / 38 ≈ 900 active DDs+ ≈200 DMs + thousands other contributors

Debian, 19 years old: > 100 derivatives

≈ 18’704 (main), 222 (contrib), 506 (non-free) source packages ≈ 38’537 (main), 141 (contrib), 289 (non-free) binary packages largest n. of ports among mainstream distros (11 official, 11 unofficial) 2 non-Linux ports: GNU/kFreeBSD + (unofficial Hurd) 12 stable releases 2 1/2 rolling releases: testing, unstable (sid), experimental > 130 “derivative” distributions (source: distrowatch.com)

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 29 / 38 Debian, 19 years old

≈ 18’704 (main), 222 (contrib), 506 (non-free) source packages ≈ 38’537 (main), 141 (contrib), 289 (non-free) binary packages largest n. of ports among mainstream distros (11 official, 11 unofficial) 2 non-Linux ports: GNU/kFreeBSD + (unofficial Hurd) 12 stable releases 2 1/2 rolling releases: testing, unstable (sid), experimental > 130 “derivative” distributions (source: distrowatch.com) ≈ 900 active DDs+ ≈200 DMs + thousands other contributors

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 29 / 38 Debian: the Universal OS

≈ 18’704 (main), 222 (contrib), 506 (non-free) source packages ≈ 38’537 (main), 141 (contrib), 289 (non-free) binary packages largest n. of ports among mainstream distros (11 official, 11 unofficial) 2 non-Linux ports: GNU/kFreeBSD + (unofficial Hurd) 12 stable releases 2 1/2 rolling releases: testing, unstable (sid), experimental > 130 “derivative” distributions (source: distrowatch.com) ≈ 900 active DDs+ ≈200 DMs + thousands other contributors

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 29 / 38 H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 30 / 38 NeuroDebian VM in VirtualBox

http://neuro.debian.net/vm.html H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 31 / 38 Ways to contribute

http://wiki.debian.org/ProjectNews/HowToContribute http://raphaelhertzog.com/2011/06/30 reportbug (+ patches) Internationalization (i18n): http://www.debian.org/doc/manuals/intro-i18n packaging Luca’s tutorial apt-get install packaging-tutorial http://www.lucas-nussbaum.net/blog/?p=640 Bootstrap packaging of Python modules: py2dsc (python-stdeb package) Good night reading: Debian Policy Seek mentor/sponsor-ship: http://mentor.debian.org Become “Debian Maintainer”: http://wiki.debian.org/DebianMaintainer Become “Debian Developer”: http://wiki.debian.org/DebianDeveloper

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 32 / 38 And it seems to work. . .

http://www.frontiersin.org/Neuroinformatics/10.3389/fninf.2011.00008/full H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 33 / 38 And it seems to work. . .

Debian has found the sweet balance between agile behavior and formal processes that make it possible to keep up with the rapid innovation of the upstream packages, while still maintaining struc- ture and organization.

–Luis Ibanez, Kitware.com (makers of VTK, ITK, . . . )

http://www.frontiersin.org/Neuroinformatics/10.3389/fninf.2011.00008/full H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 33 / 38 And it seems to work. . .

Debian GNU/Linux 6.0 is the first GNU/Linux distribution release ever to offer comprehensive support for magnetic resonance imag- ing (MRI) based neuroimaging research.

–Release notes Debian 6.0 (squeeze)

http://www.frontiersin.org/Neuroinformatics/10.3389/fninf.2011.00008/full H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 33 / 38 And it seems to work. . .

Proportion of participants Managed OS A) B) LWM Operating systems GNU/Linux (L) Personal L W M Debian based Red Hat based Windows (W) Managed Personal OS Personal Mac OS X (M) LWM Other OS Virtual Host Usage time Always Virtual < 50%

Guest > 50% LWM Virtual host OS Virtual 0 combinations # Reported 105 Never LWM 0 20 40 60 80 100% Virtual guest OS

http://www.frontiersin.org/Neuroinformatics/10.3389/fninf.2011.00008/full H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 33 / 38 What is ?

Windows Build-time tests Compatibility Mac OS X Maintainer tests QA/Testing other Interoperability testing Virtual machine Reproducable research Portability Teaching Publications Mentoring Mailing lists Proxy bugreports IRC (#neurodebian on OFTC) Online Portability patches Maintenance identi.ca/twitter (neurodebian) Packaging Library/compiler transitions Communication NeuroDebian Insider Blog Legal checks [email protected] Modularisation Conference booth Personal Talks Stalking i386 Debian amd64 Debian Science Software Blends i386 Debian Med Ubuntu amd64 BTS Data QA Usage statistics i386 Repository Debian amd64 Snapshoting armel DE Archive mips(el) GR kfreebsd-i386/amd64 US-CA Mirrors ... US-NH US-TN Derivatives

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 34 / 38 But, but my true love is a fruit and I’m married to monster!

NeuroDebian virtual machine (32/64bit, multi-core) Most convenient solution for Mac OS X, Windows Base image with setup wizzard, fully functional within minutes Great for teaching, workshops, development, analysis

http://neuro.debian.net/vm.html H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 35 / 38 Mutual awareness Explicitly documented dependencies Synchronized transitions Less maintenance work through modularity 3rd-party software in dedicated packages maintained by someone else Continuous integration testing 13 hardware architectures Three kernels Continuous automated testing for Build success Clean installation/de-installation, Availability of dependencies Policy compliance Package conflicts

How does software benefit from Debian?

Extended reach one stable release, two rolling “release” flavors ≈130 derivative distributions (distrowatch.org)

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 36 / 38 Mutual awareness Explicitly documented dependencies Synchronized transitions Less maintenance work through modularity 3rd-party software in dedicated packages maintained by someone else Continuous integration testing 13 hardware architectures Three kernels Continuous automated testing for Build success Clean installation/de-installation, Availability of dependencies Policy compliance Package conflicts

How does software benefit from Debian?

ExtendedDebian "unstable" reach Release:one stablenever release, two rolling “release” flavors Updates:≈130 derivativemultiple distributionstimes per day (distrowatch.org) e.g. Ubuntu Security support: none (implicit)

Debian "testing" Release: never/continuously Updates: daily e.g. Linux Mint Security support: yes

Debian "stable" Debian "stable" releasedays 10 Release: when ready Release: when ready e.g. MEPIS Updates:Updates: everyevery two two months months (only (only critical critical fixes) fixes) SecuritySecurity support: support:oneone year year after after next next stable stable (≈ (≈ 3 3 years) years)

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 36 / 38 How does software benefit from Debian?

Extended reach one stable release, two rolling “release” flavors ≈130 derivative distributions (distrowatch.org) Mutual awareness Explicitly documented dependencies Synchronized transitions Less maintenance work through modularity 3rd-party software in dedicated packages maintained by someone else Continuous integration testing 13 hardware architectures Three kernels Continuous automated testing for Build success Clean installation/de-installation, Availability of dependencies Policy compliance Package conflicts

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 36 / 38 But I only care about Ubuntu!

No, you don’t!

Most software we care about comes (almost) 1:1 from Debian (SciPy, VTK, ITK, . . . ) No LTS for neuroscience (NumPy only since 10.04)

Go Debian!

Developers: Get it right in Debian, have it work in Debian/Ubuntu/Mint/aptosid/Mepis/. . . (at no additional cost) Users: Stable release with 3-4 years support for all software Scientists: Want your research tool to be found and used? Include it in the largest software archive in the world.

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 37 / 38 NeuroDebian world-map

H2 (Debian/Dartmouth+Magdeburg) Open is not enough SEA 2013 38 / 38