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ů.