Usage
=====
-* Edit the user personal configuration file ``$HOME/.salomeTools/SAT.pyconf``. It is used to store the user personal choices, like the favorite editor, browser, pdf viewer: ::
+* Edit the user personal configuration file ``$HOME/.salomeTools/SAT.pyconf``. It is used to store the user personal choices, like the favourite editor, browser, pdf viewer: ::
sat config --edit
cpp : "yes"
generate : "yes"
-* The cpp modules are usually computational components, and the generated module brings the CORBA layer which allows distributing the compononent on remote machines. cpp modules should conform to YACSGEN/hxx2salome requirements (please refer to YACSGEN documentation).
+* The cpp modules are usually computational components, and the generated module brings the CORBA layer which allows distributing the component on remote machines. cpp modules should conform to YACSGEN/hxx2salome requirements (please refer to YACSGEN documentation).
Usage
sat launcher <application> -e INSTALL/SALOME/bin/salome/salome.py -n salome.sh
The launcher will be called salome.sh. It will source the environment and call ``$APPLICATION.workdir``/INSTALL/SALOME/bin/salome/salome.py.
- The arguments given to salome.sh are transfered to salome.py.
+ The arguments given to salome.sh are transferred to salome.py.
* Set a specific resources catalog: ::
# built documents.
#
# The short X.Y version.
-version = '5.7'
+version = '5.8'
# The full version, including alpha/beta/rc tags.
-release = '5.7.0'
+release = '5.8.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
* **name** : the name of the product
* **build_source** : the method to use when getting the sources, possible choices are script/cmake/autotools. If "script" is chosen, a compilation script should be provided with compil_script key
-* **compil_script** : to specify a compilation script (in conjonction with build_source set to "script"). The programming language is bash under linux, and bat under windows.
+* **compil_script** : to specify a compilation script (in conjunction with build_source set to "script"). The programming language is bash under linux, and bat under windows.
* **get_source** : the mode to get the sources, possible choices are archive/git/svn/cvs
* **depend** : to give SAT the dependencies of the product
* **patches** : provides a list of patches, if required
The product environment is declared in a subsection called environment.
It is used by sat at compile time to set up the environment for the compilation of all the products depending upon it.
-It is also used at run tim to set up the application environment.
+It is also used at run time to set up the application environment.
Two mechanisms are offered to define the environment.
The first one is similar to the one used in the application configuration : inside the environ section, we declare variables or paths.
The configuration of SAT is split into eight sections : VARS, APPLICATION, PRODUCTS, PROJECTS, PATHS, USER, LOCAL, INTERNAL.
-These sections are feeded by the pyconf files which are loaded by sat: each pyconf file is parsed by SAT and merged into the global configuration.
+These sections are fed by the pyconf files which are loaded by sat: each pyconf file is parsed by SAT and merged into the global configuration.
One file can reference variables defined in other files. Files are loaded in this order :
* the internal pyconf (declared inside sat)
-----------------------
At the end of the application configuration, it is possible to define an overwrite section with the keyword **__overwrite__ :**.
-It is followed by a list of overwrite sections, that may be conditionnal (use of the keyword **__condition__ :**).
+It is followed by a list of overwrite sections, that may be conditional (use of the keyword **__condition__ :**).
A classical usage of the application overwriting is the change of a prerequisite version for a given platform (when the default version does not compile).
.. code-block:: bash
The following features should be highlighted:
* the **definition** of the application content: which products (prerequisites, codes, modules) are necessary and which versions are required
- * the **configuration** of the application : how to get the source of products, how to compile them, which options to use, etc. The configuration can be conditionnaly overwritten, this feature allows application developers taking into account platform specifics.
+ * the **configuration** of the application : how to get the source of products, how to compile them, which options to use, etc. The configuration can be conditionally overwritten, this feature allows application developers taking into account platform specifics.
* the **preparation** of the complete software: all the required sources with correct versions are retrieved from git/svn/cvs repositories, or from already prepared tarballs.
* management of **patches** if some are required to compile on specific platforms (portage)
* management of the **environment** to set up at compile time and at runtime
* **overwriting** the configuration in command line: it allows users setting easily their own preferences or options
SAT uses **python**, and many of its strength come from its power and straightforwardness. It is compatible with both python2 and python3 versions.
-SAT is a Command Line Interface (CLI_) based on python langage. It is a suite of commands, which are detailed later in this documentation.
+SAT is a Command Line Interface (CLI_) based on python language. It is a suite of commands, which are detailed later in this documentation.
These commands are used to perform the operations on the application. SAT enables command completion by sourcing the provided complete_sat.sh script.
Like similar tool, SAT doesn't like modified environments, as this can cause conflicts while compiling products or using applications. It is recommended that SAT users run with a **clean environment**, especially for PATH, LD_LIBRARY_PATH and PYTHONPATH. ~/.bashrc file should be as thin as possible!
.. toctree::
:maxdepth: 1
+ Release Notes 5.8.0 <release_notes/release_notes_5.8.0>
Release Notes 5.7.0 <release_notes/release_notes_5.7.0>
Release Notes 5.6.0 <release_notes/release_notes_5.6.0>
Release Notes 5.5.0 <release_notes/release_notes_5.5.0>
--------------
**sat** git bases are hosted by the `salome platform Tuleap forge <https://codev-tuleap.cea.fr/projects/salome>`_ . Therefore you first have to get an account to this forge.
-To get started, one has to download sat, and at last one sat project (usually SAT_SALOME project, which contains all the configuration required to build SALOME and its prerequisites). The following script get sat and SAT_SALOME project from git repos: ::
+To get started, one has to download sat, and at last one sat project (usually SAT_SALOME project, which contains all the configuration required to build SALOME and its prerequisites). The following script get sat and SAT_SALOME project from git repositories: ::
# get sat
BASE_SAT=https://codev-tuleap.cea.fr/plugins/git/spns/SAT.git
2. recompile only a part of the application
-It is possible to recompile only a part of the products (those we need to modify and recompile). To enter this (partial recompilation mode), one has initialy to copy the binaries from *BINARIES-XXX* to *INSTALL*, and do the path substitutions by using the **install_bin.sh** script:
+It is possible to recompile only a part of the products (those we need to modify and recompile). To enter this (partial recompilation mode), one has initially to copy the binaries from *BINARIES-XXX* to *INSTALL*, and do the path substitutions by using the **install_bin.sh** script:
.. code-block:: bash
./sat config -l # list all salome applications available for build
-Finally, the project also provides bash scripts that get a tagged version of sat from the git repository, and a tagged version of salome projects. This mode is dedicated to the developpers, and requires an access to the Tuleap git repositories.
+Finally, the project also provides bash scripts that get a tagged version of sat from the git repository, and a tagged version of salome projects. This mode is dedicated to the developers, and requires an access to the Tuleap git repositories.
This version of sat was used to produce SALOME 8.5.0
-New features and improvments
-----------------------------
+New features and improvements
+-----------------------------
**sat compile : management of a verbose and debug option**
# for KERNEL compilation : specify to cmake a debug compilation with verbosity
KERNEL : {tag : "V7_8_0", base : "yes", debug : "yes", verbose : "yes"}
-These two options can also be activated globaly, for all products, through golbal keys:
+These two options can also be activated globally, for all products, through golbal keys:
.. code-block:: bash
...
}
-**Implementation of salome test functionnality with sat launcher**
+**Implementation of salome test functionality with sat launcher**
**sat** launcher is now able to launch salome tests (before the development, only virtual applications where able to launch salome tests).
SALOME module was adapted to hold the tests (through links to SALOME module test directories).
-Notablt, the results and logs of the test are stored in *INSTALL/SALOME/bin/salome/test*.
+Notably, the results and logs of the test are stored in *INSTALL/SALOME/bin/salome/test*.
.. code-block:: bash
+-------------+-----------------------------------------------------------------------------------+
| sat #10569 | Debug and improvement of products filters in sat commands |
+-------------+-----------------------------------------------------------------------------------+
-| sat #8576 | Improve if messages displayed by sat compile commande |
+| sat #8576 | Improve if messages displayed by sat compile command |
| sat #8646 | Improve management of errors |
| sat #8605 | |
| sat #8646 | |
When salome is used on a remote machine, the use of openGL 3 is not compatible with X11 forwarding (ssh -X).
This cause segmentation faults when the 3D viewers are used.
For people who have no other choice and need to use ssh (it may be useful for testing SALOME on a client remote machine),
-we provide in the packages a mesa laucher mesa_salome.
+we provide in the packages a mesa launcher mesa_salome.
It will avoid the segmentation faults, at the price of poor performance : it should only be used in this case!
If performance is required, a solution based on the use of VirtualGL and TurboVNC/x2go would be recommended.
But this requires some configuration of the tools to be done as root.
**sat init**
The command *sat init* has been finalized, with the addition of options **--add_project** and **--reset_projects**.
-It is now able to manage projects after an intiale git clone of sat. The capacity is used by users
+It is now able to manage projects after an initial git clone of sat. The capacity is used by users
installing sat from the git repositories:
.. code-block:: bash
It is possible to initialise sat with several projects by calling several times *sat init --add_project*
-**sat prepare : git retry functionnality**
+**sat prepare : git retry functionality**
With large git repositories (>1GB) *git clone* command may fail. To decrease the risk, sat prepare will now retry
three times the *git clone* function in case of failure.
**Global configuration keys "debug", "verbose" and "dev" in applications**
-These new keys can be defined in applications in order to triger the debug, verbose and dev mode for all products.
+These new keys can be defined in applications in order to trigger the debug, verbose and dev mode for all products.
In the following example, the SALOME-master application will be compiled in debug mode (use of **-g** flag), but with no verbosity.
Its products are not in development mode.
| sat #16548 | Finalisation of sat init command (options -add_project and --reset_projects) |
| sat #8566 | |
+------------+-----------------------------------------------------------------------------------+
-| sat #12994 | new git retry functionnality for sat prepare : give three trials in case of |
+| sat #12994 | new git retry functionality for sat prepare : give three trials in case of |
| | failures |
+------------+-----------------------------------------------------------------------------------+
| sat #8581 | traceability : save tag of sat and its projects |
+------------+-----------------------------------------------------------------------------------+
| sat #8588 | reset LD_LIBRARY_PATH and PYTHONPATH before launching SALOME |
+------------+-----------------------------------------------------------------------------------+
-| sat #9575 | Improvment of the DISTENE licences management (notably for packages) |
+| sat #9575 | Improvement of the DISTENE licences management (notably for packages) |
+------------+-----------------------------------------------------------------------------------+
| sat #8597 | Implementation of option sat prepare -c (--complete) for preparing only the |
| | sources that are not yet installed |
+------------+-----------------------------------------------------------------------------------+
| sat #8655 | implementation of option sat clean --packages |
+------------+-----------------------------------------------------------------------------------+
-| sat #8532 | sat log : remane option --last_terminal in --last_compile |
+| sat #8532 | sat log : rename option --last_terminal in --last_compile |
| sat #8594 | Extension of sat log --last_compile to the logs of make check |
+------------+-----------------------------------------------------------------------------------+
-| sat #13271 | hpc mode trigered by product "hpc" key in state of MPI_ROOT variable |
+| sat #13271 | hpc mode triggered by product "hpc" key in state of MPI_ROOT variable |
| | |
+------------+-----------------------------------------------------------------------------------+
| sat #8606 | sat generate clean old directories before a new generation |
are identical, except few variations.
With the windows version, new sections are introduced to manage windows specifics.
-Therefore the need of a new mode for managing sections arises, that would be simplier, more concise, and help the comprehension.
+Therefore the need of a new mode for managing sections arises, that would be simpler, more concise, and help the comprehension.
This new mode is called **incremental**, and is triggered by the property **incremental** within the default section of the product::
default:
...
}
-When this mode is defined, the definition of the product is defined incrementaly, by taking into account the reference (the default section) and applying to it corrections defined in the other incremental sections. Depending upon the case, several sections may be taken into account, in a predefined order:
+When this mode is defined, the definition of the product is defined incrementally, by taking into account the reference (the default section) and applying to it corrections defined in the other incremental sections. Depending upon the case, several sections may be taken into account, in a predefined order:
* the default section, which contains the reference definition
* on windows platform, the default_win section if it exists
+-------------+-----------------------------------------------------------------------------------+
| spns #16894 | clean the temp directory at the end of sat package |
+-------------+-----------------------------------------------------------------------------------+
-| sat #12965 | optimisation of sat compile : better, simplier and faster algo for dependencies! |
+| sat #12965 | optimisation of sat compile : better, simpler and faster algo for dependencies! |
+-------------+-----------------------------------------------------------------------------------+
| sat #17206 | Use pip to manage python modules |
+-------------+-----------------------------------------------------------------------------------+
+-------------+-----------------------------------------------------------------------------------+
| sat #17357 | New field "rm_products" to blacklist products in overwrite section of appli pyconf|
+-------------+-----------------------------------------------------------------------------------+
-| sat #17194 | Parametrication of the value of INSTALL and BINARIES directories |
+| sat #17194 | Parametrisation of the value of INSTALL and BINARIES directories |
| | (in src/internal_config/salomeTools.pyconf) |
+-------------+-----------------------------------------------------------------------------------+
| sat #17639 | Warning when sat is launcher with python3 |
| | SAT_DEBUG and SAT_VERBOSE environment variables are now available in the |
| | compilation, which can now forward the information and do the job! |
+-------------+-----------------------------------------------------------------------------------+
-| sat #18392 | Bug, binaries archives do not work when producrs are in base |
+| sat #18392 | Bug, binaries archives do not work when products are in base |
+-------------+-----------------------------------------------------------------------------------+
*****************
Release Notes, July 2020
-=======================
+========================
New features and improvements
**Checking of system dependencies**
-SALOME depends upon some system prerequisites. Recent examples are tbb and openssl. For these products SALOME made the choice not to embedd the prerequisite, but
+SALOME depends upon some system prerequisites. Recent examples are tbb and openssl. For these products SALOME made the choice not to embed the prerequisite, but
to rely on the system version.
SAT has now the capacity to check for the system dependencies in two ways:
+-------------+-----------------------------------------------------------------------------------+
| sat #19234 | remove build products from bin archives, better management of their environment |
+-------------+-----------------------------------------------------------------------------------+
-| sat #19218 | correct out_dir_Path substituion for appended variables |
+| sat #19218 | correct out_dir_Path substitution for appended variables |
+-------------+-----------------------------------------------------------------------------------+
| sat #18350 | -f option for sat compile : force the recompilation |
+-------------+-----------------------------------------------------------------------------------+
**sat do not reinitialise PATH, LD_LIBRARY_PATH and PYTHONPATH variables anymore**
The last versions of sat were reinitialising the PATH, LD_LIBRARY_PATH and PYTHONPATH variables before the compilation.
-The objective was to avoid bad interaction with the user environment, and ensure that sat environmnent was correctly set for build.
+The objective was to avoid bad interaction with the user environment, and ensure that sat environment was correctly set for build.
Alas this policy causes difficulties, notably on cluster where people sometimes need to use an alternate compiler and have to set it through *module load* command.
It was therefore decided to suppress this policy.
--- /dev/null
+*****************
+SAT version 5.8.0
+*****************
+
+Release Notes, May 2021
+============================
+
+
+New features and improvements
+-----------------------------
+
+
+**New key git_options**
+
+This new key was introduced in order to be able to use specific *git clone* options when getting sources with sat.
+This was motivated by paraview, which sometimes requires the option --recursive.
+This git_options key should be added in the git_info section of the product: ::
+
+ git_info:
+ {
+ repo : "https://gitlab.kitware.com/paraview/paraview-superbuild"
+ repo_dev : $repo
+ git_options: ' --recursive '
+ }
+
+
+
+**Completion of system_info section with system specifics**
+
+This development allows defining more precisely the system prerequisites that are required (the name of some packages change from one linux distribution to the other,
+with this development it is now possible to specialise system prerequisites for each distribution).
+In addition a new product called *salome_system* was added, which includes all *implicit* system prerequisites (prerequisites that are not specifically managed by
+sat, and that should be installed on the user machine).
+The command *sat config --check_system* is now quite exhaustive.
+The syntax of this new section is: ::
+
+ system_info :
+ {
+ rpm : ["dbus-libs", "gmp", ... "zlib"]
+ rpm_dev : ["openssl-devel", "tbb-devel", ... "libXft-devel"]
+ apt : ["libbsd0", ... "zlib1g"]
+ apt_dev : ["libssl-dev", "gcc", ...]
+
+ # specific to some plateform(s)
+ "CO7" :
+ {
+ rpm_dev : ["perl"]
+ }
+ "CO8-FD30-FD32" :
+ {
+ rpm_dev : ["perl-interpreter"]
+ }
+ }
+
+
+
+Change log
+----------
+
+This chapter does not provide the complete set of changes included, only the
+most significant changes are listed.
+
+
++-------------+-----------------------------------------------------------------------------------+
+| Artifact | Description |
++=============+===================================================================================+
+| sat #24027 | Print a warning for users executing .sh environment scripts outside bash (zsh,...)|
++-------------+-----------------------------------------------------------------------------------+
+| spns #20662 | For sat compile --update : do not change the date of source directory for tags |
+| | (only for branches) |
++-------------+-----------------------------------------------------------------------------------+
+| sat #18868 | Implement the recompilation of archives produced with BASE mode |
++-------------+-----------------------------------------------------------------------------------+
+| sat #18867 | Implement the recompilation of an archive produced with git links |
+| | --with_vcs) |
++-------------+-----------------------------------------------------------------------------------+
+| sat #20601 | bug fix the case where the the name of a product differ from the pyconf name |
++-------------+-----------------------------------------------------------------------------------+
+| sat #20061 | Use a new optimized algorithm for the calculation of dependencies (much faster) |
++-------------+-----------------------------------------------------------------------------------+
+| sat #20089 | bug fix for python 2.6 |
++-------------+-----------------------------------------------------------------------------------+
+| sat #20490 | suppress false positive return of sat prepare if tag doesn't exist |
++-------------+-----------------------------------------------------------------------------------+
+| sat #20391 | Update Exception API message method to conform with python3 |
++-------------+-----------------------------------------------------------------------------------+
+| sat #20460 | debug sat config --check_system on debian system |
++-------------+-----------------------------------------------------------------------------------+
parser = src.options.Options()
parser.add_option('m', 'myoption', \
'boolean', 'myoption', \
- 'My option changes the behavior of my command.')
+ 'My option changes the behaviour of my command.')
def run(args, runner, logger):
# Parse the options
parser = src.options.Options()
parser.add_option('m', 'myoption', \
'boolean', 'myoption', \
- 'My option changes the behavior of my command.')
+ 'My option changes the behaviour of my command.')
def description():
return _("The help of mycommand.")