Portál AbcLinuxu, 2. května 2025 17:40

Balíčky pro Debian - 3 (další informace v balíčku)

23. 6. 2008 | Michal Čihař
Články - 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.

Obsah

link

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

link

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 tam 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

link

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

link

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 tam uvést i návod pro nějaké specifické použití v Debianu.

debian/README.source

link

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

link

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

Seriál Balíčky pro Debian (dílů: 12)

První díl: Balíčky pro Debian - 1 (úvod), poslední díl: Balíčky pro Debian - 12 (závěr aneb co se jinam nevešlo).
Předchozí díl: Balíčky pro Debian - 2 (popisy balíčků)
Následující díl: Balíčky pro Debian - 4 (kompilace balíčku a náš první balíček)

Související články

Na co se často ptáme: Balíčkovací systémy
Seriál: Instalace softwaru v Linuxu
Seriál: Gentoo ebuild
Seriál: Rukověť baliče RPM
Seriál: Balíčkovací systém Arch Linuxu
Smart Package Manager - instalujeme chytře
Zdroje balíčkov pre Ubuntu
Balíčkovací systém Mandrake Linuxu
Balíčkovací systém Gentoo Linuxu

Odkazy a zdroje

Návod pro začínajícího balíčkáře
Příručka vývojáře
Zásady Debianu
Dokumentace pro vývojáře

Další články z této rubriky

VDR a DVB-T2, část 2.
VDR a DVB-T2, část 1.
Šifrovaný Proxmox VE 6: ZFS, LUKS, systemd_boot a Dropbear
MapTiler – proměňte obrázek v zoomovatelnou mapu
Syncthing

Diskuse k tomuto článku

23.6.2008 00:26 Jirka P.
Rozbalit Rozbalit vše debian/changelog
Odpovědět | Sbalit | Link | Blokovat | Admin
Slušelo by se poznamenat, že zatímco jiné soubory dnes popsané jsou celkem zbytečné, bez changelogu se ten balíček ani nesestaví.

Mohl by ses ještě rozepsat o číslech verzí? Např. mám balík ve verzi 20080131+dfsg-1~1.gbpabcdef, co to znamená? (v těch znaménkách se ztrácím) Je to dobře pojmenovaný? Co se ještě dá vidět?
23.6.2008 11:05 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: debian/changelog
elenril avatar 24.6.2008 07:20 elenril | skóre: 21 | blog: Raziel
Rozbalit Rozbalit vše Re: Balíčky pro Debian - 3 (další informace v balíčku)
Odpovědět | Sbalit | Link | Blokovat | Admin
Díky za seriál, už dávno jsem se chtěl naučit dělat debianí balíčky (jinak než checkinstallem :) ). Těším se na další díly.
Luboš Doležel (Doli) avatar 24.6.2008 15:40 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Balíčky pro Debian - 3 (další informace v balíčku)
Odpovědět | Sbalit | Link | Blokovat | Admin
Taky děkuju za seriál. Ubuntu a Debian mají tak velký podíl mezi distribucemi, ale balíčkování vlastního softwaru asi zůstane na mně. Takže se to bude hodit :-)

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.