| | |
| | | # Open License Manager |
| | |  |
| | | |
| | | A license manager written in C/C++ for Windows and Linux environments. |
| | | A copy protection, licensing software written in C++ for Windows and Linux (with a simple C api for use in C projects). |
| | | |
| | | It allows to protect the software you develop from unauthorized copies, |
| | | limit the usage in time, to a specific set of machines, or prevent the usage in |
| | | virtualized environments. It is an Open License Manager that helps to keep your |
| | | software closed ;-) |
| | | [](https://en.wikipedia.org/wiki/C%2B%2B#Standardization) |
| | | [](http://github.com/badges/stability-badges) |
| | | [](https://opensource.org/licenses/BSD-3-Clause) |
| | | [](https://travis-ci.org/open-license-manager/open-license-manager) |
| | | [](https://github.com/open-license-manager/open-license-manager/actions) |
| | | [](https://www.codacy.com/manual/gcontini/open-license-manager?utm_source=github.com&utm_medium=referral&utm_content=open-license-manager/open-license-manager&utm_campaign=Badge_Grade) |
| | | [](https://codecov.io/gh/open-license-manager/open-license-manager) |
| | | [](http://github.com/open-license-manager/open-license-manager/issues) |
| | | [](https://groups.google.com/d/forum/licensecc) |
| | | |
| | | The software is made by 2 main sub-components: |
| | | * a C library with no (or minimal) external dependencies (the part you have to integrate in your software). |
| | | * a license generator written in C++ (allows you to generate a license). |
| | | Protect the software you develop from unauthorized copies, limit the usage in time, to a specific set of |
| | | machines, or prevent the usage in virtualized environments. It is an Open License Manager that helps to keep your |
| | | software closed :smirk: . Among other features if it runs on a "real hardware" it can generate a signature of that hardware and report if the signature doesn't match. |
| | | |
| | | A comprehensive [list of features](http://open-license-manager.github.io/open-license-manager/analysis/features.html), and their status is available in the project site. |
| | | |
| | | If you're experiencing problems, or you just need informations you can't find in the [documentation](http://open-license-manager.github.io/open-license-manager) please contact us on the [user forum](https://groups.google.com/forum/#!forum/licensecc) (hosted on Google), we'll be happy to help. |
| | | |
| | | Remember to show your appreciation giving us a <a class="github-button" href="https://github.com/open-license-manager/open-license-manager" data-icon="octicon-star" aria-label="Star open-license-manager/open-license-manager on GitHub">star</a> here on GitHub. |
| | | |
| | | ## License |
| | | The project is donated to the community. It comes with a very large freedom of use for everyone, and it will always be. |
| | | It uses a [BSD 3 clauses](https://opensource.org/licenses/BSD-3-Clause) licensing schema, that allows free modification and inclusion in commercial software. |
| | | |
| | | ## Project Structure |
| | | The software is made by 3 main sub-components: |
| | | - a C++ library with a nice C api, `licensecc` with minimal (or no) external dependencies (the part you have to integrate in your software) that is the project you're currently in. |
| | | - a license debugger `lcc-inspector` to be sent to the final customer when there are licensing problems or for calculating the pc hash before issuing the license. |
| | | - a license generator (github project [lcc-license-generator](https://github.com/open-license-manager/lcc-license-generator)) `lccgen` for customizing the library and generate the licenses. |
| | | |
| | | these modules are planned.... |
| | | * a license [backoffice](../../issues/7) in php (in order to handle multiple licenses). |
| | | * a license debugger to be sent to the final customer when there are licensing problems. |
| | | * a [log descriptor](../../issues/8) in order to decrypt logs generated by the license system. |
| | | ## How to build |
| | | Below an overview of the basic build procedure, you can find detailed instructions for [Linux](http://open-license-manager.github.io/open-license-manager/development/Build-the-library.html) |
| | | or [Windows](http://open-license-manager.github.io/open-license-manager/development/Build-the-library-windows.html) in the project web site. |
| | | |
| | | You can notice 2 more sub-projects: |
| | | * bootstrap: allows to generate private keys and modify the library on the fly after the downloading. |
| | | * testing : runs the tests (and publish the results on cdash) |
| | | |
| | | Licensing |
| | | ===================== |
| | | The project comes out with a very large freedom of use for everyone (and it will always be). |
| | | It uses a BSD 3 clauses licensing schema. |
| | | ### Prerequisites |
| | | - Operating system: Linux(Ubuntu, CentOS), Windows |
| | | - compilers : GCC (Linux) MINGW (Linux cross compile for Windows), MINGW or MSVC (Windows) |
| | | - tools : cmake(>3.6), git, make/ninja(linux) |
| | | - libs : If target is Linux Openssl is required. Windows depends only on system libraries. Boost is necessary to build license generator and to run the tests but it's NOT a dependency of the final `licensecc` library. |
| | | |
| | | How to build |
| | | ============ |
| | | For a complete list of dependencies and supported environments see [the project website](http://open-license-manager.github.io/open-license-manager/development/Dependencies.html) |
| | | |
| | | ## prerequisites |
| | | GCC (Linux), MINGW or MSVC (Windows) |
| | | cmake, boost, openssl (Linux/MINGW), you can find detailed instruction for each [supported environment](https://github.com/open-license-manager/open-license-manager/wiki/Build-the-library) in the wiki. Below an overview of the basic build procedure: |
| | | Clone the project. It has submodules, don't forget the `--recursive` option. |
| | | |
| | | ``` |
| | | git clone https://github.com/open-license-manager/open-license-manager.git |
| | | cd open-license-manager/ |
| | | mkdir build |
| | | cd build |
| | | ```console |
| | | git clone --recursive https://github.com/open-license-manager/open-license-manager.git |
| | | cd open-license-manager/build |
| | | ``` |
| | | |
| | | ## on Linux |
| | | ``` |
| | | ### build on Linux |
| | | |
| | | ```console |
| | | cmake .. -DCMAKE_INSTALL_PREFIX=../install |
| | | make |
| | | make install |
| | | ``` |
| | | |
| | | ## on Windows (with MSVC 2015) |
| | | ``` |
| | | cmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX=../install |
| | | ### build on Windows (with MSVC 2017) |
| | | |
| | | ```console |
| | | cmake .. -G "Visual Studio 15 2017 Win64" -DBOOST_ROOT="{Folder where boost is}" -DCMAKE_INSTALL_PREFIX=../install |
| | | cmake --build . --target install --config Release |
| | | ``` |
| | | |
| | | ## cross compile with MINGW on Linux |
| | | ``` |
| | | ### cross compile with MINGW on Linux |
| | | |
| | | ```console |
| | | x86_64-w64-mingw32.static-cmake .. -DCMAKE_INSTALL_PREFIX=../install |
| | | make |
| | | make install |
| | | ``` |
| | | |
| | | How to test |
| | | =========== |
| | | ## How to test |
| | | |
| | | ## on Linux |
| | | ``` |
| | | ### on Linux |
| | | |
| | | ```console |
| | | make test |
| | | ``` |
| | | |
| | | ## on Windows (MSVC) |
| | | ``` |
| | | ### on Windows (MSVC) |
| | | |
| | | ```console |
| | | ctest -C Release |
| | | ``` |
| | | |
| | | How to use |
| | | ========== |
| | | ## How to use |
| | | |
| | | This simple example shows how to integrate open-licence-manager into your project |
| | | The [examples](https://github.com/open-license-manager/examples) repository that shows various ways to integrate `open-licence-manager` into your project. |
| | | |
| | | ``` |
| | | $ cd example |
| | | $ cmake . |
| | | $ make |
| | | $ ./example |
| | | license ERROR : |
| | | license file not found |
| | | the pc signature is : |
| | | Jaaa-aaaa-MG9F-ZhBB |
| | | $ ../install/bin/license_generator example -s Jaaa-aaaa-MG9F-ZhBB -o example.lic |
| | | $ ./example |
| | | licence OK |
| | | ``` |
| | | ## How to contribute |
| | | |
| | | The easiest way you can solve your problems or ask help is through the [forum](https://groups.google.com/forum/#!forum/licensecc) (hosted on Google), otherwise if you think there is a problem you can open an issue in the [issue system](https://github.com/open-license-manager/open-license-manager/issues). |
| | | Have a look to the [contribution guidelines](CONTRIBUTING.md) before reporting. |
| | | We use [GitFlow](https://datasift.github.io/gitflow/IntroducingGitFlow.html) (or at least a subset of it). |
| | | Remember to install the gitflow git plugin and use `develop` as default branch for your pull requests. |