Software Requirements
This section discusses the software requirements.
Compatibility
There are four SourcePro products: SourcePro Core, SourcePro DB, SourcePro Net, and SourcePro Analysis. The modules of these products incorporate the functionality of many previous Rogue Wave products.
• If you are migrating from Rogue Wave Software’s previous .h++ product line, you must recompile and relink your applications to the new SourcePro libraries. Applications using new features in SourcePro must also change internal logic. In this case, you must write to the new API, recompile, and relink.
• If you are upgrading from an earlier release of SourcePro, please note that some aspects of each new release may not be binary-compatible with the previous edition. You may need to recompile your applications that use SourcePro to link to the new versions of the libraries.
For additional information on compatibility, please consult the SourcePro Release Notes. A PDF version of the release notes is in the top-level directory of the SourcePro installation and also available on the Rogue Wave website at
https://docs.roguewave.com/en/sourcepro/current/.
Rogue Wave tests the modules in each version for compatibility with one another. Rogue Wave does not test the compatibility of modules in a current version against a previous version. Web-only downloads between releases are generally compatible with the most recent release, but this is not guaranteed.
Deprecated APIs
SourcePro continues to enhance and extend the APIs it provides. In some cases, new APIs have been introduced that supersede previous APIs. These new APIs often provide cleaner interfaces, improved performance, or improved safety compared to the older functions. In these scenarios, the older functions have been deprecated, and are no longer recommended by Rogue Wave.
Deprecated APIs are listed on a page of the SourcePro API Reference Guide. Deprecated classes and members are still documented, but are clearly marked as deprecated at the beginning of their descriptions. The deprecation warning indicates the release in which the API became deprecated and suggests the new API to use.
To help you detect the use of deprecated APIs in your code, Rogue Wave provides a compilation macro RW_DISABLE_DEPRECATED. When RW_DISABLE_DEPRECATED is defined, all deprecated -SourcePro APIs are removed, causing compilation failures in any code that relies on them. You can use the information gained from these failures together with the guidance in the Class Reference documentation to update your code to rely on improved APIs.
NOTE >> Deprecated APIs are still supported by Rogue Wave, but be aware that they may be removed from the product in a future release.
Undocumented APIs
In addition to the publicly documented SourcePro APIs, you may discover undocumented APIs. These APIs are not supported for use in end-user code, and are subject to change or removal without warning in future releases.
Dependencies
The phrase “the X Module depends on the Y Module” means that the Y Module must be built before the X Module. The Rogue Wave Component Builder (RCB) checks that dependencies are selected and installed, and ensures that they are built in the proper order. If you are installing prebuilt libraries, the dependencies are already satisfied and included in the set of prebuilt libraries.
All Rogue Wave SourcePro modules depend on the C++ Standard Library and the Essential Tools Module, and are built by default using the vendor C++ Standard Library that comes with your compiler. The only exception is when using the Oracle Studio compiler, which also supports the option of using the GCC Standard Library.
NOTE >> The Essential Tools Module is part of SourcePro Core, which comes with every Rogue Wave SourcePro product.
In addition to dependency on the Essential Tools Module and the C++ Standard Library, individual modules may have other dependencies. These module-level dependencies are summarized in
Table 1. Package-level dependencies are explained in the user’s guides of individual modules for the convenience of developers who prefer to specify builds by individual packages.
Table 1 – Module dependencies
Name of Module | Dependencies |
Essential Tools Module | n/a NOTE: Specific component dependencies are given in the Tools Module User’s Guide |
Internationalization Module | Essential Tools Module Threads Module Also requires: The Unicode® Consortium International Components for Unicode (ICU). Included in binary form with SourcePro Core. |
Threads Module | Essential Tools Module NOTE: Specific package dependencies are given in the Threads Module User’s Guide |
Advanced Tools Module | Essential Tools Module Threads Module NOTE: Specific package dependencies are given in the Advanced Tools Module User’s Guide |
XML Streams Module | Essential Tools Module Advanced Tools Module Threads Module NOTE: Specific package dependencies are given in the XML Streams Module User’s Guide |
DB Interface Module | Essential Tools Module Also requires: Client software for your database must be installed before building this module. |
DB Access Modules for DB2, MS SQL Server, ODBC, Oracle OCI, Sybase, MySQL, PostgreSQL | Essential Tools Module DB Interface Module Also requires: Client software for your database must be installed before building this module. |
DB XA Module | DB Interface Module At least one DB Access Module Support for the DB XA Module is available only when Rogue Wave Consulting Services installs and configures the DB XA Module for specific platforms and XA-compliant Transaction Processing Monitors (TPMs). Please contact your Rogue Wave account representative for more information. |
Essential Networking Module | Essential Tools Module |
Internet Protocols Module | Essential Tools Module Essential Networking Module Threads Module |
Secure Communication Module | Essential Tools Module Threads Module Essential Networking Module Internet Protocols Module Also requires the OpenSSL library, an open source offering available through http://www.openssl.org. Included in binary form with SourcePro Net. Consult the 3rd-party-licences.txt file in the 3rdparty directory for version requirements on this library. |
Essential Math Module | Essential Tools Module |
Linear Algebra Module | Essential Tools Module Essential Math Module |
Business Analysis Module | Essential Tools Module Essential Math Module Linear Algebra Module |
Currency Module | Essential Tools Module |
3rd-Party Software Use
SourcePro uses open source or freely licensed code, and commercially licensed code, as detailed in the following sections. The text of the license agreements can be found in
Appendix A. These licenses are also included in the product distribution, as identified in the file
3rd-party-licenses.txt in the installation
3rdparty directory. This file also identifies the exact version number currently installed in SourcePro.
Open Source or Freely Licensed Code
Table 2 identifies the open source or freely licensed code shipped with SourcePro.
Table 2 – Open Source or Freely Licensed Software Shipped with SourcePro
Software | License | Used In | Used For |
OpenSSL and SSLeay | | SourcePro Net, Secure Communication Module | Bundled code. Provides network message security. |
ICU | ICU license. See “ICU Licenses” . | SourcePro Core, Internationalization Module | Bundled code. Prebuilt libraries provide support for i18n functionality. |
CLAPACK | Netlib free -software. See “CLAPACK and BLAS” . | SourcePro Analysis | Bundled code. Provides low-level linear algebra routines written in C language. |
BLAS | Netlib free -software. See “CLAPACK and BLAS” . | SourcePro Analysis | Bundled code. Provides low level basic linear algebra routines written in C language. |
Snappy | Google Snappy license. See “Snappy” . | SourcePro Core | Bundled code. Provides data compression support. |
MathJax | Apache License, Version 2.0. See “MathJax.” | SourcePro Reference Guide | Bundled code. Renders mathematical formulas in Doxygen-based documentation. |
MD5 Checksum | Aladdin Enterprises MD5 License. See “Aladdin Enterprises MD5 License.” | SourcePro Net, Internet Protocols Module | Embedded code. MD5 checksum generation. |
Mersenne Twister | BSD-3-Clause. See “BSD-3 Clause.” | SourcePro Analysis, Essential Math Module | Embedded code. Algorithm for implementing Mersenne Twister random number generator. |
Regular Expression Matching | Author Attribution. See “Author Attibution.” | SourcePro Core, Essential Tools Module | Embedded code. Regular Expression pattern matching. |