Mon Feb 6 08:27:28 2017 UTC

Mise en place d'un serveur de compilation

Introduction

[Important][Important][Important][Important] Cet article s'adresse à un public qui maîtrise parfaitement sa NuTyX et la construction de binaires.
[Note] Dans cet article, le dossier utilisateur est /home/tnut, vous devez le remplacer avec votre dossier personnel.
[Note] Dans cet article, on utilise une machine 64 bits, si vous êtes sur une machine 32 bits, vous remplacez dans chaque commande concernée le terme x86_64 par i686.
[Note] Dans cet article, on choisit la collection kde5, si vous souhaitez compiler mate, enlightenment, lxde, gnome ou xfce4, vous remplacez dans chaque commande concernée le mot kde5 par la collection précitée de votre choix.
[Note] Dans cet article, on choisit de compiler sur la branche de développement, cad le git master, si vous souhaitez la branche stable, remplacez le mot development par stable. Pour le git, vous spécifiez la branche stable lors du clonage de celui-ci

Les étapes

On va:

  1. récupérer les outils.
  2. mettre en place les dossiers
  3. récupérer les binaires depuis le serveur de dépot
  4. récupérer les recettes
  5. mettre en place les fichiers de configuration
  6. lancer les services necessaires

Mise en place

Les outils (paquets à installer)

On part du principe que votre NuTyX est vierge de tout paquet de dévelopement. On commence donc par installer les utilitaires:

get rsync git

Les dossiers à créer

La mise en place d'un serveur de compilation demande beaucoup d'espace disque. Dans l'explication, une partition dédiée est utilisée, cette partition est montée sur le dossier personnel de l'utilisateur.

Il faut prévoir un bon 40 Gb pour être tranquille.

Tous les dossiers necessaires se trouvent donc dans:

/home/tnut/NuTyX

On peut maintenant créer les dossiers necessaires, la bonne commande peut créer tous les dossiers:

mkdir -pv \
~/NuTyX/{remote/x86_64,local/logs/x86_64/development/kde5,git/development,sources,chroot/development}
sudo ln -sv /home/tnut/NuTyX/chroot/development /development

Récupération d'une copie des binaires

C'est l'opération la plus longue donc on ouvre un nouveau terminal pour pouvoir continuer pendant que celle-ci se déroule. Cela étant fait, dans ce nouveau terminal on tape:

Cette commande peut prendre un certain temps si votre connection internet n'est pas très rapide.

[Note] Tapez cette commande à chaque fois que vous souhaitez mettre à jour votre copie des binaires originaux
rsync -av --delete rsync://downloads.nutyx.org/nutyx/x86_64/development/ \
/home/tnut/NuTyX/remote/x86_64/development/

Récupération des ports

De retour dans le premier terminal pour récupérer les ports pour la compilation:

git clone git://github.com/NuTyX/core.git ~/NuTyX/git/development/core
git clone git://github.com/NuTyX/kde5.git ~/NuTyX/git/development/kde5
[Note] Si vous avez choisi de compiler la branche stable, vous devez ajouter l'option -b stable à la commande ci-dessus:
git clone git://github.com/NuTyX/kde5.git -b stable ~/NuTyX/git/stable/kde5

A partir de maintenant, tout le reste des manipulations se fait dans le compte root:

su -

Le fichier de configuration

Nous devons adapter 1 fichier de configuration:

/etc/fstab à ajouter

cat >> /etc/fstab << EOF
##  KDE5 COLLECTION
### DEVELOPMENT
#### SOURCES
/home/tnut/NuTyX/sources /development/kde5/sources none noauto,bind

#### PORTS
/home/tnut/NuTyX/git/development/kde5 /development/kde5/root/kde5 none noauto,bind

#### BINAIRES
/home/tnut/NuTyX/local/x86_64/development /development/kde5/DEPOT none noauto,bind

#### LOGS
/home/tnut/NuTyX/local/logs/x86_64/development/kde5 /development/kde5/LOGS none noauto,bind
EOF

Finalisation et manipulations à reproduire

Vous êtes enfin prêt pour travailler avec le script de compilation. La commande ci-dessous est à reproduire dans 3 cas:

  1. La première fois
  2. Quand vous cassez votre votre chroot et donc par conséquent vos binaires
  3. Quand vous souhaitez revenir sur les binaires originaux
rsync -av --delete  /home/tnut/NuTyX/remote/x86_64/ /home/tnut/NuTyX/local/x86_64/

Lancement du script

Si vous avez bien suivi ce tutoriel, vous pouvez maintenant lancer la compilation de l'ensemble des ports kde5 et kde5-extra.

build-collection /development/kde5