In this section, we collect frequently asked questions about the ECLAIR system itself.
All MISRA packages include the B package. Packages can be combined in all possible ways into products so that, e.g., product MCP contains all features of MC and of MP.
Use of the ECLAIR client kit is recommended in two scenarios: 1. When analysis is centralized (e.g., on one or more Jenkins installations), and users want to reduce the installed software on their PCs. In this case using the kit or a package is only a matter of user convenience and does not result in any price difference. 2. In conjunction with a project license, in which case the licensing for the kit is negotiated along with the project license itself (see What are the parameters defining ECLAIR license models?)
ECLAIR Trial Licenses
An example of complete version number is “3.6.0” (where the double quotes are not part of the version number). When backwards compatible bug fixes or when backward compatible new functionality is added, the patch version number is incremented. When changes are made that are not backwards compatible, the minor version number is incremented and the patch version number is set to 0.
The major version number is special: when it changes it denotes a completely different product. If you read your license, you will see that it covers ECLAIR 3.*: this means that, with a valid maintenance contract in place (see “Maintenance” below), you are entitled to receive all minor and patch versions of ECLAIR (major) version 3 subsequent to the one you originally received.
However ECLAIR version 4 will be a completely different product: there will certainly be a migration path for users of ECLAIR version 3 and support for ECLAIR version 3 will continue for sometime. All this will be officialized upon release of ECLAIR version 4 and cannot be anticipated now.
ECLAIR qualification by validation can be achieved with very high levels of confidence and little effort using the ECLAIR Qualification Kits, which are available for all common functional safety standards.
An ECLAIR Qualification Kit contains, in addition to all documentation required to comply with the chosen functional safety standard, a large number of validated test cases and automation machinery that facilitates running ECLAIR on all of them and collecting the required evidence. For increased independence, ECLAIR Qualification Kits are optionally supplied with third-party testsuites.
Alternatively, for the cases when the tool operational environment can be exactly reproduced (typically by means of virtual machines or suitable containers), BUGSENG offers an ECLAIR Qualification Service that spares customers from most of the burden.
In addition, ECLAIR is certified by TÜV SÜD for use in safety-critical development in compliance with ISO26262 up to ASILD, IEC61508 up to SIL4, EN50128 up to SIL4, EN50657 up to SIL4, IEC 62304 up to Class C, ISO 19014 up to MPLr e, and ISO 25119 up to SRL 3. The ECLAIR FuSa Pack, which can be licensed for single as well as for multiple projects, consists of ECLAIR’s TÜV SÜD certificate and technical report, and of the ECLAIR Safety and Security Manual, with all information and checklists for the adoption of ECLAIR in safety-related development.
Take a look at this
In case the situation is not clear-cut, consult the Analysis Frames section in the ECLAIR analysis report: here you will find a complete list of the toolchain components’ invocations intercepted by ECLAIR: it you find something missing, check that you have followed the instructions given in Chapter Intercepting the Toolchain of the ECLAIR User’s Manual.
Please make sure you appreciate the distinction between these concepts. For instance, the fact that the license-enforcing mechanism does not block a certain use of ECLAIR does not imply that such use complies to the license agreement.
The criterion defining for how long the userbase is allowed to use ECLAIR. There are the following possibilities:
An attribute describing the relationship between the licensed userbase and the customer potential userbase. There are the following possibilities:
The userbase comprises all software developers and all software quality assurance people at a given site, independently from whether, at any given time, they use ECLAIR directly, they use ECLAIR reports, or they do not use ECLAIR and its outputs at all. Here “site” has to be interpreted in its broadest sense: a clearly-delimited and official company department, division or group may qualify as a site. External consultants temporarily working on software development or quality assurance have to be counted.
Same as above, set of sites, but for a given provided there IS for a single point of contact all contractual actions, including releases, updates, technical support and payments.
Like multisite when the site or sites covered are the totality of customer sites.
All other cases.
In contrast, with a partial license detailed outputs can only be consulted using the ECLAIR analysis results browser. Rich outputs, summary outputs and metric outputs can be generated in any supported format with any license (see “What are the main categories for ECLAIR outputs?” for an explanation of the different output categories).
The main advantage of site/multisite/enterprise licenses is that each human user can obtain, at the customer’s discretion, any kind of license key, thereby relaxing the constraints specified in “Who chooses the license enforcing mechanism(s)?“
Node-locked: The key is fully implemented in software and is locked to a specific machine. Remote access is not allowed. Transferring a node-locked key, a.k.a. rehosting, is possible with BUGSENG intervention. One node-locked key serves one user.
Detachable: The key is fully implemented in software and can be detached by a (possibly remote) license server. For partial coverage licenses, one detachable key serves three users in the same region (APAC, EMEA, AMER).
The above distinction concerns the technology used to implement keys. An orthogonal distinction is the one between ordinary keys and analysis node keys: the latter are only meaningful in the context of ECLAIR deployment in continuous integration system (see “What are the ECLAIR licensing requirements for Jenkins, GitHub and GitLab?“).
Cons:
The validity of a detached license key can be extended before expiration. The detached license key can also be returned earlier to the license server. If not explicitly returned, the license key expires on the local machine after the specified time has passed, and automatically re-materializes on the license server.
1. If the machine hosting the license server crashes badly, the entire pool can be lost. Not a problem if the server is properly maintained and monitored.
Suppose the customer wants to serve 8 users with a partial coverage license; this requirement can be satisfied in all ways indicated in the following table:
A customer with a site/multisite/enterprise license can serve all its users with any combination of keys, with at most one key per user.
Having more than one pool hosted by the same license server is only advisable as a temporary measure, e.g., because we know some pools will have to be rehosted to a different machine. At the outset, it is best to plan for multiple pools only in the case of multiple license servers, each server hosting one pool.
Multiple license servers allow for the mitigation of failures: if one license server is momentarily offline, another license server may be available. This should not be overdone: if you spread your detachable keys across too many servers, users may incur overhead in finding a server with an available detachable license key. A rule of thumb you can follow for each LAN is the following: if a very reliable and con- tinuously monitored server (e.g., with a RAID disk array and S.M.A.R.T. services) is available, host a pool containing all license keys on that server. Otherwise choose two reasonably reliable machines and divide your detachable license keys into two pools, one for each license server.
Of course, if you have multiple LANs and/or multiple regions, you should first divide your detachable keys by region, then by LAN, then apply the above reasoning for each individual LAN.
If you want to automate the detaching and canceling operations, the eclair_licman program is what you need.
The only sensible case where you do not want to detach the key is when ECLAIR runs in a Docker container and the license server is running on the Docker host.
For node-locked keys and pools of detachable keys:
Each Jenkins agent and GitHub/GitLab runner requires a key, which may be an ordinary one or an analysis node key. In the former case, the ordinary key may be shared with one user working locally on the same machine and/or with a Jenkins/GitHub/GitLab controller/instance.
Analysis node keys only allow for the analysis execution and not for the generation of analysis reports (report generation takes place in the Jenkins controller and GitHub/GitLab instance).The cost of each analysis node key contributes to the total cost as the addition of 0.5 users to the userbase.
Examples with Jenkins, equally applicable to GitHub and GitLab:
As the keys for Jenkins/GitHub/GitLab controllers/instances and agents/runners are treated as increments to the userbase, the same volume discount policy applies.
Note that, when the Jenkins controller or GitHub/GitLab instance is equipped with a site/multisite/enterprise license key, users can browse the detailed outputs using any of the supported web browsers even from computers without ECLAIR installed. In contrast, when the Jenkins/GitHub/GitLab controller/instance is equipped with a partial license key, users can only browse the detailed outputs from machines with an ECLAIR installation and a valid license key. This restriction for partial coverage licenses only concerns detailed outputs: all Jenkins users can freely browse the Jenkins’ pages showing the number of ECLAIR reports, their evolution over time, and so on.
net stop hasplms net start hasplms
You can of course do everything from the command line, e.g.:
cd "%CommonProgramFiles(x86)%\SafeNet Sentinel\Sentinel LDK\installed" cd 113938 mkdir hidden move *provisional* hidden\ net stop hasplms net start hasplms
Under Linux, do the following from a superuser shell:
cd /var/hasplm/installed/113938/ mkdir hidden mv *provisional* hidden/ service aksusbd stop service aksusbd start
The cost is the sum of all maintenance fees since last maintenance contract expiration. Write to sales@bugseng.com for a formal quotation.
Upon reinstatement of the maintenance contract, all accounts connected to the contract that were disabled will be re-enabled.
Summary outputs: These outputs contain comprehensive information about the analysis as well as counts of the issues uncovered by the analysis per service, per file, per tag and combinations thereof.
Rich outputs: These outputs contain comprehensive information about the analysis results without going into the detail of each reported program condition. For each individual issue reported by the analysis, these outputs contain: •
Detailed outputs: These outputs contain comprehensive information about the analysis results, including all details about each reported program condition (such as a coding rule violation or a possible run-time error). In other words, these output contain all the information required for a proper understanding of each individual issue reported by the analysis, e.g.:
Such level of detail, while essential for whoever is in charge of acting upon undesirable program conditions, is undesirable for almost any other application. Moreover, such level of detail can effectively be navigated only via a browser. For this reason, when detailed outputs have to be printed, the level of detail can be decreased. The minimum level of detail for a detailed output is the line number and the message for the first area in the report.
Metric outputs: These outputs contain the values of the metrics collected for each file, function and project.
Kind/Format
Detailed
Rich
Summary
Metric
Pure text
LibreOfficeWriter
LibreOfficeCalc
Yes. For example, Word, Excel and LibreOffice allow saving documents in PDF format.
a. Failures come from a build phase where the build procedure is testing properties of the toolchain by trial and error. This happens, notably, in the standard build procedure of the Linux kernel. E.g., the build procedure may attempt compiling an empty source file with option -march=cannonlake to check whether such option is supported by the compiler. If it does not, the compiler will fail, and ECLAIR, which accurately matches compiler behavior, will generate a B. TOOLCHAIN report specifying that the retrieval of information from the toolchain has failed. Or the build procedure might, e.g., attempt compilation of
int a[(((char)-1) < 0) ? 1 : -1];
to check whether plain char is signed or unsigned. In the latter case, compilation will fail, and ECLAIR parsing will (correctly!) fail as well and generate a B. PARSER report. These phenomena are thus a byproduct of speculative toolchain use and do not harm correctness of the ECLAIR analysis in any way. You can prevent them by executing the speculative, self- configuring phase of the build outside the ECLAIR environment, only executing the actual build within the ECLAIR environment.
b. Failures come from the actual build, e.g., an header file is not found, or a typo resulted in invalid syntax. The best course of action is to fix the build itself before returning to analysis with ECLAIR. Notice that you may be in this case without having noticed: some build pro- cedures (e.g., some incorporated into popular IDEs) go on with compilation even in the case of parse errors and you may easily miss the fact that your project is not compiling cleanly. (As an aside, any build procedure not stopping at the first toolchain error is very dangerous and ought to be fixed.)
2. You get reports from the B. PARSER service of ECLAIR but the the compiler is not failing. Again, there are two sub-cases:
a. You are using one of the language extensions supported by some compilers that are in sharp contrast with the applicable ISO language standards (e.g., involving a “short long” data type). These cannot be supported by ECLAIR and you would be much better off (as recom- mended by all serious coding standards) by not using such extensions.
b. You have found a defect in ECLAIR: please file an issue on BUGSENG’s issue-tracking system describing precisely your observations and allowing us to reproduce them.