Začínáme
Než JHBuild můžete použít k sestavení softwaru, potřebuje projít pár kroků nastavení. JHBuild předpokládá pro svoji činnost přítomnost některého softwaru a je nutné nainstalovat nezbytné nástroje pro získávání a sestavování softwarových modulů.
- 2.1. Instalace JHBuildu
- 2.2. Nastavení JHBuildu
- 2.3. Předpoklady pro sestavení
- 2.4. Používání JHBuildu
2.1. Instalace JHBuildu
JHBuild potřebuje běhové prostředí jazyka Python. Ověřte, že je nainstalován Python >= 2.3.
Doporučeným způsobem, jak stáhnout JHBuild, je přes systém správy verzí Git. To můžete udělat následujícím příkazem. Je také doporučeno spustit příkaz z nové složky, kde budou nainstalovány všechny zdrojové kódy, například ~/jhbuild/checkout.
$ git clone https://gitlab.gnome.org/GNOME/jhbuild.git … $
Tím se stáhne JHBuild do nové složky s názvem jhbuild v aktuální složce. Nyní JHBuild sestavte a nainstalujte:
$ cd jhbuild $ ./autogen.sh … $ make … $ make install … $
V případě, že jsou dostupné gnome-common, yelp-tools a autotools, autogen.sh nakonfiguruje JHBuild pro instalaci skrze autotools. V případě, že dostupné nejsou, nakonfiguruje autogen.sh JHBuild pro instalaci skrze prostý Makefile. Jestli chcete použít prostý Makefile vždy, předejte skriptu autogen.sh volbu --simple-install.
Když předchozí kroky proběhnou úspěšně, nainstaluje se do ~/.local/bin malý shellový skript pro spuštění JHBuildu. Přidejte ~/.local/bin do PATH:
$ PATH=$PATH:~/.local/bin $
Pro trvalé přidání ~/.local/bin do proměnné PATH spusťte následující příkaz:
$ echo 'PATH=$PATH:~/.local/bin' >> ~/.bashrc $
2.2. Nastavení JHBuildu
JHBuild se nastavuje pomocí souboru s nastavením. Jeho výchozí umístění je ~/.config/jhbuildrc. Pokud neexistuje, je vytvořen výchozí. Soubor s nastavením používá syntax jazyka Python. K dispozici je ukázkový soubor, viz examples/sample.jhbuildrc. Ten si zkopírujte do složky ~/.config/jhbuildrc a přizpůsobte si jej svým potřebám.
Ukázkový soubor přiměje JHBuild sestavit moduly meta-gnome-core a meta-gnome-apps-tested a závislosti ze sady modulů gnome-apps. JHBuild rozbalí strom zdrojových kódů do ~/jhbuild/checkout/ a nainstaluje všechny soubory do podsložek v ~/jhbuild/install/. Obě složky musí být zapisovatelné.
Proměnné v nastavení jsou zdokumentované v kapitole Oddíl 6 ― Referenční příručka k souboru nastavení. K nejčastěji používaným proměnným patří:
- repos
-
Slovník, který lze použít k určení umístění alternativního repozitáře. Tato proměnná nastavení je užitečná pro vývojáře modulů. Ve výchozím stavu stahuje JHBuild kód z repozitářů pomocí umístění anonymního repozitáře. Klíči slovníku jsou názvy repozitářů a hodnotami jsou umístění alternativních repozitářů. Například:
repos['git.gnome.org'] = 'ssh://uživatelské_jméno@git.gnome.org/git/'
- moduleset
-
Řetězec (nebo seznam řetězců) specifikující název sady modulů (nebo názvy sad modulu), které se mají použít. Název může být dán buď název souboru se sadou modulů, která je součástí JHBuildu (cestu a příponu vynechejte) nebo plnou adresou HTTP URL k externě spravované sadě modulů. Externí sada modulů bude uložena v mezipaměti. Pokud se modul se stejným názvem objeví ve více sadách modulů, získá přednost poslední uvedený. Sady modulů zahrnuté přímo v JHBuildu jsou aktualizované, aby odpovídaly aktuálnímu vývojovému vydání GNOME.
- modules
-
Seznam řetězců určujících moduly k sestavení. Seznam skutečně sestavených modulů bude rekurzivně rozvinut, aby pokryl všechny závislosti, vyjma situace, kdy je použit příkaz buildone. Výchozí hodnota je ['meta-gnome-desktop'].
- checkoutroot
-
Řetězec určující složku pro rozbalení stromu se zdrojovými kódy. Pokud je proměnná buildroot nastavené na None, objeví se v této složce i sestavení. Výchozí hodnotou je ~/jhbuild/checkout.
- prefix
-
Řetězec určující prefix cesty, do které se mají instalovat moduly. Musí se jednat o absolutní cestu a složka musí být zapisovatelná. Výchozí hodnota je '~/jhbuild/install/'.
- autogenargs
-
Řetězec obsahující argumenty, která se předají skriptu autogen.sh u všech modulů. Pro konkrétní moduly může být přepsáno pomocí slovníku module_autogenargs.
- cmakeargs
-
Řetězec obsahující argumenty, které se předají příkazu cmake u všech modulů. Pro konkrétní moduly může být přepsáno pomocí slovníku module_cmakeargs.
- makeargs
-
Řetězec uvádějící dodatečné argumenty, které se předají příkazu make. JHBuild automaticky připojuje volbu pro paralelní provádění (-j) vycházející z počtu jader dostupných v procesoru. Výchozí hodnota je ''.
- mesonargs
-
Řetězec obsahující argumenty, která se předají pro příkazu meson u všech modulů. Pro konkrétní moduly může být přepsáno pomocí slovníku module_mesonargs.
- ninjaargs
-
Řetězec uvádějící dodatečné argumenty, které se předají příkazu ninja. Výchozí je ''.
2.3. Předpoklady pro sestavení
Než může být vůbec nějaký modul sestaven, je nutné mít nainstalované určité nástroje. V závislosti na tom, který modul sestavujete, patří mezi běžné nástroje pro sestavení GNU Autotools (autoconf, automake, libtool a gettext), GNU Toolchain (binutils, gcc, g++), make, pkg-config a Python.
JHBuild umí pomocí příkazu sanitycheck zkontrolovat, jestli jsou nástroje nainstalované:
$ jhbuild sanitycheck
V případě, že tento příkaz zobrazí nějakou zprávu, nainstalujte prosím požadovaný balíček z repozitáře své distribuce. Seznam názvů balíčků pro různé distribuce je udržován v rámci wiki projektu GNOME. Po nainstalování distribučního balíčku spusťte příkaz sanitycheck znovu, abyste si ověřili, že jsou požadované nástroje přítomny.
2.4. Používání JHBuildu
Když je nastavené dokončené, je možné použít JHBuild k sestavení softwaru. Pro sestavené všech modulů vybraných v souboru ~/.config/jhbuildrc spusťte následující příkaz:
$ jhbuild build
JHBuild stáhne, nakonfiguruje, zkompiluje a nainstaluje jednotlivé moduly. V případě, že se objeví v kterémkoliv kroku chyba, zobrazí vám JHBuild nabídku dotazující se co dál. Na výběr máte mimo jiné přepnout se do shellu, abyste mohli chybu opravit, znovu spustit sestavení z různých kroků, vzdát sestavení modulu nebo chybu ignorovat a pokračovat.
Pokud sestavení modulu vzdáte, způsobí to, že selže sestavení všech závisejících modulů.
Níže je příklad zobrazené nabídky:
[1] Znovu spustit krok sestavení
[2] Ignorovat chybu a pokračovat k instalaci
[3] Vzdát práci s modulem
[4] Spustit shell
[5] Znovu načíst nastavení
[6] Přejít ke kroku „vyčistit složku a spustit znovu“
[7] Přejít ke kroku „configure“
[8] Přejít ke kroku „clean“
[9] Přejít ke kroku „distclean“
volba:
Je také možné sestavit jinou sadu modulů, a jejich závislostí, předáním názvů modulů jako argument příkazu build. Například pro sestavení gtk+:
$ jhbuild build gtk+
Když je JHBuild přerušen v některé části sestavení, je možné pokračovat v sestavení od konkrétního modulu pomocí volby --start-at:
$ jhbuild build --start-at=pango
Pro sestavení jednoho nebo více modulů s ignorováním jejich závislostí poskytuje JHBuild příkaz buildone. Aby byl příkaz buildone dokončen úspěšně, musí být všechny závislosti sestavené dopředu a nainstalované nebo poskytnuté v balíčcích distribuce.
$ jhbuild buildone gtk+
Když aktivně vyvíjíte některý modul, nejspíše budete v pracovní složce se zdrojovými kódy. Příkaz make spustí systém sestavení a nainstaluje modul. To bude klíčovou částí vašeho cyklu upravit-zkompilovat-nainstalovat-otestovat.
$ jhbuild make
Abyste získali seznam modulů a závislostí, které bude JHBuild sestavovat, a v jakém pořadí je bude sestavovat, použijte příkaz list:
$ jhbuild list
K získání informací a konkrétním modulu použijte příkaz info:
$ jhbuild info gtk+
Ke stažení nebo aktualizaci všech zdrojů softwaru, aniž by se sestavily, použijte příkaz update. Tím získáte příležitost upravit zdrojové kódy před jejich sestavením a hodí se to i při připojení k Internetu s proměnlivou kvalitou.
$ jhbuild update
Později může JHBuild sestavit vše bez potřeby stahovat nebo aktualizovat zdrojové kódy:
$ jhbuild build --no-network
Ke spuštění konkrétního příkazu se stejným prostředím, jako používá JHBuild, použijte příkaz run:
$ jhbuild run program
Ke spuštění shellu se stejným prostředím, jako používá JHBuild, použijte příkaz shell:
$ jhbuild shell