Current development repositories

Main development repositories (GitHub)

After OpenVPN 2.3-alpha1 several major changes were introduced in OpenVPN project structure, e.g. splitting several large chunks of code away from the main development tree into their own subprojects under the OpenVPN organization in GitHub (adapted from here):

  • openvpn: a standard open source project, autotools-based build system and like any other project it's buildsystem only builds itself.
  • openvpn-gui: a graphical frontend for OpenVPN running on Windows
  • openvpn-build: a separate project to build openvpn in various of configurations. This project is divided into the following components:
    • generic: a generic build using cross compiler, included the complete dependencies.
    • msvc: a MSVC build using Microsoft specific msbuild system. (NOTE: not actively maintained)
    • windows-nsis: the Windows installer generator that uses the generic component to build using mingw cross compiler, then package the output using NSIS.
  • tap-windows: the Windows TAP driver (NDIS 5 version), which is also useful outside OpenVPN
  • tap-windows6: the Windows TAP driver (NDIS 6 version), which is also useful outside OpenVPN
  • easy-rsa: scripts for generating SSL certificates for use with OpenVPN (or for other purposes)
  • openvpn-windows-test: Powershells scripts for automating testing of OpenVPN on Windows.

Mirrors of most of these GitHub repositories are available in

Branches and tags in openvpn.git

The branches found in the openvpn.git repository are:

master            -- The main development branch.  * All new patches should be based on this branch *
release/2.1       -- Everything related to the OpenVPN version 2.1 releases
release/2.2       -- Everything related to the OpenVPN version 2.2 releases
release/2.3       -- Everything related to the OpenVPN version 2.3 releases
release/2.4       -- Everything related to the OpenVPN version 2.4 releases
release/2.5       -- Everything related to the OpenVPN version 2.5 releases
release/2.6       -- Everything related to the OpenVPN version 2.6 releases

Release branches do not have any active development and only bug fixes are typically applied to these branches after the release. A new release branch is created for each major release (2.x). All bug fixes should be developed against the master branch, and where it is decided to include such fixes in a minor release (2.1.x, 2.2.x, etc), it will be cherry-picked from the master branch and into the suitable release branches.

All major and minor releases are also tagged, and tags can be inspected by using the following git commands:

$ git tag -l               # Lists all tags
$ git tag -v <tag name>    # Verifies a signed tag
$ git show <tag name>      # Shows the tag message and the commit the tag points at

For details about the development process look here.

Obsolete repositories

James' SVN repository

James Yonan used to host his own SVN repository at, but it was taken offline in late 2013 / early 2014 and replaced with James' own openvpn.git repo on GitHub.

Old CVS repository

For the historians among us there's the old CVS tree, which has been made available as an inactive git tree. This tree can be browsed here or downloaded locally:

git clone git://

Note that no new development happens in this tree.

Last modified 9 months ago Last modified on 10/31/23 13:23:30