Ξεκινώντας

Το JHBuild απαιτεί μερικές ρυθμίσεις προτού ξεκινήσει η δόμηση λογισμικού. Απαιτεί επίσης κάποιο προαπαιτούμενο λογισμικό, και είναι αναγκαίο να εγκατασταθούν τα προαπαιτούμενα αναγκαία εργαλεία για τη λήψη και τη δόμηση αρθρωμάτων λογισμικού.

2.1. Εγκαθιστώντας το JHBuild

Το JHBuild απαιτεί την Python. Επιβεβαιώστε ότι η Python >= 2.3 είναι εγκατεστημένη.

Ο συνιστώμενος τρόπος για τη λήψη του JHBuild είναι με το σύστημα ελέγχου εκδόσεων (VCS) git. Αυτό μπορεί να επιτευχθεί με την εντολή που ακολουθεί. Συνιστάται να εκτελέσετε την εντολή από ένα νέο φάκελο, όπου θα εγκατασταθεί όλος ο πηγαίος κώδικας, για παράδειγμα ~/jhbuild/checkout.

$ git clone https://gitlab.gnome.org/GNOME/jhbuild.git
...
$

Η κήψη του JHBuild θα γίνει σε ένα νέο φάκελο που ονομάζεται jhbuild μέσα στον τρέχοντα φάκελο. Τώρα για να δομήσετε και να εγκαταστήσετε το JHBuild:

$ cd jhbuild
$ ./autogen.sh
...
$ make
...
$ make install
...
$

Αν τα gnome-common, yelp-tools και autotools είναι διαθέσιμα, το autogen.sh θα ρυθμίσει το JHBuild να εγκατασταθεί μέσα από autotools. Αν τα gnome-common, yelp-tools και autotools δεν είναι διαθέσιμα, το autogen.sh θα ρυθμίσει το JHBuild να εγκατασταθεί μέσα από ένα απλό Makefile. Για να χρησιμοποιείτε πάντα τη μέθοδο απλού Makefile εισάγετε το --simple-install στο autogen.sh.

Αν τα πιο πάνω βήματα ολοκληρωθούν επιτυχώς, ένα μικρό script κελύφους θα εγκατασταθεί στο ~/.local/bin το οποίο θα εκκινεί το JHBuild. Προσθέστε το ~/.local/bin στο PATH:

$ PATH=$PATH:~/.local/bin
$

Για να προσθέσετε μόνιμα το ~/.local/bin στη μεταβλητή PATH, εκτελέστε την ακόλουθη εντολή:

$ echo 'PATH=$PATH:~/.local/bin' >> ~/.bashrc
$

2.2. Ρυθμίζοντας το JHBuild

Το JHBuild μπορεί να ρυθμιστεί μέσω ενός αρχείου ρυθμίσεων. Η προεπιλεγμένη θέση είναι ~/.config/jhbuildrc. Αν δεν υπάρχει αρχείο ρυθμίσεων, χρησιμοποιούνται οι προεπιλογές. Το αρχείο ρυθμίσεων χρησιμοποιεί σύνταξη Python. Δίνεται ένα παράδειγμα, δείτε examples/sample.jhbuildrc. Αντιγράψτε το examples/sample.jhbuildrc στο ~/.config/jhbuildrc και προσαρμόστε το όπως απαιτείται.

Οι δειγματικές ρυθμίσεις θα κάνουν το JHBuild να δομήσει τα αρθρώματα meta-gnome-core και meta-gnome-apps-tested και τις εξαρτήσεις του από την ομάδα αρθρωμάτων gnome-apps. Το JHBuild θα ξεπακετάρει τα πηγαία δένδρα στο ~/jhbuild/checkout/ και θα εγκαταστήσει όλα τα αρχεία σε υποκαταλόγους του ~/jhbuild/install/. Οι δύο αυτοί κατάλογοι πρέπει να είναι εγγράψιμοι.

Οι μεταβλητές ρυθμίσεων τεκμηριώνονται στο Ενότητα 6 ― Αναφορά αρχείου ρυθμίσεων. Οι πιο κοινά χρησιμοποιούμενες μεταβλητές είναι:

repos

Ένα λεξικό το οποίο μπορεί να χρησιμοποιηθεί για να οριστεί μια εναλλακτική τοποθεσία αποθετηρίου για ένα συγκεκριμένο αποθετήριο. Αυτή η μεταβλητή παραμετροποίησης είναι χρήσιμη σε έναν προγραμματιστή αρθρωμάτων. Από προεπιλογή, το JHBuild θα κατεβάσει τον κώδικα από αποθετήρια χρησιμοποιώντας μια ανώνυμη τοποθεσία αποθετηρίου. Τα κλειδιά του λεξικού είναι σύντομα ονόματα αποθετηρίων και οι αξίες τους είναι strings εναλλακτικών τοποθεσιών αποθετηρίων. Για παράδειγμα:

repos['git.gnome.org'] = 'ssh://όνομα χρήστη@git.gnome.org/git/'
moduleset

Μια συμβολοσειρά ή λίστα συμβολοσειρών που καθορίζουν το όνομα ή ονόματα του σετ ή των σετ αρθρωμάτων που θα χρησιμοποιηθούν. Αυτά μπορεί να είναι είτε το όνομα μιας ομάδας αρθρωμάτων που περιλαμβάνεται με το JHBuild (χωρίς τη διαδρομή και την επέκταση αρχείου), είτε μια πλήρες HTTP URL προς μια εξωτερικά διαχειριζόμενη ομάδα αρθρωμάτων. Οι ομάδες αρθρωμάτων HTTP URL αποθηκεύονται προσωρινά τοπικά. Αν ένα άρθρωμα με το ίδιο όνομα υπάρχει σε περισσότερες από μία ομάδες αρθρωμάτων, η τελευταία ομάδα στη λίστα έχει την προτεραιότητα. Οι ομάδες αρθρωμάτων που παρέχονται με το JHBuild ενημερώνονται για να ταιριάζουν με την τρέχουσα έκδοση ανάπτυξης του GNOME.

modules

Μια λίστα συμβολοσειρές που καθορίζουν τα αρθρώματα που θα δομηθούν. Η λίστα αρθρωμάτων που πραγματικά θα δομηθούν θα επεκταθεί κυκλικά ώστε να συμπεριλαμβάνει όλες τις εξαρτήσεις, εκτός και αν χρησιμοποιηθεί η εντολή buildone. Η προεπιλογή είναι ['meta-gnome-desktop'].

checkoutroot

A string specifying the directory to unpack source trees to. If buildroot is set to None, builds will occur in this directory too. Defaults to ~/jhbuild/checkout.

prefix

Μια συμβολοσειρά καθορίζει το πρόθεμα στο οποίο θα εγκατασταθούν τα αρθρώματα. Το prefix πρέπει να είναι απόλυτη διαδρομή. Αυτός ο κατάλογος πρέπει να είναι εγγράψιμος. Η προεπιλογή είναι ~/jhbuild/install/'.

autogenargs

Μια συμβολοσειρά που περιέχει ορίσματα τα οποία περνούν στη δέσμη ενεργειών autogen.sh όλων των αρθρωμάτων. Μπορεί να παρακαμφθεί για συγκεκριμένα αρθρώματα χρησιμοποιώντας το λεξικό module_autogenargs.

cmakeargs

A string containing arguments passed to the cmake invocation of all modules. Can be overridden for particular modules using the module_cmakeargs dictionary.

makeargs

Μια συμβολοσειρά με επιπρόσθετα ορίσματα που θα περαστούν στο make. Το JHBuild θα προσαρτήσει αυτόματα την επιλογή της παράλληλης εκτέλεσης (-j) με βάση τους διαθέσιμους πυρήνες CPU. Η προεπιλογή είναι ''.

mesonargs

A string containing arguments passed to the meson invocation of all modules. Can be overridden for particular modules using the module_mesonargs dictionary.

ninjaargs

A string listing additional arguments to be passed to ninja. Defaults to ''.

2.3. Προαπαιτούμενα για τη δόμηση

Προτού τη δόμηση οποιωνδήποτε αρθρωμάτων, είναι αναγκαίο να είναι εγκατεστημένα κάποια εργαλεία δόμησης. Τα κοινά εργαλεία δόμησης περιλαμβάνουν τα GNU Autotools (autoconf, automake, libtool και gettext). Τα GNU Toolchain (binutils, gcc, g++), make, το pkg-config και την Python, ανάλογα με το ποια αρθρώματα θα δομηθούν.

Το JHBuild μπορεί να ελέγξει αν είναι εγκατεστημένα αυτά τα εργαλεία με τη χρήση της εντολής sanitycheck:

$ jhbuild sanitycheck

Αν αυτή η εντολή εμφανίσει οποιοδήποτε μήνυμα, παρακαλώ εγκαταστήστε το απαιτούμενο πακέτο από το αποθετήριο της διανομής σας. Μια λίστα από ονόματα πακέτων για διαφορετικές διανομές διατηρείται στην ιστοσελίδα wiki του GNOME. Εκτελέστε την εντολή sanitycheck ξανά μετά την εγκατάσταση των πακέτων της διανομής για να βεβαιωθείτε ότι τα απαιτούμενα εργαλεία είναι παρόντα.

2.4. Χρησιμοποιώντας το JHBuild

Αφού έχει ολοκληρωθεί η εγκατάσταση, το JHBuild θα μπορεί να χρησιμοποιηθεί για τη δόμηση λογισμικού. Για να δομήσετε όλα τα αρθρώματα που είναι επιλεγμένα στο αρχείο ~/.config/jhbuildrc, εκτελέστε την ακόλουθη εντολή:

$ jhbuild build

Το JHBuild θα κατεβάσει, θα ρυθμίσει, θα μεταγλωττίσει και θα εγκαταστήσει κάθε ένα από τα αρθρώματα. Αν συμβεί κάποιο σφάλμα σε οποιοδήποτε στάδιο, το JHBuild θα παρουσιάσει ένα μενού και θα σας ρωτήσει τι να κάνει. Οι επιλογές περιλαμβάνουν τη μετάβαση σε ένα κέλυφος για να διορθώσετε το σφάλμα, την εκτέλεση της δόμησης ξανά από διάφορα στάδια, την παράλειψη ενός αρθρώματος, ή την παράληψη του σφάλματος και τη συνέχεια.

Η παράβλεψη ενός αρθρώματος θα οδηγήσει στην αποτυχία και όσων αρθρωμάτων εξαρτώνται από αυτό.

Ακολουθεί ένα παράδειγμα του μενού που εμφανίζεται:

  [1] Επανάληψη φάσης δόμησης
  [2] Παράβλεψη σφάλματος και συνέχεια εγκατάστασης
  [3] Παράβλεψη αρθρώματος
  [4] Εκκίνηση κελύφους
  [5] Επαναφόρτωση ρύθμισης
  [6] Μετάβαση στη φάση "απάλειψη φακέλου και εκκίνηση από την αρχή"
  [7] Μετάβαση στη φάση "ρύθμιση"
  [8] Μετάβαση στη φάση "εκκαθάριση"
  [9] Μετάβαση στη φάση "distclean"
choice: 

Είναι επίσης δυνατό το κτίσιμο μιας διαφορετικής ομάδας αρθρωμάτων και των εξαρτήσεων τους περνώντας τα ονόματα των αρθρωμάτων στην εντολή build. Για παράδειγμα, για να δομήσετε το gtk+:

$ jhbuild build gtk+

Αν το JHBuild ακυρωθεί κατά τη διάρκεια μιας δόμησης, είναι δυνατή η συνέχιση της δόμησης ενός συγκεκριμένου αρθρώματος με χρήση της επιλογής --start-at:

$ jhbuild build --start-at=pango

Για να δομήσετε ένα ή περισσότερα αρθρώματα, αγνοώντας τις εξαρτήσεις τους, το JHBuild παρέχει την εντολή buildone. Για να ολοκληρωθεί με επιτυχία η εντολή buildone, όλες οι εξαρτήσεις πρέπει να έχουν δομηθεί και εγκατασταθεί από πριν, ή να παρέχονται από πακέτα της διανομής.

$ jhbuild buildone gtk+

Όταν αναπτύσσεται ενεργά ένα άρθρωμα, είσαστε πιθανόν σε έναν πηγαίο κατάλογο εργασίας. Η make θα καλέσει το σύστημα δόμησης και εγκατάστασης του αρθρώματος. Αυτό θα είναι ένα βασικό μέρος του κύκλου επεξεργασία-μεταγλώττιση-εγκατάσταση-δοκιμή.

$ jhbuild make

Για να λάβετε μια λίστα με τα αρθρώματα και τις εξαρτήσεις που θα δομήσει το JHBuild, και τη σειρά με την οποία θα δομηθούν, χρησιμοποιήστε την εντολή list:

$ jhbuild list

Για να λάβετε πληροφορίες για ένα συγκεκριμένο άρθρωμα, χρησιμοποιήστε την εντολή info:

$ jhbuild info gtk+

Για να κατεβάσετε ή να ενημερώσετε όλες τις πηγές λογισμικού χωρίς να δομήσετε, χρησιμοποιήστε την εντολή update. Η εντολή update παρέχει την ευκαιρία να τροποποιήσετε τις πηγές πριν τη δόμηση και μπορεί να είναι χρήσιμη αν ποικίλει το εύρος ζώνης της σύνδεσής σας στο διαδίκτυο.

$ jhbuild update

Αργότερα, το JHBuild θα μπορεί να δομήσει τα πάντα χωρίς τη λήψη ή ενημέρωση πηγών:

$ jhbuild build --no-network

Για την εκτέλεση μιας συγκεκριμένης εντολής με το ίδιο χρησιμοποιούμενο περιβάλλον από το JHBuild, χρησιμοποιήστε την εντολή run:

$ jhbuild run program

Για την έναρξη ενός κελύφους με το ίδιο χρησιμοποιούμενο περιβάλλον από το JHBuild, χρησιμοποιήστε την εντολή shell:

$ jhbuild shell