Reproducible buildit

Muista

Seuraavat ohjeet ovat Jamin rakentamiseksi Qt Creatorilla Guix-managed container.

Tämä luo reproducible-ympäristön, jossa Jami-lähdekoodien rakentaminen ja koodaaminen on helppoa.

Jami-projektin checkoutin juuresta, käyttäen uutta Guixia commitilla c087d1d:

guix shell -CFN -E GTK_DATA_PREFIX \
  -E QT_QPA_PLATFORM -E XAUTHORITY \
  -E XCURSOR_PATH -E ^XDG -E WAYLAND_DISPLAY \
  -E TARBALLS --share=$HOME --share=/run --share=/scratch \
  --share=/dev --share=/sys \
  qt-creator qtwayland -m manifest.scm -- qtcreator

Muista

Jos et tarvitse videokameraa (kuten web-kameraa) kontissa, voit poistaa seuraavan rivin:

--share=/dev --share=/sys \

Tärkeä

Huom: bugi Qt Creatorissa, mikä nollaa kitin kääntäjäasetukseksi None, jos sen sijainti on muuttunut (mikä triggeröityy aika helposti, kun käytetään eri Guix-profiileja tai -revisioita).

Poista tai muuta –share=/scratch-sijaintia, johon ”taustaprosessin” daemon contrib-tar-arkistot tallennetaan. Määritä TARBALLS-ympäristömuuttuja seuraavasti:

export TARBALLS=/scratch/cache/jami

Jos haluat käyttää mieluummin ei-kontitettua versiota, aja sen sijaan seuraava:

guix shell --pure -E GTK_DATA_PREFIX \
  -E QT_QPA_PLATFORM -E XAUTHORITY \
  -E XCURSOR_PATH -E ^XDG -E WAYLAND_DISPLAY \
  -E TARBALLS qt-creator qtwayland -m manifest.scm -- qtcreator

Varmista ensin, että ympäristö on puhdas:

git checkout nightly/20260220.0  # there seems to be a QML issue in trunk
./build.py --clean --clean-contribs=all
./build.py --init   # set up the submodules

Avaa sen jälkeen projekti Qt Creatorissa valitsemalla File → Open Project ja valitse CMakeLists.txt-tiedosto Jami-git-checkoutin juuresta.

Paina Configure Project -painiketta ajaaksesi ensimmäisen CMake-ajon ja luodaksesi build-systeemin.

Rakenna rinnakkain (käyttäen useita prosessoriytimiä) paina Build Steps -osion alta Details-painiketta laajentaaksesi Build-toimintoa. Lisää CMake arguments -kenttään argumentti -jN, missä N on prosessoriydinten määrä.

Mikäli buildin kääntäminen onnistuu, Jami voidaan rakentaa ja suorittaa Qt Creatorissa, profiloida Valgrindilla tai suorittaa vaiheittain suoraan Qt Creator -kehitysympäristöstä.