Příručka k příkazům
JHBuild používá syntax příkazového řádku podobnou nástrojům, jako je CVS:
jhbuild [globalni_volby] prikaz [argumenty_prikazu]
Globální volby JHBuildu jsou:
- -f, --file nastavení
-
Použít alternativní soubor s nastavením namísto výchozího ~/.config/jhbuildrc.
- -m, --moduleset sada_modulů
-
Použít jinou sadu modulů, než je uvedena v souboru s nastavením. Touto volbou může být relativní cesta, když se sada modulů nachází ve složce pro sadu modulů JHBuild, nebo absolutní cesta, když jsou umístěny kdekoliv jinde.
- --no-interact
-
Nepožadovat od uživatele žádný vstup. Tato volba se hodí pro bezobslužné sestavení, aby se zajistilo že postup nebude přerušen.
- --exit-on-error
-
Skončit hned, jakmile sestavení některého modulu selže. Tato volba se hodí primárně pro neinteraktivní režim, aby se zajistilo, že jhbuild nebude pokračovat v sestavení žádného dalšího modulu.
- --conditions
-
Změnit podmínečné příznaky, aby byly jiné, než ty, které jsou určené podle operačního systému, a ty, které jsou určené v jhbuildrc. Změny se určují stylem -wayland nebo +docs pro odebrání nebo přidání podmínky. Více změn můžete oddělit čárkou (--conditions=+docs,-wayland) nebo rozdělit do více argumentů --conditions.
Navíc JHBuild kontroluje přítomnost a hodnoty následujících proměnných prostředí:
- JHBUILD_RUN_AS_ROOT
-
Standardně se JHBuild nespustí pod uživatelem root, aby předešel případným destruktivním operacím, které mohou ovlivnit celý systém. V některých konkrétních případech je ale spuštění pod uživatelem root přijatelné, například uvnitř kontejneru nebo při průběžné integraci prostředí. Vyexportováním JHBUILD_RUN_AS_ROOT se kontrola uživatele při spouštění vypne.
Volby specifické pro jednotlivé příkazy jsou uvedeny níže.
5.1. autobuild
Příkaz autobuild automaticky sestaví moduly, tak jak jsou uvedeny v souboru s nastavením, a následně nahraje výsledky do JhAutobuild.
jhbuild autobuild [--autogen] [--clean] [--distcheck] [--skip=modul...] [--start-at=modul] [--report-url=url_výstupní_zpravy] [--verbose]
Volby --autogen, --clean, --distcheck, --skip a --start-at jsou zpracovány pro jednotlivé příkazy build.
- --report-url=url_výstupní_zpravy, -r url_výstupní_zpravy
-
Tato volba určuje adresu URL JhAutobuild, na kterou se má podat výstupní zpráva.
- --verbose, -v
-
Když je zadáno, bude výstup z JHBuild mnohem podrobnější.
5.2. bootstrap
Příkaz bootstrap nainstaluje sadu sestavovacích nástrojů. K těm patří autoconf, automake a podobné nástroje. Doporučeným způsobem instalace sestavovacích nástrojů je použití systému správy balíčků v distribuci. Příkaz bootstrap by se tak měl používat jen v případě, že tyto nástroje nejsou v systému správy balíčků vaší distribuce poskytovány, například na Mac OS.
jhbuild bootstrap
Příkaz bootstrap sestaví moduly pomocí stejné metody jako příkaz build, ale použije sadu modulů bootstrap.modules.
Dostupné volby viz dokumentace k příkazu build.
5.3. build
Příkaz build sestaví jeden nebo více balíčků, včetně jejich závislostí.
jhbuild build [--autogen] [--clean] [--check] [--dist] [--distcheck] [--distclean] [--ignore-suggests] [--no-network] [--skip=modul...] [--start-at=modul] [--tags=štítky] [-D datum] [--no-xvfb] [--try-checkout] [--no-poison] [--force] [--build-optional-modules] [--min-age=čas] [--nodeps] [modul...]
Když není na příkazovém řádku předán žádný název modulu, použije se seznam modules z nastavení.
- -a, --autogen
-
Před sestavením modulů vždy spustit autogen.sh.
- -c, --clean
-
Před sestavením modulů spustit příkaz make clean.
- --check
-
Po sestavení modulů spustit příkaz make check.
- -d, --dist
-
Po sestavení modulů spustit příkaz make dist .
- --distcheck
-
Po sestavení modulů spustit příkaz make distcheck.
- --distclean
-
Pro moduly ze systému Git před sestavením spustit git clean -dfx. Pro ostatní moduly před sestavením spustit make distclean.
Tato volba smaže všechny nezařazené změny.
- --ignore-suggests
-
Nesestavovat měkké závislosti.
- -n, --no-network
-
Při sestavování nepřestupovat do sítě. Tím se přeskočí kroky stahování a aktualizace. Pokud modul nelze bez přístupu do sítě sestavit, jeho sestavení selže.
- -s, --skip=modul,…
-
Nesestavovat uvedené moduly. Používá se k přeskočení sestavení zadaných závislostí.
- --tags=štítek,…
-
Ignorovat moduly, které nevyhovují štítku tag. Moduly jsou automaticky označené štítkem odpovídajícím názvu jejich sady modulů.
- -t, --start-at=modul
-
Začít v modulu se zadaným názvem, než aby se začínalo od začátku seznamu. Tato volba se hodí, když před tím došlo k přerušení sestavování.
- -D datum
-
Pokud je to podporováno systémem správy verzí v pozadí, aktualizuje se před sestavením strom se zdrojovými kódy na konkrétní datum. Požadován je formát data podle ISO, např. "2009-09-18 02:32Z".
- -x, --no-xvfb
-
Spustit grafický test na současném X serveru, místo v simulovaném Xvfb.
- -C, --try-checkout
-
Když sestavení selže, a je to podporováno systémem správy verzí, před opětovným pokusem o sestavení se vynuceně stáhne a spustí autogen.sh.
- -N, --no-poison
-
I když selže jedna nebo více závislostí modulu, tato volba přinutí JHBuild, aby modul i tak zkusil sestavit.
- -f, --force
-
Sestavit moduly, i když zásady říkají, že to není zapotřebí.
- --build-optional-modules
-
Moduly uvedené ve volitelných závislostech nemusí být k sestavení modulu nutně zapotřebí. Tato volba přinutí JHBuild volitelné závislosti sestavit.
- --min-age=čas
-
Přeskočit moduly nainstalované dříve, že je určený relativní čas. Řetězec time je ve formě čísla následovaného jednotkou. Podporované jsou následující jednotky: sekundy (s), minuty (m), hodiny (h) a dny (d). Například --min-age=2h přeskočí moduly sestavené před méně jak dvěma hodinami.
- --nodeps
-
Ignorovat chybějící systémové závislosti. Pro ignorován jedné konkrétní závislosti přidejte daný modul do skip.
5.4. make
Příkaz make je pro aktivní vývoj u konkrétního modulu. Vyžaduje, aby v aktuální složce byly stažené zdrojové kódy a není to to stejné, jako buildone -nf $(basename $(pwd)).
jhbuild make [--clean] [--check] [--distcheck] [--quiet]
Tyto volby jsou stejné, jako volby dostupné pro příkaz buildone.
5.5. buildone
Příkaz buildone je podobný příkazu build, ale nestavuje závislé moduly. To se hodí pro sestavení jednoho nebo pár konkrétních modulů.
jhbuild buildone [--autogen] [--clean] [--check] [--distcheck] [--distclean] [--no-network] [-D datum] [--no-xvfb] [--force] [--min-age=čas] [--nodeps] modul...
Volby --autogen, --check, --clean, -d, --distcheck, --distclean, --no-network, -D, -x a --nodeps jsou zpracovány pro jednotlivé příkazy build.
Na příkazovém řádku musí být uveden aspoň jeden modul.
5.6. checkbranches
Příkaz checkbranches zkontroluje, jestli jsou v systému správy verzí správně nadefinované větve a jestli jsou konzistentní se sadou modulů.
jhbuild checkbranches [--branch=větev...]
- --branch=větev, -b větev
-
Větev, která se má kontrolovat.
$ jhbuild -m gnome-2.20 checkbranches Modulu libgnomecanvas schází definice větve pro větev gnome-2-20 $
5.7. clean
Příkaz clean vyčistí složku sestavení jednoho nebo více modulů.
jhbuild clean [--skip=modul...] [--start-at=modul]
Když není na příkazovém řádku předán žádný název modulu, použije se seznam modules z nastavení.
Popis dostupných voleb viz dokumentace k příkazu build.
5.8. dot
Příkaz dot vygeneruje soubor popisující orientovaný graf tvořený závislostmi mezi sadami modulů. Tento soubor lze následně zpracovat pomocí softwaru GraphViz do podoby výsledného grafu.
jhbuild dot [--soft-deps] [--clusters] [modul...]
Když není na příkazovém řádku předán žádný název modulu, použije se seznam modules z nastavení.
Volba --soft-deps přidá tečkované čáry z modulů do měkkých závislostí. Volba --clusters seskupí moduly z metamodulů dohromady.
Výstup z příkazu dot můžete propojit rourou s nástrojem dot, který vygeneruje postskriptový soubor:
$ jhbuild dot modules | dot -Tps > závislosti.ps
Nebo obrázek PNG:
$ jhbuild dot modules | dot -Tpng > závislosti.png
5.9. gui
Příkaz gui spustí grafické uživatelské rozhraní JHBuild, které můžete použit k výběru modulů pro sestavení a ke změně některých voleb.
jhbuild gui
Grafické rozhraní je vykreslováno pomocí GTK, takže jsou zapotřebí některé další podpůrné knihovny.
5.10. info
Příkaz info zobrazí informace o jednom nebo více modulech.
jhbuild info [--installed] [modul...]
Příkaz zobrazí název modulu, jeho typ, závislosti, závislé balíčky, složku se zdrojovými kódy a čas, kdy byl naposledy nainstalován pomocí JHBuildu. Pokud jsou dostupné, zobrazí se také informace specifické pro daný modul, jako třeba repozitář CVS nebo URL pro stažení.
Když není žádný modul určen, zobrazí příkaz informace o všech modulech definovaných v sadě modulů.
V případě, že je uvedena volba --installed, bude výstup filtrován jen na nainstalované balíčky. Výsledný výstup bude obsahovat jen moduly, které jsou aktuálně sestavené a nainstalované pomocí JHBuildu. Výstup nezahrnuje systémové závislosti.
Pokud je u volby --installed uveden i jeden nebo více názvů modulů, jsou vypsány jen nainstalované moduly (bez systémových závislostí). V případě, že aspoň jeden ze zadaných modulů není nainstalován, skončí příkaz s návratovou hodnotou 1.
5.11. list
Příkaz list zobrazí rozvinutý seznam modulů, které by příkaz build sestavil.
jhbuild list [-a] [-r] [-s] [--start-at=modul] [--tags=štítky] [--ignore-suggests] [--list-optional-modules] [modul...]
Když není na příkazovém řádku předán žádný název modulu, použije se seznam modules z nastavení.
Volby --skip, --start-at, --tags a --ignore-suggests jsou zpracovány pro jednotlivé příkazy build.
- -a, --all-modules
-
Vypsat všechny moduly ze sady modulů, bez ohledu na závislosti sestavení.
- -r, --show-revision
-
Když má modul nastavenou větev, zobrazit u názvu modulu i název větve.
- --list-optional-modules
-
Tato volba přinutí JHBuild vypsat volitelné závislosti.
5.12. rdepends
Příkaz rdepends zobrazí zpětné závislosti modulu.
jhbuild rdepends [modul]
- --dependencies
-
Vedle modulů zobrazit cestu závislosti.
- --direct
-
Omezit zobrazení na moduly bezprostředně závisející na zadaném modulu.
5.13. run
Příkaz run spustí zadaný příkaz v tom stejném prostředí, které používá JHBuild, když sestavuje moduly.
jhbuild run [--in-builddir] [--in-checkoutdir] PROGRAM [ARGUMENT...]
Když se JHBuild používá k sestavení GNOME, může se tento příkaz hodit ve skriptech spouštějících X server.
- --in-builddir=modul
-
Spustit příkaz ve složce sestavení zadaného modulu.
- --in-checkoutdir=modul
-
Spustit příkaz ve zdrojové složce zadaného modulu.
5.14. sanitycheck
Příkaz sanitycheck provede řadu kontrol, aby ověřil, že je prostředí pro sestavení v pořádku.
jhbuild sanitycheck
Součástí kontrol bude mimo jiné:
-
Jestli složka pro stažení a složka daná instalačním prefixem jsou zapisovatelné.
-
Jestli jsou nainstalované požadované nástroje.
-
Jestli jsou v prohledávaných cestách příkazu alocal přidruženému k různým verzím automake dostupná některá běžně používaná makra.
-
Katalog XML obsahující DocBook DTD a stylopisy.
5.15. shell
Příkaz shell spustí uživatelský shell se stejným prostředím, jako používá JHBuild, když sestavuje moduly.
jhbuild shell
Tento příkaz odpovídá následujícímu:
$ jhbuild run $SHELL
Když je tento shell aktivní, nastaví se proměnná prostředí UNDER_JHBUILD na „true“. Přítomnost této proměnné pak můžete využít k přizpůsobení své výzvy shellu k indikaci, že jste opravdu v shellu pod správou JHBildu. Například můžete do svého souboru .bashrc vložit:
if [ -n "$UNDER_JHBUILD" ]; then PS1="[jhbuild] $PS1" fi
Tím se zajistí, aby shell bash zobrazoval před normální výzvou jhbuild, díky čemuž snadno rozlišíte, ve kterém shellu se v prostředí jhbuild nacházíte.
5.16. sysdeps
Příkaz sysdeps zobrazí:
-
Seznam nainstalovaných systémových balíčků, které budou během sestavení použity. JHBuild tyto modulu nebude sestavovat a případně místo toho použije systémový balíček.
-
Seznam požadovaných balíčků. Abyste mohli začít sestavovat, musí být tyto balíčky v systému k dispozici.
-
Seznam volitelných balíčků. Odpovídající systémové balíčky nebyly nalezeny nebo jsou příliš staré. JHBuild tyto moduly bude sestavovat. Volitelné balíčky se nezobrazí, když je partial_build nastaveno na False.
jhbuild sysdeps [--install]
- --install
-
Tato volba nainstaluje systémové balíčky, které jsou závislostmi sady modulů. Způsob instalace záleží na vaší distribuci. Pokud je k dispozici PackageKit, nainstalují se systémové balíčky pomocí něj. U distribucí používajících APT, jako třeba Debian a Ubuntu je zapotřebí mít nainstalován apt-file.
$ jhbuild sysdeps Balíčky nainstalované v systému, které nejsou dostatečně nové: speex (speex.pc required=1.2rc1, installed=1.2rc1) lcms2 (lcms2.pc required=2.2, installed=2.2) … Vyžadované balíčky: Balíčky nainstalované v systému, které jsou příliš staré: (none) V systému nejsou nainstalované balíčky odpovídajíc: zlib (zlib.pc required=1.2) Volitelné balíčky: (JHBuild chybějící balíčky sestaví) Balíčky nainstalované v systému, které jsou příliš staré: WebKit (webkitgtk-3.0.pc required=1.5.1, installed=1.4.0) … V systému nejsou nainstalované balíčky odpovídajíc: pulseaudio (libpulse.pc required=2.0) …
5.17. tinderbox
Příkaz tinderbox je podobný příkazu build, ale zapisuje veškeré terminálové výstupy do souborů HTML vhodných k publikování na webu. Může být použit k vytvoření podobných systémů, jako je Tinderbox od Mozilly nebo Buildd u Debianu.
jhbuild tinderbox [--autogen] [--clean] [--distclean] [--no-network] [--output=složka] [--skip=modul...] [--start-at=modul] [-D datum] [-C] [-N] [-f] [--nodeps] [modul...]
Volby --autogen, --clean, --distclean, --no-network, --skip, --start-at, -D, -C, -N, -f a --nodeps jsou zpracovány pro jednotlivé příkazy build.
- -o, --output=složka
-
Složka pro zápis souborů HTML. JHBuild vytvoří indexovou stránku (index.html) a soubory HTML pro jednotlivé moduly.
5.19. update
Příkaz update je podobný příkazu build, ale provede pro moduly jen krok stažení nebo aktualizace, bez jejich následného sestavení.
jhbuild update [--skip=modul...] [--start-at=modul] [--tags=štítky] [--ignore-suggests] [-D datum] [modul...]
Volby --skip, --start-at, --tags, --ignore-suggests a -D jsou zpracovány pro jednotlivé příkazy build.
5.20. updateone
Příkaz updateone je podobný příkazu update, ale neaktualizuje závislé moduly. To se hodí při aktualizaci jen jednoho nebo pár modulů.
jhbuild updateone [-D datum] modul...
Volba -D je zpracována pro jednotlivé příkazy build.
Na příkazovém řádku musí být uveden aspoň jeden modul.