a newbie's newbie guide to debian - debian conference · open first a newbie's newbie...

Post on 16-Oct-2019

19 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Open First

A newbie's newbie guide to Debian Helen Koike <helen.koike@collabora.com>

Creative Commons Attribution-ShareAlike 4.0

Road Map

● Organization● The Foundation Documents● Releases● Community work flow● Bug Tracking System● How to contribute● Debian and Ubuntu

Aug 2017 2

Introduction

● First version – 1993 (Ian Murdock)● Debian = Debra + Ian● 10 official architectures

amd64, arm64, armel, armhf, i386,

mips, mipsel, powerpc, ppc64el, s390x

● >60k packages● ~1000 official developers● Free Software

Aug 2017 3

Organization

● Democratic– Project Leader elected once a year

● 100% Volunteers● Teams

– DSA - Debian System Administrators

– FTP Masters

– Release Team

– Debian CD

– Security

– QA – Quality Assurance

– … (https://wiki.debian.org/Teams)Aug 2017 4

100% Volunteers

● No profit organization (!= Ubuntu, Fedora)● Sponsors:

– Machines

– Trademark / Logo● Main sponsor:

– Software in the Public Interest, Inc. (SPI)

– Non profit organization

– Founded in 1997 to receive donations

Aug 2017 5

The Foundation DocumentsThe principles and guidelines for the community

Aug 2017 6

The Foundation Documents

● Debian Social Contract– Moral principles

● Debian Free Software Guidelines (DFSG)– What “free” means

● Debian Constitution– The community organization

Aug 2017 7

Debian Social Contract

1) Debian will remain 100% free2) We will give back to the free software

community3) We will not hide problems4) Our priorities are our users and free software5) Works that do not meet our free software

standards

https://www.debian.org/social_contract

Aug 2017 8

Debian Free Software Guidelines-DFSG

● Part of the Social Contract● What “free” means:

– Free redistribution

– Source code

– Derived works

– No discrimination against persons or groups / fields of endeavor

– License must not be specific to Debian

– License must not contaminate other software

● Ex: GPL, BSD, ArtisticAug 2017 9

Debian Constitution

● Organizational structure / decision-making:– The Developers

– The Project Leader

– The Technical Committee and its Chair

– Delegates appointed by the Project Leader for specific tasks

– The Project Secretary

● Define powers, compositions, appointments, procedureshttps://www.debian.org/devel/constitution

Aug 2017 10

Packages and releasesCommunity work flow

Aug 2017 11

But… What is a distro after all?

● Rootfs: files and folders● Linux kernel → /sbin/init● Distributions:

– /sbin/init → Initialize the user space

– Set of programs

– Paths well solved

Aug 2017 12

But… What is a distro after all? (cont)

● Probably:– Package format definition

● Software attached with meta-data● Software easier to distribute and install● Source / Binary (.deb)● Installation tool (dpkg)

– Infrastructure to host repositories for packages (servers / mirrors)

– Package manager (apt)Aug 2017 13

POV: everything is a package

● Debian:– set of packages

● Community work flow:– package management

● Installation CDs (images):– tool that installs and configure a core set

of packages for you

Aug 2017 14

Work flow: micro dynamic

● Per package management– Maintainer– Team

● Review patches / update / test / apply bug fixes / follow bug reports

Aug 2017 15

Work flow: macro dynamic

● Control the repositories– Which packages to which repository– Who have access– Releases– Servers– Licensing / DFSG

● Installation images (by hand?)– Debian CD / Vmboostrap / Live CD

Aug 2017 16

Releases

● Toy Story characters● 3 main releases (Debian versions):

– Unstable - Sid

– Testing – Buster – (Future Debian 10)

– Stable – Stretch – (Debian 9)

● Aka repository or pool of packages● Other repositories:

– Experimental, oldstable, backport …

Aug 2017 17

/etc/apt/sources.list

● Instalation CD; or● $ vim /etc/apt/sources.list

deb http://httpredir.debian.org/debian stretch main contrib non-free

deb-src http://httpredir.debian.org/debian stretch main contrib non-free

$ apt-get update && apt-get upgrade$ apt-get source hello$ apt-get install hello

Aug 2017 18

/etc/apt/sources.list (cont)

Aug 2017 19

deb http://httpredir.debian.org/debian stretch main contrib non-free

deb-src http://httpredir.debian.org/debian stretch main contrib non-free

Binary or source

Mirror address Release, e.g. stable, jessie, unstable, testing ...

Section

/etc/apt/sources.list (sections)

● Main– DFSG-compliant packages

– Dependencies are also DFSG-compliant (inside Main)

● Contrib– DFSG-compliant packages

– Some dependencies are not DFSG-compliant

● Non-free– Not DFSG-compliant, not consider part of Debian

– Infrastructure is provided

Aug 2017 20

Package cycleCommunity work flow

Aug 2017 21

Image from “The Debian Administrator's Handbook”, R. Hertzog e R. Mas https://debian-handbook.info/browse/stable/sect.release-lifecycle.html

Image from “The Debian Administrator's Handbook”, R. Hertzog e R. Mas https://debian-handbook.info/browse/stable/sect.release-lifecycle.html

→ Unstable

● Packages accepted by the FTP Masters● Rejections:

– Licensing issues

– Missing Copyrights

– Package “hijacking”

– Irregular package naming

– No source code available

Aug 2017 24

Unstable → Testing

● Automatically– At least 10 days in Unstable– Without known critical bugs– Compile successfully in all official

architectures– Dependencies present in Testing

Aug 2017 25

Testing → Stable

● Promoted to Stable● Release manager● Every two years● Testing – gradually freeze:

– Transition Freeze → no library transitions (ABI protection)

– Soft freeze → no new packages

– Full freeze → critical bug fixes only

Aug 2017 26

Testing → Stable (cont)

● 2016-11-05: Transition freeze (general freeze of transitions)● 2017-01-05: "Soft" freeze (no new packages)● 2017-02-05: Full freeze● 2017-06-17: Initial release: 9.0

● “As always, Debian 9 "Stretch" will be released "when it's ready".”

– https://release.debian.org/

Aug 2017 27

Before stretch release After stretch release

Stable Jessie Stretch

Testing Stretch Buster

Unstable Sid Sid

Stable release support

● Security team support ~3 years● LTS (Long Term Support) → +2 years

– Volunteer companies

Aug 2017 28

Other repositories

● Experimental– Not a real release (cannot be used standalone)

– Incomplete packages – feedback

● Backport– Packages from Unstable or Testing adapted to work with Stable

● Updates● Oldstable (Jessie)● ...

Aug 2017 29

Testing->Stable

Aug 2017 30

Debian suites workflows, 2016

uploaders legend

unstable

testing

experimental

stable backports

testing-proposed-updates

proposed-updates stable-updates

oldstable

security

archive

Note: oldstable has the sameset of suites as stable

not detailed here to avoid clutter

maintainer

fromtesting

security team person

repository

upload to

repository

automatic manual approved unusal

production

deprecated, LTS

testing

development

unsupported

Image from dot file maintained by CollabMaint:https://anonscm.debian.org/git/collab-maint/package-cycle.git

Maintaining a package

Aug 2017 31

Maintainers and Developers

● Debian Maintainer (DM)– Can submit packages to the repositories

● Debian Developer (DD)– Official member of the project

– Right to vote and be a Project Leader candidate

– Access to servers

– Propose and vote in “General Resolutions” and “Amendments”

Aug 2017 32

Sponsor

● Anyone can:– Submit a package through a sponsor– #debian-mentors @ OFTC

● Sponsor → DM → DD

Aug 2017 33

Bug Tracking System

Aug 2017 34

Bug Tracking System

● https://bugs.debian.org/● Not only bugs, but also requests (e.g.

features, help)● Each bug is associated with a package● Email interface● reportbug –file /bin/hello

– generates email in the right format

Aug 2017 35

BTS – email format

To: submit@bugs.debian.org From: diligent@testing.linux.org Subject: Hello says `goodbye'

Package: hello Version: 1.3-16

Description of the problem Log of error

I suggest that the output string, in hello.c, be corrected.

I am using Debian GNU/Linux 2.2, kernel 2.2.17-pre-patch-13 and libc6 2.1.3-10.

Aug 2017 36

BTS – pseudo packages

● https://www.debian.org/Bugs/pseudo-packages

● General

● Mirrors

● ftp.debian.org

● Upgrade-reports

● sponsorship-requests

● …

● WNPP – Work-Needing and Prospective Package

Aug 2017 37

BTS - WNPP

● Packages are associated with:– Maintainer / team / orphan

● Work-Needing and Prospective Packages● Tag in the email subject:

– ITP: Intent To Package

– O: Orphaned

– RFA: Request for Adoption

– RFH: Request For Help

– RFP: Request For Package

Aug 2017 38

BTS - WNPP

● Packages are associated with:– Maintainer / team / orphan

● Work-Needing and Prospective Packages● Tag in the email subject:

– ITP: Intent To Package

– O: Orphaned

– RFA: Request for Adoption

– RFH: Request For Help

– RFP: Request For Package

Aug 2017 39

How to contribute

● Documentation / Translation● Bug reports● Sending / reviewing patches● Maintaining a package● Helping newbies● Donations● Adopting an orphan package

https://www.debian.org/devel/wnpp/orphaned

Aug 2017 40

Debian and Ubuntu

● Ubuntu:

– Based on Debian

– Only supports x86, amd64 e PowerPC

– ~2 mil packages maintained by Canonical

– Less number of developers

– Incentives Debian development

– Release cycle: packages retrieved from Debian Unstable

● A Debian developer is also an Ubuntu developer (indirectly)

● More information:

– https://wiki.ubuntu.com/Ubuntu/ForDebianDevelopers

– https://wiki.ubuntu.com/Debian/ForUbuntuDevelopers Aug 2017 41

Questions ?

Helen Koike <helen.koike@collabora.com>

Creative Commons Attribution-ShareAlike 4.0

Decisions making

● https://www.debian.org/devel/constitution

● The Project Leader → election once a year

– Chris Lamb (April 2017)● The Developers → General Resolution/election;● The Technical Committee and/or its Chair;

– Advice / Overrule a developer / solves technical conflics● The individual Developer working on a particular task;● Delegates appointed by the Project Leader for specific tasks;● The Project Secretary

– Conducts voting / Stand in / Interpret the constitution

Aug 2017 43

Package structure example

├── debian│   ├── changelog│   ├── compat│   ├── control│   ├── copyright│   ├── install│   ├── rules│   └── source│   └── format├── secure-boot-code-sign.sh└── secure-boot-code-sign.conf

2 directories, 9 files

Aug 2017 44

top related