########################################### Licensecc: a C++ software license manager ########################################### Copy protect, limit the usage of your C++ software with a license. |c11|_ |License|_ |unstable|_ |TravisBuild|_ |GithubCI|_ |CodacyBadge|_ |codecov|_ |forum|_ .. |c11| image:: https://img.shields.io/badge/c%2B%2B-11-blue.svg .. _c11: https://en.wikipedia.org/wiki/C%2B%2B#Standardization .. |unstable| image:: http://badges.github.io/stability-badges/dist/unstable.svg .. _unstable: http://github.com/badges/stability-badges .. |License| image:: https://img.shields.io/badge/License-BSD%203--Clause-blue.svg .. _License: ttps://opensource.org/licenses/BSD-3-Clause .. |TravisBuild| image:: https://travis-ci.org/open-license-manager/licensecc.svg?branch=develop .. _TravisBuild: https://travis-ci.org/open-license-manager/licensecc .. |GithubCI| image:: https://github.com/open-license-manager/licensecc/workflows/Github_CI/badge.svg .. _GithubCI: https://github.com/open-license-manager/licensecc/actions .. |CodacyBadge| image:: https://app.codacy.com/project/badge/Grade/81a1f6bc15014618934fc5fab4d3c206 .. _CodacyBadge: https://www.codacy.com/gh/open-license-manager/licensecc/dashboard?utm_source=github.com&utm_medium=referral&utm_content=open-license-manager/licensecc&utm_campaign=Badge_Grade .. |codecov| image:: https://codecov.io/gh/open-license-manager/licensecc/branch/develop/graph/badge.svg .. _codecov: https://codecov.io/gh/open-license-manager/licensecc .. |issues| image:: https://img.shields.io/github/issues/licensecc/open-license-manager .. _issues: http://github.com/open-license-manager/licensecc/issues .. |forum| image:: https://img.shields.io/badge/forum-licensecc-blue.svg?style=flat .. _forum: https://groups.google.com/d/forum/licensecc 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. `Licensecc` is an open source license management system that helps to keep your software closed |:smirk:| . Among the other features the most notable one is: if it runs on a "real hardware" (not a container/vm) it can generate a signature of that hardware and report if the signature doesn't match, because for instance the software has been copied to another place. A comprehensive :ref:`list of features `, and their status is available in the project wiki. If you're experiencing problems, or you just need informations you can't find here in the documentation, please contact us on the `user forum `_ (hosted on Google), we'll be happy to help. License (BSD) ************** 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`_ licensing schema, that allows modification and inclusion in GPL and commercial software. .. _BSD 3 clauses: https://opensource.org/licenses/BSD-3-Clause Project Structure ******************* The software is made by 4 main sub-components: * ``licensecc`` : the C++ library with a C api (the part you have to integrate in your software) with minimal external dependencies. (github project `licensecc `_ ) * ``lccinspector`` : a license debugger to be sent to the final customer to diagnose licensing problems or for calculating the hardware id before issuing the license. * ``lccgen`` : a license generator (github project `lcc-license-generator`_ ) to initialize the library and generate the licenses. * ``examples`` : usage samples (github project `examples `_ ). .. _lcc-license-generator: https://github.com/open-license-manager/lcc-license-generator How to build **************** Below an overview of the basic build procedure, provided as an example but if you really want to try we suggest you to refer to the detailed section for your operating system: :ref:`Linux ` or :ref:`Windows `. 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) * libraries : 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 :ref:`dependencies ` section. Clone the project. .. NOTE:: It has submodules, don't forget the `--recursive` option. .. code-block:: console git clone --recursive https://github.com/open-license-manager/licensecc.git cd licensecc/ cd build Build on Linux =================== .. code-block:: console cmake .. -DCMAKE_INSTALL_PREFIX=../install make make install Build on Windows (with MSVC 2017) ================================== .. code-block:: console cmake .. -G "Visual Studio 16 2017 Win64" -DBOOST_ROOT="{Folder where boost is}" -DCMAKE_INSTALL_PREFIX=../install cmake --build . --target install --config Release Cross compile with MINGW on Linux ===================================== .. code-block:: console x86_64-w64-mingw32.static-cmake .. -DCMAKE_INSTALL_PREFIX=../install make make install How to test **************** On Linux: .. code-block:: console make test On Windows (MSVC): .. code-block:: console ctest -C Release How to use ************** The `examples`_ repository shows various ways to integrate `licensecc` into your project. .. _examples: https://github.com/open-license-manager/examples Branches and status ********************* * On branch ``master`` there is the 'legacy' 1.0.0 version. This version is working but doesn't correspond to the current documentation, and we don't plan to actively fix it. There are well-known bugs and limitations. We still accept community contributions on this branch. Feel free to propose your pull request. * On branch ``develop`` there is the upcoming 2.0.0 version that corresponds to the documentation. This version is under development and has not been extensively used/tested. However we encourage users to download and use this one. How to contribute ******************** .. TIP:: The easiest way you can solve your problems or ask help is through the `forums`_ (hosted on Google) Otherwise 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. .. _forums: https://groups.google.com/forum/#!forum/licensecc .. _issue system: https://github.com/open-license-manager/licensecc/issues .. _contribution guidelines: https://github.com/open-license-manager/licensecc/blob/develop/CONTRIBUTING.md .. _GitFlow: https://datasift.github.io/gitflow/IntroducingGitFlow.html * :ref:`genindex` * :ref:`modindex` * :ref:`search` .. toctree:: :glob: :maxdepth: 2 :hidden: :caption: Build the library: development/* .. toctree:: :glob: :maxdepth: 2 :hidden: :caption: Integrate and use: usage/* .. toctree:: :maxdepth: 2 :hidden: :caption: API: api/public_api api/extend .. toctree:: :glob: :maxdepth: 2 :hidden: :caption: Analysis: analysis/* .. toctree:: :glob: :maxdepth: 2 :hidden: :caption: Miscellaneous: other/* .. meta:: :description: open source license manager, copy protection library in C++. :keywords: license manager, c++, open source, copy protection, hardware identifcation :title: a