Installing RLM
To install RLM, follow these steps:
First, Download the kit from the Reprise website
To download RLM, go to the Reprise Website Download area, enter your username and password, and select the kit(s) you want to download. Save these on your system, then uncompress and (on Unix) extract the binaries with the tar xvf command.
Each kit has a descriptive name on the website. The file names of the kits follow Reprise Software’s platform naming conventions, with “.tar.gz” (Unix) or “.zip” (Windows) appended.
View Platform Kits
Platform |
Platform Name |
Kit file name |
---|---|---|
Windows on Intel X86 (Visual C 2013) |
x86_w3 |
rlm.vX.YBLZ-x86_w3.zip |
Windows 64-bit on Intel X86 (Visual C 2013) |
x64_w3 |
rlm.vX.YBLZ-x64_w3.zip |
Windows on Intel X86 (visual C 2015+) |
x86_w4 |
rlm.vX.YBLZ-x86_w4.zip |
Windows 64-bit on Intel X86 (visual C 2015+) |
x64_w4 |
rlm.vX.YBLZ-x64_w4.zip |
Windows ARM64 (visual C 2015+) |
arm64_w4 |
rlm.vX.YBLZ-arm_w4.zip |
Linux on Intel X86 |
x86_l1, x86_l2 |
x86_l1.tar.gz, x86_l2.tar.gz |
Linux 64-bit on Intel |
x64_l1 |
x64_l1.tar.gz |
Mac on Intel X86 |
x86_m1 |
x86_m1.tar.gz |
Mac on PPC |
ppc_m1 |
ppc_m1.tar.gz |
Java for Unix (requires x86_l2, x64_l1, or x86_m1 kit. x86_l2 only prior to RLM v6) |
java_unix |
java_unix.tar.gz |
HP-UX on PA-Risc |
hp_h1 |
hp_h1.tar.gz |
HP-UX 64-bit on PA-Risc |
hp64_h1 |
hp64_h1.tar.gz |
IBM AIX 32-bit |
ibm_a1 |
ibm_a1.tar.gz |
IBM AIX 64-bit |
ibm64_a1 |
ibm64_a1.tar.gz |
Solaris 32-bit on Intel |
x86_s1 |
x86_s1.tar.gz |
Solaris 64-bit on Intel |
x64_s1 |
x64_s1.tar.gz |
Solaris on Sparc |
sun_s1 |
sun_s1.tar.gz |
Solaris 64-bit on Sparc |
sun64_s1 |
sun64_s1.tar.gz |
Second, install dependencies
RLM depends on OpenSSL for licensing operations. The RLM kit for Windows provides this library; on Linux and Mac systems, ensure that OpenSSL is installed before building RLM.
RLM depends on Curl to perform HTTPS communication with RLM Cloud and Activation Pro. The RLM Kit for Windows provides this library. If you want to provide HTTPS communications in your application, ensure that Curl is installed on Linux and Mac systems before building RLM.
RLM also requires glibc 2.28+ on Linux systems.
Next, unpack the kit and install
For the majority of cases using a C-compiler, follow the instructions in this section.
For information on using RLM with Java, see Using RLM with Languages other than C/C++.
For information on using RLM in a cross-development environment, see Building the RLM kit using a cross-compiler.
To unpack the kit and perform the installation, follow these steps: At the shell prompt on Unix:
% gunzip platform.tar.gz
% tar xvf platform.tar
% # update src/license_to_run.h if required
% # Your license for RLM comes via email from Reprise Software.
% # RLM kits are pre-built with demo licenses valid for
% # approximately two months from date of release.
% cd platform
% make
Warning
RLM requires a license to operate from Reprise Software.
On Windows, the kit is a Windows .zip file. Extract the .zip file, whose name is rlm.ver-platform.zip, where ver is the RLM version and platform is the RLM platform name. For example, rlm.v13.0BL1-x86_w4.zip is the kit for v13.0BL2 on the x86_w4 platform. Extract the .zip file to the preferred installation location (for example: C:\Reprise\).
Previously, the Windows kit came packaged as an executable that provided the option to copy the key pair from an existing RLM installation into the new install. The key pair must now be manually copied if there is an existing installation. Copying the key pair is useful if you are upgrading your RLM version, or installing RLM on another system at the same release level and wish to use the same key pair. Copying the key pair is important for having compatible license signatures across the installations and is recommended.
RLM kits are pre-built for ISV “demo”, with licenses that expire 30-60 days after the release date. If your demo license has expired, you will need to put the new license you received from Reprise Software into the file src\license_to_run.h. If you have purchased RLM, you will need to edit src\license_to_run.h to replace the license there with your permanent license, and you will also need to edit the makefile in the binary directory (x86_w* or x64_w*) to change your ISV name. If you plan to use the example license file example.lic in the platform directory, edit the file, and change all instances of “demo” to your ISV name.
Warning
RLM requires a license to operate from Reprise Software.
You have 2 options for building RLM on Windows - you can either use a Visual Studio or Visual C++ Project, or a Command Window. Each method has the same outputs; choose the method you’re more comfortable with.
To build using Visual Studio/Visual C++:
The platform directories (x86_w* and x64_w*) contain Microsoft Visual Studio or Visual C++ project and workspace files. Double-click on the appropriate file to launch Visual Studio/Visual C++. In x86_w3, double-click on x86_w3.vcproj. In x64_w4, double-click on x64_w4vcproj, etc.
When the development environment comes up, click on the Build menu and select “Rebuild All” (Visual C++) or “Build Solution” (Visual Studio). When the build is done, the output window should indicate 0 errors and warnings.
You may be prompted to allow Visual C++ to convert the project to a later version. Allow it to do so, then proceed.
To build using a Command Window:
Create a command window with the Visual C++ environment set up
Create a command window and run a batch file provided by Microsoft to set up your command window for the next step. The batch file is Program Files [(x86)]Microsoft Visual Studio <version>\VC\vcvarsall.bat
- -OR-
Create a command window via the Start->MS VisualStudioxxx or Start->MS Visual C++ menu. The specific sub-menu items vary with version, but the target is “Visual Studio Command Prompt”.
cd to the platform directory of the SDK, for example:
cd x86_w3
Type nmake
A note about OpenSSL
As of RLM v16.1, OpenSSL has been updated to 3.0.15 and the private name space for OpenSSL routines (rlmssl) has been removed. If you need to link an older or newer build of OpenSSL to RLM, build the NOSSL from the RLM makefile.
Building the RLM kit using a cross-compiler
On certain platforms (e.g., arm_l1 and xpi_l1), the RLM kit must be cross-compiled on a host system which doesn’t run the target instruction set. For these platforms, follow the directions here.
Note
These directions are for Unix systems only, to do cross-development on Windows, you are on your own. See the makefile.
To unpack the kit and perform the installation, follow these steps:
At the shell prompt on Unix:
% gunzip platform.tar.gz
% tar xvf platform.tar
% ./INSTALL
% # update src/license_to_run.h if required
% # Your license for RLM comes via email from Reprise Software.
% # RLM kits are pre-built with demo licenses valid for
% # approximately two months from date of release.
% cd platform
At this point, on a “normal” RLM platform, you would simply type “make”. However, in a cross development environment, the make process is split into 4 or 5 steps. In these instructions, we will refer to the two systems as the host (the system with the cross-development tools), and the target - the target system which does not have development tools.
First, on the host system (the one with the cross-development tools):
% make step1
Next, copy rlmgenkeys to the target; run rlmgenkeys; copy rlm_privkey.c and rlm_pubkey.c back to the host system into the src directory.
Next, on the host system:
% make step3
Next, copy the kit (the whole directory, e.g. arm_l1) to the target.
Next, on the target: (optional, only if you have a full client-server RLM kit).
% make step5
Your kit is now built on the target and ready to use.
Note
Skip steps 1 and 2 if you have a key pair from another RLM platform, and put the keys into the src directory on the host system; start from step 3 above. Skip step 5 if you have a client-only kit, or if you do not care about creating an ISV.set settings file.
RLM kit layout
Each RLM kit (for a particular platform) is contained in 3 or 5 subdirectories:
Machine-independent subdirectory (src)
Machine-independent examples subdirectory (examples)
Machine-dependent subdirectory (name varies for each platform)
In addition, on Windows, there is an additional directory:
A directory of .NET support files called “dotnet”.
Java support is contained in an independent directory called either “java_unix” or “java_win”.
The platform names for RLM follow the convention:
arch_[os][ver]
where:
arch is the Reprise Software name for the processor/chip architecture
os is the Reprise Software identifier for the operating system, and
ver is the Reprise Software identifier for our version of RLM OS support (note: this is NOT the operating system version)
Current RLM platform names are:
Platform |
Directory Name |
Notes |
---|---|---|
Windows 32-bit |
x86_w3 |
Visual Studio 2013 |
Windows 32-bit |
x86_w4 |
Visual Studio 2019 and later |
Windows 64-bit |
x64_w3 |
Visual Studio 2013 |
Windows 64-bit |
x64_w4 |
Visual Studio 2019 and later |
Windows ARM64 |
arm64_w4 |
Visual Studio 2019 and later |
Linux on ARM |
arm_l1 |
Client-only kit |
Linux on Intel X86 |
x86_l2 |
|
Linux (64-bit) on Intel |
x64_l1 |
|
Linux on PPC |
ppc_l1, ppc64_l1 |
|
Linux on Xeon PI coprocessor |
xpi_l1 |
Client-only kit |
MAC on Intel X86 |
x86_m1 |
|
MAC (64-bit) on X86 |
x64_m1 |
|
MAC on PPC |
ppc_m1 |
|
HP-UX on PA-Risc |
hp_h1 |
|
HP-UX 64-bit on PA-Risc |
hp64_h1 |
|
IBM AIX 32-bit |
ibm_a1 |
|
IBM AIX 64-bit |
ibm64_a1 |
|
NetBSD on Intel |
x86_n1 |
|
Solaris (32-bit) on Intel |
x86_s1 |
|
Solaris (64-bit) on Intel |
x64_s1 |
|
Solaris on Sparc |
sun_s1 |
|
Solaris (64-bit) on Sparc |
sun64_s1 |
RLM Kit Contents
The Machine Independent (src) directory contains:
File |
Contents |
---|---|
license.h |
RLM include file. |
license_to_run.h |
License for RLM itself. |
RELEASE_NOTES |
Release notes for this version of RLM. |
rlm_isv_config.c |
Configuration data for ISV server. |
rlm_admin.h |
Function definitions for RLM Admin API. |
RLM_Reference.txt |
Pointer to RLM documentation on website. |
VERSION |
RLM kit version information (not on client-only kits). |
The Machine Independent (examples) directory contains:
File |
Contents |
Notes |
---|---|---|
act_api_example.c |
Sample client-side activation code. |
|
activation_example.html |
Sample HTML page for activation. |
|
actpro_demo.c |
Demo program for Activation Pro. |
|
detached_demo.c |
Sample code to implement a Detached Demotm. |
|
example.opt |
Example license administration options file. |
|
example2.c |
Activation demo client. |
Not built as part of Makefile. |
integrate_older.c |
Example code for integrating RLM alongside an older LM. |
|
rehost_example.c |
Example for using rehostable hostids and revoking them. |
|
rlm_transfer.c |
Example ISV-defined server transfer code. |
|
roam_example.c |
Example code to implement license roaming. |
|
sampleclient.c |
Example RLM application program. |
|
unsupported |
Directory of unsupported example programs (Fortran interface, python interface). |
Each Unix Platform-dependent directory contains (before executing “make” ):
File |
Contents |
Notes |
---|---|---|
rlc.c.o |
Object file for RLC (Activation application). |
RLC is not actively maintained. |
rlm.genlic.a |
Library to generate license files. |
|
rlmact.c.o |
Object file for RLC (Activation application). |
RLC is not actively maintained. |
rlmgen.c.o |
rlc license generation module. |
|
rlmgenkeys |
rlmgenkeys utility. |
|
rlmsign.c.o |
Object file for rlmsign utility. |
|
rlmverify.c.o |
Object file for rlmverify utility. |
|
rlmanon |
RLM logfile anonymizer. |
Not on client-only kits. |
rlmutil |
RLM utilities. |
|
rlm |
The generic RLM server |
Not on client-only kits |
l_isv.a |
RLM ISV library. |
|
isv_main.c.o |
main() for ISV server. |
|
ls.a |
RLM Server Library. |
|
rlm_msgs_http.c.o |
Object file which includes/enables HTTPS support. |
|
rlm_web.a |
RLM Server GUI library. |
|
lib_client.a |
RLM Client library. |
|
makefile |
Makefile |
|
libwebs_rom.a |
GoAhead Web Server library. |
|
rlmid1.a |
USB Dongle API library. |
|
libcrypto.a |
OpenSSL crypto library. |
|
example.lic |
Example license file |
Created by INSTALL |
The Windows Platform-dependent directory contains (before executing “nmake”):
File |
Contents |
---|---|
example.lic |
Example license file. |
isv_main.obj |
main() for ISV server. |
libcrypto_mt.lib |
OpenSSL crypto library. |
libcurl_md.lib |
cURL library. |
libcurl_mdd.lib |
cURL library. |
libcurl_mt.lib |
cURL library. |
libcurl_mtd.lib |
cURL library. |
libwebs_rom.lib |
GoAhead Web Server library. |
lib_client.lib |
RLM Client library. |
lib_client_md.lib |
RLM Client library. |
lib_client_mdd.lib |
RLM Client library. |
lib_client_mtd.lib |
RLM Client library. |
ls.lib |
RLM Server library. |
l_isv.lib |
RLM ISV library. |
makefile |
Makefile |
rlc.obj |
main() for Activation administration (rlc). |
rlm.def |
RLM DLL export definitions. |
rlm.exe |
The generic RLM server. |
rlm.res |
RLM version resource file. |
rlmact.obj |
rlc object file. |
rlmanon.exe |
RLM logfile anonymizer. |
rlmgen.obj |
rlc license generation module. |
rlmgenkeys.exe |
rlmgenkeys utility. |
rlmid1.lib |
USB Dongle API Library. |
rlmsign.obj |
main() for rlmsign utility. |
rlmutil.exe |
RLM utilities. |
rlmverify.obj |
main() for RLM log file authentication utility. |
rlm_genlic.lib |
Library to generate license files. |
rlm_msgs_http.obj |
Object file which includes/enables HTTPS support. |
rlm_msgs_http_md.obj |
Object file which includes/enables HTTPS support. |
rlm_msgs_http_mdd.obj |
Object file which includes/enables HTTPS support. |
rlm_msgs_http_mtd.obj |
Object file which includes/enables HTTPS support. |
rlm_web.lib |
RLM Server GUI library. |
x86_w*.vcproj, x64_w*.vcproj |
Visual Studio/Visual C++ project for building the SDK. |
The Java directory (java_unix, java_win) contains:
File |
Contents |
---|---|
docs |
Directory of HTML documentation. |
makefile |
Makefile |
rlmVVRB.jar |
Java Library (VV=ver, R=rev, B=build). |
RlmClient.java |
Example RLM application program. |
INSTALL |
Java kit installation script (Unix only). |
VERSION |
RLM kit version information. |
The dotnet directory (RLM .NET support – Windows only) contains:
File |
Contents |
---|---|
Reprise |
Visual Studio 2022 Project Directory for RLM .NET support. |
RLMTest |
Visual Studio 2022 Project Directory for RLM .NET Test program. |