Contributions

Contributions to the strongSwan project are very welcome. Before you start your development, please get in contact via our mailing list or to one of our developers. We might already have some plans for such a feature or are even working on it. We can also give some useful hints on how to integrate your work into the strongSwan architecture.

Depending on the form and affected components of your contribution, you must not submit the code under a GPL license, but under the MIT X11 license.

strongSwan License

strongSwan is an open source project distributed under the GPLv2 license. We think the open source model has several advantages over a commercial product:
  • You can review the code, which is of utmost importance in security software.
  • You can contribute to fix or improve the software.
  • You can use the software for free. This allows more users to try and use it, giving feedback and further improve its quality.

We strongly believe in open source and will always distribute strongSwan under a GPL license.

The IKEv1 daemon pluto and other parts of the daemon have been inherited from the FreeS/WAN project. The copyright belongs to several people.

The IKEv2 daemon and its library have been developed at the University of Applied Sciences Rapperswil. Writing an IKEv2 daemon from scratch is not something you do as a hobby over the weekend. We have invested several full-time man years of development. While we are open to contributions, they have been very rare so far. We think this is mainly due to the complexity of the topic and the software. The copyright of the IKEv2 daemon and of some libraries completely belong to the University.

Contributing

Depending on the affected strongSwan components of your contribution, you'll have to use a different license for your contribution:

IKEv2 and libstrongswan

If your contributions are targeting the IKEv2 daemon core (source:src/libcharon) or libstrongswan (source:src/libstrongswan), we will require contributions to be under the
GPL-compatible MIT X11 license. This allows us to:
  • Integrate your work in our GPLed strongSwan project, keeping your copyright
  • To switch the project's license to GPLv3 if required
  • Offer partners alternative licensing schemes for these parts

Providing alternative licensing will give us additional revenue to keep the project rolling. We cannot improve strongSwan without a constant income.

Other projects require you to assign your copyright to the project/foundation/company. But we think this is much more complicated or not even possible in some countries. With a MIT X11 license, you will keep your copyright.

If you send in non-trivial patches, send new files with an added MIT license in the header. If you extend existing files in a non-trivial way, append the MIT license to the existing GPL license header:

Copyright (c) <year> <copyright holders>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

Plugins

If you are writing your own plugin, you are free to use a GPL license. We will not require you to send it under the MIT license. If you extend existing plugins, contributing under the MIT license might be required. Contact us if you are unsure about the license.

IKEv1, libfreeswan, libcrypto, starter

For components inherited from FreeS/WAN, we don't require MIT-licensed contributions, as we don't own the code anyway.