Michal Čihař - Balíčky pro Debian - 3. Další informace v balíčku

Balíčky pro Debian - 3. Další informace v balíčku

Základní informace o balíčku jsme v minulém díle zapsali do souboru debian/control, ale to není vše co budeme potřebovat.

Dnešní díl bude tak trochu byrokratický aneb co všechno musí balíček obsahovat aby mohl být v distribuci.

debian/copyright

U každého balíčku musí být jasně uvedeny licenční podmínky. K tomuto účelu je vyhrazen soubor debian/copyright a v něm se skrývá nejčastější příčina odmítnutí nových balíčků. Velká část volně šiřitelných programů totiž během vývoje nabalovala kód z jiných projektů a tím nám značně znesnadňují napsání správného popisu do tohoto souboru. V optimálním případě, kdy je veškerý kód pod jedinou licencí bude debian/copyright vypadat nějak takto:

This package was debianized by Michal Čihař <nijel@debian.org> on
Mon, 12 Nov 2007 16:31:40 +0900.

It was downloaded from <http://cihar.com/software/photo-uploader/>

Upstream Author: 

    Michal Čihař

Copyright: 

    Copyright © 2007 Michal Čihař

License:

    This package is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License version 2 as 
    published by the Free Software Foundation. 

    This package is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this package; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA

On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-2'.

The Debian packaging is (C) 2007, Michal Čihař <nijel@debian.org> and
is licensed under the GPL, see above.

Toto je vskutku minimalistická verze a uvádí vše co je nezbytně nutné - odkud byl program stažen, kdo vytvořil balíček, kdo je autorem programu, přesné znění copyrightu a licenci. U mnoha projektů pak ještě bude následovat výčet souborů které jsou pod jinou licencí a případně další informace. V extrémním případě můžete dopadnout tak jako správce balíčku evince, který prostě musel vyjmenovat jednotlivé soubory a jejich licenci.

Debian je v tomto ohledu jedna z nejpřísnějších distribucí, ale díky tomu můžete mít jistotu, že veškerý software dostupný v sekci main splňuje zásady svobodného softwaru pro Debian.

Malá poznámka na okraj: V současné době probíhá diskuze o zavedení strojově zpracovatelného formátu tohoto souboru. Jedná se o jakousi formalizaci zápisu všech potřebných údajů a i zestručnění tohoto souboru. Podrobnější popis nového formátu naleznete na wiki. Prozatím doporučuji držet se starého formátu, ale je možné, že se situace v dohledné době změní.

debian/changelog

Pro uživatele je důležité vědět, co se změnilo mezi verzemi jednotlivých balíčků a proto je potřeba seznam změn udržovat v souboru debian/changelog. Položky v tomto souboru dodržují stejné formátování a při jeho psaní vám pomůže nástroj debchange z balíčku devscripts. Záznam o jedné verzi může vypadat nějak takto:

photo-uploader (0.4-3) unstable; urgency=low

  * Build depend on python-pycurl (Closes: #451457).

 -- Michal Čihař <nijel@debian.org>  Fri, 16 Nov 2007 11:17:38 +0900

Za jménem balíčku je uvedena verze, distribuce do které byla změna nahrána (v případě balíčku pro Ubuntu zde bude jméno distribuce, třeba edgy) a následuje důležitost verze. Tímto parametrem se určuje rychlost migrace balíčku z unstable do testing distribuce a pokud nemáme dobrý důvod (například to, že balíček v testingu je rozbitý), není důvod používat něco jiného než low. Další přípustné hodnoty jsou medium, high, emergency a critical.

Na dalších řádcích jsou popsány změny, fráze Closes: #451457 určuje, která chyba byla touto verzí opravena a při nahrání balíčku s tímto záznamem bude chyba automaticky označena jako opravená v této verzi balíčku.

Z posledního řádku se dozvíme kdo a kdy změnu provedl.

debian/NEWS

Pokud mezi některými verzemi došlo k zásadní změně chování, je dobré na to uživatele upozornit v souboru debian/NEWS. Jeho formát je stejný jako debian/changelog a měly by v něm být uváděny jen opravdu zásadní změny. Například pokud se změnil formát konfiguračního souboru nebo jiné změny které budou nejspíš vyžadovat zásah uživatele aby po aktualizaci získal opět funkční balíček.

Informace v tomto souboru budou uživatelům zobrazeny při instalaci nové verze balíčku pokud mají nainstalován program apt-listchanges.

debian/README.Debian

Pokud se balíček pro Debian nějak odlišuje od verze distribuované původním autorem, je dobré tyto změny popsat v tomto souboru. Nejčastěji se jedná o přemístěné konfigurační soubory nebo patche upravující chování programu, ale můžete zde uvést i návod pro nějaké specifické použití v Debianu.

debian/README.source

Pokud jsou jakékoliv zvláštnosti při práci se zdrojovým balíčkem, měly by být popsány v tomto souboru. Může se jednat například o postup jak vytvořit zdrojový tarball, pokud se jedná například o snímek z VCS nebo je převedený z jiného formátu (ano najdou se i programy dostupné jen v .src.rpm). Dále může popisovat i použitý systém patchování a další záludnosti, na které by mohl cizí člověk při práci s balíčkem narazit.

Závěr

Tímto jsme probrali všechny důležité souboru obsahující informace o balíčku a příště se již konečně vrhneme na skutečné vytváření balíčků.