debian za kulisami
DESCRIPTION
"Debian: Behind the Scenes" talk given by Adam Byrtek back in 2003 (in Polish). Quite old, but the overall structure of Debian project haven't changed that much since then.TRANSCRIPT
Debian, za kulisamiAdam Byrtek <[email protected]>
Wstęp
O czym wykład nie będzie● Instalacja, konfiguracja, obsługa, administracja
– http://www.debian.org– http://www.debianusers.pl– http://debian.linux.org.pl
O czym wykład będzie (z grubsza)● Historia, sprawy techniczne, filozofia, struktura,
społeczność● Pytania
Wstęp, c.d.
Czym jest Projekt Debian?● "Projekt Debian to grupa osób, które wspólnie
zdecydowały się stworzyć wolny system operacyjny"
Zasadnicze różnice● Członkami społeczność ochotników● Projekt niekomercyjny● Tylko otwarte narzędzia● Wspiera różnorodność
Początki Debiana
Rys historyczny
● Ian Murdock, manifest w roku 1993● Motywacja
– dystrybucja "w duchu Linuksa"– zły stan ówczesnych dystrybucji
● Wsparcie FSF przez pierwszy rok (GNU/Linux)● Nazewnictwo dystrybucji, wersji● Prawidłowa wymowa: "deb ee n"● Pierwszt system pakietów (z zależnościami)● Powołanie SPI
Fakty
● Edycja stablina: Woody 3.0, wydana w lipcu 2002r.● 10 lat istnienia, silna pozycja wśród dystrybucji● 11 wspieranych architektur
alpha, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390, sparc
● Jedyna dystrybucja wspierająca różne jądraLinux, Hurd, BSD
● 1134 osób, 7264 pakietów źródłowych, 11758 binarnych, 318 serwerów lustrzanych
● Polska na piątym miejscu w (nieoficjalnym) rankingu ilości użytkowników
Organizacje
● Linux International● Linux Professional Institute● Linux Magazine advisory council● Linux Standards Base● Free Standards Group● SchoolForge● GNOME Foundation advisory board● OASIS: Organization for the Advancement of Structured
Information Standards● Desktop Linux Consortium
Oparte na Debianie
● Xandros (dawniej Corel)● Progeny (instalator)● Lindows● Knoppix● i inne...
FILOZOFIA
Zasady stanowiące fundament● Debian Free Software Guidelines● Umowa społeczna Debiana● Debian Policies
Kontrakt społeczny
● Debian pozostanie w pełni wolny (patrz DFSG)● Spłacimy dług społeczności oprogramowania
wolnodostępnego● Nie będziemy ukrywać problemów● Naszymi priorytetami są nasi użytkownicy i wolne
oprogramowanie● Wsparcie dla programów nie spełniających standardów
DFSG (archiwum non-free)
Debian Free Software Guidelines
● Wolna redystrybucja● Dołączony kod źródłowy (i możliwość jego
redystrybucji)● Dzieła pochodne, możliwość ich tworzenia i dystrybucji
na tej samej licencji● Brak ograniczeń integralności kodu● Nie dyskryminuje żadnych osób bądź grup
Debian Free Software Guidelines, c.d.
● Nie ogranicza zakresu użytkowania● Licencja musi dotyczyć wszystkich● Licencja nie może dotyczyć wyłącznie Debiana● Licencja nie może 'zanieczyszczać' innego
oprogramowania
● Przykłady: GPL, BSD, Artistic● Bruce Perens i manifest Open Source
Debian Policy
● Wytyczne techniczne: najważniejsze zasady gwarantujące spójność pakietów w dystrybucji
● Pełna zgodność z FHS● Niektóre dodatkowe policies
– Perl– Java– Menu– Emacs– ...
Konstytucja
● Konstytucja: podstawa formalna● Głosowania● Decyzje podejmuje
– Zgromadzenie Ogólne Deweloperów– Lider Projektu– Komitet Techniczny i/lub jego Przewodniczący– deweloper odpowiedzialny za dane zadanie– delegaci wyznaczeni przez Lidera do danego zadania– Sekretarz Projektu
Gałęzie
● stable (obecnie woody)gałąź do zastosowań produkcyjnych, zamrożona i gruntowanie przetestowana, do niej pojawiają się poprawki bezpieczeństwa
● testing (obecnie sarge)gałąź najprawdopodobniej pozbawiona ciężkich błędów, ale nie jest to gwarantowane
● unstable (zawsze sid)najświeższe pakiety prosto z pieca, bywają z nimi kłopoty
● experimentalużycie wysoce niewskazane
● Archiwa: main, non-free, contrib
System pakietów
● dpkg: nadzór nad bazą pakietów, manipulacja pakietami– zależności– pliki konfiguracyjne– szablony debconf
● APT: zarządzanie pakietami pochodzącymi z różnych źródeł– repozytoria oficjalne, nieoficjalne– priortety, pinning
● Liczne nakładki (dselect, aptitude, synaptic, ...)
Struktura pakietu źródłowego
● Oficjalne źródła: foo_x.y.orig.tar.gz● Debianowa łata: foo_x.y-z.diff.gz
– katalog ./debian/*– debian/rules: makefile budujący pakiet
● Z pakietu źródłowego powstaje jeden lub więcej pakietów binarnych:– foo_x.y-z_i386.deb– foo-doc_x.y-z_all.deb
Struktura pakietu binarnego
plik DEB
control.tar.gz data.tar.gz
/etc/.../usr/.../var/......
controlconffilesmd5sumspreinstpostinstprermpostrm...
Droga pakietu
pakiet
incoming
unstable testing stable
nowa wersja upstream
brak RC,wydanie
upload (podpisany), x.y-z
max 1 dzień (chyba że pakiet nowy)
10 dni (low),brak“excuses”
mirror mirror mirror
NMU
experimental
x.y
Edycja stabilna
● "Release when ready", rządzi Release Manager● Zamrożenie testing gdy nie ma już poważniejszych
problemów (RC)● Dokładne testowanie● Wydanie nowej edycji stabilnej● Co jakiś czas edycje poprawiające (najnowsza 3.0r1)● Około roczne wsparcie starej wersji stabilnej
Portowanie
● i386 to nie cały świat, deweloper odpowiedzialny za inne architektury
● Ekipa odpowiedzialna za porty● Dobra praktyka programistyczna● Problemy usprawiedliwione w rzadkich przypadkach● System auto-builderów● Non-Maintainer Upload (NMU)
Walka z błędami
● BTS: informacje zgłaszane przez email (reportbug preferowanym sposobem)– informacje dostępne publicznie– flagi i waga błędu (RC)– deweloper manipuluje stanem błędu– deweloper ma obowiązek przesyłać wszystkie
poprawki do upstreamu– nie tylko dla pakietów (np. WNPP, debian-policy)
● Od niedawna PTS● Lintian: pomoc dla deweloperów
Bezpieczeństwo
● Jeden z priorytetów, Security Team● Publiczne informacje, otwartość (DFSG)● Najlepiej korzystać ze stable● Advisories
– [email protected]– http://www.debian.org
● Automatyczny upgrade dla stable przez APTdeb http://security.debian.org/ woody/updates main contrib non-free
Pozostałe cechy Debiana
● Instalator● Inicjalizacja systemu (update-rc.d)● Budowanie własnego jądra (make-kpkg)● System menu● System alternatyw● ...
Lokalizacja
● Strona WWW● Task "polish", pakiety z polską dokumentacją● Wsparcie locales (teraz już standard)● Instalator● Mapy klawiatury, czcionki● Opisy pakietów● Szablony debconf● DWN (na 7thguard.net oraz stronach Debiana)
LUDZIE
● Rdzeń projektu● Baza danych informacji o
deweloperach (vacation)● Od rodziny do społeczności● Od dłuższego czasu (mniej więcej)
liniowy wzrost● Różne cele, spojrzenia, poglądy, równe prawo głosu● Podział na podgrupy, podprojekty● Specjaliści z danych dziedzin (porty, instalator)
Mapa lokalizacji deweloperów
źródło: http://www.debian.org/devel/developers.loc
POLSCY DEWELOPERZY
Krzysztof KrzyżaniakPawel WięcekGrzegorz ProkopskiMarcin OwsianyPiotr RoszatyckiRobert LuberdaJanusz A. UrbanowiczRyszard Lach
Marek HabersackŁukasz JachowiczMirosław BaranAdam Byrtek
Kontakt
● Przede wszystkim email ([email protected])– wykorzystanie PGP, keyring Debiana
● IRC: dyskusje robocze, BSP (serwer freenode)● Listy dyskusyjne (ponad 100 różnych)
– debian-devel, debian-private● Listy ogłoszeniowe
– debian-announce, debian-devel-announce– debian-security-announce
● Debian Weekly News
Praca grupowa
● CVS– np. strona WWW
● Alioth, klon SourceForge– projekty których założycielem jest deweloper
Debiana
Jak pomóc
● Nie trzeba być deweloperem aby pomagać (sponsoring)● Promować Debiana (i Linuksa jako takiego)● Zgłaszać informacje o błedach i sugestie, korzystać z
testing/unstable● Przeglądać zgłoszenia, przesyłać patche, komentować
bugreporty (PTS)● Pomagać przy tłumaczeniu i tworzeniu dokumentacji
Jak wstąpić
● Uwaga na 1 kwietnia!● Proces NM (New Maintainer), lista debian-mentors
– adwokat– przydzielenie AM (Application Manager)– pierwszy kontakt– potwierdzenie tożsamości– filozofia i procedury– zadania i umiejętności– ankieta i podumowanie
Jak taki projekt może działać?
● Wartościowi ludzie, "karma" deweloperów● Władze formalne ingerujące jedynie gdy jest to
konieczne● Współpraca i wymiana poglądów przez Internet● Ścisłe reguły i procedury, ale minimum formalizmu● Narzędzia, szczegółowa dokumentacja● Infrastruktura fundowana przez sponsorów
Przyszłość
● Sarge (“release when ready”)– GCC 3.2– KDE 3.1– Gnome 2
● Nowy instalator (stary największą zmorą)– pełna integracja z debconf– zróżnicowany interface
● Jeszcze większy nacisk na wielonarodowość● Pełna zgodność z LSB (Linux Software Base)
To tylko wierzchołek góry lodowej.
Dziękuję za wysłuchanie wykładu.Proszę o pytania.
W razie czego mój adres:[email protected]