navody:pokyny_pro_revize_baliku

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Následující verze
Předchozí verze
navody:pokyny_pro_revize_baliku [2007/04/03 15:46] – vytvořeno mildewnavody:pokyny_pro_revize_baliku [2022/11/14 12:25] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
 ====== Pokyny pro revize balíčků ======= ====== Pokyny pro revize balíčků =======
 ===== Povinné ===== ===== Povinné =====
-  * rpmlint musi byt spusten na kazdy balicekVystup by mel byt prilozen v revizi. +  * rpmlint musí být spuštěn na každý balíčekVýstup by měl být přiložen v revizi. 
-  * Balicek musi byt pojmenovan dle "pravidel pro pojmenovavani balicku" +  * Balíček musí být pojmenován dle [[navody:pravidla_pro_pojmenovavani_balicku|pravidel pro pojmenovávání balíčků]]. 
-  * Nazev spec souboru musi odpovidat zakladnimu jmenu balicku %{name} ve formatu %{name}.spec, pokud balicek nespada do vyjimek v pravidlech pro pojmenovavani balicku+  * Název .spec souboru musí odpovídat základnímu jménu balíčku %{name} ve formátu %{name}.spec, pokud balíček nespadá do výjimek v pravidlech pro pojmenováváni balíčků
-  * Balicek musi vyhovovat pravidlum pro balickovani+  * Balíček musí vyhovovat [[navody:pravidla_pro_balickovani|pravidlům pro balíčkováni]]
-  * Balicek musi byt licencovan open-source kompatibilni licenci musi vyhovovat ostatnim pravnim? pozadavkum definovanym v pravidlech pro balickovani+  * Balíček musí být licencován open source kompatibilní licencí musí vyhovovat ostatním pravním požadavkům definovaným [[navody:pravidla_pro_balickovani|pravidlech pro balíčkování]]
-  * Polozka "License:" ve spec souboru balicku musi souhlasit s licenci obsahu balicku+  * Položka "License:" ve .spec souboru balíčku musí souhlasit s licencí obsahu balíčku
-  * Pokud (a jen tehdy pokud) zdrojovy balicek obsahuje text licence ve vlastnim souboru, pak musi byt tento soubor obsahujici text licence uveden v %doc. +  * 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 smi byt pouzita jen americka Anglictina+  * Ve .spec souboru smí byt použita jen americká Angličtina
-  * spec soubor MUSI byt citelny. Pokud nebude revizor schopny precist spec soubor, nebude mozne provest revizi. +  * .spec soubor MUSÍ být čitelný. Pokud nebude revizor schopný přečíst .spec soubor, nebude možné provést revizi. 
-  * Zdrojove kody pouzite sestaveni balicku musi byt shodne se zdrojovymi kody z upstreamu (puvodnioficialni zdrojove kody) na adrese uvedene ve spec souboru. Revizori by meli pouzivat md5sum k overovani+  * Zdrojové kódy použité 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í
-  * Balicek musi byt uspesne prelozen a sestaven do binarnich rpm alespon na jedne podporovane architekture+  * 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 balicek na nejake architekture nepodari prelozit, sestavit nebo spustit, pak by mela byt tato architektura uvedena ve spec souboru v polozce ExcludeArch. Kazda architektura uvedeva v ExcludeArch musi mit zaznam v bugzille, ktery obsahuje duvod proc se nepodarilo balicek prelozit, sestavit nebo spustit. Cislo zaznamu by pak melo byt uvedeno v komentari odpovidajici architektury v ExcludeArch. Nove balicky nebudou mit zaznamy v bugzille pri revizi, takze by mely uvest tyto duvody primo komentarich dokud nebude balicek schvalenyaz pote vytvorit zaznam vysvetleni komentarich nahradit cislem chyby v bugzille. (Nasledujici   se tyka jen Extras) Zaznam v bugzille by mel byt oznacen jako blokujici jednoho (nebo vice) z nasledujich zaznamu, aby se ulehcilo sledovani techto pripadu: FE-ExcludeArch-x86, FE-ExcludeArch-x64, FE-ExcludeArch-ppc. +  * 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 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 komentářích dokud nebude balíček schválený, až poté vytvořit záznam a vysvětlení komentařích nahradit číslem chyby v bugzille. (Následující   se týká jen Extras) Záznam v bugzille by měl být označen jako blokující jednoho (nebo více) z následujících záznamů, aby se ulehčilo sledování těchto případů: FE-ExcludeArch-x86, FE-ExcludeArch-x64, FE-ExcludeArch-ppc. 
-  * Vsechny sestavovaci zavislosti musi byt uvedeny v polozce BuildRequires s vyjimkou techktere jsou uvedeny v sekci vyjimek v pravidlech balickovaniUvadeni techto zavislosti v BuildRequires je volitelnePouzivejte zdravy rozum. +  * Všechny sestavovací závislosti musí být uvedeny v položce BuildRequires s výjimkou těchkteré jsou uvedeny v sekci výjimek [[navody:pravidla_pro_balickovani|pravidlech pro balíčkování]]Uvádění těchto závislostí v BuildRequires je volitelnéPoužívejte zdravý rozum. 
-  * spec soubor MUSI pracovat spravne s locales. Toho se docili pouzitim makra %find_lang. Pouzivani %{_datadir}/local/* je priste zakazano+  * .spec soubor MUSÍ pracovat správně s locales. Toho se docílí použitím makra %find_lang. Použivání %{_datadir}/local/* je přísně zakázáno
-  * Kazdy binarni RPM balicekktery uklada sdilene knihovny (nejen symbolicke odkazy) do jakehokoliv ze standardnich adresaru linkeru, musi spustit ldconfig v %post a %postun. Pokud ma balickek vice podbalicku s knihovnama, pak by mel kazdy z nich mit taky %post/%postun sekci, ktera spusti ldconfig. Priklad spravneho pouziti:+  * Každý binární RPM balíčekkterý 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/%postun sekci, která spustí ldconfig. Příklad správného použití:
  
   %post -p /sbin/ldconfig   %post -p /sbin/ldconfig
   %postun -p /sbin/ldconfig   %postun -p /sbin/ldconfig
  
-  * Balicek musi byt vlastnikem vsech adresaruktere vytvari. Pokud nevytvari nejaky adresarktery pouziva, pak by mel mit zavislost na balickuktery tento adresar vytvariVyjimky techto pripadech jsou adresare uvedene v [[http://google.com/search?q=fhs|Filesystem Hierarchy Standard]]. +  * Balíček musí být vlastníkem všech adresářůkteré vytváří. Pokud nevytváří nějaký adresářkterý používá, pak by měl mít závislost na balíčkukterý tento adresář vytváří,vlastníVýjimky těchto případech jsou adresáře uvedené v [[http://google.com/search?q=fhs|Filesystem Hierarchy Standard]]. 
-  * Pokud je balicek vytvoren jako "premistitelny", musi jeho tvurce tuto skutecnost uvest pozadavku na revizi spolu s vysvetlenim/obhajobou teto vlastnosti. Bez tohoto je pouziti Prefix: /usr povazovano za blokujici+  * Pokud je balíček vytvořen jako "přemístitelný", musí jeho tvůrce tuto skutečnost uvést požadavku na revizi spolu s vysvětlením/obhajobou této vlastnosti. Bez tohoto je použití Prefix: /usr považováno za blokující
-  * Balicek nesmi obsahovat duplikaty v seznamu %files. +  * Balíček nesmí obsahovat duplikáty v seznamu %files. 
-  * Prava u souboru musi byt spravne nastaveny. Naprspustitelne soubory musi mit nastaven priznak spustitelnosti (+x). Kazda sekce %files musi obsahovat radek s %defattr(...). +  * 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(...). 
-  * Kazdy balicek musi mit sekci %clean, ktera obsahuje rm -rf %{buidlroot}. +  * Každý balíček musí mít sekci %clean, která obsahuje rm -rf %{buidlroot}. 
-  * Kazdy balicek musi konzistentne pouzivat makra, jak se popsano sekce makra v pravidlech pro balickovani+  * Každý balíček musí konzistentně používat makra, jak je popsáno sekci makra v [[navody:pravidla_pro_balickovani|pravidlech pro balíčkování]]
-  * Kazdy balicek musi obsahovat kod nebo pripustny obsah. Detailnejsi vysvetleni je v sekci kod vs. obsah v pravidlech pro balickovani+  * 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:pravidla_pro_balickovani|pravidlech pro balíčkování]]
-  * Rozsahle soubory s dokumentaci by mely byt v -doc podbalicku. (definice pojmu "rozsahla dokumentace" je ponechana na tvurci balickunemusi primo znamenat velikost souboru s dokumentaci+  * Rozsáhlé soubory s dokumentací by měly být v -doc podbalíčku. (definice pojmu "rozsáhlá dokumentace" je ponechána na tvůrci balíčkunemusí přímo znamenat velikost souboru s dokumentací
-  * Pokud balicek obsahuje cokoliv v %doc, nesmi to ovlivnovat beh programu. Receno jinak: Pokud je neco v %doc, program musi bezet i bez toho. +  * 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. 
-  * Hlavickove soubory nebo staticke knihovny musi byt v -devel podbalicku+  * Hlavičkové soubory nebo statické knihovny musí být v -devel podbalíčku
-  * Balicekktery obsahuje pkgconfig(.pc) soubory musi mit zavislost na pkgconfig (Requires: pkgconfig). +  * Balíčekkterý obsahuje pkgconfig(.pc) soubory musí mít závislost na pkgconfig (Requires: pkgconfig). 
-  * Pokud balicek obsahuje knihovny s priponou (napr. libfoo.so.1.1), pak musi byt knihovny koncici na .so (bez pripony) v -devel podbalicku+  * Pokud balíček obsahuje knihovny s příponou (např. libfoo.so.1.1), pak musí být knihovny končící na .so (bez přípony) v -devel podbalíčku
-  * V nejhorsim pripade, -devel balicek musi byt zavisly na hlavnim balicku pomoci plne (cele) verze: Requires: %{name} = %{version}-%{release} +  * 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} 
-  * Balicek nesmi obsahovat zadne .la libtool archivy. +  * Balíček nesmí obsahovat žádné .la libtool archivy. 
-  * Balicky obsahujici GUI aplikace musi obsahovat %{name}.desktop soubor a tento musi byt nainstalovan pomoci desktop-file-install v %install sekci. Detailneji je toto popsane Pravidlech pro balickovani v sekci Desktopove soubory. Pokud si mysliteze vase GUI aplikace nepotrebuje .desktop soubor, tak byste to meli vysvetlit komentarem ve .spec souboru. +  * 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é [[navody:pravidla_pro_balickovani|pravidlech pro balíčkování]] v sekci Desktopové soubory. Pokud si myslíteže vaše GUI aplikace nepotřebuje .desktop soubor, tak byste to měli vysvětlit komentářem ve .spec souboru. 
-  * Balicek nesmi vlastnit soubory nebo adresarektere uz vlastni jiny balicek. Pokud si myslite, ze mate duvody k tomu, aby vas balicek vlastnil soubory nebo adresare jineho balicku, tak to uvedte pri revizi (pri pozadavku o revizi).+  * Balíček nesmí vlastnit soubory nebo adresářekteré 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é ===== ===== Doporučené =====
  
-  * Pokud zdrojovy balicek neobsahuje soubor s licenci, pak by mel tvurce balicku pozadat upstream o jeho zarazeni (vytvoreni). +  * 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 'popis' a 'shrnuti' (zkraceny popis) ve .spec souboru by mel obsahovat preklady     pro podporovane neanglicke jazyky, pokud jsou dostupne+  * Sekce 'Description:' a 'Summary:' (zkrácený popis) ve .spec souboru by měly obsahovat překlady     pro podporované neanglické jazyky, pokud jsou dostupné
-  * Revizor by mel overit, ze se balickem spravne sestavi v mocku (viz. mock). +  * Revizor by měl ověřit, ze se balíček správně sestaví v mocku (viz. mock). 
-  * Balicek by se mel zkompilovat a sestavit do binarnich rpm na vsech podporovanych architekturach+  * Balíček by se měl zkompilovat a sestavit do binárních rpm na všech podporovaných architekturách
-  * Revizor by mel overitze balicek funguje jak maBalicek nesmi segfaultovat (padat:]) apod. +  * Revizor by měl ověřitže balíček funguje jak Balíček nesmí segfaultovat (padat:]) apod. 
-  * Pokud balicek obsahuje skripty mel by revizor overit jejich spravnou funkcnost a smysluplnost. Rozhodovani o smysluplnosti je ponechano zcela na soudnosti inkvizitora. +  * 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. 
-  * Podbalicky jine nez -devel by mely zaviset na hlavnim (zakladnimbalicku pomoci plne (cele) verze. +  * Podbalíčky jiné než -devel by měly záviset na hlavním (základnímbalíčku pomocí plné (celé) verze. 
-  * Umisteni pkgconfig(.pc) souboru zavisi na jejich pouzitiVetsinou slouzi pro vyvojove zalezitostitakze by mely byt v -devel balickuOduvodnenou vyjimkou jsou balickuktere jsou sami o sobe vyvojove (k vyvojovym ucelum), ktere nejsou instalovany uzivatelskem prostrediNapr. gcc nebo gdb.+  * Umístění pkgconfig(.pc) souboru závisí na jejich použitíVětšinou slouží pro vývojové záležitostitakže by měly být v -devel balíčkuOdůvodněnou výjimkou jsou balíčkykteré jsou sami o sobě vývojové (k vývojovým účelům), které nejsou instalovány uživatelském prostředíNapř. gcc nebo gdb.
  
  • Poslední úprava: 2022/11/14 11:08
  • (upraveno mimo DokuWiki)