wiki:GuiUpdateProject

Version 5 (modified by tct, 5 years ago) (diff)

--

Introduction

Note: This document is out-of-date, it applies only to OpenVPN-2.3.x (For Windows). OpenVPN-2.4.x includes the OpenVPN-Interactive-Service, which manages privilege separation quite successfully. (You are urged to upgrade if you have not). Instructions for using OpenVPN-GUI bundled with OpenVPN 2.4 are on Use OpenVPN-2.4 Windows-GUI.

OpenVPN-2.3.x

Historically, there have been many, many client GUIs for OpenVPN. Practically all are work of a one person, and many of them are completely unmaintained. Here's a snapshot (12th May 2011) of native Windows GUIs from our related project list:

There are also tons of inactive client GUI projects and probably dozens of in-house client GUI implementations. This fragmentation of development effort hurts both users (who never get to use a really good GUI) and developers (who have to reinvent the wheel over and over again).

OpenVPN project has distributed an OpenVPN-GUI with it's Windows installers for years, but core OpenVPN developers have put very little emphasis on developing the GUI; this is understandable, as it's outside the scope of the project. OpenVPN releases prior to 2.3-alpha1 included a very old (released 2005) OpenVPN-GUI. Releases starting with 2.3-alpha1 use a more modern OpenVPN-GUI.

Here's a list of potential reasons why so many OpenVPN GUIs exist:

  • Existing GUI(s) are lacking some special functionality
  • Hacking together a customized GUI is relatively easy
  • Making a good-quality general purpose GUI requires lots of work
  • Working with others necessarily means extra development overhead
  • Most GUI projects are small and don't show up anywhere (except our related projects list)

There are a few steps between now and a general purpose GUI:

  • Find out the most common GUI features people need (and implement those)
  • Merge existing projects together (if possible)

Requirements

Functional requirements

Describe what is the core reason why this applications exists. These should be visible to the user.

  • Create a tunnel
  • Close down a tunnel
  • Support multiple OpenVPN configuration files

Non-functional requirements

These describe the qualities of the application, such as look and feel and performance.

  • Operates from the system tray

Constraints

These are similar to non-functional requirements, but imposed upon from outside.

  • Must run on Windows XP SP3 and above
  • Must use the management interface