Tue Jul 4 18:35:41 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, 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 courante, si vous souhaitez la branche stable, remplacez le mot current par stable. Pour le git, vous spécifiez la branche stable au lieu de current lors du clonage de celui-ci

Les étapes

On va:

  1. récupérer les outils.
  2. mettre en place le dossier utilisateur
  3. récupérer les recettes
  4. mettre en place les dossiers pour le script de compilation
  5. récupérer les binaires depuis le serveur de dépot
  6. mettre en place les fichiers de configuration
  7. lancer le script

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

Le dossier git utilisateur à créer

La mise en place d'un serveur de compilation demande beaucoup d'espace disque.

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

Tous les dossiers necessaires pour la compilation se trouvent sous:

/srv/www/
et
/home/tnut/git/

Les recettes se trouvent dans son dossier personnel.

On peut maintenant créer le dossiers necessaire, sous son propre compte:

 mkdir /home/tnut/git

Récupération des ports de "kde5" depuis le projet git

On récupère les ports de kde5 pour la compilation:

git clone -b current https://github.com/NuTyX/kde5.git ~/git/kde5
[Note] Si vous avez choisi de compiler la branche stable, vous devez remplacer "current" par "stable" à la commande ci-dessus:
git clone -b stable https://github.com/NuTyX/kde5.git ~/git/kde5

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

sudo su -

On crée maintenant les dossiers necessaires pour le script, toujours en root:

mkdir -pv \
/srv/www/{x86_64,logs,sources}
mkdir -pv \
/srv/www/x86_64/current/kde5{,-extra}
mkdir -pv \
/srv/www/logs/x86_64/current/kde5

Récupération des collections "base", "cli" et "gui"

Cette commande peut prendre un certain temps si votre connection internet n'est pas très rapide, toujours en root:

[Note] Tapez cette commande à chaque fois que vous souhaitez mettre à jour votre copie des collections binaires base, cli et gui originales
for i in base cli gui
do
  rsync -av --delete rsync://downloads.nutyx.org/nutyx/x86_64/current/$i/ \
  /srv/www/x86_64/current/$i/
done

Le fichier de configuration

Nous devons adapter 1 fichier de configuration, toujours en root:

/etc/fstab à ajouter

cat >> /etc/fstab << EOF
##  KDE5 COLLECTION
### VERSION CURRENT
#### GIT
/home/tnut/git/kde5 /current/kde5/root/kde5 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:

  • La première fois.
  • Quand vous cassez votre chroot et donc par conséquent vos binaires.
  • Quand vous souhaitez revenir sur les collections base, cli et gui originales.
for i in base cli gui
do
  rsync -av --delete rsync://downloads.nutyx.org/nutyx/x86_64/current/$i/ \
  /srv/www/x86_64/current/$i/
done

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, toujours en root:

ROOTMOUNT=/srv/www build-collection /current/kde5