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 :

[FPC] SVN versions [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Invité
    Invité(e)
    Par défaut [FPC] SVN versions
    Bonjour,

    J'utilise habituellement les versions stables mais la correction de certains bubs m'oblige à utiliser SVN. La question est probablement idiote : Comment sait-on quelle version est importée lors de l'utilisation de SVN ?

    Par exemple, on peut installer initialement FPC en 2.4.0 ou en 2.4.1 actuellement sur Lazarus Snapshots [http://www.hu.freepascal.org/lazarus/]. D'ailleurs l'installation par défaut créer un sous répertoire dans fpc, à savoir fpc/2.4.0 ou 2.4.1.

    Sous Windows par exemple, si je me connecte au svn : svn co http://svn.freepascal.org/svn/fpc/trunk, je récupère des répertoires de fpc : compiler, ide... mais la structure n'indique pas si c'est fpc/2.4.0 ou fpc 2.4.1
    pas plus que la conclusion de l'opération svn "Terminé - À la révision : 15412".

    On télécharge quoi en réalité ? Il faut rentrer dans les fichiers pour savoir de quoi on parle ? Le makefile.fpc indique
    [package]
    name=fpc
    version=2.5.1 ????

    Quelqu'un(e) peut-il m'expliquer ... d'autant que sous Linux, le paquet.deb de Lazrus0.9.29/fpc2.4.0 est bugué et qu'il faut mettre à jour fpc : http://bugs.freepascal.org/view.php?id=15593 sous ma toute nouvelle ubuntu 10.04.

    J'aime pas trop fonctionner en aveugle.

    Question subsidiaire : pour recompiler Lazarus, il faut que fpc soit lui-même recompilé. Et pour ce dernier, on fait cela comment "à la main" sous Win d'une part et sous Nux d'autre part ?
    Sous Win... J'en suis là :
    J'ai installé une version lazarus/fpc___setup.exe...
    J'ai ajouté dans la variable d'environnement [path] --> C:\lazarus\fpc\2.4.0\bin\i386-win32;C:\svn\fpc\compiler
    Démarrer-->Exécuter-->cmd puis cd c:\svn\fpc --> make clean all. Le make crée alors un fichier pp1.exe dans c:\svn\fpc\compiler qu'il utilise ensuite d'où l'ajout dans la variable d'environnement path... sinon plantage. Ceci fait, il me génère 41 exe dans le répertoire c:\svn\fpc mais en vrac... et non pas dans un répertoire bin comme attendu... et pas tous ceux contenus dans le bin d'origine... (celui du 2.4.0). C jouable cela ? J'ai reconstitué les répertoires à "la mode" fpc 2.4.0 en conservant ceux qui ne sont "régénérés" et lancer une reconstruction de Lazarus pour obtenir finalement c:\lazarus\lcl\alllclunits.pp(1,1) Fatal: Can't find unit system used by AllLCLUnits

    Il doit bien y avoir un moyen plus simple de procéder...


    Cordialement. Gilles
    Dernière modification par Invité ; 12/06/2010 à 19h36.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Points : 163
    Points
    163
    Par défaut
    Bonjour,

    pour Freepascal, ils ont l'habitude de nommer les versions qui ont fait l'objet d'une "release" par un numéro pair pour les numéros de version mineure (2.0 - 2.2 et 2.4) et impair pour les version en cours de développement (ce que tu récupère dans le "trunk")
    La prochaine version qui sortira sera une 2.6.x, la version en cours de développement restera donc en 2.5.x jusqu'à la sortie de la 2.6, après cela la version "trunk" sera sans doute une 2.7.x.

    C'est pareil pour Lazarus, la prochaine version sera une 0.9.30 après la version 0.9.28, la version de développement est donc "marquée" 0.9.29.

    Le numéro de révision SVN est juste un compteur de toutes le modifications faites sur le code.

    Pour recompiler Lazarus et/ou Freepascal, j'ai pas tout compris ce que tu as essayé de faire .

    Sous Windows j'ai 4 versions:
    1- La dernière version téléchargée depuis le site lazarus (0.9.28.2 + fpc 2.2.4)
    2- la version correspondant à la branche SVN des correctifs de la dernière version sortie (donc la 0.9.28, appelée "fixes" et qui affiche ensuite 0.9.28.3 une fois compilée) et de la branche des correctifs de fpc 2.2 (appelée 2.2.5).
    3- la version "trunk" du SVN Lazarus avec la dernière version sorties de FPC, la 2.4, que je récupère également de sa branches "fixes"
    4- enfin une dernière version, identique pour Lazarus à la version précédente, mais compilée à partie de la version "trunk" de FPC (donc 2.5.1 en ce moment).

    J'organise les fichiers freeepascal différemment de l'installateur Windows, (voir image jointe), ce permet de réutiliser un fichier fpc.cfg pour toutes les versions en respectant cette arborescence.

    Ensuite j'ai un script pour recompiler chaque version, qui met à jour le "bac à sable" de FPC et Lazarus avant de les recompiler, par exemple pour la version 3:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    @echo on
    set BASEDRV=c:
    set FPCNEWVERSION=2.4.1
    set FPCOLDVERSION=2.2.4
    set BASEINSTALL=%BASEDRV%\programs\fpc
    set FPCBASEDIR=%BASEINSTALL%\%FPCNEWVERSION%
    set SRCDIR=%BASEINSTALL%\fpsrc\%FPCNEWVERSION%
    set PPCNAME=ppc386
    set FPCTARGET=i386-win32
    set FPCSTART=%BASEINSTALL%\%FPCOLDVERSION%\bin\%FPCTARGET%\%PPCNAME%
    set LOGDIR=%BASEDRV%\programs
    set INSTALLDIR=%FPCBASEDIR%
    set BINUTILSDIR=C:\programs\Binutils
     
    REM some random opts.
    @REM set OPTS=-gl -dSAX_HTML_DEBUG -dUSE_MINGW_GDB
    set OPTS=
    @REM set COMMONOPTS=UPXPROG=echo COPYTREE=echo OPT="%OPTS%" GINSTALL=myinst.exe
    set COMMONOPTS=UPXPROG=echo COPYTREE=echo OPT="%OPTS%"
     
    REM Lazarus variables
    set LAZSRCDIR=%BASEDRV%\programs\lazarus_svn
    @REM set OPTSLAZ=-g- -O2 -CX -XX -WG
    set OPTSLAZ=
    set COMMONOPTSLAZ=OPT="%OPTSLAZ%"
    set LAZCONFDIR=%USERPROFILE%\Local Settings\Application Data\lazarus-SVN
     
    rem  ===  invariant  part  ===
     
    REM suppression des anciens logs
    del %LOGDIR%\build_fpc_log.txt
    del %LOGDIR%\install_fpc_log.txt
     
    REM svnupdate des source FPC
    TortoiseProc.exe /command:update /path:"%SRCDIR%\" /closeonend:1
     
    REM certains fichiers des sources peuvent êtres modifiés par le processus de
    REM compilation. Il faut faire un revert dessus. Malheureusement cette commande
    REM nécessite un intervention manuelle avec TortoiseProc.exe
    TortoiseProc.exe /command:revert /path:"%SRCDIR%\" /closeonend:1
     
    REM on se place dans le répertoire de compilation de fpc
    cd %SRCDIR%
     
    REM ajout au path des binaires de la version FPC qui fait la compil (pour les
    REM outils rm ,etc., par pour fpc.Exe)
    Path=%BINUTILSDIR%;%Path%
     
    REM ********* Compil FPC ***************
    make clean all %COMMONOPTS% FPC=%FPCSTART% 1> %LOGDIR%\build_fpc_log.txt 2>&1
     
    REM on supprime les anciens répertoires de la précédentes compil
    rmdir /S /Q %FPCBASEDIR%\doc
    rmdir /S /Q %FPCBASEDIR%\examples
    rmdir /S /Q %FPCBASEDIR%\msg
    rmdir /S /Q %FPCBASEDIR%\units
    rmdir /S /Q %FPCBASEDIR%\bin
     
    REM Ajout des outils GNU et de fpc.cfg au répertoires /bin/i386-win32
    TortoiseProc.exe /command:update /path:"%BINUTILSDIR%\" /closeonend:1
    tortoiseproc.exe /command:dropexport /droptarget:"%FPCBASEDIR%\bin" /path:"%BINUTILSDIR%"
    cd %FPCBASEDIR%\bin
    rename Binutils %FPCTARGET%
    cd %SRCDIR%
    copy %BASEINSTALL%\fpc.cfg %FPCBASEDIR%\bin\%FPCTARGET%\fpc.cfg
     
     
    REM **** INSTALL FPC **************
    make install %COMMONOPTS% INSTALL_PREFIX=%INSTALLDIR% FPC=%SRCDIR%\compiler\%PPCNAME% 1> %LOGDIR%\install_fpc_log.txt 2>&1
    make clean >NUL
     
    REM ********** INSTALL LAZARUS *********************************
     
    REM svn update de LAZARUS
    TortoiseProc.exe /command:update /path:"%LAZSRCDIR%\" /closeonend:1
     
    REM certains fichiers des sources peuvent etres modifiés par le processus de
    REM compilation. Il faut faire un revert dessus. Malheureusement cette commande
    REM nécessite un intervention manuelle avec TortoiseProc.exe
    TortoiseProc.exe /command:revert /path:"%LAZSRCDIR%\" /closeonend:1
     
    REM Suppression de l'ancien répertoire UNITS de Lazarus
    @REM rmdir /S /Q %LAZSRCDIR%\units
     
    REM ****** Compil/install de LAZARUS *********************
     
    @REM cd %LAZSRCDIR%
    @REM make clean all %COMMONOPTSLAZ% FPC=%INSTALLDIR%\bin\%FPCTARGET%\fpc.exe 1> %LOGDIR%\install_laz_log.txt 2>&1
     
    REM suppression du répertoire de config
    @REM rmdir /S /Q "%LAZCONFDIR%"
     
    PAUSE
    Dans C:\programs\Binutils j'ai une extraction de http://svn.freepascal.org/svn/fpcbui...install/binw32 qui contient les versions des outils gnu binutils + gbd utilisés par le projet Lazarus.

    J'utilise tortoisesvn en ligne de commande parce qu'il est déjà installé mais on pourrait installer et utiliser subversion directement.

    La partie recompil de Lazarus est commentée car en fait je préfère le faire depuis Lazarus car on ne perd pas ses paquets installés. La compil par make n'installe que les paquets par défaut, il faut ensuite recompiler dans Lazarus. Toutefois pour la version 4 ou tout est en version SVN, je le fais par make avec remise à zéro à chaque fois du répertoire de configuration.

    Pour pouvoir passer su toutes les versions fpc.cfg contient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # searchpath for units and other system dependent things
    -FuC:\programs\fpc\$FPCVERSION/units/$FPCTARGET/
    -FuC:\programs\fpc\$FPCVERSION/units/$FPCTARGET/*
    -FuC:\programs\fpc\$FPCVERSION/units/$FPCTARGET/rtl
     
    # searchpath for tools
    -FDC:\programs\fpc\$FPCVERSION/bin/$FPCTARGET

    Sous Linux j'ai une version un peu similaire, les versions supplémentaires à la version officielle sont installées dans mon Home :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    #!/bin/bash
    #
    # Compilation de FPC et Lazarus à partir des dernières sources.
     
    BASEDRV=~
    FPCBASEDIR=$BASEDRV/Sys/local/opt/fpc
    FPCNEWVERSION=2.5.1
    FPCOLDVERSION=2.4.0
    #---------------------------------------------
    #SRCSVNDIR=$FPCBASEDIR/fpsrc/$FPCNEWVERSION
    #**********************************************************
    #SRCDIR=$FPCBASEDIR/fpsrc/source_compil
    SRCDIR=$FPCBASEDIR/fpsrc/$FPCNEWVERSION
    PPCNAME=ppcx64
    FPCSTART=$BASEDRV/Sys/local/opt/fpc/$FPCOLDVERSION/bin/$PPCNAME
    LOGDIR=$BASEDRV/Sys/Logs
    INSTALLDIR=$FPCBASEDIR/$FPCNEWVERSION
     
    # some random opts.
    # OPTS=-gl -dSAX_HTML_DEBUG -dUSE_MINGW_GDB
    OPTS=-gl
    # COMMONOPTS=UPXPROG=echo COPYTREE=echo OPT="$OPTS" GINSTALL=myinst.exe
    COMMONOPTS=UPXPROG=echo OPT="$OPTS"
     
    # Lazarus variables
    LAZSRCDIR=$BASEDRV/Sys/local/opt/lazarus_FPC_svn
    OPTSLAZ="-g- -O2 -CX -XX"
    LAZCONFDIR=$BASEDRV/.lazarus/
     
    #  ===  invariant  part  ===
     
    #+++++++++++++++++++++++++++++++++++++++++++++
    rm -f ${LOGDIR}/build_fpc_log.txt
    rm -f ${LOGDIR}/install_fpc_log.txt
    rm -f ${LOGDIR}/install_laz_log.txt
    rm -f ${LOGDIR}/outcome.txt
     
    # svnupdate des source FPC
    #*****************************************************
    svn up $FPCBASEDIR/fpsrc/$FPCNEWVERSION
     
    # on supprime les anciens répertoires de la précédente compil
    rm -f --recursive $INSTALLDIR/lib/
    rm -f --recursive $INSTALLDIR/share/
    rm -f --recursive $INSTALLDIR/bin/
     
    # ****  FPC **************
     
    # on se place dans le répertoire de compilation de fpc
    #********************************************************
    cd $FPCBASEDIR/fpsrc/$FPCNEWVERSION/
     
    # ********* Compil / install FPC ***************
    make clean all $COMMONOPTS PP=$FPCSTART > ${LOGDIR}/build_fpc_log.txt 2>&1
    if [ ! $? = 0 ] ; then
     echo Grrr, failed again
    else
      make install $COMMONOPTS INSTALL_PREFIX=$INSTALLDIR > ${LOGDIR}/install_fpc_log.txt 2>&1
      if [ ! $? = 0 ] ; then
        echo INSTALL failed | tee -a ${LOGDIR}/outcome.txt
      else
        ln --symbolic $INSTALLDIR/lib/fpc/$FPCNEWVERSION/$PPCNAME  $INSTALLDIR/bin/$PPCNAME
        echo Everything _should_ be fine.| tee -a ${LOGDIR}/outcome.txt
      fi
    fi
    #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    make clean > /dev/null
     
    # svn update de LAZARUS
    #***********************************************************
    svn up $LAZSRCDIR
     
     
    #Suppression de l'ancien répertoires UNITS de Lazarus
    rm -f --recursive $LAZSRCDIR/units
     
    # ****** Compil/install de Lazarus
    cd $LAZSRCDIR
    make clean all OPT="$OPTSLAZ" FPC=$INSTALLDIR/bin/fpc INSTALL_PREFIX=$LAZSRCDIR > ${LOGDIR}/install_laz_log.txt 2>&1
     
    # suppression du répertoire de config
    rm -f --recursive ~/.lazarus/
    Sous Linux c'est un peu plus compliqué car j'ai une version installée par les dépots, les autres étant dans mon HOME, du coup j'ai choisi de créer mon fichier ~\.fpc.cfg qui sera utilisé en priorité par rapport à /etc/fpc.cfg que je ne touche pas.
    Dedans je suis obligé de gérer les deux endroits où sont installés FPC :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #IFDEF VER2_2
     
      # searchpath for units and other system dependent things
      -Fu/usr/lib/fpc/$FPCVERSION/units/$FPCTARGET
      -Fu/usr/lib/fpc/$FPCVERSION/units/$FPCTARGET/*
      -Fu/usr/lib/fpc/$FPCVERSION/units/$FPCTARGET/rtl
      #-Fu~/fpc/packages/base/*/units/;~/fpc/fcl/units/;~/fpc/rtl/units/
     
    #ELSE
    #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    # valable pour toutes les versions que j'installe dans /home (VER2_4_0 VER2_5_1 ...)
    #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     
      # searchpath for units and other system dependent things
      -Fu/home/thierrybo/Sys/local/opt/fpc/$FPCVERSION/lib/fpc/$FPCVERSION/units/$FPCTARGET
      -Fu/home/thierrybo/Sys/local/opt/fpc/$FPCVERSION/lib/fpc/$FPCVERSION/units/$FPCTARGET/*
      -Fu/home/thierrybo/Sys/local/opt/fpc/$FPCVERSION/lib/fpc/$FPCVERSION/units/$FPCTARGET/rtl
     
    #ENDIF
    Images attachées Images attachées   

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Merci pour ces infos. Je viens de découvrir l'arborescence du SVN . Pour le reste, je ne perçois qu'un début d'éclaircissement... Je pensais qu'il fallait compiler fpc avant de compiler Lazarus... avec fpc. En réalité je crois que j'ai beaucoup de mal à schématiser les rouages du compilateur. Pour Lazarus, cela me semble plus simple... à priori. Il faut dire que je ne pensais arriver à ce niveau d'intervention. Mon "occupation prioritaire" c'est d'utiliser Lazarus (ou code::blocks par exemple) à partir d'un langage plus ou moins maîtrisé (Pascal, C/++).

    Alors j'ai déjà dû accepter (rétivement je l'admets) de rentrer dans Lazarus pour modifier certains composants fournis et maintenant me voila "obligé" d'entrer dans le compilateur... parce que sinon "on" en arrive à cela :
    Sur l'Ubuntu 9.10 de mon portable (un autre appareil), j'ai installé les paquets fournis par Lazarus. Même problème avec lazarus.pp. J'ai bricolé avec des éléments de ma versions Windows, un peu de SVN... et c'est passé !?... Mais la sorcellerie cela va un peu !

    Pour redevenir sérieux (et compliqué), dans mon premier message, je pensais schematiquement que pour construire les binaires de fpc, on utilisait fpc lui-même. ce qui impliquait notamment qu'une version antérieure de fpc soit installée.
    Avec cette vieille version,
    1. fpc produisait des .o à partir des sources modifiées,
    2. fpcmakefile permettait de les organiser en produisant un makefile
    3. et make exploitait ce fichier pour produire les exécutables

    A ce niveau [3], j'avais bien remarqué l'usage de ppc386 "This binary is the back-end binary of the Free Pascal Compiler (FPC) which is a Turbo Pascal and Delphi (7.0) compatible standalone (non GCC frontend) multitarget Pascal compiler"... et là je décroche...
    ... aussi avant de faire probablement une nouvelle fois appel à vos services, j'essaye de rassembler des "connaissances cohérentes" pour comprendre comment fonctionne exactement fpc, comment il est "fabriqué", histoire de comprendre significativement les réponses.

    Cordialement. Gilles
    Dernière modification par Invité ; 13/06/2010 à 12h41.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Points : 163
    Points
    163
    Par défaut
    Lazarus se compile avec Freepascal, mais il n'y a pas besoin de recompiler Freepascal avant. C'est nécessaire uniquement si les sources de Freepascal ont bougé, ce qui n'arrive jamais si on installe les binaires Lazarus.
    C'est nécessaire si on utilise les sources du tronc de développement de freepascal, ou les branches de correctifs des versions stables.

    La référence est la buildfaq

  5. #5
    Invité
    Invité(e)
    Par défaut
    Rebonjour puisque vous êtes dans le coin... et que je suis encore sur le problème...

    Citation Envoyé par thierrybo Voir le message
    [..]pour Freepascal, ils ont l'habitude de nommer les versions qui ont fait l'objet d'une "release" par un numéro pair pour les numéros de version mineure (2.0 - 2.2 et 2.4) et impair pour les version en cours de développement (ce que tu récupère dans le "trunk")
    La prochaine version qui sortira sera une 2.6.x, la version en cours de développement restera donc en 2.5.x jusqu'à la sortie de la 2.6, après cela la version "trunk" sera sans doute une 2.7.x.

    C'est pareil pour Lazarus, la prochaine version sera une 0.9.30 après la version 0.9.28, la version de développement est donc "marquée" 0.9.29.

    Le numéro de révision SVN est juste un compteur de toutes le modifications faites sur le code.[..]
    ...que j'essaye de mettre en rapport avec la réponse dans le bug-tracker à mon problème avec lazarus.pp.
    Citation Envoyé par Zeljan Rikalo (developer)
    2010-01-26 17:17
    fixed in fpc r14805

    Si je comprends bien votre réponse, Il faut que je trouve déjà à quoi correspond la release r14805... J'espère qu'il s'agit d'une fpc 2.4.0.

    Ensuite, la release obtenue ne sera pas compilée donc ne sera pas utilisable pour re-construire Lazarus...

    Je passe à côté de quoi d'énorme que je n'ai pas vu?

    Cordialement. Gilles
    Dernière modification par Invité ; 13/06/2010 à 12h59.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Points : 163
    Points
    163
    Par défaut
    Dans ton cas la correction de bug ne concerne QUE freepascal. Donc tu peux conserver les sources stables de Lazarus 0.9.28.2.
    Il te faut donc les nouvelles sources de freepascal. Tu as deux solutions :
    - soit récupérer le "tronc" (2.5.1), mais ce n'est pas recommandé pour la stabilité.
    - soit récupérer la branche "correctif 2.4" , à condition que l'équipe de FP ait reporté ce correctif dans cette branche, et apparemment c'est le cas :

    http://svn.freepascal.org/cgi-bin/vi...revision=14856
    Merged revisions 14805,14824 from trunk
    Tout ce que tu as à faire, c'est
    - recompiler les nouvelles sources de la branche fixes de fp 2.4 et l'installer dans un nouveau répertoire (voir mon 1er post pour une idée d'organisation de répertoires),
    - dans le cas de Windows copier dans le répertoire /bin de freepascal les outils binutils/gdb ainsi qu'un fichier fpc.cfg adapté aux nouveaux chemins
    - lancer lazarus et changer les chemins dans les options pour utiliser les nouveaux binaires et nouvelles sources
    - recompiler Lazarus depuis Lazarus

    A partir de ce moment les sources et binaires originaux de Lazarus ne serviront plus.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Merci.
    Je tenterai cela demain matin.
    Bonne fin de WE. Gilles

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Malgré divers essais, je ne comprends toujours pas les pratiques lues.

    J'ai installé, les paquets lazarus 0.9.29.xxx.deb et un fpc.2.4.0.xxx.deb fournis sur le Lazarus Snapshots : Lazarus s'installe par défaut dans /usr/lib/lazarus/0.9.29, fpc dans /usr/lib/fpc/2.4.0 et fpcsrc dans usr/share/fpcsrc/2.4.0

    Dans un premier temps, je désire remplacer le fpc 2.4.0 d'origine par la nouvelle release. et c'est le sujet de ma demande complémentaire d'information.

    Je veux récupérer donc par svn le dernier fpc.2.4.0. qui contient comme l'a indiqué thierrybo la dite modification. Donc, j'ai pris la branche fixe 2.4.0... que j'ai chargée dans /home/all/[fpc].

    Pour la suite, si je comprends l'intérêt de générer un .deb (voir ci-dessous), je n'arrive toujours pas à le générer... et d'un autre côté je ne sais même pas ce que j'attends : les 20 paquets .deb comme ceux contenus dans le fpc-2.4.0-0.i386.deb.tar du Lazarus Snapshots ?

    L'utilisation de create_fpc_deb.sh est pourtant décrite mais visiblement, je l'utilise mal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Usage="Usage: [OS_TARGET=xxx] [CPU_TARGET=xxx] [BINUTILSPREFIX=xxx] $0 fpc|fpc-src [notemp] <FPCSrcDir> [release]"
    Si j'ai bien compris, cette commande devrait suffire à régler mon problème, c'est-à-dire, je suppose tant que je n'ai rien vu, produire les 20 paquets de remplacements du fpc-2.4.0-0.i386.deb.tar . Est-ce exact ?

    Citation Envoyé par http://wiki.freepascal.org/Getting_Lazarus#Short_version:_get_Lazarus
    There are many ways to compile and install FPC. You can use plain make (see below), but it is recommended to build a fpc package for your distribution (.deb or .rpm file). A fpc package allows to easily uninstall, upgrade and downgrade it and a package makes sure that all files are installed at the common places. So if something goes wrong, other users know how to help you.
    Devant cet échec, j'ai essayé la solution de secours, qui était d'ailleurs mon point de départ : le make. Je ne comprends pas plus pourquoi, le make, compte-tenu du fait que le makefile est fourni, ne produit pas des répertoires utilisables ayant la même structure (arborescence) que ceux qu'ils vont remplacer, c'est à dire transférables "point à point" avec celui de l'ancienne version. C'est pourtant, entre autres, la fonction d'un make lorsqu'il est associé à un makefile !

    Bref, je ne suis pas au bout de mes peines on dirait. Mais comme je n'ai pas l'intention d'abandonner aussi facilement, je vous re-sollicite...

    Merci pour votre patience.
    Cordialement. Gilles
    Dernière modification par Invité ; 14/06/2010 à 19h00.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Points : 163
    Points
    163
    Par défaut
    Effectivement je n'ai pas testé la création des deb. Mais personnellement je pense que ca ne vaut pas le coup. Ça ajoute une étape supplémentaire à la compilation classique, et demain si un autre correctif t'interesse, il faut tout recommencer ?

    Si tu ne veux plus utiliser la version de fpc installée par les dépôts, désinstalle simplement les paquets fpc, compile à partir des sources en les installant ou tu veux, dans un répertoire de ton Home et indique dans les options de Lazarus le nouveau chemin de fpc et des sources. Pourquoi vouloir absolument les remmettre au même endroit et par le même moyen (paque deb ?).

    compte-tenu du fait que le makefile est fourni, ne produit pas des répertoires utilisables ayant la même structure (arborescence) que ceux qu'ils vont remplacer
    Chez moi je n'ai pas de différence. Les fichiers installés par les paquets sont installés dans /usr/bin /usr/share /usr/lib

    Si après avoir supprimé les paquets, à la dernière étape de l'install tu tapes en root:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    make install  INSTALL_PREFIX=/usr
    tu retrouveras toutes tes bon répertoires dans /usr.

    Note ce que ce n'est pas une bonne idée de supprimer la version installée par les dépôts. En effet si tu fais ce que je viens de dire ci-dessus ... ça ne marchera pas. En effet pour pouvoir compiler fpc depuis les sources, il te faut .... fpc ! Donc c'est bien de garder une version de base et installer ses propres versions ailleurs.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    J'ai réussi partiellement par la méthode make et d'ailleurs partiellement également par le script create_fpc_deb.sh...

    En réalité, il y a un bug dans le nom des fichiers quand on "make" le fpc-src

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    chmod: ne peut accéder `/root/tmp/fpc_patchdir/fpc_build/usr/share/fpcsrc/2.5.1/packages/cocoaint/utils/Using': Aucun fichier ou dossier de ce type
    chmod: ne peut accéder `Installer': Aucun fichier ou dossier de ce type
    chmod: ne peut accéder `Script.txt': Aucun fichier ou dossier de ce type
    chmod: ne peut accéder `/root/tmp/fpc_patchdir/fpc_build/usr/share/fpcsrc/2.5.1/packages/cocoaint/utils/Make': Aucun fichier ou dossier de ce type
    chmod: ne peut accéder `iPhone': Aucun fichier ou dossier de ce type
    chmod: ne peut accéder `Headers.txt': Aucun fichier ou dossier de ce type
    chmod: ne peut accéder `/root/tmp/fpc_patchdir/fpc_build/usr/share/fpcsrc/2.5.1/packages/cocoaint/utils/Make': Aucun fichier ou dossier de ce type
    chmod: ne peut accéder `Cocoa': Aucun fichier ou dossier de ce type
    chmod: ne peut accéder `Headers.txt': Aucun fichier ou dossier de ce type
    chmod: ne peut accéder `/root/tmp/fpc_patchdir/fpc_build/usr/share/fpcsrc/2.5.1/packages/cocoaint/utils/iphone/iPhone': Aucun fichier ou dossier de ce type
    chmod: ne peut accéder `Parser.txt': Aucun fichier ou dossier de ce type
    Motif du plantage : dans le répertoire "généré" /root/tmp/fpc_patchdir/fpc_build/usr/share/fpcsrc/2.5.1/packages/cocoaint/utils/, il existe un fichier Using Installer Script.txt et non pas Using_Installer_Script.txt... Idem pour les 2 autres... Compte tenu de ce genre de plaisanterie, je doute que cela fonctionne sous Nux...

    Bon je regarde s'il est possible de modifier les codes à la main... Le problème c'est que le makefile est produit par le makefile.fpc... et qu'il y en a partout !

    "On continue"... "on" s'accroche.

    Pour thierrybo : j'ai installé une 0.9.28.2/2.4.0 fournis dans les dépôts originaux stables de l'Ubuntu 10.04. J'ai utilisé pour Lazarus et pour fpc les trunk de SVN que j'ai placé respectivement dans /root/cvsroot/lazarus et /root/cvsroot/fpc.

    La création du paquet fpc a été réalisée aini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    root@ubuntu:/usr/lib/lazarus/0.9.28.2/tools/install# ./create_fpc_deb.sh fpc /root/cvsroot/fpc/
    Résultat : Obtention du paquet /usr/lib/lazarus/0.9.28.2/tools/install//usr/lib/lazarus/0.9.28.2/tools/install/fpc_2.5.1-100615_i386.deb (et d'un tar.gz)
    C'est donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    root@ubuntu:/usr/lib/lazarus/0.9.28.2/tools/install# ./create_fpc_deb.sh fpc-src /root/cvsroot/fpc/
    qui génère le problème.

    Je fais une nouvelle tentative avec 0.9.29 et fpc 2.4.1 dans la branche fixe qui en réalité est la version de fpc qui m'intéresse. Par contre, je suis obligé de prendre une 0.9.29 car la correction de la gestion des colonnes invisibles des StringGrids n'existe pas dans la 0.9.28...

    Cordialement. Gilles
    Dernière modification par Invité ; 15/06/2010 à 18h33.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Toujours pour thierrybo

    Début des ennuis ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    root@ubuntu:~/cvsroot# grep Script.txt * -r
    fpc/packages/cocoaint/utils/.svn/all-wcprops:Using Installer Script.txt
    fpc/packages/cocoaint/utils/.svn/all-wcprops:/svn/fpc/!svn/ver/14068/trunk/packages/cocoaint/utils/Using%20Installer%20Script.txt
    fpc/packages/cocoaint/utils/.svn/entries:Using Installer Script.txt
    On peut corriger le nom du fichier dans le script qui de toute façon écrit avec des espaces ne sera pas compris par un shell mais il faut également changer le nom du fichier au moment de l'importation svn ?
    Cordialement. Gilles

  12. #12
    Invité
    Invité(e)

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Enfin j'ai réussi à installer sur mon Ubuntu 10.04 une Lazarus 0.9.29/trunk compilée avec un fpc/branches_fixes/2.4 à l'aide de 3 paquets générés à partir du SVN.

    Je place un CR dès que je peux et je compte regarder si on ne peut pas réaliser un petit prog Lazarus pour réaliser la chose facilement. Pour le faire d'ailleurs, je me demande s'il est possible d'utiliser unTwebBrowser ou équivalent et surtout d'y récupérer l'adresse d'un lien sélectionné à la souris ? [Evidemment, je cherche une solution Linux/Win (et éventuellement Mac)]

    Encore un grand merci à Thierrtybo

    Cordialement. Gilles

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Hébergement avec système de gestion de version (SVN)
    Par SebSplo dans le forum Hébergement
    Réponses: 3
    Dernier message: 12/10/2008, 12h43
  2. [Eclipse 3.3.2] Erreur de version de SVN
    Par sanchou dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 04/04/2008, 13h50
  3. [Free Pascal] Nouvelle version fpc 2.0.4
    Par Clandestino dans le forum Free Pascal
    Réponses: 2
    Dernier message: 05/09/2006, 20h32
  4. [SVN] Quel plugin utiliser avec la version 3.1
    Par pmartin8 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 28/04/2006, 10h03

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