/licensecc

Software licensing, copy protection in C++. It has few dependencies and it's cross-platform.

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

This is a fork

This is a fork because the original library is badly written but provides almost what I need. The fixes in this lib allow us to use it as a library.

I strongly encourage us to move away from this lib to a more stable one.

Licensecc

Copy protection, licensing library and license generator for Windows and Linux.

Standard unstable License travis Github_CI Codacy Badge codecov Github Issues

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 source license manager that helps to keep your software closed 😏 . 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, 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 please contact us on github discussions, we'll be happy to help.

Remember to show your appreciation giving us a star here on GitHub.

License

The project is donated to the community. It comes with freedom of use for everyone, and it always will be. It has a BSD 3 clauses licensing schema, that allows free modification and use in commercial software.

Project Structure

The software is made by 4 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) lccgen for customizing the library and generate the licenses.
  • Usage examples to simplify the integration in your project.

How to build

Below an overview of the basic build procedure, you can find detailed instructions for Linux or Windows in the project web site.

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.

For a complete list of dependencies and supported environments see the project website

Clone the project. It has submodules, don't forget the --recursive option.

git clone --recursive https://github.com/open-license-manager/licensecc.git
cd licensecc/build

build on Linux

cmake .. -DCMAKE_INSTALL_PREFIX=../install
make
make install

build on Windows (with MSVC 2017)

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

x86_64-w64-mingw32.static-cmake .. -DCMAKE_INSTALL_PREFIX=../install
make
make install

How to test

on Linux

make test

on Windows (MSVC)

ctest -C Release

How to use

The examples repository that shows various ways to integrate licensecc into your project.

How to contribute

The easiest way you can solve your problems or ask help is through the discussions tab above, otherwise if you think there is a problem you can open an issue in the issue system. Have a look to the contribution guidelines before reporting. We use GitFlow (or at least a subset of it). Remember to install the gitflow git plugin and use develop as default branch for your pull requests.