<br><font size=2 face="sans-serif">On 23/02/2005 18:50:54 Mathieu Malaterre wrote:<br>
>Jean-Michel,<br>
><br>
>Est-ce que tu peux me rappeler ce que tu utilises pour eviter le<br>
>probleme du firewall ? J'aimerais ajouter ca dans le Wiki VTK.<br>
></font>
<br>
<br><font size=2 face="sans-serif">Bonjour,</font>
<br>
<br><font size=2 face="sans-serif">en fait ca depend probablement du type de firewall utilisé.</font>
<br><font size=2 face="sans-serif">Moi, pour tous les acces exterieur, je dois passer par un proxy http avec authentification (username + password).</font>
<br><font size=2 face="sans-serif">Pour cela j'ai modifié un peu CMake (dans CMake/Source/CTest/cmCTestSubmit.cxx) pour ajouter le support "proxy autehntication".</font>
<br><font size=2 face="sans-serif">Andy Cedilnik a commité ce changement dans la version CVS de CMake.</font>
<br><font size=2 face="sans-serif">En gros ca prend en compte deux nouvelles variables d'environnement: </font>
<br><font size=2 face="sans-serif">HTTP_PROXY_USER et HTTP_PROXY_PASSWD qu'il faut positionner correctement, en plus des anciennes (HTTP_PROXY et HTTP_PROXY_PORT)</font>
<br><font size=2 face="sans-serif">example en sh/bash/zsh: </font>
<br><font size=2 face="sans-serif">export HTTP_PROXY=myhttpproxy.somecompany.com</font>
<br><font size=2 face="sans-serif">export HTTP_PROXY_PORT=8080</font>
<br><font size=2 face="sans-serif">export HTTP_PROXY_USER=joe</font>
<br><font size=2 face="sans-serif">export HTTP_PROXY_PASSWORD=secret</font>
<br><font size=2 face="sans-serif">Ca ca permet donc a CTest de soumettre les resultats du dashboard via http authentifié</font>
<br>
<br><font size=2 face="sans-serif">Du coté de gdcm, j'ai modifié un peu DartConfig.cmake, pour qu'il utilise le support HTTP de CTest, plutot que le support FTP:</font>
<br><font size=2 face="sans-serif">donc remplacer:</font>
<br><font size=2 face="sans-serif">SET (DROP_SITE "public.kitware.com")</font>
<br><font size=2 face="sans-serif">SET (DROP_LOCATION "/incoming")</font>
<br><font size=2 face="sans-serif">SET (DROP_SITE_USER "ftpuser")</font>
<br><font size=2 face="sans-serif">SET (DROP_SITE_PASSWORD "public")</font>
<br><font size=2 face="sans-serif">SET (DROP_METHOD "ftp")</font>
<br><font size=2 face="sans-serif">par:</font>
<br><font size=2 face="sans-serif">SET (DROP_SITE "public.kitware.com")</font>
<br><font size=2 face="sans-serif">SET (DROP_LOCATION "/cgi-bin/HTTPUploadDartFile.cgi")</font>
<br><font size=2 face="sans-serif">SET (DROP_METHOD "http")</font>
<br>
<br><font size=2 face="sans-serif">petite note au passage, si le firewall propose un proxy-ftp, il peut etre configuré comme suit (depend du proxy bien entendu, ici je montre l'exemple des proxies ftp qui prennent comme arguement USER@SITE, mais il en existe bien d'autre sortes...)</font>
<br><font size=2 face="sans-serif">SET (DROP_SITE "myftpproxy.somecompany.com")</font>
<br><font size=2 face="sans-serif">SET (DROP_LOCATION "/incoming")</font>
<br><font size=2 face="sans-serif">SET (DROP_SITE_USER "ftpuser@public.kitware.com")</font>
<br><font size=2 face="sans-serif">SET (DROP_SITE_PASSWORD "public")</font>
<br><font size=2 face="sans-serif">SET (DROP_METHOD "ftp")</font>
<br><font size=2 face="sans-serif">Le probleme c'est que Dart impose quand meme un déclenchement ("triggering") en utilisant HTTP, donc de toutes facons il faudra configurer positionner les variables d'environnement HTTP_* pour passer a l'exterieur...</font>
<br>
<br><font size=2 face="sans-serif">SET (TRIGGER_SITE "http://public.kitware.com/cgi-bin/Submit-Public-TestingResults.pl")</font>
<br>
<br><font size=2 face="sans-serif">Bon, enfin une derniere subtilité, c'est comment faire fonctionner CVS avec le firewall ? car CTest execute automatiquement CVS update avant chaque test !</font>
<br><font size=2 face="sans-serif">Je ne vais pas m'etendre sur les details car c'est compliqué, mais donner une ou deux pistes:</font>
<br>
<br><font size=2 face="sans-serif">HTTPort (http://www.htthost.com/) </font>
<br><font size=2 face="sans-serif">ssh + proxytunnel (http://proxytunnel.sourceforge.net/)</font>
<br>
<br><font size=2 face="sans-serif">Moi j'ai HTTPort qui ecoute en local un port (exemple 24012) et redirige ca, sur cvs.creatis.insa-lyon.fr sur le port 2402 (port CVS utilisé a GDCM) via un tunnelling http sur le proxy authentifié... ouf.</font>
<br>
<br><font size=2 face="sans-serif">Du coup mon CVSROOT n'est plus ":pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public", mais </font>
<br><font size=2 face="sans-serif">":pserver:anonymous@localhost:24012/cvs/public"</font>
<br>
<br><font size=2 face="sans-serif">Pour faire marcher le tout, j'ai un script cmake que je lance automatiquement la nuit avec la commande:</font>
<br><font size=2 face="sans-serif">ctest.exe -V -S myscript.gdcm.cmake</font>
<br>
<br><font size=2 face="sans-serif">il suppose que j'ai un repertoire f:/temp qui contient déjà:</font>
<br><font size=2 face="sans-serif">gdcmData (les images de test)</font>
<br><font size=2 face="sans-serif">gdcm (le checkout courant de GDCM)</font>
<br>
<br><font size=2 face="sans-serif">il mentionne egalement d'autres chemins en dur comme, le chemin de CMake et celui de CVS... a adapter selon les cas bien entendu.</font>
<br>
<br><font size=2 face="sans-serif">Voici le script:</font>
<br><font size=2 face="sans-serif">###################################################################</font>
<br><font size=2 face="sans-serif"># The values in this section must always be provided</font>
<br><font size=2 face="sans-serif">###################################################################</font>
<br>
<br><font size=2 face="sans-serif"># if you do not want to use the default location for a</font>
<br><font size=2 face="sans-serif"># dashboard then set this variable to the directory</font>
<br><font size=2 face="sans-serif"># the dashboard should be in</font>
<br><font size=2 face="sans-serif">SET (CTEST_DASHBOARD_ROOT "f:/temp")</font>
<br>
<br><font size=2 face="sans-serif"># this is the cvs module name that should be checked out</font>
<br><font size=2 face="sans-serif">SET (CTEST_MODULE_NAME GDCM)</font>
<br>
<br><font size=2 face="sans-serif"># these are the the name of the source and binary directory on disk. </font>
<br><font size=2 face="sans-serif"># They will be appended to DASHBOARD_ROOT</font>
<br><font size=2 face="sans-serif">SET (CTEST_SOURCE_NAME gdcm)</font>
<br><font size=2 face="sans-serif">SET (CTEST_BINARY_NAME gdcmbin)</font>
<br>
<br><font size=2 face="sans-serif">SET (CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}")</font>
<br><font size=2 face="sans-serif">SET (CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}")</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"># what cvs command to use for configuring this dashboard</font>
<br><font size=2 face="sans-serif">SET (CTEST_CVS_COMMAND "d:/Programs/cygwin/bin/cvs.exe")</font>
<br>
<br><font size=2 face="sans-serif"># which ctest command to use for running the dashboard</font>
<br><font size=2 face="sans-serif">SET (MY_CMAKE_ROOT E:/rouet/src/cmake/CMakeBin/bin/release)</font>
<br><font size=2 face="sans-serif">SET (CTEST_COMMAND </font>
<br><font size=2 face="sans-serif"> "${MY_CMAKE_ROOT}/ctest.exe -D Nightly -A \"${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}\""</font>
<br><font size=2 face="sans-serif">)</font>
<br>
<br><font size=2 face="sans-serif"># what cmake command to use for configuring this dashboard</font>
<br><font size=2 face="sans-serif">SET (CTEST_CMAKE_COMMAND "${MY_CMAKE_ROOT}/cmake.exe")</font>
<br>
<br>
<br><font size=2 face="sans-serif">####################################################################</font>
<br><font size=2 face="sans-serif"># The values in this section are optional you can either</font>
<br><font size=2 face="sans-serif"># have them or leave them commented out</font>
<br><font size=2 face="sans-serif">####################################################################</font>
<br>
<br><font size=2 face="sans-serif"># should ctest wipe the binary tree before running</font>
<br><font size=2 face="sans-serif">SET (CTEST_START_WITH_EMPTY_BINARY_DIRECTORY TRUE)</font>
<br>
<br><font size=2 face="sans-serif"># this is the initial cache to use for the binary tree, be careful to escape</font>
<br><font size=2 face="sans-serif"># any quotes inside of this string if you use it</font>
<br><font size=2 face="sans-serif">SET (CTEST_INITIAL_CACHE "</font>
<br>
<br><font size=2 face="sans-serif">//Name of the build</font>
<br><font size=2 face="sans-serif">BUILDNAME:STRING=GDCM-msdev_Vs71</font>
<br>
<br><font size=2 face="sans-serif">//Name of the computer/site where compile is being run</font>
<br><font size=2 face="sans-serif">SITE:STRING=joebar</font>
<br>
<br><font size=2 face="sans-serif">BUILD_EXAMPLES:BOOL=1</font>
<br><font size=2 face="sans-serif">BUILD_SHARED_LIBS:BOOL=1</font>
<br>
<br><font size=2 face="sans-serif">GDCM_DATA_ROOT:PATH=${CTEST_DASHBOARD_ROOT}/gdcmData</font>
<br>
<br><font size=2 face="sans-serif">CVS_UPDATE_OPTIONS:STRING=-d -P -A</font>
<br><font size=2 face="sans-serif">DROP_SITE_METHOD:STRING=http</font>
<br><font size=2 face="sans-serif">DROP_SITE_LOCATION:STRING=/cgi-bin/HTTPUploadDartFile.cgi</font>
<br><font size=2 face="sans-serif">")</font>
<br>
<br><font size=2 face="sans-serif">SET (CTEST_ENVIRONMENT</font>
<br><font size=2 face="sans-serif"> "GDCM_DICT_PATH=${CTEST_DASHBOARD_ROOT}/gdcm/Dicts"</font>
<br><font size=2 face="sans-serif"> "CVSROOT=:pserver:anonymous@localhost:24012/cvs/public"</font>
<br><font size=2 face="sans-serif">)</font>
<br>
<br><font size=2 face="sans-serif"># set any extra directories to do an update on</font>
<br><font size=2 face="sans-serif">SET (CTEST_EXTRA_UPDATES_1 "${CTEST_DASHBOARD_ROOT}/gdcmData" "-dAP")</font>
<br><font size=2 face="sans-serif">SET (CTEST_EXTRA_UPDATES_2 "${CTEST_DASHBOARD_ROOT}/gdcm" "-dAP")</font>
<br>
<br>
<br>
<br><font size=2 face="sans-serif">Voila j'espere que c'est clair et que ca remplira bien ton WIKI. Si tu as d'autres questions, n'hesites pas !</font>
<br><font size=2 face="sans-serif">Bonne traduction en english ;-)</font>
<br>
<br><font size=2 face="sans-serif">JM</font>