Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze | |||
navody:pokyny_pro_revize_baliku [2007/04/04 14:42] – Doplnění diakritiky, oprava chyb mildew | navody:pokyny_pro_revize_baliku [2022/11/14 11:25] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== Pokyny pro revize balíčků ======= | ||
+ | ===== Povinné ===== | ||
+ | * rpmlint musí být spuštěn na každý balíček. Výstup by měl být přiložen v revizi. | ||
+ | * Balíček musí být pojmenován dle [[navody: | ||
+ | * Název .spec souboru musí odpovídat základnímu jménu balíčku %{name} ve formátu %{name}.spec, | ||
+ | * Balíček musí vyhovovat [[navody: | ||
+ | * Balíček musí být licencován open source kompatibilní licencí a musí vyhovovat ostatním pravním požadavkům definovaným v [[navody: | ||
+ | * Položka " | ||
+ | * Pokud (a jen tehdy pokud) zdrojový balíček obsahuje text licence ve vlastním souboru, pak musí byt tento soubor obsahující text licence uveden v %doc. | ||
+ | * Ve .spec souboru smí byt použita jen americká Angličtina. | ||
+ | * .spec soubor MUSÍ být čitelný. Pokud nebude revizor schopný přečíst .spec soubor, nebude možné provést revizi. | ||
+ | * Zdrojové kódy použité k sestavení balíčku musí být shodné se zdrojovými kódy z upstreamu (původní, oficiální zdrojové kódy) na adrese uvedené ve .spec souboru. Revizoři by měli používat md5sum k ověřování. | ||
+ | * Balíček musí být úspěšně přeložen a sestaven do binárních rpm alespoň na jedné podporované architektuře. | ||
+ | * Pokud se balíček na nějaké architektuře nepodaří přeložit, sestavit nebo spustit, pak by měla být tato architektura uvedena ve .spec souboru v položce ExcludeArch. Každá architektura uvedená v ExcludeArch musí mít záznam v bugzille, který obsahuje důvod proč se nepodařilo balíček přeložit, sestavit nebo spustit. Číslo záznamu by pak mělo být uvedeno v komentáři u odpovídající architektury v ExcludeArch. Nové balíčky nebudou mít záznamy v bugzille při revizi, takže by měly uvést tyto důvody přímo v komentářích dokud nebude balíček schválený, | ||
+ | * Všechny sestavovací závislosti musí být uvedeny v položce BuildRequires s výjimkou těch, které jsou uvedeny v sekci výjimek v [[navody: | ||
+ | * .spec soubor MUSÍ pracovat správně s locales. Toho se docílí použitím makra %find_lang. Použivání %{_datadir}/ | ||
+ | * Každý binární RPM balíček, který ukládá sdílené knihovny (nejen symbolické odkazy) do jakéhokoliv ze standardních adresářů linkeru, musí spustit ldconfig v %post a %postun. Pokud má balíček více podbalíčků s knihovnama, pak by měl mít každý z nich taky %post/ | ||
+ | |||
+ | %post -p / | ||
+ | %postun -p / | ||
+ | |||
+ | * Balíček musí být vlastníkem všech adresářů, | ||
+ | * Pokud je balíček vytvořen jako " | ||
+ | * Balíček nesmí obsahovat duplikáty v seznamu %files. | ||
+ | * Práva u souboru musí byt správně nastaveny. Např. spustitelné soubory musí mít nastaven příznak spustitelnosti (+x). Každá sekce %files musí obsahovat řádek s %defattr(...). | ||
+ | * Každý balíček musí mít sekci %clean, která obsahuje rm -rf %{buidlroot}. | ||
+ | * Každý balíček musí konzistentně používat makra, jak je popsáno v sekci makra v [[navody: | ||
+ | * Každý balíček musí obsahovat kód nebo přípustný obsah. Detailnější vysvětlení najdete v sekci kód vs. obsah v [[navody: | ||
+ | * Rozsáhlé soubory s dokumentací by měly být v -doc podbalíčku. (definice pojmu " | ||
+ | * Pokud balíček obsahuje cokoliv v %doc, nesmí to ovlivňovat běh programu. Řečeno jinak: Pokud je něco v %doc, program musí fungovat i bez toho. | ||
+ | * Hlavičkové soubory nebo statické knihovny musí být v -devel podbalíčku. | ||
+ | * Balíček, který obsahuje pkgconfig(.pc) soubory musí mít závislost na pkgconfig (Requires: pkgconfig). | ||
+ | * Pokud balíček obsahuje knihovny s příponou (např. libfoo.so.1.1), | ||
+ | * V nejhorším případě, -devel balíček musí být závislý na hlavním balíčku pomocí plné (celé) verze: Requires: %{name} = %{version}-%{release} | ||
+ | * Balíček nesmí obsahovat žádné .la libtool archivy. | ||
+ | * Balíčky obsahující GUI aplikace musí obsahovat %{name}.desktop soubor a tento musí být nainstalován pomocí desktop-file-install v %install sekci. Detailněji je toto popsané v [[navody: | ||
+ | * Balíček nesmí vlastnit soubory nebo adresáře, které už vlastní jiný balíček. Pokud si myslíte, ze máte důvody k tomu, aby váš balíček vlastnil soubory nebo adresáře jiného balíčku, tak to uveďte při revizi (při požadavku o revizi). | ||
+ | |||
+ | ===== Doporučené ===== | ||
+ | |||
+ | * Pokud zdrojový balíček neobsahuje soubor s licencí, pak by měl tvůrce balíčku požádat upstream o jeho zařazení (vytvoření). | ||
+ | * Sekce ' | ||
+ | * Revizor by měl ověřit, ze se balíček správně sestaví v mocku (viz. mock). | ||
+ | * Balíček by se měl zkompilovat a sestavit do binárních rpm na všech podporovaných architekturách. | ||
+ | * Revizor by měl ověřit, že balíček funguje jak má. Balíček nesmí segfaultovat (padat:]) apod. | ||
+ | * Pokud balíček obsahuje skripty měl by revizor ověřit jejich správnou funkčnost a smysluplnost. Rozhodování o smysluplnosti je ponecháno zcela na soudnosti inkvizitora. | ||
+ | * Podbalíčky jiné než -devel by měly záviset na hlavním (základním) balíčku pomocí plné (celé) verze. | ||
+ | * Umístění pkgconfig(.pc) souboru závisí na jejich použití. Většinou slouží pro vývojové záležitosti, | ||