Justement hier, connaissant (pas très bien) ces changements en cours, j'hésitais parmi les derniers messages que je trouvais.
Et encore merci pour cette maintenance de d&c.sh.
Dany
]]>Depuis ce commit (14 novembre 2020), l'option --lts de download_and_compile.sh sélectionne la version 2020.3 pour SimGear, FlightGear et FGData. Il y a une nouvelle option, --old-lts, qui permet de choisir la version LTS précédente (LTS = Long Term Stable, pour FlightGear). Actuellement, il s'agit de la version 2018.3.
Si vous utilisiez déjà l'option --lts et que vous souhaitez continuer à le faire avec la nouvelle version de download_and_compile.sh, ajoutez l'option --cleanup lors de la première compilation, sinon vous allez mélanger du 2018.3 avec du 2020.3 et cela risque de ne pas bien compiler. Vous vous retrouverez alors avec la nouvelle version LTS de FlightGear : 2020.3.
]]>Tu as raison, f-toro, mais je ne peux pas modifier le message moi-même. Il faudrait en profiter pour remplacer http par https dans le lien, comme ceci :
https://sourceforge.net/p/flightgear/fgmeta/ci/next/tree/download_and_compile.sh
Fait.
P.S. : sur la liste de diffusion flightgear-devel, ça cause "photoscenery patches", en ce moment. Comme je crois que cela t'intéresse...
Oui, ça m'intéresse.
Faut que je prenne le temps de me traduire pour ça...
https://sourceforge.net/p/flightgear/fgmeta/ci/next/tree/download_and_compile.sh
P.S. : sur la liste de diffusion flightgear-devel, ça cause "photoscenery patches", en ce moment. Comme je crois que cela t'intéresse...
]]>Si bien qu'il ne marche plus...
A rectifier si possible !
]]>Florent Rougon a commité un complément au script
"download_and_compile.sh: make initial cloning of FGData easy and secure"
qui télécharge les FGData avec le protocole sécurisé https sur GitLab (miroir officiel) puis rétablit l'adresse SourceForge (toujours en https), qui fonctionne pour les mises à jour.
L'utilisateur est consulté avant l'application de ce contournement. Si vous voulez éviter cette demande (avoir tout automatique en une seule fois)
/chemin/vers/download_and_compile.sh -j$(nproc) --non-interactive
Avec cette procédure, la compilation (neuve) par d&c.sh devrait revenir "comme avant" sans précautions spéciales pour les DATA.
Sachant que la mise à jour par https ne posait déjà pas de problèmes.
Une fois de plus, un grand Merci à Florent !
]]>Je ne comprends pas...
Quand je vais sur fgmeta, la version de d&c est (à ce jour) bad115 par Florent Rougon 2019-07-06 10:19:42.
[EDIT]
Ah, pardon, j'avais un doute dans cette direction mais j'ai compris : ce que tu donnes est le résultat de
./download_and_compile.sh --version
ou le contenu de la ligne dans le fichier download_and_compile.sh
script_blob_id='$Id: 430a3dc46d023564070f84fa05d6400cb561c0b6 $'
[/EDIT]
]]>> build-essential install
> cmake install
> cmake-data install
> fluid install
> freeglut3:amd64 install
> freeglut3-dev:amd64 install
> g++ install
> g++-7 install
> gdal-data install
> git install
> git-man install
> libaec0:amd64 install
> libarmadillo8 install
> libarpack2:amd64 install
> libavdevice57:amd64 install
> libboost-dev:amd64 install
> libboost1.65-dev:amd64 install
> libbz2-dev:amd64 install
> libc-dev-bin install
> libc6-dev:amd64 install
> libcoin80v5 install
> libcurl4-openssl-dev:amd64 install
> libdap25:amd64 install
> libdapclient6v5:amd64 install
> libdbus-1-dev:amd64 install
> libdrm-dev:amd64 install
> libegl1-mesa-dev:amd64 install
> libepsilon1:amd64 install
> liberror-perl install
> libevdev-dev:amd64 install
> libevent-core-2.1-6:amd64 install
> libevent-dev install
> libevent-extra-2.1-6:amd64 install
> libevent-openssl-2.1-6:amd64 install
> libevent-pthreads-2.1-6:amd64 install
> libexpat1-dev:amd64 install
> libfltk-cairo1.3:amd64 install
> libfltk-forms1.3:amd64 install
> libfltk-gl1.3:amd64 install
> libfltk-images1.3:amd64 install
> libfltk1.3:amd64 install
> libfltk1.3-dev install
> libfontconfig1-dev:amd64 install
> libfreetype6-dev:amd64 install
> libfreexl1:amd64 install
> libfyba0:amd64 install
> libgdal20 install
> libgeos-3.6.2:amd64 install
> libgeos-c1v5:amd64 install
> libgeotiff2:amd64 install
> libgl1-mesa-dev:amd64 install
> libgles1:amd64 install
> libgles2-mesa-dev:amd64 install
> libglew-dev:amd64 install
> libglew2.0:amd64 install
> libglib2.0-dev:amd64 install
> libglib2.0-dev-bin install
> libglu1-mesa-dev:amd64 install
> libglvnd-core-dev:amd64 install
> libglvnd-dev:amd64 install
> libgraphicsmagick-q16-3 install
> libhdf4-0-alt install
> libhdf5-100:amd64 install
> libice-dev:amd64 install
> libinput-dev:amd64 install
> libiso9660-10:amd64 install
> libjpeg-dev:amd64 install
> libjpeg-turbo8-dev:amd64 install
> libjpeg8-dev:amd64 install
> libjsoncpp1:amd64 install
> libkmlbase1:amd64 install
> libkmldom1:amd64 install
> libkmlengine1:amd64 install
> libminizip1:amd64 install
> libmtdev-dev install
> libmysqlclient20:amd64 install
> libnetcdf13:amd64 install
> libodbc1:amd64 install
> libogdi3.2 install
> libopenal-dev:amd64 install
> libopengl0:amd64 install
> libopenscenegraph-3.4-131:amd64 install
> libopenscenegraph-3.4-dev install
> libopenthreads-dev install
> libopenthreads20:amd64 install
> libpcre16-3:amd64 install
> libpcre3-dev:amd64 install
> libpcre32-3:amd64 install
> libpcrecpp0v5:amd64 install
> libplib-dev install
> libplib1 install
> libpng-dev:amd64 install
> libpq5:amd64 install
> libproj12:amd64 install
> libpthread-stubs0-dev:amd64 install
> libqhull7:amd64 install
> libqt5concurrent5:amd64 install
> libqt5designer5:amd64 install
> libqt5designercomponents5:amd64 install
> libqt5help5:amd64 install
> libqt5opengl5:amd64 install
> libqt5opengl5-dev:amd64 install
> libqt5positioning5:amd64 install
> libqt5printsupport5:amd64 install
> libqt5qml5:amd64 install
> libqt5quick5:amd64 install
> libqt5quickparticles5:amd64 install
> libqt5quicktest5:amd64 install
> libqt5quickwidgets5:amd64 install
> libqt5sensors5:amd64 install
> libqt5sql5:amd64 install
> libqt5sql5-sqlite:amd64 install
> libqt5svg5-dev:amd64 install
> libqt5test5:amd64 install
> libqt5webchannel5:amd64 install
> libqt5webkit5:amd64 install
> libqt5websockets5:amd64 install
> libqt5websockets5-dev:amd64 install
> libqt5xml5:amd64 install
> librhash0:amd64 install
> libsdl2-2.0-0:amd64 install
> libsm-dev:amd64 install
> libspatialite7:amd64 install
> libstdc++-7-dev:amd64 install
> libsuperlu5:amd64 install
> libsz2:amd64 install
> libudev-dev:amd64 install
> liburiparser1:amd64 install
> libuv1:amd64 install
> libvcdinfo0:amd64 install
> libwacom-dev install
> libwayland-bin install
> libwayland-dev:amd64 install
> libx11-dev:amd64 install
> libx11-xcb-dev:amd64 install
> libxau-dev:amd64 install
> libxcb-dri2-0-dev:amd64 install
> libxcb-dri3-dev:amd64 install
> libxcb-glx0-dev:amd64 install
> libxcb-present-dev:amd64 install
> libxcb-randr0-dev:amd64 install
> libxcb-render0-dev:amd64 install
> libxcb-shape0-dev:amd64 install
> libxcb-sync-dev:amd64 install
> libxcb-xfixes0-dev:amd64 install
> libxcb1-dev:amd64 install
> libxdamage-dev:amd64 install
> libxdmcp-dev:amd64 install
> libxerces-c3.2:amd64 install
> libxext-dev:amd64 install
> libxfixes-dev:amd64 install
> libxft-dev install
> libxi-dev:amd64 install
> libxine2:amd64 install
> libxine2-bin install
> libxine2-ffmpeg:amd64 install
> libxine2-misc-plugins:amd64 install
> libxine2-plugins install
> libxinerama-dev:amd64 install
> libxkbcommon-dev install
> libxmu-dev:amd64 install
> libxmu-headers install
> libxrender-dev:amd64 install
> libxshmfence-dev:amd64 install
> libxt-dev:amd64 install
> libxxf86vm-dev:amd64 install
> mesa-common-dev:amd64 install
> mysql-common install
> odbcinst install
> odbcinst1debian2:amd64 install
> proj-data install
> python3-distutils install
> python3-lib2to3 install
> qml-module-qtquick-dialogs:amd64 install
> qml-module-qtquick-privatewidgets:amd64 install
> qml-module-qtquick-window2:amd64 install
> qml-module-qtquick2:amd64 install
> qt5-assistant install
> qt5-default:amd64 install
> qt5-qmake:amd64 install
> qt5-qmake-bin install
> qt5-qmltooling-plugins:amd64 install
> qtbase5-dev:amd64 install
> qtbase5-dev-tools install
> qtbase5-private-dev:amd64 install
> qtchooser install
> qtdeclarative5-dev:amd64 install
> qtdeclarative5-private-dev:amd64 install
> qttools5-dev:amd64 install
> qttools5-dev-tools install
> x11proto-core-dev install
> x11proto-damage-dev install
> x11proto-dev install
> x11proto-fixes-dev install
> x11proto-input-dev install
> x11proto-xext-dev install
> x11proto-xf86vidmode-dev install
> x11proto-xinerama-dev install
> xorg-sgml-doctools install
> xtrans-dev install
> zlib1g-dev:amd64 install
200 paquets! Il fut un temps pas si lointain ou il y en avait une vingtaine La rançon du progrès...
Heureusement on a le script d&c Et encore un grand merci à tous ceux qui le maintiennent.
2) Là, il faut que je m'y penche, tête reposée et aspirine à portée de main. tant qu'on a pas de souci on pense que ça n'arrivera pas...
La méthode Autre méthode : clonage avec SSH et mises à jour avec HTTPS devrait être assez simple: on clone via le protocole ssh avec un mot de passe (il faut donc un compte sur SourceForge) puis on met à jour avec le protocole https. A priori, les mises à jour en https devraient toujours passer, sauf si vous n'en avez pas fait depuis 10 ans et que ça revient à quasiment tout télécharger (je me répète, mais comme on est sur plusieurs fils...).
3) Pour moi la variable "WHATTOBUILDALL" est inutile. Je la "vide" systématiquement. Je rentre les paramètres dans la ligne de commande.
En plus ça permet, si on lance sans aucun paramètre de ne faire que le apt/update/install. Ok on peut toujours interrompre par "ctrl-c" mais bon...
Je ne clone pas fgmeta, je dn le script si je vois une modif. Primitif, mais on a ses petites habitudes
Par contre je n'ai jamais rien compris à la déclaration de version...
C'est justement parce que tu ne télécharges pas d&c.sh « comme il faut ».
Je conseille d'utiliser le dépôt fgmeta au lieu de télécharger manuellement download_and_compile.sh :
cd ~/"où vous voulez"
git clone https://git.code.sf.net/p/flightgear/fgmeta fgmeta.git
(le dernier argument est optionnel, il donne le répertoire où vous voulez télécharger fgmeta ; par défaut, c'est 'fgmeta' ; je préfère ajouter '.git' pour me rappeler que c'est un dépôt Git, ce qui permet de faire plein de choses intéressantes)
C'est très rapide. Ensuite, pour mettre à jour, rien de plus simple :
cd fgmeta.git
git pull
(si jamais vous faites des commits locaux, utilisez 'git pull --rebase' au lieu de 'git pull' ; bien sûr, si vos commits entrent en conflit avec une mise à jour, il faudra régler le conflit ou repartir d'un fgmeta tout propre ; Google "Git conflict resolution" doit donner plein de résultats pour la résolution de conflits)
Quels avantages y a-t-il à cloner fgmeta plutôt que de télécharger manuellement download_and_compile.sh ?
1) C'est pas plus compliqué. C'est même plus simple car le script est déjà exécutable une fois le clonage effectué, pas besoin de jouer avec 'chmod'.
2) download_and_compile.sh écrit son numéro de version correctement dans le log et la commande 'download_and_compile.sh --version' le rapporte sans rien faire d'autre, si besoin (ne pas oublier que la doc de référence sur 'download_and_compile.sh' est obtenue en lançant 'download_and_compile.sh --help' ; le wiki FG n'est hélas pas à jour là-dessus).
Le numéro rapporté est mis à jour automatiquement par Git lors d'un clone, du checkout d'une branche ou d'une mise à jour du dépôt fgmeta. Ce n'est pas un numéro de commit, c'est un “blob id”. La mise à jour de ce numéro ne pollue pas les diffs dans le dépôt, et on ne risque pas d'oublier de la faire (mettre à jour un numéro de version à chaque commit, c'est aberrant ; et si on ne met pas à jour à chaque fois, c'est trompeur). Pour trouver un commit contenant tel blob id, on peut utiliser ce script :
#! /bin/sh
#
# From <http://stackoverflow.com/questions/223678/which-commit-has-this-blob>
obj_name="$1"
shift
git log "$@" --pretty=format:'%T %h %s' \
| while read tree commit subject ; do
if git ls-tree -r $tree | grep -q "$obj_name" ; then
echo $commit "$subject"
fi
done
Exemple à exécuter depuis la racine du dépôt fgmeta (j'appelle le script ci-dessus find-git-commits-containing-blob.sh, il faut évidemment que vous le rendiez exécutable et le mettiez dans votre PATH si vous voulez essayer ces commandes) :
$ ./download_and_compile.sh --version
download_and_compile.sh version c8c09570f4d05dc7c3a0a4c284b6655de0c5def7
This script is part of the FlightGear project.
This program is free software
(...)
$ find-git-commits-containing-blob.sh c8c09570f4d05dc7c3a0a4c284b6655de0c5def7
56e1055 download_and_compile.sh: improvements related to package installation
$ git show 56e1055
[détail du commit, appuyez sur 'q' pour quitter si votre $GIT_PAGER est
'less']
$
3) Pas besoin de dire à vos petits camarades : « tu trouves la ligne machin, la modifies comme ci comme ça, etc. et fais une prière avant de le lancer... » Si les gens ne modifient pas le script :
- Les mises à jour de download_and_compile.sh sont triviales ('cd fgmeta.git && git pull').
- C'est plus facile d'aider les autres. Il suffit de voir quels arguments ils passent à download_and_compile.sh.
4) Quand vous êtes à la racine du dépôt fgmeta, vous pouvez facilement voir tous les changements apportés à download_and_compile.sh depuis qu'il a été mis dans un VCS (2011) :
git log -- download_and_compile.sh
La même chose avec les diffs :
git log -p -- download_and_compile.sh
Si vous voulez voir les changements apportés par un commit listé par les commandes qui précèdent, vous pouvez faire ceci (exemple pour le commit 56e1055...) :
git show 56e1055dec8f685024585710989ea00f49e2c70b
Vous pouvez aussi comparer différents commits :
git diff <après-ça>..<jusque-là>
etc. (c'est du Git-fu standard, Google regorge d'exemples, tutoriels, livres...).
4) Ouais... bon... ça me semble un peu "prise de tête" pour pas grand chose.
C'est pourtant très simple et évite les complications dues à des modifs locales dans un script qu'on met à jour de temps en temps... Mais in fine, c'est à vous de voir.
Un souhait: déplacer le "mkdir -p "openscenegraph" dans le bloc "if _elementIn..." comme pour les autres options, ça éviterait la création d'un un dossier "openscenegraph" vide si on ne choisit pas OSG.
C'est fait.
Une interrogation: Ne pourrait'on pas supprimer la clause "BACKWARD COMPATIBILITY WITH 1.9.14a" ?
Moui... mais quel en serait l'intérêt ? Pose-t-elle un quelconque problème ? Si c'est non, je préfère la laisser pour le moment (la version 1.9.14 n'est « que » de 2014...).
P.S. : le logiciel du forum ne supporte pas les listes ? J'ai essayé les [ol] et [ul] indiqués ici sans grand succès...
Florent
]]>1) C'est parfait, avec -pn on ne passe plus en revue les dépendances optionnelles.
Pas encore essayé les autres options, mais j'y pense.
2) Là, il faut que je m'y penche, tête reposée et aspirine à portée de main. tant qu'on a pas de souci on pense que ça n'arrivera pas...
3) Pour moi la variable "WHATTOBUILDALL" est inutile. Je la "vide" systématiquement. Je rentre les paramètres dans la ligne de commande.
En plus ça permet, si on lance sans aucun paramètre de ne faire que le apt/update/install. Ok on peut toujours interrompre par "ctrl-c" mais bon...
Je ne clone pas fgmeta, je dn le script si je vois une modif. Primitif, mais on a ses petites habitudes
Par contre je n'ai jamais rien compris à la déclaration de version...
4) Ouais... bon... ça me semble un peu "prise de tête" pour pas grand chose.
Un souhait: déplacer le "mkdir -p "openscenegraph" dans le bloc "if _elementIn..." comme pour les autres options, ça éviterait la création d'un un dossier "openscenegraph" vide si on ne choisit pas OSG.
Une interrogation: Ne pourrait'on pas supprimer la clause "BACKWARD COMPATIBILITY WITH 1.9.14a" ?
]]>