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
Obrázek 1Ukázka výstupu příkazu dot v JHBuild

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í:

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

  2. Seznam požadovaných balíčků. Abyste mohli začít sestavovat, musí být tyto balíčky v systému k dispozici.

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

Příklad 1Příklad pro sysdeps
$ 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.18. uninstall

Příkaz uninstall odinstaluje jeden nebo více modulů.

jhbuild uninstall modul...

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.