Pět let s jedním vydáním
Debian patří ke konzervativním linuxovým distribucím a po Slackware jde o druhou nejstarší linuxovou distribuci. Velmi často je nasazován na serverech, na které jsou kladeny specifické podmínky – zejména dlouhá doba podpory. Správce chce obvykle odladit konkrétní softwarovou konfiguraci a pokud možno se o ni starat co nejméně. Podle hesla: „Dokud to funguje, nesahej na to.“
V Debianu to funguje tak, že po vydání nové verze (Debian 8 Jessie vyjde už tento týden) se dosavadní „stable“ změní na „oldstable“ a jeho podpora běží ještě jeden rok. Jelikož nová verze vychází přibližně jednou za dva roky, vyplývá z toho, že její plná podpora trvá zhruba tři roky. To je ovšem některým správcům málo. Petr Stehlík pod naší zprávičkou o Debianu LTS napsal:
Ačkoliv se za to stydím, tak na několika méně důležitých serverech už Ubuntu LTS provozuju, právě kvůli tomu, že na to pět let nebudu muset sahat a ušetřím si tak přibližně jeden system upgrade.
Jiné distribuce nabízejí podporu pět let (Ubuntu) nebo dokonce deset let (RHEL). Navíc v případě Debianu vlastně není možné standardní cestou přeskočit vydání. V polovině životního cyklu nové verze totiž končí podpora pro verzi předcházející. Existuje tedy zhruba roční díra, během které security team nevydává záplaty na bezpečnostní díry. To je zejména na serveru poměrně velký problém.
Na začátku roku 2014 se tedy začalo hovořit o projektu Debian LTS, který nakonec prodloužil už podporu předchozí oldstable verze Squeeze. Podpora tohoto vydání z roku 2011 měla skončit v květnu 2014, ale díky LTS poběží až do roku 2016. Současný (už jen pár dnů) Wheezy by měl být analogicky podporován až do roku 2018 a nová Jessie do 2020.
Důležité je ovšem dodat, že o LTS se nestará security team, ale zcela samostatná skupina přispěvatelů – dobrovolných i firemních. Jejich úkolem je udržovat repozitáře s aktualizacemi pro rozšířenou bezpečnostní podporu. Mezi lidmi ze security a LTS týmů je pochopitelně jistý překryv (viz dále), mají společný zájem.
LTS tým platí hlavně firmy
Raphaël Hertzog na Mini-DebConf v Lyonu zveřejnil některé zajímavé údaje za necelý rok práce LTS týmu. Ten tvoří 19 lidí, kteří jsou z drtivé většiny za svou práci placeni konkrétními firmami. Nejvíce jich zaměstnává Freexian, což je společnost vlastněná právě Raphaëlem Hertzogem – jedním z klíčových vývojářů Debianu.
Firma funguje jako jakýsi prostředník mezi sponzory a vývojáři. Získává peníze od 29 různých sponzorů a vyplácí odměny vývojářům za konkrétní práci. Cílem je takto zaplatit jednoho virtuálního člověka na plný úvazek a jeho práci rozdělit mezi větší množství lidí. Hodina práce je přitom oceněna na 85 eur a sběr peněz neustále běží.
Freexian ovšem není jedinou firmou, která do projektu vývojáři přispívá. Mezi dalšími je například energetická společnost Électricité de France, konzultační společnost Credativ nebo třeba Toshiba. Cílem vývojářů bylo oslovit ty firmy, které už prodlouženou podporu připravují interně samy pro sebe.
Sponzoři průměrně investují něco málo přes dvě hodiny času měsíčně. Celkem bylo takto už zaplaceno 444 hodin práce, dalších 230 je přitom už vybráno na příští rok. Podle Hertzoga navíc příspěvky pomalu narůstají, což je dobrá zpráva. Zásadní chvíle ale nastane po prvním roce běhu projektu, protože někteří sponzoři zaplatili první rok a teď se ukáže, zda budou pokračovat. Velikost sponzorství ukazuje následující graf.
LTS s ručením omezeným
Už na začátku diskuse o LTS bylo jasné, že ho nezvládne udržovat současný security tým. Zároveň není možné s malým týmem udržovat dva roky podporu pro všechny balíčky ve všech čtrnácti podporovaných architekturách. Muselo proto dojít ke konkrétním omezením: pětiletou podporu mají jen architektury i386 a AMD64. Ty používá nejvíce uživatelů jak na serverech, tak na desktopech.
Zároveň byly z podpory vyřazeny některé problémové balíčky. Jde celkem o zhruba čtyřicet balíčků, jejichž seznam může být pro některé uživatele zásadní: asterisk, axis2c, bugzilla, chromium-browser, couchdb, drupal6, ffmpeg, flashplugin-nonfree, fusionforge, gksu-polkit, gridengine, horde3, iceape, icedove, iceweasel, kolab-cyrus-imapd, libplrpc-perl, libv8, libvirt, mahara, mantis, mediawiki, moodle, movabletype-opensource, openswan, qemu, qemu-kvm, rails, serendipity, smarty, smarty3, spip, textpattern, turba2, typo3-src, vlc, xen, xen-qemu-dm-4.0, zabbix.
Součástí LTS není například žádný webový prohlížeč – Chromium i Iceweasel (Firefox) jsou vyřazeny. Důvodem podle Hertzoga je to, že vyřazených balíčků se týká v průběhu času celá řada bezpečnostních chyb a jejich oprava by spotřebovala LTS týmu příliš mnoho času. Nic ovšem není definitivně ztraceno, vývojáři samozřejmě chtějí ve Wheezym podporovat i některé z těchto balíčků. Budou na to ovšem potřebovat pomoc dalších vývojářů.
202 oprav za 10 měsíců
LTS tým od června 2014 do března 2015 nahrál celkem 202 opravených balíčků do repozitáře squeeze-lts. Nejvíce (113) jich připravili vývojáři placení společností Freexian, druhou největší skupinu (37) pak tvoří správci jednotlivých balíčků.
Jak se jednotlivé společnosti podílejí na vývoji ukazuje následující graf:
„None“ označuje správce jednotlivých balíčků v Debianu, „Debian Security“ odkazuje na členy security týmu, kteří také přispívají do LTS, „Debian LTS“ pak značí členy LTS týmu, které za práci neplatí žádná společnost.
Konkrétní přispěvatele ukazuje následující seznam rozdělený podle sponzorů a jmen:
Výzvy do budoucna
Raphaël Hertzog se ve své přednášce samozřejmě zabýval také budoucností projektu, který je od začátku koncipován jako dlouhodobý. Freexian sponzorům zdůrazňuje, že spolupráce by neměla být jednorázová, ale měla by běžet pokud možno dlouhodobě.
Vývojáři každopádně chtějí podporovat alespoň stejné množství balíčků jako teď, bohužel jak čas běží, končí podpora některých verzí balíčků z upstreamu, což dělá vývojářům Debianu starosti.
Konkrétním příkladem je MySQL, u kterého už byla upstream podpora pro verzi 5.1 ukončena. Oracle navíc v hlášení chyb (CVE) není příliš sdílný a neodkazuje v nich konkrétní patche, které problémy opravují. Backport oprav do starších verzí je proto problematický a časově velmi náročný. Přechod na verzi 5.5 v průběhu LTS období by znamenal změnu řady knihoven, což je rozsáhlý úkol nesplnitelný pro současný malý tým.
Podobné problémy se začínají objevovat také s dalšími balíčky, které už nemají upstream podporu – zmíněn byl například server GlassFish nebo Wireshark. „Budeme muset najít řešení,“ říká jen Hertzog.
Před převzetím Wheezyho by měli vývojáři také vyřešit problémy s přechodem na LTS repozitář. V současném stavu si musí uživatelé sami ručně přepnout repozitář z klasického security na wheezy-lts, jinak jim další opravy nebudou do systému přijíždět. Zároveň je potíž s některými nástroji (update-notifier, unattended-upgrades, monitoring checks…), které hlídají bezpečnostní aktualizace. Očekávají ale, že se balíčky objeví v security repozitáři a nehledají je jinde.
Stojí za to, ale chce doladit
Vývojáři za necelý rok ukázali, že to jde a že je možné mít pětiletou rozšířenou podporu Debianu. Ovšem zároveň se ukázalo, že to není cesta jednoduchá. Některé problémy se sice podařilo zatím vyřešit, ale další přibývají. Práce navíc bude také přibývat, jak bude udržováno více verzí najednou a postupně bude končit podpora starých verzí balíčků v upstreamu.
Zatím to tedy vypadá tak, že Squeeze-LTS byl jakýmsi pilotním projektem. Teď mají vývojáři rok na to, aby vše dotáhli k dokonalejšímu Wheezy-LTS. Potřebovat k tomu budou více lidí, více sponzorů a chuť pokračovat. Protože LTS je běh na dlouhou trať.
Odkazy
- Přednáška Raphaëla Hertzoga [video, webm]
- Prezentace [PDF]
- Debian LTS wiki
- Freexian.com