debian - einval.comsteve/talks/lincoln-2020-debian/lincoln-20… · debian – the community (2)...

38
Debian Steve McIntyre <[email protected]> January 2020 University of Lincoln

Upload: others

Post on 08-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

Debian

Steve McIntyre <[email protected]>January 2020

University of Lincoln

Page 2: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

2

Agenda● Who am I?● What is Debian?● What/how/why?● Inside the sausage factory

– The project– Working on stuff– Collaboration

● Getting involved

Page 3: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

3

Who am I?● Studied Engineering in Cambridge

(1993-1997)● Professional software engineer, employed

by Arm in Cambridge● Working on Open Source and Free

Software since 1994● Debian Developer since 1996, elected

Project Leader 2008-2010● Contributions to many other projects

– Linux, glibc, toolchains, GRUB, audio,graphics, CD/DVD, test automation, networking, ...

Page 4: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

4

What is Debian?● 2 aspects, interlinked:

– The Community– The Operating System

Page 5: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

5

Debian – the Community● One of the longest-lived Free Software

projects● Founded 1993 by Ian Murdock● Thousands of contributors spread all over the

world– ~1000 “Debian Developers”– Many more maintainers, translators, etc.– Lots of “non-uploading” developers

Page 6: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

6

Debian – the Community (2)● Open development

– We don't hide problems● Large amounts of communication

– Mailing lists, web sites and IRC channels● Large number of active users

– Users help each other, contribute packages, become developers

Page 7: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

7

Debian – the OS● Completely Free Software

– Debian Free Software Guidelines● Binary distribution

– Source provided too, of course!● Mainline support for 10 different platforms

– amd64, arm64, armel, armhf, i386,– mips, mips64el, mipsel, ppc64el, s390x

● “Ports” for many others:– alpha, hppa, hurd-i386, ia64, kfreebsd, m68k,

powerpc, ppc64, riscv64, sh4, sparc64, x32

Page 8: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

8

Debian – the OS (2)● Largest GNU/Linux distribution

– 28,500 source packages– 57,000 binary packages

● Used as a base for many other distributions– Ubuntu, Mint, Devuan, Kali, Pexos, …– Free Software is designed for sharing

Page 9: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

9

Where does Steve fit in?● Joined the project in 1996 while at college● Package maintainer

– Audio, graphics, CD/DVD, cvs, nas, strace(to name just a few!)

● Multiple teams– Images, installer, EFI, Arm porter, Cloud,

Community Team, conferences● 11th Project leader

– “management” - ugh!

Page 10: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

10

What do we do?● Create the best operating system in the

world!● Develop bespoke software

– Packaging system– Debian-specific infrastructure

● Package software written by others– Linux kernel, applications, games, etc.

Page 11: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

11

What do we do? (2)● Make it all work together

– Integrate it into a single system– Test, fix bugs

● Ship it!– Multiple releases– CD/DVD/USB images– Cloud/Docker images

Page 12: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

12

How do we do it?● We work together:

– With other Debian developers– With other Free Software developers– With our users

● Everything we do is Free

Page 13: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

13

Free?● No charge to download and install● Free to share with others

– No licensing fees– No limitations

● Encourage people to share the software– Code– Ideas

● Debian Free Software Guidelines (DFSG)

Page 14: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

14

Debian FreeSoftware Guidelines

● Guidelines only – not hard rules● Used to help decide what we will distribute in

the Debian system● Software split into three sections

– main– non-free– contrib

Page 15: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

15

DFSG (2)

1. Free Redistribution

2. Source Code

3. Derived Works

4. Integrity of The Author's Source Code

5. No Discrimination Against Persons or Groups

Page 16: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

16

DFSG (3)

6. No Discrimination against Fields of Endeavour

7. Distribution of License

8. License Must Not Be Specific To Debian

9. License Must Not Contaminate Other Software

10.Example Licenses

Page 17: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

17

Social Contract● Debian will remain 100% free● We will give back to the free software

community● We will not hide problems● Our priorities are our users and free software● Works that do not meet our free software

standards

Page 18: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

18

Why do we do it?● MANY reasons...

– We can– We care about it– Recognition– To provide for our users– It's fun!– ...

Page 19: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

19

Inside the sausage factory● One of the world's largest software

development organisations● Geographically and socially diverse● Volunteers● A few challenges...

Page 20: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

20

Project structure● Started with limited structure● Minimal “people management”● Volunteers● Package maintainers control their own work

– Scalability– Focus on the bits you care about

Page 21: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

21

Various teams● Teams grow as jobs get bigger● Examples:

– ftpmaster– Installer team– Images team– Release team

Page 22: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

22

Project decisions● Overall it’s a “do-ocracy”

– Developers make decisions as they work● Technical committee● DPL elected each year

– Delegates key project positions● General resolutions (GRs)

– Votes on important issues

Page 23: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

23

Process: from Chaos...● Thousands of contributors● Thousands of packages● Many thousands of bugs● Millions of users

Page 24: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

24

... to Stability● Debian policy● Quality checking of packages● Testing (in many ways)● Release

Page 25: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

25

Policy● Comprehensive list of requirements for

packages:– What goes in a package, and where– Interactions with other packages– Configuration files– How services are managed– Upgrades

Page 26: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

26

Quality● Continuous Integration

– Per-commit testing for lots of packages● Lintian

– Automated checks for packaging mistakes● Autopkgtest

– Testing of packages at runtime● Piuparts

– Testing package upgrades/removals● Reproducible builds

– Important for consistency, trust

Page 27: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

27

Testing – in Packages● Developers run their own tests before upload● Build-time test harnesses● More involved runtime testing● Other developers and users report bugs● Bugs (hopefully!) are fixed, new uploads

made

Page 28: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

28

Testing – as a Distribution● Uploads go to “unstable” distribution● After a period of time with no major bugs

reported, packages become valid to migrate into “testing”

● Archive maintenance scripts check for dependencies

● Testing should be (almost) ready to release as “stable” at any point

Page 29: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

29

Release● Release Team in charge

– Monitor the testing distribution– Co-ordinate uploads of key packages– Track / manage large package sets– Responsible for deciding release policy and dates

● When is it “good enough”?● Releases fully supported for cycle + 1 year● Extra support via LTS, ELTS

Page 30: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

30

Packaging● Work with upstream developers

– Many packaging teams include upstream● Make software packages work together well

in a consistent system● Coordination of bug reports and fixes● Support for users

Page 31: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

31

Working on a package● salsa.debian.org

– Gitlab instance, used for most packages– Git server, merge requests, code reviews

● Package workflow– Work on packages a piece at a time– When ready, tag, build, sign and upload– Lots of different ways to do this!

● Demo– Fingers crossed! :-)

Page 32: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

32

Working on a package (2)● Dashboards

– tracker.debian.org– buildd.debian.org– bugs.debian.org– udd.debian.org

Page 33: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

33

Trust● Developers sign packages before upload

– Checked against keyring● Checksums stored in metadata files

(Packages and Sources)● Release file signed

– Links together individual files, signed by the master archive key

● Trust matters– Security– Malware prevention

Page 34: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

34

Collaboration● Distributed discussions

– Mailing lists– Bug tracking system– IRC etc. for realtime discussion

● Real-life meetings becoming more common– DebConf– MiniDebConf– FOSDEM– Lots of developer sprints

Page 35: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

35

The future – coming soon● Stable/oldstable point releases

– 8th/9th Feb● Debian 11 (Bullseye) due next year

– Freeze by end of 2020– Release when it’s ready

● DebConf 20 in Haifa, Israel– August 2020– Major conference– Lots of work– Lots of FUN! :-)

Page 36: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

36

Further on...● Debian 12 (Bookworm)

– After another 24 months?● More...

– Quality– Developers– Packages– Collaboration

Page 37: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

37

Getting involved● Test, report (and ideally fix!) bugs● Translation● Documentation● Join a team● Help with packages● Sponsoring● New Member Process

Page 38: Debian - einval.comsteve/talks/Lincoln-2020-debian/Lincoln-20… · Debian – the Community (2) Open development – We don't hide problems Large amounts of communication – Mailing

38

Want to know more?● www.debian.org● mailing lists● IRC● ask me!

Slides © 2020 Steve McIntyre <[email protected]>Released under GPL v2 at https://www.einval.com/~steve/talks/Lincoln-2020-debian/