IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Installation avec SVN


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 117
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 117
    Par défaut
    3 jours plus tard...

    Nom : test_fpcpup.jpg
Affichages : 256
Taille : 116,1 Ko
    Légende de l'image :
    • en bleu les dossiers,
    • en vert les fichiers exécutables (binaire, script)
    • en blanc les fichiers texte.


    J'ai donc créé dans /opt un dossier "devel" dans lequel j'ai créé un sous-dossier "pascal", dans lequel j'ai créé trois sous-dossiers : "composants", "fpcup", et "patches". Les autres seront créés automatiquement.

    "composants" et "patches" comme les noms l'indiquent, ne nécessitent pas d'explications, sauf une, pour les patches, qu'il faut passer à la main : je préfère cette méthode qui permet de vérifier que le patch qu'on va appliquer correspond bien à un fichier qui en a besoin (des fois qu'il ait été mis à jour).
    Pour l'heure ça ne concerne (pour moi) que fpreadtiff.pas dans fpc (dont on a parlé ici il y a un an ou deux), et easylazfreetype.pas pour laz, qui sera probablement mis à jour un jour, d'où le contrôle à la mano !

    La grosse partie du boulot se trouve dans le dossier "fpcup" dans lequel on trouve :
    • un binaire recompilé par mes soins suite à microscopiques modifications dans les sources, mais ça m'a bien aidé ;
    • un fichier fpcup.ini n'est n'est pas celui d'origine (que vous sauvegarderez dans un coin, on ne sait jamais) et qui m'a fait souffrir le martyre parce que c'est très mal expliqué et même parfois carrément périmé...
    • un autre fichier d'intialisation "settings.ini" que je n'ai pas eu le courage d'enlever (on ne sait jamais...) mais que je n'ai pas modifié ;
    • et enfin le script "start_fpcup.sh" qui fait le boulot, créé par mes soins et commenté, parce que l'articulation de tout ça est un peu casse-gueule.


    Mais ça m'aura quand même permis de, dans l'ordre :
    1. installer fpc 2.6.0 et laz 1.4.0
    2. upgrader fpc vers 2.6.2
    3. upgrader fpc vers 2.6.4
    4. installer les composants dans laz
    5. upgrader laz vers 1.4.2
    6. upgrader laz vers 1.4.4


    et tout ça en ne faisant qu'une modif (ou deux) à la fois dans le .ini, et une ou même pas dans le script, en fonction de la cible.
    Deux exemples pour illustrer l'idée : upgrader une version se définit dans l'ini, installer les composants de laz plutôt que l'ide se définit dans le script.

    Le seul souci qui reste c'est cette perte du paramètre de langage dans l'IDE de laz après un upgrade... Je ne renonce pas à l'idée de rajouter une ligne ou deux dans le script pour remettre ça d'équerre :-)

    La modif dans les sources de fpcup (c'est bien, c'est écrit en Lazarus ) :
    on trouve, dans le fichier fpcup.lpr, à quatre endroits différents, la ligne writeln('Error : wrong command line options given:'); , ce qui, vous en conviendrez, n'est pas pratique pour savoir ce qui a fait planter et où.
    J'ai donc modifié ces lignes en rajoutant simplement (1) à (4) après le mot "error" et je vous engage à faire de même, ce me fut trop utile ! (lignes 526, 545, 614 et 656).

    Voilà.
    Il ne me reste plus qu'à mettre tout ça en prod dans la vraie vie, ce qui va consister d'abord à supprimer les installations de fpc, fpcsrc et lazarus sur la machine physique, sacrilège !, pour ensuite court-circuiter l'outil d'installation des paquets (autre sacrilège, ) et ça devrait le faire.

    Le seul problème que j'ai rencontré, c'est lors du patch du fichier fpreadtiff.pas : je m'étais noté dans un coin qu'après avoir modifié le fichier il suffisait de taper "make" et ça compilait de nouveaux .o et .ppu mais avec cette nouvelle installation, terminée la simplicité !
    J'ai passé environ deux heures pour trouver toutes les options à rajouter à fpc (oui, au passage j'ai changé de compilo, la structure et les paramètres d'un Makefile me faisant trop pleurer), je m'en suis sorti mais je crains le pire s'il faut un jour patcher plusieurs fichiers qui se mordent la queue.
    On verra bien.

    En pj un zip contenant le fichier ini (plein de commentaires, c'est un peu brut de décoffrage, enfin, ça vous donnera une idée de ce que j'ai vécu ) et le script, commenté également : tools.zip

    EDIT : y aura qu'à rajouter ça à la fin du script (non testé en vrai, mais en simulation c'est bon), et ça devrait régler ce problème de langue :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    checklaz=${inisection/laz} # enlève 'laz' dans inisection et met le résultat dans checklaz
    # les chaines seront différentes s'il y avait 'laz' dans 'inisection'
    if [ "$checklaz" != "$inisection" ]; then 
    	configfile=$installdir/config_laz/environmentoptions.xml
    	# bien penser à "échapper" les caractères interprétables : 2e et 3e doubles quotes qui font croire 
    	# qu'on termine une chaîne avant d'en ouvrir une autre, et le caractère anti-slash qui indique 
    	# un retour à la ligne...
    	str1="<Language ID=\"en\"\/>"
    	str2="<Language ID=\"fr\"\/>"
    	sed -i "s|${str1}|${str2}|" $configfile
    fi
    librement inspiré de # http://www.developpez.net/forums/d15...tring-fichier/

  2. #2
    Membre Expert
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Billets dans le blog
    2
    Par défaut
    Salut he ben ! tant as eu du courage tu crois que cela serai applicable sous Windows ? si juste par hasard je viens de tomber la dessus http://wiki.freepascal.org/LazSVNPkg
    Je vais y jeter un oeil cela à l'air très intéressant
    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  3. #3
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 117
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 117
    Par défaut
    Salut,

    et merci pour ton retour.
    Citation Envoyé par BeanzMaster Voir le message
    tu crois que cela serait applicable sous Windows ?
    Oui, surement, puisqu'il n'y aurait qu'à adapter le script que j'ai fourni à l'environnement Microsoft.

    Citation Envoyé par BeanzMaster Voir le message
    juste par hasard je viens de tomber là-dessus http://wiki.freepascal.org/LazSVNPkg
    Je vais y jeter un oeil cela a l'air très intéressant
    Tu nous diras.
    Perso, je n'utilise l'outil SVN qu'à 1% de ses capacités, à savoir juste pour downloaded le dossier qui va bien, une fois celui-ci paramétré dans fpcup.ini.
    Tout le reste est fait par fcpup.

Discussions similaires

  1. Installer plugin avec SVN
    Par HAPPYNESS dans le forum Eclipse
    Réponses: 0
    Dernier message: 21/11/2009, 14h20
  2. Réponses: 1
    Dernier message: 19/05/2003, 15h47
  3. Réponses: 12
    Dernier message: 23/10/2002, 11h56
  4. Réponses: 19
    Dernier message: 24/05/2002, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo