Open is not enough: benefits from Debian 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 dselect 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/Linux. Front. Neuroinform. 5:8. doi: 10.3389/fninf.2011.00008 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 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 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
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: apt-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 gedit
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
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
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
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
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
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
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
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 X Window System 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=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/
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 Stefano Zacchiroli 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: distrowatch.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