- Migrer un projet EOLE 2.4 vers Envole 4
- Preparation Envole 4
- Vérifier que le paquet est bien compilé en EOLE 2.4
- Dupliquer la branche de compilation EOLE 2.3 en branche de compilation Envole 4
- Renommer l’étiquette de la dernière compilation EOLE 2.4
- Renommé l’étiquette du dernier paquet EOLE 2.4
- Passer le projet en paquet natif
- Modifier la configuration git-buildpackage
- Préparer l’étiquette de version amont (« upstream » en anglais)
- Compiler un paquet Envole
- Tester un paquet Envole sur un serveur
- Adaptation de l’empaquetage
Migrer un projet EOLE 2.4 vers Envole 4¶
Preparation Envole 4¶
ATTENTION
: Les lignes de commandes suivantes sont faites pour fonctionner facilement au copier/coller, cela ne dispense pas de les lire afin d’essayer de comprendre ce qu’elles font.
user@work:~$ git config user.email moi@example.net
Nous stockons des valeurs dans des variables afin de faciliter les manipulations.
- Répertoire où sont stocker les dépôts GIT de l’utilisateur
user@work:~$ H_SRC="${HOME}/src" user@work:~$ mkdir -p "${H_SRC}"
- Numéro de version du projet Enole
user@work:~$ ENVOLE_VERSION=4
Installation de git-package par clonage¶
Les demandes de compilation des paquets se font entièrement par GIT.
Vous pouvez les faires à la main en créant des étiquettes mais la commande git-package permet de simplifier le travail.
L’installation de l’outil git-package par un clone GIT permet de le mettre à jour par un simple git pull.
Désinstaller le paquet deb s’il est présent¶
- Vérifier la présence du paquet
user@work:~$ dpkg -l git-package
- Le désinstaller s’il est présent.
user@work:~$ sudo apt-get remove git-pakage
Installer git-package¶
ATTENTION
: Utiliser le bon chemin vers le repertoire de stockage du clone de git-package
Suivre la documentation d’installation et configuration.
Paramétrage de git-package¶
Vous pouvez configurer la liste des distributions qui seront utilisées par le complètement automatique Bash :
user@work:~$ git config --global --add package.distribution envole-4/experimental user@work:~$ git config --global --add package.distribution envole-4/unstable user@work:~$ git config --global --add package.distribution eole-2.5/experimental user@work:~$ git config --global --add package.distribution eole-2.5/unstable user@work:~$ git config --global --add package.distribution eole-2.4/experimental user@work:~$ git config --global --add package.distribution eole-2.4/unstable
En sachant que la commande de compilation utilisera la premiere distribution dans le cas où l'option -d|--distrib
de git-package n'est pas spécifiée.
Pour connaître la distribution par défaut :
user@work:~$ git config package.distribution || echo eole-2.5/experimental | head -n 1
Vérifier que le paquet est bien compilé en EOLE 2.4¶
Vous pouvez savoir si un paquet a été compilé pour EOLE 2.4 avec la commande suivante :
user@work:~src/project$ git ls-remote -t origin pkg/eole/eole-2.4/* 11ac580a42785b81b279b6626a0f528680024f5f refs/tags/pkg/eole/eole-2.4/1.9.7e-eole1-1 429d5062f2c07c63d1caa5ab8902ab6c7ed4db4a refs/tags/pkg/eole/eole-2.4/1.9.7e-eole1-1^{} 0f812b21f2f66c7ae6938ac6a0a11a32b3f3fef3 refs/tags/pkg/eole/eole-2.4/1.9.7e-eole1-2 19159bd57ba0234765379cc56d88dffb31c3ef29 refs/tags/pkg/eole/eole-2.4/1.9.7e-eole1-2^{} 7195e46b8c8e03cab9d22dfc742dac5efce50dca refs/tags/pkg/eole/eole-2.4/1.9.7e-eole2-1 53caa5cde42a6e38464262551a66a4b5385efe0b refs/tags/pkg/eole/eole-2.4/1.9.7e-eole2-1^{}
La plupart des préparatifs ont déjà été fait.
Il faut migrer certains éléments pour l’utilisation des dépôts Envole.
ATTENTION
: Assurez-vous que les branches soient bien à jour par rapport aux dépôts sur dev-eole.ac-dijon.fr
.
Dupliquer la branche de compilation EOLE 2.3 en branche de compilation Envole 4¶
user@work:~/src/wordpress (master)$ git checkout -b dist/envole/4/master dist/ubuntu/precise/master user@work:~/src/wordpress (dist/envole/4/master)$ git push -u $(git config branch.master.remote) dist/envole/4/master user@work:~/src/wordpress (dist/envole/4/master=)$
Renommer l’étiquette de la dernière compilation EOLE 2.4¶
Les étiquettes de la forme pkg/*
sont positionnées sur la branche d’empaquetage afin de pouvoir suivre les demandes de compilation.
Déterminer l’étiquette de la dernière compilation EOLE 2.4¶
user@work:~/src/wordpress (dist/envole/4/master=)$ git describe --abbrev=0 dist/ubuntu/precise/master pkg/eole/eole-2.4/3.6.1-eole3-1 user@work:~/src/wordpress (dist/envole/4/master=)$ EOLE_TAG=$(git describe --abbrev=0 dist/ubuntu/precise/master)
Extraire la version¶
user@work:~/src/wordpress (dist/envole/4/master=)$ echo ${EOLE_TAG##*/} 3.6.1-eole3-1 user@work:~/src/wordpress (dist/envole/4/master=)$ VERSION=${EOLE_TAG##*/}
Vérifier le message de l’étiquette¶
Nous allons réutiliser le message de l’étiquette de la dernière compilation EOLE 2.4, la première ligne non vide doit contenir la chaîne New package version
:
user@work:~/src/wordpress (dist/envole/4/master=)$ git show -s --format="format:" ${EOLE_TAG} | perl -lane 'print if (/New package version/ .. /^-+BEGIN/) =~ /^\d+$/' Lionel MORIN: New package version 3.6.1-eole3-1 for eole-2.4-unstable. [...] user@work:~/src/wordpress (dist/envole/4/master=)$ EOLE_MESSAGE=$(git show -s --format="format:" ${EOLE_TAG} | perl -lane 'print if (/New package version/ .. /^-+BEGIN/) =~ /^\d+$/')
Dupliquer l’étiquette de la dernière compilation EOLE 2.4 en première étiquette de compilation Envole¶
- Créer l’étiquette
user@work:~/src/wordpress (dist/envole/4/master=)$ git tag -m "${EOLE_MESSAGE}" pkg/envole/envole-4/${VERSION} ${EOLE_TAG}^{}
- Vérifier le message de l’étiquette
user@work:~/src/wordpress (dist/envole/4/master=)$ git show pkg/envole/envole-4/${VERSION}
Pousser la nouvelle étiquette¶
user@work:~/src/wordpress (dist/envole/4/master=)$ git push --tags
Renommé l’étiquette du dernier paquet EOLE 2.4¶
Une étiquette de la forme debian/*
est créé par l’infrastructure de compilation de paquet afin de gérer automatiquement le fichier debian/changelog
.
Déterminer l’étiquette du dernier paquet EOLE 2.4¶
user@work:~/src/wordpress (dist/envole/4/master=)$ awk -F'=' '/^debian-tag/ {print $2}' debian/gbp.conf | sed -e "s,%(version)s,${VERSION}," debian/eole/2.4/3.6.1-eole3-1 user@work:~/src/wordpress (dist/envole/4/master=)$ EOLE_DEB_TAG=$(echo $(awk -F'=' '/^debian-tag/ {print $2}' debian/gbp.conf | sed -e "s,%(version)s,${VERSION},"))
Récupérer l’étiquette du dernier paquet EOLE 2.4¶
Les étiquettes de la forme debian/*
ne pointe sur aucune branche, ils ne sont utilisés que par l’infrastructure de compilation de paquet et ne sont donc que sur les dépôts dev-eole.ac-dijon.fr
.
Pour récupérer la dernière étiquette de paquet :
user@work:~/src/wordpress (dist/envole/4/master=)$ git fetch $(git config branch.master.remote) refs/tags/${EOLE_DEB_TAG}:refs/tags/${EOLE_DEB_TAG}
Vérifier le message de l’étiquette¶
user@work:~/src/wordpress (dist/envole/4/master=)$ git show -s --format="format:" ${EOLE_DEB_TAG} | perl -lane 'print if (/Debian release/ .. /^-+BEGIN/) =~ /^\d+$/' eole-wordpress Debian release 3.6.1-eole3-1 user@work:~/src/wordpress (dist/envole/4/master=)$ DEB_MESSAGE=$(git show -s --format="format:" ${EOLE_DEB_TAG} | perl -lane 'print if (/Debian release/ .. /^-+BEGIN/) =~ /^\d+$/')
Dupliquer l’étiquette du dernier paquet EOLE 2.4 en première étiquette de paquet Envole¶
user@work:~/src/wordpress (dist/envole/4/master=)$ git tag -m "${DEB_MESSAGE}" debian/envole/4/${VERSION} ${EOLE_DEB_TAG}^{}
On vérifie le message
user@work:~/src/wordpress (dist/envole/4/master)$ git show debian/envole/4/${VERSION}
Pousser la nouvelle étiquette¶
user@work:~/src/wordpress (dist/envole/4/master=)$ git push $(git config branch.master.remote) debian/envole/4/${VERSION}
Passer le projet en paquet natif¶
Pour la gestion des numéros de version de paquet:
user@work:~src/wordpress (dist/envole/4/master=)$ mkdir -p debian/source user@work:~src/wordpress (dist/envole/4/master=)$ cat >| debian/source/format <<EOF 3.0 (native) EOF user@work:~src/etherpad (dist/envole/4/master*=)$ git add debian/source/format user@work:~src/etherpad (dist/envole/4/master+=)$
Modifier la configuration git-buildpackage¶
Il faut modifier modifier le fichier de configuration debian/gbp.conf
afin de modifier le format des étiquettes de suivi des compilations:
user@work:~/src/wordpress (dist/envole/4/master+=)$ sed -i -e 's,^debian-tag.*,debian-tag = debian/envole/4/%(version)s,' debian/gbp.conf user@work:~/src/wordpress (dist/envole/4/master*+=)$ git add debian/gbp.conf user@work:~/src/wordpress (dist/envole/4/master+=)$ git commit -m "Configuration pour l’infrastructure de compilation EOLE * debian/gbp.conf: Définition du format des étiquettes de compilation pour Envole." user@work:~/src/wordpress (dist/envole/4/master>)$
Préparer l’étiquette de version amont (« upstream » en anglais)¶
L’infrastructure de compilation EOLE utilise les étiquettes release/*
pour connaître la version amont et en dériver la verion du paquet.
Nous prenons l’exemple du paquet wordpress mais la procédure est identique pour tous les paquets Envole :
user@work:~src/wordpress (dist/envole/4/master=)$ git checkout master user@work:~src/wordpress (master=)$ git tag -m "New Envole release 4.0" release/<mettre la version réelle de l'application>+1 master
Compiler un paquet Envole¶
Lorsque vous modifier l’empaquetage, il est nécessaire de compiler en premier sur un environnement de compilation personnel.
Vous pouvez avoir une machine virtuelle à disposition
Compiler un paquet expérimental¶
Si vous avez configuré git-package comme indiqué plus haut, vous pouvez vous passer de l’option -d|--distrib
pour compiler un paquet pour la distributionenvole-2.4-experimental
:
user@work:~src/wordpress (master=)$ git package --build dist/envole/4/master
NOTE
: Le dernier argument dist/envole/4/master
est la référence GIT, c’est à dire un identifiant de commit (le SHA1),
un nom d’étiquette ou de branche
ASTUCE
: le complètement automatique Bash et l’outil git-package permet de ne spécifier que le minimum nécessaire afin de trouver la branche d’empaquetage
user@work:~src/wordpress (master=)$ git package --build envole/4<TABULATION>
ou
user@work:~src/wordpress (master=)$ git package --build envole/4<ENTER>
Compiler un paquet de développement¶
Il s’agit de la même procédure mais en spécifiant la distribution envole-4/unstable
par l’option -d|--distrib
de git-package :
user@work:~src/wordpress (master=)$ git package --build --distrib envole-4/unstable envole/4
Tester un paquet Envole sur un serveur¶
Tester un paquet expérimental¶
ATTENTION
: Disponible sur un serveur EOLE à partir de la version 2.4.1 avec le paquet eole-web
Aucun paquet de la distribution envole-4-experimental
ne s’installe automatiquement lors des mises à jour.
Il faut installer manuellement les paquets en spécifiant le numéro de version exacte que l’on souhaite utiliser.
Configurer les dépôts de paquets¶
- Ajouter manuellement le dépôt Envole expérimental (il n’est pas configurable par Query-Auto ou Maj-Auto car il n’est utile que pour les développeurs)
root@scribe:~# cat >| /etc/apt/sources.list.d/envole-4-experimental.list <<EOF deb http://test-eole.ac-dijon.fr/envole envole-4-experimental main EOF
- Configurer les dépôts standards et prendre en compte le dépôt expérimental
root@scribe:~# Query-Auto -V test-eole.ac-dijon.fr
Déterminer la version du paquet compilé¶
root@scribe:~# apt-cache policy eole-wordpress apt: Installé : 3.9.2-eole2~5.gbpb66498 Candidat : 3.9.2-eole2~5.gbpb66498 Table de version : 4.0-1~1.gbpcc1457 0 90 http://eole.ac-dijon.fr/envole envole-4-experimental/main amd64 Packages 3.9.2-eole2~5.gbpb66498 0 500 http://eoleng.ac-dijon.fr/eole eole-2.3-dev/main amd64 Packages *** 3.9.2-eole2~5.gbpb66498 0 100 /var/lib/dpkg/status
Installer le paquet experimental¶
root@scribe:~# apt-get install eole-worpress=4.0-1~1.gbpcc1457 wordpress-apps=4.0-1~1.gbpcc1457
Tester un paquet de développement¶
C'est comme d'habitude
root@scribe:~# Query-Auto -D -V test-eole.ac-dijon.fr root@scribe:~# apt-eole install eole-wordpress wordpress-apps
Adaptation de l’empaquetage¶
Suivre les recommandations du wiki suivant
https://dev-eole.ac-dijon.fr/projects/envole/wiki/MigrationAppliEnvole4