Forum Flightgear France

Une communauté prend son envol

Vous n'êtes pas identifié(e).

Annonce

Futur nouvel inscrit, tu dois au préalable lire l'intégralité des 10 articles des règles, s'il te plaît. Tout nouveau compte qui ne respecte pas les règles sera supprimé par l'administration.

#76 12/07/2018 15:47:30

f-toro
Administrateur
Lieu : LFLA
Inscription : 16/12/2007
Messages : 2 414

Re : Script download_and_compile.sh

Ça doit bien sûrement se trouver par là...


André. anciennement taureau89_9
Debian Testing Amd64. CM Sabertooth 990FX, FX8350, 32 Go Ram DDR3 1866 Mhz, GTX 750ti 2Go, DD 2To Sata 3, THRUSTMASTER T.Flight StickX, FG 2018.3.0 Git.

Hors ligne

#77 12/07/2018 15:58:05

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 2 854

Re : Script download_and_compile.sh

Il y a une ligne de commande qui permet de télécharger un seul ou tous les avions depuis SVN. Je suis en train de faire autre chose et je ne trouve pas immédiatement. Je continuerai après si tu n'as pas trouvé d'ici là


FG 2018.4.0, Linux Mint 18 (64b), Quad Q6600 (2.4 GHz), RAM 4Go DDR2, GEFORCE GTX 650 1GB, OSG 3.2.0
Boeing 787-8 (YASim, avec nickyivyca, aco)
DR400 JSBSim (PAF)
DC3 JSBSim (PAF)

Hors ligne

#78 12/07/2018 16:12:15

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 2 854

Re : Script download_and_compile.sh

FGAddon > Obtaining Aircraft > Download > Command line.


FG 2018.4.0, Linux Mint 18 (64b), Quad Q6600 (2.4 GHz), RAM 4Go DDR2, GEFORCE GTX 650 1GB, OSG 3.2.0
Boeing 787-8 (YASim, avec nickyivyca, aco)
DR400 JSBSim (PAF)
DC3 JSBSim (PAF)

Hors ligne

#79 30/07/2018 11:02:28

PierreBM
Membre
Lieu : Canet en Roussillon
Inscription : 11/10/2013
Messages : 48

Re : Script download_and_compile.sh

Bonjour
A défaut d'arriver à un résultat satisfaisant par le script, je suis passé pendant quelques temps à la version téléchargée.
Je viens de reprendre, ou du moins essayer de reprendre, la méthode script-compilée, mais ça ne donne pas l'effet escompté.
Quelque chose m'a probablement échappé.
Voici le résultat de ma manip :

./download_and_compile.sh DATA
VERSION=$Id
APT_GET_UPDATE=y
DOWNLOAD_PACKAGES=y
COMPILE=y
RECONFIGURE=y
DOWNLOAD=y
JOPTION= -j4 
OOPTION=
BUILD_TYPE=RelWithDebInfo
***********************************
Considering a package alternative: libcurl4-openssl-dev libcurl4-gnutls-dev
Package alternative matched for libcurl4-openssl-dev
Considering a package alternative: libopenscenegraph-3.4-dev libopenscenegraph-dev libopenscenegraph-[0-9]+\.[0-9]+-dev
Package alternative matched for libopenscenegraph-dev
Considering a package alternative: libpng-dev libpng12-dev libpng16-dev
Package alternative matched for libpng12-dev
Considering an optional package alternative: qml-module-qtquick2
Optional package alternative matched for qml-module-qtquick2
Considering an optional package alternative: qml-module-qtquick-window2
Optional package alternative matched for qml-module-qtquick-window2
Considering an optional package alternative: qml-module-qtquick-dialogs
Optional package alternative matched for qml-module-qtquick-dialogs
Considering an optional package alternative: qtbase5-private-dev
Optional package alternative matched for qtbase5-private-dev
Considering an optional package alternative: qtdeclarative5-private-dev
Optional package alternative matched for qtdeclarative5-private-dev
DIRECTORY= /home/pierre/fgfs
***********************************
****************************************
************** FLIGHTGEAR **************
****************************************
****************************************
**************** DATA ******************
****************************************



pierre@pierre-Aspire-MC605:~$ cd fgfs
pierre@pierre-Aspire-MC605:~/fgfs$ ./download_and_compile.sh -j4 DATA
**************************************
*                                    *
* Warning, the compilation process   *
* is going to use 12 or more Gbytes  *
* of space and at least a couple of  *
* hours to download and build FG.    *
*                                    *
* Please, be patient ......          *
*                                    *
**************************************
Asking password for 'apt-get update'...
[sudo] Mot de passe de pierre : 
Atteint:1 http://deb.playonlinux.com trusty InRelease
Atteint:2 http://fr.archive.ubuntu.com/ubuntu xenial InRelease                 
Ign:3 http://dl.google.com/linux/earth/deb stable InRelease                    
Réception de:4 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
Atteint:5 http://ppa.launchpad.net/opencpn/opencpn/ubuntu xenial InRelease     
Atteint:6 http://fr.archive.ubuntu.com/ubuntu xenial-updates InRelease         
Atteint:7 http://dl.google.com/linux/earth/deb stable Release                  
Réception de:8 http://fr.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Atteint:9 http://archive.canonical.com/ubuntu xenial InRelease                 
214 ko réceptionnés en 1s (158 ko/s)                                           
Lecture des listes de paquets... Fait
N: Le fichier configuré « main/binary-i386/Packages » ne sera pas pris en compte car le dépôt « http://dl.google.com/linux/earth/deb stable InRelease » ne supporte pas l'architecture « i386 »
Considering a package alternative: libcurl4-openssl-dev libcurl4-gnutls-dev
Package alternative matched for libcurl4-openssl-dev
Considering a package alternative: libopenscenegraph-3.4-dev libopenscenegraph-dev libopenscenegraph-[0-9]+\.[0-9]+-dev
Package alternative matched for libopenscenegraph-dev
Considering a package alternative: libpng-dev libpng12-dev libpng16-dev
Package alternative matched for libpng12-dev
Considering an optional package alternative: qml-module-qtquick2
Optional package alternative matched for qml-module-qtquick2
Considering an optional package alternative: qml-module-qtquick-window2
Optional package alternative matched for qml-module-qtquick-window2
Considering an optional package alternative: qml-module-qtquick-dialogs
Optional package alternative matched for qml-module-qtquick-dialogs
Considering an optional package alternative: qtbase5-private-dev
Optional package alternative matched for qtbase5-private-dev
Considering an optional package alternative: qtdeclarative5-private-dev
Optional package alternative matched for qtdeclarative5-private-dev
Asking password for 'apt-get install build-essential cmake git libcurl4-openssl-dev libarchive-dev libbz2-dev libexpat1-dev libjsoncpp-dev liblzma-dev libncurses5-dev procps zlib1g-dev libcgal-dev libgdal-dev libtiff5-dev libqt4-dev zlib1g-dev freeglut3-dev libboost-dev libopenscenegraph-dev libopenal-dev libudev-dev qt5-default qtdeclarative5-dev libdbus-1-dev libplib-dev libpng12-dev qml-module-qtquick2 qml-module-qtquick-window2 qml-module-qtquick-dialogs qtbase5-private-dev qtdeclarative5-private-dev fluid libbz2-dev libfltk1.3-dev libxi-dev libxmu-dev libxinerama-dev libjpeg-dev libxft-dev python3-pyqt5 python3-pyqt5.qtmultimedia libqt5multimedia5-plugins python-tk'...
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
build-essential est déjà la version la plus récente (12.1ubuntu2).
libboost-dev est déjà la version la plus récente (1.58.0.1ubuntu1).
libbz2-dev est déjà la version la plus récente (1.0.6-8).
libjpeg-dev est déjà la version la plus récente (8c-2ubuntu8).
libjsoncpp-dev est déjà la version la plus récente (1.7.2-1).
liblzma-dev est déjà la version la plus récente (5.1.1alpha+20120614-2ubuntu2).
libncurses5-dev est déjà la version la plus récente (6.0+20160213-1ubuntu1).
libqt4-dev est déjà la version la plus récente (4:4.8.7+dfsg-5ubuntu2).
libqt5multimedia5-plugins est déjà la version la plus récente (5.5.1-4ubuntu2).
libxft-dev est déjà la version la plus récente (2.3.2-1).
libxi-dev est déjà la version la plus récente (2:1.7.6-1).
libxinerama-dev est déjà la version la plus récente (2:1.1.3-1).
libxmu-dev est déjà la version la plus récente (2:1.1.2-2).
qml-module-qtquick-dialogs est déjà la version la plus récente (5.5.1-1ubuntu1).
qml-module-qtquick-window2 est déjà la version la plus récente (5.5.1-2ubuntu6).
qml-module-qtquick2 est déjà la version la plus récente (5.5.1-2ubuntu6).
qtdeclarative5-dev est déjà la version la plus récente (5.5.1-2ubuntu6).
qtdeclarative5-private-dev est déjà la version la plus récente (5.5.1-2ubuntu6).
fluid est déjà la version la plus récente (1.3.3-7).
freeglut3-dev est déjà la version la plus récente (2.8.1-2).
libcgal-dev est déjà la version la plus récente (4.7-4).
libfltk1.3-dev est déjà la version la plus récente (1.3.3-7).
libgdal-dev est déjà la version la plus récente (1.11.3+dfsg-3build2).
libopenal-dev est déjà la version la plus récente (1:1.16.0-3).
libopenscenegraph-dev est déjà la version la plus récente (3.2.1-7ubuntu4).
libplib-dev est déjà la version la plus récente (1.8.5-7).
python3-pyqt5 est déjà la version la plus récente (5.5.1+dfsg-3ubuntu4).
python3-pyqt5.qtmultimedia est déjà la version la plus récente (5.5.1+dfsg-3ubuntu4).
cmake est déjà la version la plus récente (3.5.1-1ubuntu3).
git est déjà la version la plus récente (1:2.7.4-0ubuntu1.4).
libarchive-dev est déjà la version la plus récente (3.1.2-11ubuntu0.16.04.3).
libcurl4-openssl-dev est déjà la version la plus récente (7.47.0-1ubuntu2.8).
libdbus-1-dev est déjà la version la plus récente (1.10.6-1ubuntu3.3).
libexpat1-dev est déjà la version la plus récente (2.1.0-7ubuntu0.16.04.3).
libpng12-dev est déjà la version la plus récente (1.2.54-1ubuntu1.1).
libtiff5-dev est déjà la version la plus récente (4.0.6-1ubuntu0.4).
libudev-dev est déjà la version la plus récente (229-4ubuntu21.2).
procps est déjà la version la plus récente (2:3.3.10-4ubuntu2.4).
python-tk est déjà la version la plus récente (2.7.12-1~16.04).
qtbase5-private-dev est déjà la version la plus récente (5.5.1+dfsg-16ubuntu7.5).
zlib1g-dev est déjà la version la plus récente (1:1.2.8.dfsg-2ubuntu4.1).
qt5-default est déjà la version la plus récente (5.5.1+dfsg-16ubuntu7.5).
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  libhtsengine1 libjs-excanvas libjs-jquery-flot libjs-leaflet libsimgearcore3.4.0v5 libsimgearscene3.4.0v5
Veuillez utiliser « sudo apt autoremove » pour les supprimer.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
****************************************
************** FLIGHTGEAR **************
****************************************
****************************************
**************** DATA ******************
****************************************
Clonage dans '.'...
remote: Counting objects: 63419, done.
remote: Compressing objects: 100% (28757/28757), done.
error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properly terminated.
fatal: The remote end hung up unexpectedly
fatal: fin de fichier prématurée
fatal: index-pack failed
pierre@pierre-Aspire-MC605:~/fgfs$ 

Pour l'instant j'en suis réduit à plier du papier et à essayer d'atteindre le mur d'en face, au moins pas besoin de joystick


Ubuntu 18.04 fgfs 3.4.0
Aspire 605 RAM 3,8 Gio IntelCore i5-3350P
cpu 3,10 gHZ X 4  Carte graph Nvidia GF 119

Hors ligne

#80 30/07/2018 12:28:32

ctesc356
Membre
Inscription : 18/05/2010
Messages : 2 565

Re : Script download_and_compile.sh

Bonjour,
je pense que tu trouveras la solution ici: http://fr.flightgear.org/forums/viewtop … 697#p41697


Intel i5 3570 3.4Mhz, Nvidia GTX 660, 8Go Ram, Linux Mint

Hors ligne

#81 30/07/2018 14:54:59

f-toro
Administrateur
Lieu : LFLA
Inscription : 16/12/2007
Messages : 2 414

Re : Script download_and_compile.sh

Bonjour PierreBM.

Le problème est en effet bien connu et la solution a déjà été décrite plusieurs fois sur le forum.

Je pense que en te donnant la solution, ctesc356 veut surtout parler de son message.
Où il est question de la ligne 612.

Tout ca est expliqué dans le tuto de Dany93.


André. anciennement taureau89_9
Debian Testing Amd64. CM Sabertooth 990FX, FX8350, 32 Go Ram DDR3 1866 Mhz, GTX 750ti 2Go, DD 2To Sata 3, THRUSTMASTER T.Flight StickX, FG 2018.3.0 Git.

Hors ligne

#82 27/09/2018 11:38:17

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 2 854

Re : Script download_and_compile.sh

Complément important.

Florent Rougon a apporté des modifications importantes à d&c. Ce lien, inchangé (sauf https).

Voir son message dans Flightgear-devel.

Voir aussi, dans ce message, ma tentative (approximative) de résumé.

Beaucoup mieux, je cite ci-dessous les très longues explications qu'il a rédigées lui-même. Qui commencent par rectifier mes approximations.

Qu'il soit ici remercié pour ce double travail de codage et d'explications (sans lesquelles ce code serait pratiquement inutilisable pour la plupart d'entre nous).

Florent Rougon a écrit :

1) SourceForge n'est pas un protocole. C'est une plateforme
   d'hébergement (“hosting site” dans ce que j'ai écrit sur d&c.sh).

2) “SourceForge pour DATA, https pour update”, ça ne veut pas dire
   grand-chose, d'une part à cause du point 1) et d'autre part parce que
   DATA (FGData) est un des composants logiciels que d&c.sh peut
   récupérer et compiler (c'est un COMPONENT dans le texte qui est
   affiché quand on lance 'download_and_compile.sh --help'), alors que
   “update” veut juste dire mettre à jour ou mise à jour. Les deux ne
   se placent donc pas sur le même plan.

Ce qu'il faut comprendre, c'est que quand on demande à d&c.sh de
s'occuper d'un composant récupéré avec Git (SimGear, FlightGear, FGData,
etc., c'est-à-dire SIMGEAR, FGFS, DATA, etc. en parlance d&c.sh), la
récupération du code/contenu à jour peut se faire de deux manières
différentes :

  (a) Si d&c.sh ne trouve pas le dépôt déjà rempli (il regarde juste
      s'il y a un README, README.txt ou README.rst...), il le /clone/
      (c'est-à-dire qu'il effectue un téléchargement complet du dépôt
      avec tout l'historique Git) ;

  (b) Sinon, il fait juste une mise à jour (update), qui consiste
      essentiellement en un 'git pull --rebase'. C'est beaucoup plus
      rapide que de cloner, surtout si on le fait souvent, et d'autant
      plus si le contenu et son historique sont volumineux (FGData...).

L'opération (a) ('git clone ...') utilise https par défaut, mais les
nouvelles options permettent un choix plus fin sans avoir à modifier
d&c.sh (ce qui cause toujours des problèmes pour le mettre à jour) :

  - avec --git-clone-default-proto, on peut changer le protocole par
    défaut, par exemple --git-clone-default-proto=git pour utiliser le
    protocole Git (le protocole historique qui n'est pas chiffré) ;

  - pour utiliser ssh, c'est un peu plus compliqué car il faut fournir
    un nom d'utilisateur (username), et celui-ci n'est pas forcément le
    même pour toi, moi, etc. sur les différentes plateformes
    d'hébergement. Par exemple, je suis frougon sur SourceForge et sur
    GitHub, mais je pourrais très bien avoir choisi des noms
    d'utilisateur différents sur l'une et l'autre de ces plateformes.
    C'est pour ça que l'option --git-clone-site-params permet de faire
    un réglage différent pour chaque plateforme. Par exemple, si mon
    compte sur GitHub s'appelait 'flo', je pourrais vouloir faire :

    download_and_compile.sh \
      --git-clone-site-params SourceForge=ssh:frougon \
      --git-clone-site-params GitHub=ssh:flo

    ce qui est identique à :

    download_and_compile.sh \
      --git-clone-site-params=SourceForge=ssh:frougon \
      --git-clone-site-params=GitHub=ssh:flo

    La casse est ignorée pour les noms de plateformes et de protocoles,
    donc on pourrait écrire sourceforge, githUB et sSh, ça ne changerait
    rien.

    Chaque option --git-clone-site-params s'applique à tous les dépôts
    (repositories) téléchargés par d&c.sh depuis la plateforme
    d'hébergement mentionnée au début de l'argument. Par exemple,
    SimGear, FlightGear et FGData sont tous hébergés sur SourceForge,
    donc une seule option telle que :

      --git-clone-site-params SourceForge=ssh:frougon ou
      --git-clone-site-params SourceForge=https       ou
      --git-clone-site-params SourceForge=git

    s'applique à tous les trois (et bien d'autres dépôts gérés par
    d&c.sh) si le script décide qu'il faut cloner leurs dépôts Git.

Une fois qu'un dépôt a été cloné, le protocole et le nom d'utilisateur
sont enregistrés par Git dans le fichier .git/config à l'intérieur du
dépôt, comme j'ai indiqué sur flightgear-devel. Par exemple :

[remote "origin"]
        url = ssh://frougon@git.code.sf.net/p/flightgear/fgmeta
        fetch = +refs/heads/*:refs/remotes/upstream/*

(On peut lancer

find -type f -path '*/.git/config'

depuis le répertoire
de travail pour trouver tous ces fichiers)

Lorsqu'un dépôt est mis à jour par un 'git pull', 'git fetch', etc.
(opération (b)), ce que fait d&c.sh lorsqu'il détecte un des fichiers
mentionnés ci-dessus (README, README.txt ou README.rst), Git utilise la
méthode (protocole, nom d'utilisateur éventuel) enregistrée dans le
fichier .git/config. Dans ce cas, les options --git-clone-default-proto
et --git-clone-site-params n'ont aucun effet puisqu'elles n'affectent
que l'opération de clonage (téléchargement initial). Bien sûr, on peut
effacer un dépot et d&c.sh va le recloner, mais si on veut juste changer
le protocole et/ou le nom d'utilisateur, le plus simple est d'éditer le
fichier .git/config du ou des dépôts pour lesquels on veut changer le
protocole (et/ou le nom d'utilisateur).

Maintenant, à propos du “mix” possible que j'ai évoqué. Puisque c'est
FGData qui est récalcitrant en https, et apparemment lui seul, rien
n'empêche de configurer tous les dépôts en https et seulement FGData en
autre chose (soit le protocole 'git' qui n'est pas très sûr, soit 'ssh'
comme j'ai expliqué sur la mailing-list). Et pour ce faire, on peut
modifier simplement une ligne dans les fichiers .git/config des
différents dépôts, ou bien (re-)partir de zéro comme indiqué sur
flightgear-devel :

  # Cloner seulement FGData avec le protocole SSH (pour que ça clone
  # vraiment, s'assurer qu'il n'y a rien dans install/flightgear/fgdata là
  # où download_and_compile.sh est lancé !) :
  download_and_compile.sh --git-clone-site-params SourceForge=ssh:dany DATA

puis cloner le reste :

  # Si on ne passe aucun argument COMPONENT, d&c.sh va mettre à jour
  # FGData et, si les autres dépôts sont absents, cloner SimGear et
  # FlightGear ; ceci parce que le WHATTOBUILDALL du script est
  # (SIMGEAR FGFS DATA).
  download_and_compile.sh

Là, je n'ai pas spécifié de protocole, donc ça va utiliser https pour
les dépôts clonés. FGData, qui est déjà là, va être mis à jour sans
changement de protocole.

J'espère que c'est plus clair.

Florent Rougon a écrit :

En résumé (j'ai un peu peur de t'avoir noyé dans les explications) :

  - si d&c.sh doit installer ou mettre à jour un composant depuis un
    dépôt Git et qu'il ne le trouve pas à l'endroit attendu sous le
    répertoire courant, il va faire un 'git clone' et utiliser le
    contenu des éventuelles options --git-clone-default-proto et
    --git-clone-site-params (en se rabattant sur https si aucune n'a été
    passée) ;

  - si d&c.sh doit « traiter » un dépôt Git et qu'il le trouve à
    l'endroit attendu, il va faire essentiellement un
    'git pull --rebase', lequel utilise le protocole (et éventuellement
    nom d'utilisateur) indiqué dans le fichier .git/config à l'intérieur
    du dépôt.

C'est l'essentiel, cela doit être digérable, je pense. Par ailleurs,
comme les lignes de commande peuvent être un peu longues, il est
souhaitable, à mon avis, soit d'utiliser l'historique du shell pour
rappeler la dernière commande download_and_compile.sh, soit de se créer
un alias (dans le shell utilisateur : Bash, Zsh, etc.) ou un mini-script
shell contenant la commande avec les options souhaitées.

Les options courtes de download_and_compile.sh sont déjà assez
chargées ; pour les nouvelles options courtes, on est à chaque fois
obligé de choisir une lettre (ou un chiffre !) parmi celles qui restent,
et petit à petit, il devient très difficile et hasardeux de dire de
mémoire quelle option fait quoi. C'est pourquoi j'ai introduit getopt
pour pouvoir utiliser des options longues (du genre --faire-machin-truc)
qui sont beaucoup plus explicites et ne présentent pas le problème de
rareté des options courtes. Les futures options courtes ne devraient
être utilisées, à mon avis, que pour des choses jugées vraiment très
importantes.


FG 2018.4.0, Linux Mint 18 (64b), Quad Q6600 (2.4 GHz), RAM 4Go DDR2, GEFORCE GTX 650 1GB, OSG 3.2.0
Boeing 787-8 (YASim, avec nickyivyca, aco)
DR400 JSBSim (PAF)
DC3 JSBSim (PAF)

Hors ligne

Pied de page des forums