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

More than just a distro

  • Distro
  • Project
  • Community

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?

    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

    Research playground

    ARM ports

    armOABIv32000: Potato (discontinued 2011)
    armebOABIv32006: unofficial
    armelEABIv4t2009: Lenny
    armhfEABIv72012: Wheezy
    arm64v8v82014: Jessie
    RaspbianEABI, 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
    What did I forget?