What did debian ever do for us?
Wookey, wookey@wookware.org
History
- Started in 1993
- Package manager!
- Known for: stability, long hw support, upgrades that work, consistent
policy, lots of software (20,000 source, 60,000 binary)
- Community/Independent distro - no one company
- Trusted not to make profit-driven choices
What makes the distro special
- Whole ecosystem
- Policy/consistency
- Derivatives encouraged
- Ports - whatever (enough) people will maintain
(release(9)/non-release(13)).
- Free software. Free tools, free infrastructure.
- Some non-free packages (firmware, drivers, some software)
- No 2nd-class packages.
Debian likes to do things properly
- Multiarch
- Redproducible builds
- Bootstrapping -> Build profiles
Project
- Social Contract, DSFG definition
- Constitution, decision-making
- ~1000 Developers all over the world
Organisation
do-ocracy 'whoever works on stuff gets to decide'
Strong package ownership
Technical committee
Voting system
Community
- Open development
- We don't hide problems
- Users can easily get involved
- Friends, marriages
- Welcoming culture (much improved!)
What distros are there?
- Over 100 derivatives
- Notable:
Ubuntu, Tails, Rasbian, Grml, Knoppix, Kali, Purism PureO
- Transitive derivatives
https://wiki.debian.org/Derivatives/Census
- Blends
Astronomy, Medical, Junior, Edu, Freedombox
https://www.debian.org/blends/
Ecosystem
- Commerce in around debian
- Ubuntu, purism, credativ, embedded, assorted consultants
- Reliable base, work only on customisations
- 21% of websites (58% Debian+Ubuntu) (w3tech 2019)
- dpkg-vendor allows upstreaming of customisations
ARM ports
arm | OABI | v3 | 2000: Potato (discontinued 2011) |
armeb | OABI | v3 | 2006: unofficial |
armel | EABI | v4t | 2009: Lenny |
armhf | EABI | v7 | 2012: Wheezy |
arm64 | v8 | v8 | 2014: Jessie |
Raspbian | EABI, | v6 | 2012: Wheezy rebuild |
how do I build a package?
- Rather too many ways :-)
- dpkg-buildpackage, debuild, git-buildpackage
- sbuild, pbuilder
- local, chroots, containers
apt source <package>
apt build-dep <package>
cd <package-version>
dpkg-buildpackage
how do I build an official package?
- Official buildds
- Clean builds - Source-only uploads
- Build everything: reautoconf, docs
- Machine-learning is problematic
Crossbuilding for free
- Cross-toolchains in archive
- Support added in last few years
- 67% of archive crosses now.
apt install crossbuild-essential-arm64
dpkg --add-architecture arm64
apt source <package>
apt build-dep -a arm64 <package>
cd <package-version>
dpkg-buildpackage -a arm64
Terminology
- Suites = unstable, testing, stable
- Codenames = sid, etch, wheezy, buster
- Releases = debian8, debian 8.1 or 8r1
- Ports = Architectures
Packaging formats
- 1.0: release tarball+big patch (tarball)
- 3.0 quilt: release tarball + quilt patch stack (tarball)
- Increasingly anachronistic (no release, git)
- New workflows
- Debcheckout vs apt source
- dgit: archive repo <-> git repo interface
- Discussion on new standard practice
- Salsa.debian.org
Infrastructure
- Buildds
- Porter boxes
- Reproducible builds
- Autopackage test
- Installability tests - piuparts
- Salsa-ci (ci.debian.net)
- sources.debian.org - searchable
- snapshot.debian.org
- Lintian
How do I debug
- debug versions of all libs built, put in separate repository
- used to be foo-dbg (explicit packaging)
- now foo-dbysym (implicit packaging)
- enable debian-debug (or debian-snapshot)
http://deb.debian.org/debian-debug
deb http://deb.debian.org/debian-debug/ stable-debug main
apt update
apt install <package>-dbgsym
apt source <package>
What do you wish you knew?
- tracker.debian.org
- backports.debian.org
- Debian Developer's corner: https://www.debian.org/devel
- debian mentors (IRC and mailing list)
- debian/rules
- dpkg-buildpackge -nc
- sid==unstable
Conferences
debconf
- debconf0 2000 Bordeaux
- ...
- debconf19 Curitiba, Brazil
- debconf20 Haifa, Israel
- Remote access taken quite seriously. Own camera gear.
- debconf video site
- IRC back in per room for questions.
minidebconf
several/year
- 2019: France, Germany, Switzerland, Singapore
- 2017: Kosovo, Colombia, Brazil, France, UK
What work are we doing currently?
- buildd admin
- File and fix bugs
- Explain packaging
- installer changes
- NN packaging
- Coresight support
- Kernel Backports
What work will we be doing next?
- 128bit pointers bootstrap
- 64-bit time_t
Any pain-points, things to fix that could make work easier?
- Get arm to put out native-built software (everything has to be
un-crossed).
- Free drivers for mali