Projet

Général

Profil

PreparationEnvole4 » Historique » Version 9

Version 8 (Daniel Dehennin, 06/02/2015 14:54) → Version 9/26 (Daniel Dehennin, 06/02/2015 14:57)

{{toc}}

h1. Preparation Envole 4

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 quelles font.

Nous stockons des valeurs dans des variables afin de faciliter les manipulations.

<pre>
moi@work:~/src/wordpress (master)$ ENVOLE_VERSION=4
</pre>



h2. S'assurer que git-package n'est pas installé

<pre>
dpkg -l git-package
</pre>

si présent le désinstaller
<pre>
sudo apt-get remove git-pakage
</pre>

h2. Cloner le projet git-pakage

ou le puller si déjà cloné
<pre>
git clone https://afornerot@dev-eole.ac-dijon.fr/git/git-package.git
</pre>

h2. Paramétrage de git-package

Suivre la documentation suivante = https://dev-eole.ac-dijon.fr/projects/git-package/wiki
Bien faire attention dans les commandes ln de mettre le chemin vers le repertoire de stockage du clone de git-package

Pour placer la liste de dépot par défaut sur envole
<pre>
vim ~/.gitconfig
</pre>

et ajouter la section
<pre>
[package]
distribution = envole-4/experimental
distribution = envole-4/unstable
distribution = eole-2.4/experimental
distribution = eole-2.4/unstable
</pre>

En sachant que la commande de compilation utilisera la premiere ligne dans le cas où l'option -d n'est pas spécifiée

h2. Si le projet n’est jamais passé en 2.4

Demander à EOLE qui fasse le nécessaire en terme d'activation de compilation 2.4 sur ce projet.

h3. Créer un tag pour le dernier paquet 2.3

Tagger la branche de compilation 2.3 (la puller avant) pour indiquer le dernier paquet 2.3 en respectant la syntaxe suivante

<pre>
git tag -s -m "Debian package version <version>" pkg/envole/envole-4/<version>
</pre>
<version> = dernier numéro de paquet présent dans le changelog en remplaçant les tild ("~") par des underscore ("_")

*exemple*
<pre>
git checkout dist/ubuntu/lucid/master
git tag -s -m "Debian package 1.0-eole15~3.gbpb922df" pkg/envole/envole-4/1.0-eole15_3.gbpb922df
git push origin pkg/envole/envole-4/1.0-eole15_3.gbpb922df
</pre>

h3. dupliquer la branche de compilation 2.3 en 24

<pre>
git checkout dist/ubuntu/lucid/master
git checkout -b dist/envole/<version majeur envole>/master
</pre>

en ce moment le numéro est 4

h3. Suppression du fichier debian/changelog

<pre>
git rm debian/changelog
git commit -m "Suppression changelog pour builder EOLE"
</pre>

h3. Création du fichier debian/gpb.conf

<pre>
cat > debian/gpb.conf <<EOF
# Set per distribution debian tag
[DEFAULT]
debian-tag = debian/envole/4/%(version)s
EOF

git add debian/gpb.conf
</pre>

h3. Passage du projet en natif

<pre>
mkdir -p debian/source
cat > debian/source/format <<EOF
3.0 (native)
EOF

git add debian/source/format
</pre>

h3. Commit des changements de packaging

<pre>
git commit -m "Configuration pour builder EOLE"
git push -u
</pre>

h3. Tagger la branche master

<pre>
git checkout master
git tag -s -m "New Envole release 4.0" release/4.0
</pre>



h2. Si le projet est déjà compilé pour EOLE 2.4

[[MigrationAppliEnvole4#État-des-lieux-application-par-application|La plupart des préparatifs ont déjà été fait]].

Il faut migrer certains éléments pour l’utilisation des "dépôts Envole":http://eole.ac-dijon.fr/envole.

*@ATTENTION@* : Assurez-vous que les branches soient bien à jour par rapport aux dépôts sur *@dev-eole.ac-dijon.fr@*.

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 quelles font.

Nous stockons des valeurs dans des variables afin de faciliter les manipulations.

h3. Créer la branche de packaging Envole 4

<pre>
moi@work:~/src/wordpress (master)$ git checkout -b dist/envole/4/master dist/ubuntu/precise/master

moi@work:~/src/wordpress (dist/envole/4/master)$ git push -u $(git config branch.master.remote) dist/envole/4/master
</pre>

h3. Renommé le tag de la dernière compilation EOLE 2.4

Un tag de la forme *@pkg/*@* est positionné sur la branche de packaging afin de pouvoir suivre les demandes de compilation.

h4. Déterminer le tag de la dernière compilation EOLE 2.4

<pre>
moi@work:~/src/wordpress (dist/envole/4/master)$ git describe --abbrev=0 dist/ubuntu/precise/master
pkg/eole/eole-2.4/3.6.1-eodist/envole/4/masterle3-1

moi@work:~/src/wordpress ()$ EOLE_TAG=$(git describe --abbrev=0 dist/ubuntu/precise/master)
</pre>

h4. Vérifier le message du tag

Nous allons réutiliser le message du tag de la dernière compilation EOLE 2.4, la première ligne non vide doit contenir la chaîne *@New package version@* :

<pre>
moi@work:~/src/wordpress (dist/envole/4/master)$ git show -s --format="format:" ${EOLE_TAG} | perl -lane 'print if (/New package version/ .. /^-+BEGIN/) =~ /^\d+$/'

moi@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+$/')
</pre>

h4. Dupliquer le tag de la dernière compilation EOLE 2.4 en premier tag de compilation Envole

<pre>
moi@work:~/src/wordpress (dist/envole/4/master)$ git tag -s -m "${EOLE_MESSAGE}" pkg/envole/envole-4/${VERSION} ${EOLE_TAG}^{}
</pre>

On vérifie le message:

<pre>
moi@work:~/src/wordpress (dist/envole/4/master)$ git show pkg/envole/envole-4/${VERSION}
</pre>

h4. Pousser le nouveau tag

<pre>
moi@work:~/src/wordpress (dist/envole/4/master)$ git push $(git config branch.master.remote) pkg/envole/envole-4/${VERSION}
</pre>

h3. Renommé le tag du dernier paquet EOLE 2.4

Un tag de la forme *@debian/*@* est créé par l’infrastructure de compilation de paquet afin de gérer automatiquement le fichier *@debian/changelog@*.

h4. Déterminer le tag du dernier paquet EOLE 2.4

<pre>
moi@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

moi@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},"))
</pre>

h4. Récupérer le tag du dernier paquet EOLE 2.4

Les tag 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 le dernier tag de paquet:

<pre>
moi@work:~/src/wordpress (dist/envole/4/master)$ git fetch $(git config branch.master.remote) refs/tags/${EOLE_DEB_TAG}:refs/tags/${EOLE_DEB_TAG}
</pre>

h4. Vérifier le message du tag

<pre>
moi@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

moi@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+$/')
</pre>

h4. Dupliquer le tag du dernier paquet EOLE 2.4 en premier tag de paquet Envole

<pre>
moi@work:~/src/wordpress (dist/envole/4/master)$ git tag -s -m "${DEB_MESSAGE}" debian/envole/4/${VERSION} ${EOLE_DEB_TAG}^{}
</pre>

On vérifie le message

<pre>
moi@work:~/src/wordpress (dist/envole/4/master)$ git show debian/envole/4/${VERSION}
</pre>

h4. Pousser le nouveau tag

<pre>
moi@work:~/src/wordpress (dist/envole/4/master)$ git push $(git config branch.master.remote) debian/envole/4/${VERSION}
</pre>

h3. Modifier la configuration git-buildpackage

Il faut modifier modifier le fichier de configuration *@debian/gbp.conf@* afin de modifier le format des tags de suivi des compilations:

<pre>
moi@work:~/src/wordpress (dist/envole/4/master)$ sed -i -e 's,^debian-tag.*,debian-tag = debian/envole/4/%(version)s,' debian/gbp.conf
moi@work:~/src/wordpress (dist/envole/4/master)$ git add debian/gbp.conf
moi@work:~/src/wordpress (dist/envole/4/master)$ git commit -m "Configuration pour builder EOLE"
</pre>



h2. Compilation

<pre>
git package -b
</pre>
donc par défaut c'est en expérimental

<pre>
git package -b -d envole-4/unstable
</pre>
pour une compilation en dev

h2. Pour tester un paquet en expérimental

sur environnement de test faire
<pre>
Query-Auto -V test-eole.ac-dijon.fr
</pre>

<pre>
cat > /etc/apt/sources.list.d/envole.list <<EOF
deb http://test-eole.ac-dijon.fr/envole envole-4-experimental main
EOF
</pre>

h2. Installer un paquet expérimental

<pre>
Query-Auto
apt-cache policy "nom du paquet"
</pre>

la commande retourne le numero de version du paquet par dépot
Il faudra faire un apt-get install "nom du paquet"="version du paquet"

exemple
<pre>
apt-get install eole-posh-profil=4.0-1~1.gbpcc1457
</pre>

h2. Installer un paquet non expérimental

C'est comme d'habitude
<pre>
Query-Auto -D -V test-eole.ac-dijon.fr
apt-eole install eole-XXX XXX-apps
</pre>

h2. Adaptation du packaging

Suivre les recommandations du wiki suivant
https://dev-eole.ac-dijon.fr/projects/envole/wiki/MigrationAppliEnvole4