Contributing, licensing and copyright

Open-source

OpenNaaS is as open-source software project. Therefore, anyone is welcome to download and use it. Furthermore, its source code is publicly available and anyone is invited to participate in its development, which consists of two distinctive parts: the core and the extensions. The core can be understood as a provider of basic functionality, e.g. resource management, which can then be used by extensions. Extensions provide functionality for a specific aspect of networking, e.g. configuration of routers. Since these two parts of the platform are distinct, each of them also uses a distinct licence.

Core

The core is the nucleus of OpenNaaS. It contains of the main modules regarding OSGi, the architecture (resources and capabilities), security, persistence, console, etc. Although anyone is welcome to participate in core development, it is mainly maintained by the OpenNaaS development team. Changes to the core are rare in comparison to changes to the extensions, its set of functionalities was defined at the beginning and normally only bug-fixes are applied to the core.

It is licensed under  GNU Lesser General Public License version 3 allowing commercial use, distribution, modification, patent grant, private use and sublicensing. Any modification of the core must be licensed with same license (or even GPLv3). Any application under any license can make use of the core, it is only needed to notify the usage of OpenNaaS core as an LGPLv3 licensed software.

License full text can be found here.

LGPLv3

Patent granting and copyright

LGPLv3 states that a user relinquishes copyright and patent rights when contributing to the core and that these rights automatically belong to the original developer, the i2CAT Foundation. This assures that the core and all its modifications will always be available to all. Since the core usually is not changed – apart from fixing bugs – this regulation in practice is of little consequence.

Extensions

Using the core of OpenNaaS as the heart of the platform, functionality can easily and dynamically added by deploying extensions. Extension provide new resources and capabilities these resource have. Although there is a set of extensions that was created by the OpenNaaS development team which covers a wide range of networking devices, it is easy to add new extensions to OpenNaaS. This also is the standard way of extending the functionality available by the platform. For the available set of extensions, the development team has chosen the Apache License version 2.0 allowing commercial use, distribution, modification, patent grant, private use and sublicensing. Any modification of these extension’s source code must be explicitly noticed.

License full text can be found here.

Apache License v2.0

For all extensions you add to OpenNaaS, you choose the license of your liking. It is, for example, common for a vendor to implement his extensions privately and not share them at all.

Patent granting and copyright

Like the LGPLv3, Apache Licence v2.0 states that the user relinquishes copyright and patent rights, so all contributions made to the extensions developed by the OpenNaaS development team will always belong to the i2CAT Foundation. This assures that you will always be able to use these extensions. The availability of a third-party extension will always depend on the license chosen by its developer, as already mentioned a vendor may decide not to share an extension at all while using the OpenNaaS core to deploy it.

Source code, forking and contributing

Anyone can look at the source code in the OpenNaaS GitHub repository. Using Git as distributed version control system and GitHub as service allows forking the project source code with ease. Besides it is possible to contribute to the project using pull requests.

Don’t hesitate getting the source code, forking it and doing pull requests when you find a bug or you want to apply a new developed functionality.