Salome HOME
Merge improvements from SALOME_3 branch
[tools/install.git] / doc / readme.html
1 <!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
2 <html>
3 <head>
4        
5   <meta http-equiv="Content-Type"
6  content="text/html; charset=iso-8859-1">
7        
8   <meta name="GENERATOR"
9  content="Mozilla/4.8 [en] (X11; U; Linux 2.4.18-14 i686) [Netscape]">
10        
11   <meta name="Author"
12  content="Vadim SANDLER (v-sandler@opencascade.com)">
13   <title>SALOME v2.2.x Installation Wizard Help</title>
14 </head>
15   <body style="color: rgb(0,0,0); background-color: rgb(255,255,229);"
16  link="#0000ee" vlink="#551a8b" alink="#ff0000">
17   &nbsp;  
18 <center>  
19 <table width="100%" nosave="">
20     <tbody>
21       <tr nosave="">
22         <td nosave="">              
23       <h1><a href="http://www.opencascade.com"><img src="logocorp.png"
24  border="0" height="47" width="139">
25        </a></h1>
26         </td>
27         <td>              
28       <center>              
29       <h1><font size="+4"><font color="#000099">SALOME Installation Wizard
30  Help</font>&nbsp;</font></h1>
31         </center>
32         </td>
33         <td>              
34       <div align="right"><a href="http://www.opencascade.org/SALOME/"><img
35  src="application.png" border="0" height="47" width="109">
36        </a></div>
37         </td>
38       </tr>
39        
40   </tbody>  
41 </table>
42   </center>
43    
44 <div align="right"><b><font color="#000099">updated for the version 2.2.6</font></b></div>
45    
46 <hr>  
47 <ul>
48     <li> <a href="#install_from_wizard">Installing products with the Installation
49  Wizard</a></li>
50     <li> <a href="#check_version_proc">Notes on check products version procedure</a></li>
51     <li> <a href="#pick_up_env">Pick up the environment</a></li>
52     <li> <a href="#xml_files">Modifying XML configuration file</a></li>
53     <li> <a href="#new_products">Implementing installation scripts for the
54  new products</a></li>
55    
56 </ul>
57    
58 <h3>  
59 <hr></h3>
60    
61 <h3> <a name="install_from_wizard"></a>Installing products with the <font
62  color="#ff0000">Installation Wizard</font></h3>
63   You can run the Installation Wizard in two modes. It's root directory contains
64  python script runInstall.py:  
65 <p><b>[ python ] runInstall [ -g | b ] [ -f &lt;xml-file&gt; ] [ -t &lt;target-dir&gt;
66  ] [ -tmp &lt;tmp-dir&gt; ]</b> </p>
67    
68 <p><b>-g</b><br>
69 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Runs the Installation Wizard in the GUI
70 mode. In this case only &lt;xml-file&gt;  key is taken into account. This
71 option is used by default. <br>
72   <b>-b</b><br>
73 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Runs the Installation Wizard in the batch
74 mode. <br>
75   <b>-f &lt;xml-file&gt;</b><br>
76 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;The configuration  file to be used by the
77 Installation Wizard.&nbsp; If this parameter is missed then the script tries
78 to define the <i>Red Hat </i>version and uses corresponding xml file. For
79 examle, for the <i>Red Hat 8.0</i> <b>config_RedHat_8.0.xml</b>&nbsp;  file
80 is supposed to be used by default. If the appropriate file is not found, <b>config.xml</b>
81 is used by default. <br>
82   <b>-t &lt;target-dir&gt;</b><br>
83 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;The target directory, SALOME products  to
84 be installed to. If used, overloads target directory, given in the  configuration
85 xml file. <br>
86   <b>-tmp &lt;tmp-dir&gt;</b><br>
87 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;The directory, which is used to contain
88  temporary files.&nbsp; If used, overloads temporary directory, given in the
89 configuration xml file.<br>
90 <b>-h</b><br>
91 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Prints help information. <br>
92  </p>
93    
94 <p>So, to run the Installation Wizard in the GUI mode, just type <b>runInstall</b>.
95  </p>
96    
97 <p>The installation procedure can support some different Linux platforms
98 and various number of products. Currently the basic target platform is <i>Linux RedHat 8.0</i>. 
99 From SALOME version 2.2.4 Installation Wizard also supports <i>Linux Mandrake 10.1</i>.<br>
100 The using of configuration xml files gives flexible way to modify the list 
101 of products to be installed by the Installation Wizard without changing program's 
102 source code. Just create your own configuration file and implement installation 
103 scripts for products you want to be provided by Wizard. See <a
104  href="#xml_files">modifying XML configuration file</a> and <a
105  href="#new_products">implementing installation scripts for the new products</a> 
106 for more information. </p>
107    
108 <p>The <font color="#ff0000">Installation Wizard</font> was built with using 
109 of the <b><i>Qt&nbsp; </i></b>library. The program contains several pages. 
110 To navigate between pages use <i>"Next"</i> and <i>"Back"</i> buttons in the
111 lower part of the wizard window. <i>"Cancel"</i> button closes dialog  window
112 and quits the installation procedure. To invoke this help information  click
113 <i>"Help"</i> button. </p>
114    
115 <p>Skip the first <i>"Introduction"</i> page by pressing <i>"Next"</i> button.
116  </p>
117    
118 <p>In the second page you are proposed to enter the target directory where
119  all selected products will be installed to. You can also press <i>"Browse..."</i>
120  button and choose the folder for installation using standard <b><i>Qt</i></b>
121  browse directory dialog box. <br>
122   If the directory you want to install products does not exist you will be 
123 prompted to confirm directory creation. If you type wrong directory path, 
124 or if you have no permission for the directory you use, the corresponding
125  message box will raise. </p>
126    
127 <p>The Installation Wizard has two modes of the installation: basic and advanced. 
128 In the basic mode it is necessary just to enter target directory. If you want
129 to use advanced mode, click <i>"More..."</i> button. </p>
130    
131 <p>In the advanced mode you have the possibility to select products to be 
132 installed (see <a href="#ProductPage">Fig.1</a> ). Each product can have several 
133 options of installation: you have a possibility to use native products, install 
134 already precompiled binaries, build product from the sources or not install it 
135 at all. Possible options and default choice are provided by the configuration 
136 file. You can mark the products, you want to install, by clicking the corresponding 
137 radiobuttons in the list view in the left part of the page. Note that some 
138 products can be installed only together with other products (or these prerequisite 
139 products should be already installed on your computer). The installation procedure
140 has a special feature to automatically mark these products in the list view.
141 For example, in order to install <b><i>pyqt</i></b> it's necessary to have
142 <b><i>gcc, python</i></b>,<b><i> qt</i></b> and <b><i>sip</i></b> installed.
143 Therefore all these products will be marked when you check on <b><i>pyqt</i></b>. 
144 This feature can be switched off by clicking <i>"Auto set prerequisites products"</i>
145  checkbox. Turn on this checkbox if you want all pre-requisite
146  products to be automatically checked when you select some product to
147  be installed. Turn off this checkbox if you want to disable this feature.<br><br>
148   Special button in the right part of the page - <i>"Unselect All" </i>-
149 allows to reset quickly all products to the <i>"not install"</i> state. <br><br>
150   If you want to use native products (for example, for Linux Red Hat 8.0 these are gcc, tcl, 
151 Python, Qt, Sip and PyQt), select <i>"use native" </i>option. </p>
152
153 <p>There are also two checkboxes on this page: <i>"SALOME sources"</i> and <i>"SALOME binaries"</i>.
154 These three-state checkboxes allow quick selecting/unselecting SALOME packages
155 for the installation.</p>
156
157 <p>The box at the right side of the page displays the information about currently 
158 highlighted product: name, version, short description (if provided), required
159 disk space, temporary files disk space, list of prerequisites and user choice.
160 </p>
161    
162 <center><a name="ProductPage"></a><br>
163   <img src="productpage.png" height="544" width="567" alt="">
164    
165 <p><b>Figure 1:</b> "Installation settings" page in the advanced mode</p>
166   </center>
167    
168 <p>The <i>"Total disk space required:"</i> field displays how much disk space 
169 on the hard drive is required for installation of selected products. <br>
170   <b>Note: </b>Please, take into account that displayed amount of required
171  disk space is approximate and may differ when you install products on your
172  hard drive. </p>
173    
174 <p>The installation procedure uses a special directory to store temporary files.
175  The <i>"Space for temporary files:"</i> field shows the information about
176  required disk space on the hard drive for extracting and compiling of the
177  selected products. You can change the default directory - just type path
178 to the folder you want to use or click on the corresponding <i>"Browse..."</i>
179  button. </p>
180    
181 <p>The installation procedure also checks available disk space on the selected
182  directories according to the products selected. If there is no enough disk
183  space on your hard drive you will see the corresponding error message box.
184  </p>
185    
186 <p><b>Note: </b>Unfortunately, the configure procedure has a very annoying
187  bug under Linux platform. The directory should be obligatory entered without
188  spaces. For example, the configure procedure for <b><i>gcc</i></b> won't
189 work if you pass the following parameter: <i>--prefix="/New Folder 1"</i>.
190 <b>Therefore  you are strongly recommended not to use directory names containing
191 spaces.</b>  </p>
192    
193 <p>To proceed further click <i>"Next"</i> button. At this moment program
194 will make some tests to check installation settings: if there is enough disk
195 space on the hard drive, if native products are preinstalled, dependencies
196 (prerequisites) for each product you have selected to be&nbsp; installed.
197 If any test fails you will see corresponding warning message box. Otherwise
198 wizard will follow to the next page: </p>
199    
200 <center>  
201 <p><a name="ChoicePage"></a><br>
202   <img src="choicepage.png" height="544" width="567" alt="">
203  </p>
204    
205 <p><b>Figure 2:</b> "Check your choice" page</p>
206   </center>
207    
208 <p>This page summarizes the installation settings you've made on the previous
209  pages. You can check again your choice to change it if necessary. <br>
210   When you are sure that everything is OK, press <i>"Next"</i> button to
211 follow to the <a href="#ProgressPage">next page</a>. </p>
212    
213 <center><a name="ProgressPage"></a><br>
214   <img src="progresspage.png" height="544" width="567" alt="">
215    
216 <p><b>Figure 3:</b> "Installation progress" page</p>
217   </center>
218    
219 <p>To start installation of the selected products click <i>"Start"</i> button. 
220 It launches the shell installation script and you will be able to see the 
221 output of the script in the topmost dialog's frame. If any errors
222 occur during the installation the progress the corresponding messages
223 will be printed to the log grame window in the bold red font.
224    
225 <p>The <i>"Installation Status"</i> frame window shows you the progress of 
226 installation. It contains a list of all selected products with brief descriptions. 
227 "<font color="#ff0000">Waiting</font>" description means that installation 
228 of this product have not started yet. Currently installing product is marked 
229 as "<font color="#ff9900">Processing</font>". All installed products have 
230 "<font color="#33ff33">Completed</font>" description. </p>
231    
232 <p>You can abort installation and close the installation procedure using
233 <i>"Cancel"</i>  button. It sends the signal "SIGTERM" to the shell script.
234 The script has  a signal handler and will try to clear all temporary files.
235 The process of removing temporary files can take some time, so the installation
236 wizard will wait 3 seconds before closing. </p>
237    
238 <p>At the end of installation (all selected products have been installed
239 successfully) you can go back to the previous pages to start a new installation
240 or click <i>"Next"</i> button to go the Readme page: </p>
241    
242 <center>  
243 <p><a name="readmepage"></a><br>
244   <img src="readmepage.png" height="544" width="567" alt="">
245  </p>
246    
247 <p><b>Figure 4:</b> "Finish installation" page</p>
248   </center>
249    
250 <p>In this page you can read important information about the Instalation
251 Wizard itself and some hints: how to run and test SALOME or how to build
252 SALOME from the sources. This is the contents of the README file which you
253 can find in the root directory of the Installation Wizard. <br>
254   You can also launch SALOME Desktop from this page by clicking <i>"Launch
255  SALOME" </i>button. </p>
256    
257 <p>During the process of installation the script creates some environment
258  files to simplify procedure of launching SALOME. These shell scripts set
259 all necessary environment variables for all products you have installed.
260 To learn how installation scripts collects the environment, see&nbsp;<a
261  href="#pick_up_env"> here</a>. These files are: <b>salome.csh</b> + <b>salome.sh</b> 
262 in the <span style="font-style: italic;"><span
263  style="font-weight: bold;">KERNEL module</span></span><b><i> sources</i></b>
264 and <span style="font-style: italic;"><span style="font-weight: bold;">KERNEL module</span></span><b><i>
265  binaries</i></b> root directories and <b>env_products.csh</b> + <b>env_products.sh
266  </b>in the target directory. </p>
267    
268 <hr>  
269 <h3><a name="check_version_proc"></a>Notes on<font color="#ff0000"> check 
270 products version</font> procedure</h3>
271   Unfortunately under Linux platform there is no exact algorithm to identify
272  the product's version. The table below contains the information relating
273 to checking preinstalled products for the Linux RedHat 8.0 platform. <br>
274   &nbsp;  
275 <table border="1" width="100%" nosave="">
276     <tbody>
277       <tr nosave="">
278         <th nosave="">              
279       <center><font size="+1">Product</font></center>
280         </th>
281         <th nosave="">              
282       <center><font size="+1">Algorithm of checking</font></center>
283         </th>
284         <th nosave="">              
285       <center><font size="+1">Preliminary steps before launching</font>  
286     <br>
287         <font size="+1">of installation procedure</font></center>
288         </th>
289         <th nosave="">              
290       <center><font size="+1">Notes</font></center>
291         </th>
292       </tr>
293       <tr>
294         <td>gcc 3.2</td>
295         <td>ver=`gcc -dumpversion`</td>
296         <td>              
297       <center>-</center>
298         </td>
299         <td>ver should be 3.2.<br>
300   It is recommended to use native gcc on Linux RedHat 8.0</td>
301       </tr>
302       <tr nosave="">
303         <td>tcl 8.3</td>
304         <td nosave="">existence of TCLHOME <br>
305   existence of tclsh8.3 <br>
306   existence of wish8.3 <br>
307   existence of libtcl8.3.so <br>
308   existence of libtk8.3.so <br>
309   existence of libtclx8.3.so <br>
310   existence of libtkx8.3.so</td>
311         <td>set TCLHOME if you have preinstalled version of tcl. <br>
312   set LD_LIBRARY_PATH on a directory where libs can be found.</td>
313         <td>It is recommended to use native tcl/tk on Linux RedHat 8.0</td>
314       </tr>
315       <tr>
316        <td valign="top">boost 1.30.2<br>
317        </td>
318        <td valign="top">ver=`egrep 'BOOST_VERSION [0-9]+' ${BOOSTDIR}/boost/version.hpp 
319 | sed 's/.*BOOST_VERSION \([0-9]\+\)/\1/g'`<br>
320        </td>
321        <td valign="top">set BOOSTDIR if you have preinstalled version of
322 boost<br>
323        </td>
324        <td valign="top">It is impossible to use native BOOST and to install 
325 BOOST from binaries.<br>
326        </td>
327      </tr>
328      <tr>
329         <td>Open CASCADE 5.2<br>
330         </td>
331         <td>existence of CASROOT environment variable<br>ver_major=`grep "!define OCC_VERSION_MAJOR" ${CASROOT}/inc/Standard_Version.hxx | awk '{print $3}'`<br>
332 ver_minor=`grep "!define OCC_VERSION_MINOR" ${CASROOT}/inc/Standard_Version.hxx | awk '{print $3}'`<br>
333 ver="$ver_major.$ver_minor"<br>
334 </td>
335         <td>set CASROOT if you have preinstalled version of Open CASCADE</td>
336         <td>CASCADE's Standard_Version.hxx file provides version information.</td>
337       </tr>
338      <tr>
339         <td>Patch for Open CASCADE 5.2<br>
340         </td>
341         <td></td>
342         <td></td>
343         <td>Open CASCADE 5.2 provided with the Installation Wizard already includes the patch,
344 necessary for SALOME 2.2.x. In addition the Installation Wizard provides the sources of a Open CASCADE patch
345 which can be applied to original Open CASCADE 5.2 sources before its compilation.</td>
346       </tr>
347       <tr>
348         <td>Python 2.2.1</td>
349         <td>existence of PYTHONHOME <br>
350   isPython=`which python` <br>
351   ver=`python -V`</td>
352         <td>set PYTHONHOME to root Python folder <br>
353   set PATH on a directory where python can be found</td>
354         <td>Python should exist and ver should be equal to 2.2.1 <br>
355   It is recommended to use native Python on Linux RedHat 8.0</td>
356       </tr>
357       <tr>
358         <td>Mesa 3.4.2</td>
359         <td>existence of libGL.so.1.2.030402</td>
360         <td>set LD_LIBRARY_PATH on a directory where libGL.so.1.2.030402
361 can be found</td>
362         <td>You have a possibility to build products (vtk &amp; qt) with
363 Mesa drivers from the package supplied with this installation procedure or
364 to use OpenGL drivers installed on your computer locally. This check procedure
365  concerns only supplied Mesa driver.</td>
366       </tr>
367       <tr>
368         <td>Swig 1.3.17</td>
369         <td>isSwig=`which swig` <br>
370   ver=`swig -version` <br>
371   ver=`echo $ver | awk '{print $3}'`</td>
372         <td>set PATH on a directory where swig can be found</td>
373         <td>Swig should exist and ver should be equal to 1.3.17</td>
374       </tr>
375       <tr>
376         <td>Qt 3.0.5</td>
377         <td>existence of QTDIR <br>
378   ver=`grep "QT_VERSION_STR" ${QTDIR}/include/qglobal.h | sed -e 's%^#define QT_VERSION_STR\([[:space:]]*\)%%g' -e 's%\"%%g'`</td>
379         <td>set QTDIR if you have preinstalled version of qt</td>
380         <td>Qt's qglobal.h file provides version information: ver should be 3.0.5.<br>
381   You should set MESA_HOME only if you have preinstalled version of Mesa
382 3.4.2.       <br>
383   It is recommended to use native Qt on Linux RedHat 8.0</td>
384       </tr>
385       <tr>
386         <td>Qwt 0.4.1</td>
387         <td>existence of QWTHOME <br>
388   existence of libqwt.so.0.4.1</td>
389         <td>set&nbsp; QWTHOME if you have preinstalled version of qwt</td>
390         <td>We try to find libqwt.so.0.4.1 in the ${QWTHOME}/lib folder.&nbsp;</td>
391       </tr>
392       <tr>
393         <td>Hdf 5-1.4.4</td>
394         <td>existence of HDF5HOME <br>
395   existence of libhdf5.so.0.0.0 <br>
396   existence of libhdf5.settings<br>ver=`grep "HDF5 Version:" ${HDF5HOME}/lib/libhdf5.settings | awk '{print $3}'`</td>
397         <td>set HDF5HOME if you have preinstalled version of hdf</td>
398         <td>We try to find libhdf5.so.0.0.0 and libhdf5.settings in ${HDF5HOME}/lib
399  folder. <br>
400   File libhdf5.settings should contain the following entry: <br>
401   HDF5 Version: 1.4.4</td>
402       </tr>
403       <tr>
404         <td>Med 2.2.2</td>
405         <td>existence of MED2HOME <br>
406   existence of libmed.so.1.0.1</td>
407         <td>set MED2HOME if you have preinstalled version of med</td>
408         <td>Unfortunately we can't check version number. <br>
409   We try to find libmed.so.1.0.1 in ${MED2HOME}/lib folder. <br>
410   If you have problem with preinstalled version of med reinstall it.</td>
411       </tr>
412       <tr>
413         <td>Vtk 4.2</td>
414         <td>existence of VTKHOME <br>
415   existence of libvtkCommon.so</td>
416         <td>set VTKHOME if you have preinstalled version of vtk</td>
417         <td>Unfortunately we can't check the version number. <br>
418   We try to find libvtkCommon.so in ${VTKHOME}/lib/vtk folder. <br>
419   If you have problem with preinstalled version of vtk reinstall it.</td>
420       </tr>
421       <tr>
422        <td valign="top">Netgen 4.3<br>
423        </td>
424        <td valign="top">existence of NETGENROOT<br>
425        </td>
426        <td valign="top">set NETGENROOT if you have preinstalled version of 
427 Netgen.<br>
428        </td>
429        <td valign="top">Unfortunarely we can't find anything about netgen 
430 version.<br>
431 We just check if NETGENROOT environment varible is set.<br>
432        </td>
433      </tr>
434      <tr>
435         <td>OmniORB 3.0.5, <br>
436   OmniORBpy 1.5, <br>
437   OmniNotify 1.2</td>
438         <td>existence of OMNIORBDIR <br>
439   existence of libomniORB3.so.0.5 <br>
440   existence of _omnipymodule.so.0.5 <br>
441   existence of libCOSNotify3.so.0.5 <br>
442   existence of notifd <br>
443   existence of THIS_IS_omniORB_3_0_5 <br>
444   existence of THIS_IS_omniNotify_1_2 <br>
445   existence of THIS_IS_OMNIORBPY_1_5</td>
446         <td>set OMNIORBDIR if you have preinstalled version of omni</td>
447         <td>We try to find libomniORB3.so.0.5, _omnipymodule.so.0.5 and libCOSNotify3.so.0.5
448  in ${OMNIORBDIR}/lib/i586_linux_2.0_glibc2.1 folder. <br>
449   We try to find notifd in ${OMNIORBDIR}/bin/i586_linux_2.0_glibc2.1 folder. 
450       <br>
451   Additional checking - omni add special files THIS_IS_... <br>
452   We try to find THIS_IS_omniORB_3_0_5 in ${OMNIORBDIR} folder. <br>
453   We try to find THIS_IS_omniNotify_1_2 in ${OMNIORBDIR}/src/services/omniNotify. 
454       <br>
455   We try to find THIS_IS_OMNIORBPY_1_5 in ${OMNIORBDIR}/src/lib/omniORBpy
456 folder.</td>
457       </tr>
458       <tr>
459         <td>Numeric 22.0</td>
460         <td>ver=`python -c 'import Numeric; print Numeric.__version__' 2>/dev/null`</td>
461         <td>set PYTHONHOME if you have preinstalled version of Numeric package</td>
462         <td>If you have problem with preinstalled version of numeric 22.0 reinstall it.</td>
463       </tr>
464       <tr>
465         <td>Sip 3.3.2</td>
466         <td>existence of SIPDIR <br>sip_ver=`${SIPDIR}/sip -V | awk '{print $1}'`</td>
467         <td>set SIPDIR to directory where you have sip preinstalled</td>
468         <td>Searching for the sip binary is performed in the folder pointed by the $SIPDIR variable if it is set
469 and then by using $PATH variable. <br>
470   It is recommended to use native Sip on Linux RedHat 8.0</td>
471       </tr>
472       <tr>
473         <td>PyQt 3.3.2</td>
474         <td>existence of PYQTDIR <br>
475   existence of libqtxmlcmodule.so.1.0.0</td>
476         <td>set PYQTDIR to directory where you have sip preinstalled</td>
477         <td>Unfortunately we can't check the version number. <br>
478   We try to find libqtxmlcmodule.so.1.0.0 in $PYQTDIR folder if you set PYQTDIR, 
479 otherwise searching is done using $LD_LIBRARY_PATH . <br>
480   If you have problem with preinstalled version of PyQt 3.3.2 reinstall it. 
481       <br>
482   It is recommended to use native PyQt on Linux RedHat 8.0</td>
483       </tr>
484       <tr>
485         <td>HappyDoc 2.1</td>
486         <td>existence of happydoc <br>
487   ver=`happydoc | grep "HappyDoc version 2.1"`</td>
488         <td>set PATH variable to the directory where you have HappyDoc installed.</td>
489         <td>We try to find happydoc in $PATH. <br>
490   ver should not be empty. <br>
491   This product is not obligatory. It was added only for your comfort.</td>
492       </tr>
493       <tr>
494         <td>Doxygen 1.3-rc2</td>
495         <td>existence of doxygen <br>
496   existence of doxysearch <br>
497   existence of doxytag <br>
498   existence of doxywizard<br>ver=`doxygen --version`</td>
499         <td>set QTDIR if you have preinstalled version of qt <br>
500   set PATH on a directory where doxygen, doxysearch, doxytag and doxywizard
501  can be found</td>
502         <td>doxygen, doxysearch, doxytag, doxywizard binaries should exist; ver should be 1.3-rc2.<br>
503 It's necessary to have compiled Qt in order to build doxywizard. <br>
504   If you have problem with preinstalled version of doxygen 1.3-rc2 reinstall
505  it. <br>
506   This product is not obligatory. It was added only for your comfort.</td>
507       </tr>
508       <tr>
509         <td>Graphviz 1.9</td>
510         <td>existence of dot binary.<br>ver=`dot -V 2>&1 | awk '{print $3}'`</td>
511         <td>add GraphViz's bin directory to the PATH environment variable</td>
512         <td>We try to find dot program in the $PATH.</td>
513       </tr>
514       <tr>
515         <td>MODULE binaries<br>
516   (MODULE=KERNEL,GEOM, ...)<br>
517         </td>
518         <td>existence of MODULE_ROOT_DIR <br>
519   existence of VERSION file <br>
520   ver=`cat $MODULE_ROOT_DIR/bin/salome/VERSION | awk -F: '{print $2}' | tr 
521 -d '[:space:]'`</td>
522         <td>set MODULE_ROOT_DIR if you have preinstalled binaries of MODULE
523  version 2.2.4</td>
524         <td>MODULE binaries should exist and ver should be equal to 2.2.4</td>
525       </tr>
526       <tr>
527         <td>MODULE sources<br>
528   (MODULE=KERNEL,GEOM, ...)<br>
529         </td>
530         <td>existence of MODULE_SRC_DIR <br>
531   existence of VERSION file <br>
532   ver=`cat $MODULE_SRC/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]'`</td>
533         <td>set MODULE_SRC_DIR if you have preinstalled sources of MODULE
534 version  2.2.4</td>
535         <td>MODULE sources should exist and ver should be equal to 2.2.4</td>
536       </tr>
537        
538   </tbody>  
539 </table>
540    
541 <p><b>Note:</b> For native products installation procedure sets proper environment
542  variables itself, and you do not need to set such variables like, e.g. <b>TCLHOME</b>
543  or <b>PYTHONHOME</b>. <br>
544   If you have native products installed to different from default directories
545  (not <b>/usr/bin</b>, <b>/usr/lib</b>...), it is recommended to follow above 
546 description. Or you should set properly $PATH and $LD_LIBRARY_PATH variables 
547 <b><font color="#ff0000">before</font></b> starting Installation Wizard. Otherwise
548 installation script will fail to find preinstalled products. </p>
549 <p><b>Note:</b> For some native products (e.g. gcc, Python) the rules of version
550 checking are not so strict as described in the table. Only major and minor numbers of version
551 should coincide with prerequisite. Release number can be larger. It is done for making a possibility
552 to use native products for newer versions of Red Hat (for example, Linux Red Hat 9 includes native
553 gcc 3.2.2 installation).
554 If native product has version number larger than that required by installation procedure,
555 you will be prompted by the warning message like this: <i>"You have newer version of gcc installed
556 on your computer than that is required (3.2). Continue?"</i>. You can press <i>"Yes"</i> button
557 to procede with the installation but in this case you should be aware of what you are doing.
558 SALOME binaries (including other products) are compiled with the prerequisites from the list
559 and most likely can not be run successfully if this products are not found.
560 This can be only helpful if you intend to build all products from sources.</p>
561    
562 <h3>  
563 <hr></h3>
564    
565 <h3> <a name="pick_up_env"></a>Pick up the <font color="#ff0000">environment</font></h3>
566   Please, read carefully the following information. This section describes
567  how the installation procedure collects environment.  
568 <p>After installing each product shell script creates in the product root
569  folder special environment file. The name of the file is generated from
570 the name of product by the following scheme: <b>env_&lt;product_name&gt;.sh.</b>
571  This file includes all necessary product settings. For example for Vtk the 
572 file is <b>env_Vtk.sh</b>. Environment files allows to pick up all environment 
573 settings which are necessary to build and launch SALOME. When installing SALOME
574 sources and/or binaries, installation procedure picks up all the settings 
575 files and generate two scripts: <b>salome.sh</b> and <b>salome.csh </b>for
576  sh and csh correspondingly. Such approach helps to save time when reinstalling
577  products and you may not to care about setting all environment variables
578 manually to build/launch SALOME. What you need is just to use one of these
579 scripts.  </p>
580    
581 <p>This concerns also those products which are not currently installed. For 
582 example, you install some SALOME binaries to the directory where you have 
583 previously installed other products.&nbsp; Installation procedure still tries 
584 to collect environment files from the target directory if it find necessary 
585 products there. If some product is not found in the target directory the corresponding
586 section of <b>salome.sh/salome.csh</b> files will be skipped.  <br>
587   For native products (<i><b>gcc, tcl, python, qt, sip, pyqt </b>for RedHat-8.0<b>)</b></i> 
588 instal script tries to find them using <b>$PATH</b> / <b>$LD_LIBRARY_PATH</b> 
589 variables and then in the system default directories (<b>/usr/bin, /usr/lib</b> 
590 etc., depending on the product). </p>
591    
592 <p>In any case you may edit <b>salome.*</b> files after installation procedure
593  finishes, as you want. </p>
594    
595 <hr>  
596 <h3><a name="xml_files"></a>Modifying <font color="#ff0000">XML</font> configuration
597  <font color="#ff0000">file</font></h3>
598   <font color="#000000">You can create your own configuration. Installation
599  Wizard then can take it as command line argument to provide list of products
600  you want to install with it. The list of products and some another settings
601  for the Installation Wizard are provided in xml file. The default file which 
602 Installation Wizard looks for if no command line arguments ar given, is <b>config.xml</b>. 
603 This section describes the format of configuration file.</font> <br>
604   <font color="#000000">Xml tags are in bold blue, optional sections/tags
605 are in brackets.</font>  
606 <p><b><font color="#000099">&lt;document&gt;</font></b> <br>
607   <font color="#000000"><b>&nbsp;&nbsp;&nbsp; </b>[</font><b><font
608  color="#000099">&lt;config</font></b><font color="#000000"> [version=&lt;install_wizard_version&gt;]</font>
609  <br>
610   <font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
611  [caption=&lt;install_wizard_caption&gt;]</font> <br>
612   <font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
613  [copyright=&lt;install_wizard_copyright&gt;]</font> <br>
614   <font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
615  [license=&lt;install_wizard_license_info&gt;]</font> <br>
616   <font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
617  [os=&lt;target_platform&gt;]</font><b><font color="#000099">/&gt;</font></b><font
618  color="#000000">]</font> <br>
619   <font color="#000000"><b>&nbsp;&nbsp;&nbsp; </b>[</font><b><font
620  color="#000099">&lt;path</font></b><font color="#000000"> [targetdir=&lt;target_directory&gt;]</font>
621  <br>
622   <font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
623  [tempdir=&lt;temp_directory&gt;]</font><b><font color="#000099">/&gt;</font></b><font
624  color="#000000">]</font> <br>
625   <font color="#000000">&nbsp;&nbsp;&nbsp; [</font><b><font
626  color="#000099">&lt;product</font></b><font color="#000000"> name=&lt;product_name&gt;</font>
627  <br>
628   <font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
629  version=&lt;product_version&gt;</font> <br>
630   &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;
631 &nbsp;&nbsp; &nbsp;&nbsp; [context=&lt;product_context&gt;]<br>
632   &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;
633 &nbsp;&nbsp; &nbsp;&nbsp; [description=&lt;product_description&gt;]<br>
634   <font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
635  install=&lt;installation_mode&gt;</font> <br>
636   <font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
637  supported=&lt;supported_installation_modes&gt;</font> <br>
638   <font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
639  disable=&lt;disable_flag&gt;<br>
640 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
641 [pickupenv=&lt;pickup_env_flag&gt;]</font><font color="#000000"><br>
642 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
643 dependancies=&lt;list_of_prerequisites&gt;</font>&nbsp;<font
644  color="#000000"><br>
645 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
646  &nbsp;installdiskspace=&lt;install_disk_space&gt;</font>  <font
647  color="#000000"><br>
648 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
649 &nbsp;temporarydiskspace=&lt;tmp_disk_space&gt;</font>  <font
650  color="#000000"><br>
651 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
652 &nbsp;script=&lt;installation_script_name&gt;</font><font
653  color="#000099">/<b>&gt;</b></font><font color="#000000">]</font>  <font
654  color="#000000"><br>
655 &nbsp;&nbsp;&nbsp; [</font><b><font color="#000099">&lt;product</font></b><font
656  color="#000000"> ... </font><font color="#000099">/<b>&gt;</b></font><font
657  color="#000000">]</font>  <font color="#000000"><br>
658 &nbsp;&nbsp;&nbsp;<b> .</b></font><b><font color="#000099">..</font></b> 
659 <b><font color="#000099"><br>
660 &lt;/document&gt;</font></b> </p>
661    
662 <h4><font color="#000000">&lt;config&gt; section</font></h4>
663   <font color="#000000">This is optional section - contains general information
664  Installation Wizard itself.</font>  
665 <ul>
666     <li> <font color="#000000"><b>version</b>: Installation Wizard's version
667  number;</font></li>
668     <li> <font color="#000000"><b>caption</b>: Installation Wizard's main
669 window  title - if this string contains '%1' text - the title will contain
670 in this  place version number (see above);</font></li>
671     <li> <font color="#000000"><b>copyright</b>: Installation Wizard's copyright
672  information (appears on the first page of program);</font></li>
673     <li> <font color="#000000"><b>license</b>: Installation Wizard's license
674  information (appears on the first page of program);</font></li>
675     <li> <font color="#000000"><b>os</b>: Contains directory name (relative
676  from ./Products/BINARIES) where Installation Wizard should search precompiled
677  binaries packages. If this tag is skipped, binaries are implied to be in
678 the ./Products/BINARIES directory.</font></li>
679    
680 </ul>
681    
682 <h4> <b><font color="#000000">&lt;path&gt; section</font></b></h4>
683   This is optional section - contains default directories.  
684 <ul>
685     <li> <font color="#000000"><b>targetdir</b>: Starting target directory 
686 - path to the directory where products should be installed;</font></li>
687     <li> <font color="#000000"><b>tempdir</b>: Starting temp directory -
688 path to the directory for the temporary files.</font></li>
689    
690 </ul>
691    
692 <h4> <b>&lt;product&gt; section</b></h4>
693   This section describes product to be installed with the Installation Wizard.
694  All tags are obligatory. Products appears in the products tree and are installed 
695 in the order they are described in the configuration file. It is recommended 
696 to insert native products at the top of the list before all other products.
697  
698 <ul>
699     <li> <font color="#000000"><b>name</b>: Name of the product;</font></li>
700     <li> <font color="#000000"><b>version</b>: Version of the product;</font></li>
701     <li> <font color="#000000"><b>description</b>: Description of the product (optional);</font></li>
702     <li> <font color="#000000"><b>context</b>: Context of the product (optional); the possible values are <b>'salome sources'</b>,
703          <b>'salome binaries'</b> and <b>'prerequisite'</b>;</font></li>
704     <li> <font color="#000000"><b>supported</b>: Supported modes of installation,
705  should contain one or more of the following options, separated by comma: 
706     <i>install sources</i>, <i>install binaries</i>, <i>use native</i>. Installation
707  script should contain corresponding functions for each of supported installation
708  modes;</font></li>
709     <li> <font color="#000000"><b>install</b>: Default (starting) installation 
710 mode;</font></li>
711     <li> <font color="#000000"><b>disable</b>: If this flag has 'true' value, 
712 corresponding product will not appear in the list of products tree and will 
713 not be installed;</font></li>
714   <li><b>pickupenv</b>: This flag points that pickup environment procedure
715 should be performed for this module. If this flag equal to <b>true</b>, &nbsp;salome.sh
716 and salome.csh files will&nbsp; be created in the product's installation
717 directory. This is optional key, default value is <b>false.</b><br>
718   </li>
719     <li> <font color="#000000"><b>dependancies</b>: list of prerequisite
720 products,  which are necessary to build this product, separated by comma;</font></li>
721     <li> <font color="#000000"><b>installdiskspace</b>: Total amount space
722  (integer, in Kbytes), which product occupies on the hard drive after the
723 installation;</font></li>
724     <li> <font color="#000000"><b>temporarydiskspace</b>: Disk space (integer, 
725 in Kbytes) for the temporary files, which is necessary to build the product
726  from the sources;</font></li>
727     <li> <font color="#000000"><b>script</b>: Installation script name. This
728  script is in charge of installation of the product. It is called when necessary
729  from the main program. See <a href="#new_products">next section</a> for
730 more information.</font></li>
731    
732 </ul>
733   <b>Note:</b> If you add new products to be installed with Installation
734 Wizard, you should also provide installation script for this product. See
735 next section for more details.  
736 <hr>  
737 <h3><a name="new_products"></a>Implementing <font color="#ff0000">installation
738  scripts</font> for the new products</h3>
739   When you want some product to be installed with the Installation Wizard,
740  you should add it's description it <a href="#xml_files">in the configuration
741  file</a> and create bash installation script, following described in this
742  section rules. <br>
743   There are some obligatory functions to be provided in this installation
744 script. These functions are automatically called by master installation script
745 or/and GUI shell when it is necessary.<br>
746 <font color="#000000">File <b>common.sh</b> contains some service functions
747 which  can be used in your installation script, like <b>make_env()</b>,<b>
748 make_dir()</b>, <b>try_existing()</b>, <b>sort_path()</b>,<b> find_in_path()</b>,
749 etc.</font>   
750 <ul>
751     <li> <b>check_version()</b>:&nbsp; This function allows to check the
752 version  of the product already installed on the computer. It should try
753 to find product (native or preinstalled in the target directory) and check
754 it version. This helps to avoid unnecessary reinstallation. This is internal
755 function and is not called</li>
756     <li> <b><font color="#000000">try_native()</font></b><font
757  color="#000099">: </font><font color="#000000">This function is called when 
758     <i>'use native' </i>installation mode is selected by the user. The function 
759 should try to find native version of the product and define possibility of 
760 it usage. Should create environment for the product in the temporary directory 
761 (see also description of <b>print_env(</b>) function). If you do not provide 
762 native mode installation, you can omit this function.</font></li>
763     <li> <font color="#000000"><b>install_source()</b>: This function is
764 called  when <i>'install sources</i>' installation mode is selected by the
765 user. The function is responsible for the building of the product from the
766 sources package. Should create environment for the product in the temporary
767 directory (see also description of <b>print_env(</b>) function). If you do
768 not provide sources mode installation, you can omit this function</font></li>
769     <li> <font color="#000000"><b>install_binary()</b>: This function is
770 called  when <i>'install binaries'</i> installation mode is selected by the
771 user.  The function is responsible for the extracting of the product from
772 the binaries package. Should create environment for the product in the temporary
773 directory (see also description of <b>print_env(</b>) function). If you do
774 not provide binaries mode installation, you can omit this function.</font></li>
775     <li> <b>try_preinstalled()</b>: <font color="#000000">This function is
776  called when<i> 'not install'</i> installation mode is selected by the user. 
777 In this case script should inspect target directory to try to find already
778  preinstalled product, pick up and check environment from there. See <a
779  href="#pick_up_env">here</a> for more details.</font></li>
780     <li> <font color="#000000"><b>print_env()</b>: This function is in charge 
781 of creation environment script. It should create file with name </font><b>env_&lt;product_name&gt;.sh</b>
782  in the temporary directory and then copy it into the product installation
783  directory. The file should contain all necessary environment variables settings 
784 for the product. It will be collected during the 'pick-up-environment' procedure.</li>
785   <li><b>pickup-env()</b>: This procedure corresponds <b>pickupenv</b> tag
786 of the configuration xml file (see previous section). Should call <b>make_env</b>
787 procedure to perform pick-up environment procedure for the product.<br>
788   </li>
789    
790 </ul>
791   <font color="#000000">The calling signature of the product installation
792 script is following:</font> <br>
793   <b><font color="#000000">&lt;product_script_name&gt; &lt;function_name&gt;
794  &lt;temp_folder&gt; &lt;products_directory&gt; &lt;target_directory&gt;
795 &lt;dependancies&gt;  &lt;product_name&gt;</font></b>  
796 <p><font color="#000000">where</font> <br>
797   <font color="#000000"><b>&lt;product_script_name&gt;</b> - installation
798 script name (described in configuration xml file);</font> <br>
799   <font color="#000000"><b>&lt;function_name&gt;</b> - the name of function,
800  corresponding to the selected installation mode: <i>try_native, install_source,
801  install_binary</i> or <i>try_preinstalled</i>;</font> <br>
802   <font color="#000000"><b>&lt;temp_folder&gt;</b> - temporary files directory;</font>
803  <br>
804   <font color="#000000"><b>&lt;products_directory&gt;</b> - directory where
805  the sources/binaries package can be found. You should provide sources package
806  in the <i>&lt;Install_Wizard_root_directory&gt;/Products/SOURCES</i> directory
807  and binaries package&nbsp; in the <i>&lt;InstallWizard_root_directory&gt;/Products/BINARIES/&lt;os_version&gt;</i>,
808  where &lt;os_version&gt; is target platform description, which appears in
809  the corresponding section of the <a href="#xml_files">configuration xml
810 file</a>.</font>  <br>
811   <font color="#000000"><b>&lt;target_directory&gt;</b> - root target directory
812  where product should be installed to;</font> <br>
813   <font color="#000000"><b>&lt;dependancies&gt;</b> - single-quoted list
814 of prerequisite products, separated by space;</font> <br>
815   <font color="#000000"><b>&lt;product_name&gt; </b>- product name itself.</font>
816  </p>
817    
818 <p><font color="#000000">Example:</font> <br>
819   <i><font color="#000000">med-2.2.2.sh install_binary /tmp/work ./Products/BINARIES/RedHat8.0
820  /usr/salome 'gcc Hdf' med</font></i> </p>
821    
822 <p><font color="#000000">Copy created script into the <i>&lt;Install_Wizard_root_directory&gt;/config_files</i>
823  sub-directory where all installation scripts are stored. Installation Wizard
824 will automatically search and call your script during the installation procedure.</font>
825 </p>
826    
827 <hr> <br>
828  <br>
829 </body>
830 </html>