Outils pour utilisateurs

Outils du site


public:construire_setup_txm

Construire un setup TXM

Pre-requis

-~=# ÊTRE SUR UBUNTU 64BIT #=~-

Projets à avoir importés :

  • org.eclipse.equinox.p2.rcp.feature
  • org.eclipse.equinox.p2.user.ui-feature
  • org.eclipse.rcp-feature
  • org.txm.rcp.feature
  • org.txm.setups
  • groovy-all
  • jfreechart
  • org.eclipse.equinox.p2.ui
  • org.eclipse.ui.workbench
  • org.txm.rcp
  • org.txm.toolbox

plugins Eclipse : Delta pack + babel modifié pour TXM (tous les plugins non utilisés ont été retiré)

Récupérer les fichiers non-versionnés

Les fichiers non-versionnés sont principalement des fichiers binaires que l'on ne pas pas SVNé tel quel :

  • l'environnement R de setups Windows
    1. récupérer une installation R d'un Windows qui contient tous les packages dont TXM a besoin (Rserve, textometry, FactoMineR, wordcloud…)
    2. copier le répertoire R dans shared/win/R
  • l'environnement NSIS 2.5 de création de setup Windows
    1. télécharger et installer l'environnement
    2. installer le plugin AccessControl : http://nsis.sourceforge.net/AccessControl_plug-in
    3. copier le contenu du répertoire d'installation dans le répertoire “nsis”
  • JREs
    1. récupérer les archives des JREs pour TXM depuis le disque partagé dans le répertoire smb://ensldfs.ens-lyon.fr/services/Laboratoires/labo_ana_corpus/Projets/Textométrie/Logiciels/JVM/pour%20TXM
    2. mettre à jour le script “extractJREToSetups.sh”
    3. exécuter le script qui va extraire les archives dans les bons répertoires pour chaque setups TXM

Générer le binaire Java

  • Aller dans le dossier “trunk” du projet “org.txm.setups”
  • Effacer les builds précédents avec la commande “./deleteTxmBuilds”
  • Depuis le product de org.txm.rcp, onglet “configuration”, lancer la génération à partir du bouton “Exporter”
  • Dans la fenêtre modifié :
    • Le nom de l'application (“eclipse” par défaut) à “TXM”
    • Le chemin d'export doit être celui du dossier “exportRCP” du projet “org.txm.setups”
Bug déjà rencontré : si cliquer sur le bouton “Terminer” du Wizard d'export ne déclenche pas l'export, il peut s'agir d'un bug causé par le fait que la liste déroulante “Exporter la source” n'est pas de valeur sélectionnée. Il faut coché l'option, choisir une valeur, puis décocher l'option

Version SVN

La version des setups est composée d'une partie “qualifier” par défaut Eclipse génère un qualifier en utilisant la date: 202004091027 (2020/04/09 10h27).

Pour faciliter le suivi et être sûr de l'état du code, on peut remplacer la date par le numéro de révision SVN.

Pour cela, pour chaque projet, on récupère le numéro de révision le plus récent.

Eclipse ne fait pas cela nativement, il faut donc patcher le plugin PDE qui s'en charge (org.eclipse.equinox.pde.build) et plus particulièrement la classe chargée de remplacer le “qualifier” dans le numéro de version : org.eclipse.pde.internal.build.site.QualifierReplacer.

Pour cela, on utilise la commande svnversion de subversion (pour l'instant, il faut avoir installé subversion).

Le numéro SVN permet aussi de s'assurer que tous les builds (Windows, Linux et Mac OS X) correspondent bien au même état SVN.

Problème au 09/04/2020 : Pour une raison que l'on ignore, le build Eclipse se génère correctement avec les bon numéros SVN ; mais les mises à jour ne fonctionnent plus. La mise à jour s'interrompt au premier plugin TXM rencontré et n'autorise pas le remplacement de la version N par la version N+1. Restaurer le qualifier par défaut d'Eclipse règle le problème.

Générer un setup par OS

Réglage de la version et de l'étape

Le fichier VERSION contient la version du setup de TXM à produire. Par exemple :

0.7.7

Le fichier STEP contient l'étape courante de la procédure de publication d'une version : DEV, ALPHA, BETA, STABLE. Par exemple :

ALPHA

Pour propager la nouvelle version dans les fichiers de descriptions des setups, les scripts BuildXYZ.sh remplacent les chaines TXMVERSION et TXMFULLVERSION dans les fichiers concernés (fichiers debian, nsis Windows…)

Traduire les messages des setups

Les messages de chaque langue sont contenus dans les fichiers :

  • SetupMessages_en.properties
  • SetupMessages_fr.properties

Ils sont recopiés dans les fichiers de langue spécifiques aux setups à l'aide du script Groovy “$org.txm.toolbox/src/groovy/org/txm/setup/MessagesToArchMessages.groovy” :

  • Windows :
    • archs/win/32bit/txm.nsi
    • arch/win/64bit/txm.nsi
  • Linux :
    • shared/debian/DEBIAN/templates
    • shared/debian/DEBIAN/templates_fr
    • shared/debian/DEBIAN/templates_en
  • MacOSX :
    • shared/mac/finish_en.txt
    • shared/mac/finish_fr.txt
    • shared/mac/intro_en.txt
    • shared/mac/intro_fr.txt
    • shared/mac/readme_en.txt
    • shared/mac/readme_fr.txt
    • shared/mac/rlibs_en.txt
    • shared/mac/rlibs_fr.txt

Mettre à jour le message de contribution à TXM

Le message de référence se trouve ici https://groupes.renater.fr/wiki/txm-users/public/contribuer, il faut le mettre à jour :

  • Dans les fichiers SVN des setups :
    • $SETUPSPROJECT/shared/debian/DEBIAN/templates
      • in the “showwelcome” template
    • $SETUPSPROJECT/shared/mac/readme_en.txt et $SETUPSPROJECT/shared/mac/readme_fr.txt
    • $SETUPSPROJECT/arch/win/32bit/txm.nsi and $SETUPSPROJECT/arch/win/64bit/txm.nsi, lines :
      • LangString WelcomeTextMessage ${LANG_ENGLISH}
      • LangString WelcomeTextMessage ${LANG_FRENCH}
  • Dans le readme du setup courant de SF

Préparer les messages d'annonces

Scripts de création des setups

Dans un terminal :

  • Aller dans le dossier “trunk” du projet “org.txm.setups”
  • Construire tous les setups d'un coup avec buildAll.sh
  • Ou pour chaque OS faire :
    • getSharedFiles.sh : met à jour les fichiers “shared” à partir des fichiers du projet “org.txm.toolbox”, de la documentation du SVN, …
    • et construire le setup avec Win32.sh win64.sh Linux32.sh Linux64.sh MacOSX.sh
  • A la fin de chaque build une copie du setup est faite sur le serveur partagé
    Projets/Textométrie/Logiciel/TXM/$STEP

    si la commande est suivi de l'argument “dev”, “alpha”, “beta” ou “stable”.

Note: Pour Mac OS X,

  • le setup doit être finalisé sous Mac, le script MacOSX.sh ne construit qu'une archive qui contient un projet de package Mac prêt à être exécuter pour finaliser la création du setup.
  • la jre doit être copié aussi depuis MacOSX (je n'ai pas encore compris pourquoi cette opération doit être faite depuis le MacOSX pour que la jre fonctionne)

Construire un package flat Mac OS X

Depuis Mac OS X avec le package builder

Configuration du fichier pmdoc

Le package contient 2 composants :

  • Applications : copie le dossier “TXM” dans /Applications
    • Ce composant contient 2 fichiers .app, il faut décocher “allow relocate” pour que ces fichiers soient copiés
  • lib : copie les librairies dynamiques dans /opt/local/lib

Les messages des différents écrans sont stockés dans les fichiers : finish_en, finish_fr, intro_en, intro_fr, readme_en, readme_fr, rlibs_en et rlibs_fr

Les fichiers INSTALL et CLEAN qui se trouvent dans le projets de setups : org.txm.setups/trunk/shared/mac sont les équivalent des fichiers postinst et preinst des setups Linux (paquets Debian) :

  • CLEAN est appelé avant l'installation :
    • il supprime le dossier /Applications/TXM
    • sauvegarde les préférences qui se trouvent dans $HOME/.txm
    • il supprime le dossier $HOME/.txm
  • INSTALL :
    • Test si Java est installé.
      • si oui, rien
      • si non, le test provoque l'ouverture de la fenêtre d'installation de Java
    • Retire l'éventuel “try(library(textometrieR))” introduit par TXM 0.6 mais qui n'est plus utile
    • test si R est déjà installé
      • si oui, test que la version est assez élevée
        • si oui, rien
        • si non, installe R
      • si non, installe R
    • Règle quelques droits de fichiers
    • demande à l'utilisateur si il veut installer les librairies R
      • La demande se fait à l'aide d'un jar qui est appelé
    • Vérifie que le dossier /opt/local/lib existe bien. Ce dossier doit contenir les librairies dynamiques utilisée pour cqplib

Fichiers à copier avant le build

  • Java : dans le dossier Applications/TXM/TXM/jre
    • doit contenir le dossier “Contents”
  • R : R-X.Y.Z.pkg installer dans le dossier Applications/TXM/R
  • A l'ouverture du fichier pmdoc, il faut décocher “allow relocation” des 2 fichiers app de l'onglet “Contents” du paquet “Application”

Depuis Linux

Pour l'instant, nous passons par le package builder de Mac OS X 10.6, mais on pourrait s'en passer en suivant ce tutoriel : http://hogliux.github.io/bomutils/tutorial.html

Construire un paquet Debian

Un paquet Debian est une archive zip structurée. La documentation se trouve ici :

fichier 'control'

Le champ 'Description' peut être sur plusieurs lignes. la syntaxe de son contenu est plus ou moins interprétée en fonction du logiciel qui installe le paquet. Par exemple, les puces “ * ” sont interprétées par la logithèque Ubuntu mais pas par gdebi-gtk.

une ligne (après la 1ere ligne doit commencer par un blanc, si l'on veut afficher une ligne vide il faut alors mettre “ .”

Pas besoin de ligne vide pour finir le champ Description

Exemple de description avec liste à puce :

Description: première ligne
 deuxième ligne
 .
 * première puce
 * deuxième puce
   * 1ere sous-puce
   * 2eme sous-puce
 * troisième puce

fichier 'templates'

Les listes à puces ne sont pas interprétées avec debconf (fenêtre GTK)

public/construire_setup_txm.txt · Dernière modification : 10/04/2020 11:55 de matthieu.decorde@ens-lyon.fr