Kommandoreferens

JHBuild använder en kommandoradssyntax i stil med verktyg så som CVS:

jhbuild [globala-flaggor] kommando [kommandoargument]

De globala JHBuild-flaggorna är:

-f, --file konfiguration

Använd en alternativ konfigurationsfil istället för standardvärdet ~/.config/jhbuildrc.

-m, --moduleset moduluppsättning

Använd en annan moduluppsättning än den moduluppsättning som listas i konfigurationsfilen. Denna flagga kan vara en relativ sökväg om moduluppsättningen finns i JHBuilds moduluppsättningsmapp eller en absolut sökväg om den finns någon annanstans.

--no-interact

Fråga inte användaren om något. Denna flagga är användbar om du lämnar ett bygge obevakat, för att säkerställa att bygget inte avbryts.

--exit-on-error

Avsluta omedelbart efter att en modul misslyckas med att bygga. Denna flagga är i första hand användbar i icke-interaktivt läge för att säkerställa att jhbuild inte fortsätter att bygga ytterligare moduler.

--conditions

Modifiera villkorsflaggorna till att vara andra än de som bestämts baserat på OS och de som angetts i jhbuildrc. Modifieringar anges som -wayland eller +docs för att ta bort eller lägga till villkor. Flera modifieringar kan separeras med ett komma i stil med --conditions=+docs,-wayland eller så kan du dela upp dem i flera --conditions-argument.

Dessutom kontrollerar JHBuild närvaron av och värdet på följande miljövariabler:

JHBUILD_RUN_AS_ROOT

Som standard körs JHBuild inte när root-användaren används, för att undvika destruktiva åtgärder som kan påverka hela systemet. I vissa fall är det dock acceptabelt att köra JHBuild som root; exempelvis i en behållare eller i en kontinuerlig integrationsmiljö. Att exportera miljövariabeln JHBUILD_RUN_AS_ROOT kommer att inaktivera kontrollen av användar-ID vid uppstart.

Kommandospecifika flaggor listas nedan.

5.1. autobuild

Kommandot autobuild bygger automatiskt modulerna så som de angetts i konfigurationsfilen och skickar sedan upp resultaten till JhAutobuild.

jhbuild autobuild [--autogen] [--clean] [--distcheck] [--skip=modul...] [--start-at=modul] [--report-url=rapport-url] [--verbose]

Flaggorna --autogen, --clean, --distcheck, --skip och --start-at behandlas enligt kommandot build.

--report-url=rapport-url, -r rapport-url

Denna flagga anger JhAutobuild-URL:en att rapportera till.

--verbose, -v

Om angiven kommer JHBuilds utmatning att vara utförligare.

5.2. bootstrap

Kommandot bootstrap installerar en uppsättning av byggverktyg. Byggverktygen inkluderar autoconf, automake och liknande verktyg. Den rekommenderade metoden att installera byggverktygen är via din distributions pakethanteringssystem. bootstrap bör bara användas om byggverktygen inte tillhandahålls av din distributions pakethanteringssystem, till exempel på Mac OS.

jhbuild bootstrap

Kommandot bootstrap bygger moduler via samma metod som kommandot build men använder moduluppsättningen bootstrap.modules istället.

Se kommandodokumentationen för build för tillgängliga flaggor.

5.3. build

Kommandot build bygger ett eller flera paket samt deras beroenden.

jhbuild build [--autogen] [--clean] [--check] [--dist] [--distcheck] [--distclean] [--ignore-suggests] [--no-network] [--skip=modul...] [--start-at=modul] [--tags=taggar] [-D datum] [--no-xvfb] [--try-checkout] [--no-poison] [--force] [--build-optional-modules] [--min-age=tid] [--nodeps] [modul...]

Om inga modulnamn anges på kommandoraden kommer listan moduler från konfigurationsfilen att användas.

-a, --autogen

Kör alltid autogen.sh innan du bygger moduler.

-c, --clean

Kör make clean innan du bygger moduler.

--check

Kör make check efter moduler har byggts.

-d, --dist

Kör make dist efter moduler har byggts.

--distcheck

Kör make distcheck efter moduler har byggts.

--distclean

För git-moduler, kör git clean -dfx innan du bygger modulerna. För andra moduler, kör make distclean innan du bygger modulerna.

Denna flagga kommer att ta bort alla ändringar som inte checkats in.

--ignore-suggests

Bygg inte mjuka beroenden.

-n, --no-network

Använd inte nätverket när moduler byggs. Detta kommer att hoppa över hämtning eller uppdateringsstegen i ett bygge. Om en modul inte kan byggas utan nätverksåtkomst kommer bygget av modulen att misslyckas.

-s, --skip=modul,…

Bygg inte de listade modulerna. Används för att hoppa över att bygga specifika beroenden.

--tags=tagg,…

Ignorera moduler som inte matchar tagg. Moduler får automatiskt en tagg som matchar namnet på modulens moduluppsättning.

-t, --start-at=modul

Börja med den namngivna modulen snarare än i början av listan. Denna flagga är användbar om bygget avbröts.

-D datum

Om det stöd av det underliggande versionshanteringssystemet, uppdatera källkodsträdet till det angivna datumet innan bygget startar. ISO-datumformat krävs, t.ex. "2009-09-18 02:32Z".

-x, --no-xvfb

Kör grafiska tester på den riktiga X-servern snarare än i en simulerad Xvfb.

-C, --try-checkout

Om bygget misslyckas och om det stöds av versionshanteringssystemet, tvinga en utcheckning och kör autogen.sh innan du försöker bygga igen.

-N, --no-poison

Om en eller flera av en moduls beroenden misslyckas, tvingar denna flagga JHBuild att försöka bygga modulen ändå.

-f, --force

Bygg modulerna även om policyn säger att det inte krävs.

--build-optional-modules

Moduler listade som valfria beroenden, kanske inte behövs för att bygga modulen. Denna flagga tvingar JHBuild att bygga valfria beroenden.

--min-age=tid

Hoppa över moduler som installerats senare än det angivna relativa datumet. Strängformatet för tid är ett antal åtföljt av en enhet. Följande enheter stöds: sekunder (s), minuter (m), timmar (h) och dagar (d). Till exempel kommer --min-age=2h att hoppa över moduler som byggts de senaste två timmarna.

--nodeps

Hoppa över saknade systemberoenden. För att ignorera ett enstaka systemberoende lägg till modulen i skip.

5.4. make

Kommandot make används för att aktivt utveckla i en viss modul. Det kräver att den aktuella katalogen innehåller utcheckad källkod och gör detsamma som buildone -nf $(basename $(pwd)).

jhbuild make [--clean] [--check] [--distcheck] [--quiet]

Flaggorna är de samma som de som finns tillgängliga för kommandot buildone.

5.5. buildone

Kommandot buildone liknar build men det bygger inte modulberoenden. Det är användbart för att bygga om en eller flera moduler.

jhbuild buildone [--autogen] [--clean] [--check] [--distcheck] [--distclean] [--no-network] [-D datum] [--no-xvfb] [--force] [--min-age=tid] [--nodeps] modul...

Flaggorna --autogen, --check, --clean, -d, --distcheck, --distclean, --no-network, -D, -x och --nodeps behandlas på samma sätt som för kommandot build.

Åtminstone en modul måste listas på kommandoraden.

5.6. checkbranches

checkbranches kontrollerar att modulens grenar är korrekt definierade i versionshanteringssystemet och att grenarna stämmer överens med moduluppsättningen.

jhbuild checkbranches [--branch=gren...]
--branch=gren, -b gren

Grenen som ska kontrolleras.

$ jhbuild -m gnome-2.20 checkbranches
libgnomecanvas saknar grendefinition för gnome-2-20
$

5.7. clean

Kommandot clean tömmer byggkatalogerna för en eller flera moduler.

jhbuild clean [--skip=modul...] [--start-at=modul]

Om inga modulnamn anges på kommandoraden kommer listan moduler från konfigurationsfilen att användas.

Se kommandodokumentationen för build för en beskrivning över tillgängliga flaggor.

5.8. dot

Kommandot dot genererar en fil som beskriver den riktade grafen över beroenden mellan en uppsättning av moduler. Denna fil kan sedan behandlas av programvaran GraphViz för att producera ett diagram.

jhbuild dot [--soft-deps] [--clusters] [modul...]

Om inga modulnamn anges på kommandoraden kommer listan moduler från konfigurationsfilen att användas.

Flaggan --soft-deps lägger till streckade linjer från modulerna till de mjuka beroendena. Flaggan --clusters grupperar moduler från metamoduler tillsammans.

Utdata från dot-kommandot kan skickas vidare till dot-verktyget för att generera en PostScript-fil:

$ jhbuild dot moduler | dot -Tps > beroenden.ps

Eller en PNG-bild:

$ jhbuild dot moduler | dot -Tpng > beroenden.png
Figur 1Exempelutmatning från JHBuild dot

5.9. gui

Kommandot gui startat ett grafiskt gränssnitt för JHBuild som kan användas för att välja moduler att bygga och ändra ett antal inställningar.

jhbuild gui

Det grafiska gränssnittet renderas med hjälp av GTK så extra stödbibliotek krävs.

5.10. info

Kommandot info visar information om en eller flera moduler.

jhbuild info [--installed] [modul...]

Kommandot visar modulnamnet, typen, beroenden, paket som beror på denna modul, källkodskatalogen och tiden den senast installerades med JHBuild. Om tillgängligt kommer också information specifik för modultypen så som CVS-arkiv eller hämtnings-URL att visas.

Om det inte finns någon modul angiven kommer kommandot att visa information om alla de moduler som finns definierade i moduluppsättningen.

Om flaggan --installed anges kommer utmatningen att filtreras så att den bara inkluderar installerade paket. Denna utmatning kommer endast att innehålla moduler som faktiskt byggts och installerats av jhbuild. Utmatningen inkluderar inte systemberoenden.

Om flaggan --installed angetts tillsammans med ett eller flera modulnamn så kommer bara de installerade modulerna (exklusive systemberoenden) att skrivas ut. Om åtminstone en modul inte är installerad kommer kommandot att avslutas med returvärdet 1.

5.11. list

Kommandot list skriver ut den expanderade listan över moduler som kommandot build hade byggt.

jhbuild list [-a] [-r] [-s] [--start-at=modul] [--tags=taggar] [--ignore-suggests] [--list-optional-modules] [modul...]

Om inga modulnamn anges på kommandoraden kommer listan moduler från konfigurationsfilen att användas.

Flaggorna --skip, --start-at, --tags och --ignore-suggests behandlas på samma sätt som för kommandot build.

-a, --all-modules

Lista alla modulerna från en moduluppsättning oavsett byggberoenden.

-r, --show-revision

Om en modul är inställd på en gren, visa grennamnet med modulnamnet.

--list-optional-modules

Denna flagga tvingar JHBuild att lista valfria beroenden.

5.12. rdepends

Kommandot rdepends visar de omvända beroendena för en modul.

jhbuild rdepends [modul]
--dependencies

Visa beroendesökvägen intill modulerna.

--direct

Begränsa utskriften till moduler som direkt beror på den angivna modulen.

5.13. run

Kommandot run kör det angivna kommandot i samma miljö som JHBuild använder för att bygga moduler.

jhbuild run [--in-builddir] [--in-checkoutdir] program [argument...]

Om JHBuild används för att bygga GNOME kan detta kommando vara användbart i uppstartsskripten för X.

--in-builddir=modul

Kör kommandot i byggkatalogen för den angivna modulen.

--in-checkoutdir=modul

Kör kommandot i källkodskatalogen för den angivna modulen.

5.14. sanitycheck

Kommandot sanitycheck utför ett antal kontroller för att verifiera att byggmiljön är OK.

jhbuild sanitycheck

Dessa kontroller inkluderar:

  • Att utchecknings- och installationsprefixen är skrivbara.

  • Att de byggverktyg som krävs är installerade.

  • Att vissa vanliga makron är tillgängliga i sökvägar för aclocal förknippat med de olika versionerna av automake.

  • XML-katalogen innehåller DocBook DTD och stilmallar.

5.15. shell

Kommandot shell startar användarens skal med samma miljö som JHBuild använder för att bygga moduler.

jhbuild shell

Detta kommando är ekvivalent med följande:

$ jhbuild run $SHELL

Miljövariabeln UNDER_JHBUILD kommer att vara satt till ”true” (sant) när detta skal är aktivt. Du kan använda närvaron av den variabeln för att anpassa ditt skals prompt för att indikera att du faktiskt är i ett jhbuild-kontrollerat skal. Till exempel kan du vilja lägga följande i din .bashrc:

	if [ -n "$UNDER_JHBUILD" ]; then
	    PS1="[jhbuild] $PS1"
	fi
      

Detta kommer att få ditt bash-skal att visa [jhbuild] innan din normala prompt vilket gör det enklare att se vilka skal som körs i en jhbuild-miljö.

5.16. sysdeps

Kommandot sysdeps visar:

  1. en lista över installerade systempaket som kommer att användas under bygget. JHBuild kommer inte att bygga dessa moduler utan väljer att använda systempaketen istället.

  2. en lista över paket som krävs. För att påbörja ett bygge måste paketen tillhandahållas av ditt system.

  3. en lista över valfria paket. Motsvarande systempaket hittades inte eller var för gamla. JHBuild kommer att bygga modulen. Valfria paket kommer inte att visas om partial_build är False (falsk).

jhbuild sysdeps [--install]
--install

Denna flagga installerar systemberoenden som är beroenden från moduluppsättningen. Installationsmetoden beror på din distribution. Systempaket installeras via PackageKit om tillgängligt. För distributioner som använder APT så som Debian och Ubuntu kräver denna flagga att apt-file är installerat.

Exempel 1sysdeps-exempel
$ jhbuild sysdeps
Systeminstallerade paket som är tillräckligt nya:
  speex (speex.pc krävs=1.2rc1, installerat=1.2rc1)
  lcms2 (lcms2.pc krävs=2.2, installerat=2.2)
...
Paket som krävs:
  Systeminstallerade paket som är för gamla:
    (inga)
  Inget matchande systempaket installerat:
    zlib (zlib.pc krävs=1.2)
Valfria paket: (JHBuild kommer att bygga de paket som saknas)
  Systeminstallerade paket som är för gamla:
    WebKit (webkitgtk-3.0.pc krävs=1.5.1, installerat=1.4.0)
    ...
  Inget matchande systempaket installerat:
    pulseaudio (libpulse.pc krävs=2.0)
    ...

5.17. tinderbox

Kommandot tinderbox liknar build men skriver all terminalutmatning till HTML-filer som är lämpliga för publicering på en webbplats. Det kan användas för att ställa in system liknande Mozillas Tinderbox eller Debians Buildd.

jhbuild tinderbox [--autogen] [--clean] [--distclean] [--no-network] [--output=katalog] [--skip=modul...] [--start-at=modul] [-D datum] [-C] [-N] [-f] [--nodeps] [modul...]

Flaggorna --autogen, --clean, --distclean, --no-network, --skip, --start-at, -D, -C, -N, -f och --nodeps behandlas på samma sätt som för kommandot build.

-o, --output=katalog

Katalogen som HTML-filer skrivs till. JHBuild kommer att skapa ett index (index.html) och en HTML-fil för varje modul.

5.18. uninstall

Kommandot uninstall avinstallerar en eller flera moduler.

jhbuild uninstall modul...

5.19. update

Kommandot update liknar build men utför bara hämtnings- eller uppdateringssteget för moduler utan att bygga dem.

jhbuild update [--skip=modul...] [--start-at=modul] [--tags=taggar] [--ignore-suggests] [-D datum] [modul...]

Flaggorna --skip, --start-at, --tags, --ignore-suggests och -D behandlas på samma sätt som för kommandot build.

5.20. updateone

Kommandot updateone liknar update men det uppdaterar inte modulberoenden. Det är användbart för att uppdatera en eller flera moduler.

jhbuild updateone [-D datum] modul...

Flaggan -D behandlas på samma sätt som för kommandot build.

Åtminstone en modul måste listas på kommandoraden.