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

44
Open First A newbie's newbie guide to Debian Helen Koike <[email protected]> Creative Commons Attribution-ShareAlike 4.0

Upload: others

Post on 16-Oct-2019

27 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

Open First

A newbie's newbie guide to Debian Helen Koike <[email protected]>

Creative Commons Attribution-ShareAlike 4.0

Page 2: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

Road Map

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

Aug 2017 2

Page 3: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 4: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 5: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 6: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

The Foundation DocumentsThe principles and guidelines for the community

Aug 2017 6

Page 7: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

The Foundation Documents

● Debian Social Contract– Moral principles

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

● Debian Constitution– The community organization

Aug 2017 7

Page 8: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 9: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 10: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 11: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

Packages and releasesCommunity work flow

Aug 2017 11

Page 12: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 13: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 14: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 15: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

Work flow: micro dynamic

● Per package management– Maintainer– Team

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

Aug 2017 15

Page 16: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 17: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 18: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

/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

Page 19: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

/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

Page 20: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

/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

Page 21: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

Package cycleCommunity work flow

Aug 2017 21

Page 22: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 23: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 24: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

→ Unstable

● Packages accepted by the FTP Masters● Rejections:

– Licensing issues

– Missing Copyrights

– Package “hijacking”

– Irregular package naming

– No source code available

Aug 2017 24

Page 25: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 26: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 27: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 28: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

Stable release support

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

– Volunteer companies

Aug 2017 28

Page 29: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 30: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 31: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

Maintaining a package

Aug 2017 31

Page 32: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 33: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

Sponsor

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

● Sponsor → DM → DD

Aug 2017 33

Page 34: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

Bug Tracking System

Aug 2017 34

Page 35: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 36: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

BTS – email format

To: [email protected] From: [email protected] 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

Page 37: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 38: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 39: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 40: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 41: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 42: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

Questions ?

Helen Koike <[email protected]>

Creative Commons Attribution-ShareAlike 4.0

Page 43: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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

Page 44: A newbie's newbie guide to Debian - Debian Conference · Open First A newbie's newbie guide to Debian Helen Koike  Creative Commons Attribution-ShareAlike

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