Version 7 (modified by 11 years ago) (diff) | ,
---|
Table of Contents
Introduction
You can use the generic buildsystem from openvpn-build subproject to cross-compile OpenVPN using any toolchain to any target environment. The build host must have a *NIX-like environment, e.g. Linux, *BSD or Cygwin (on Windows).
Generic instructions
You need to install a bunch of tools before attempting a build:
- mingw-w64, version 2.0.x.
- gcc-*-arm-linux-gnueabi (if building Arm binaries)
- Git
- man2html (for windows-nsis builds)
- dos2unix (for windows-nsis builds)
- NSIS: if you need support for riducuously long PATHs, you need to build NSIS yourself.
- osslsigncode version 1.4 or later (pkcs12 support needed). Earlier versions can be used with minor modifications to the codesign() method in the build scripts.
Converting certificates to PKCS12 format
If you have code-signing certificates generated with MS tools (.spc and .pvk files), you can convert them into standard (pkcs12) format using this script. If that fails, look at this old version of this page for manual instructions.
You can also create self-signed certificate for testing like this:
$ openssl req -newkey rsa:1024 -new -x509 -subj "/CN=test1" -out test.crt $ openssl pkcs12 -export -inkey privkey.pem -in test.crt -out test.p12
Once you have the pkcs12 archive, you can give it and it's password as argument to the buildsystem(s). For details, look here:
Build environment -specific instructions
Automated setup for Ubuntu
Please use this shell script. It has been tested on Ubuntu 12.10 server 64-bit, but should work on all flavors of Ubuntu 12.04 and 12.10.
Manual setup for Ubuntu
On Ubuntu 12.04 and 12.10 (64-bit) you most build dependencies are satisfied if you run the following command:
$ apt-get update $ apt-get install git-core mingw-w64 gcc-4.6-arm-linux-gnueabi man2html dos2unix nsis unzip
If you intend to build Windows installers with OpenVPN-GUI, you need to install a modified MinGW version.
If you wish to sign the release files (executables, libraries and installers), you need to build osslsigncode manually. First install OpenSSL and Curl development libraries:
$ apt-get update $ apt-get install libssl-dev libcurl4-openssl-dev build-essential
The curl library is used for timestamping support. Extract the osslsigncode tarball and issue the usual commands:
$ ./configure $ make $ sudo make install
This will put osslsigncode in PATH where the build system can find it.
Windows
If you're building using Cygwin on Windows, it's best to configure Git not to translate LF to CR/LF. For this reason it's probably best to use Cygwin's Git. Also take a look at Cygwin's README to see which packages are required.
Attachments (7)
-
setup-generic-buildsystem.sh (2.4 KB) - added by 11 years ago.
Shell script for setting up the prequisites of openvpn-build/generic on Ubuntu 12.04/12.10
-
setup-generic-buildsystem.2.sh (2.7 KB) - added by 10 years ago.
Updated script to support Ubuntu 14.04
-
setup-generic-buildsystem.3.sh (3.2 KB) - added by 10 years ago.
Version 3: add comments and installation of patched nsis packages on Ubuntu 14.04
-
setup-generic-buildsystem.4.sh (3.2 KB) - added by 9 years ago.
Version 4 of the setup-generic-buildsystem.sh script
-
setup-generic-buildsystem.5.sh (2.3 KB) - added by 8 years ago.
Version 5 of the setup-generic-buildsystem.sh script. This version patches mingw-w64 and nsis automatically from an apt repositry. Only Ubuntu 14.04 is supported - use older versions of the script if you need support for older operating systems and patch MinGW manually.
-
setup-generic-buildsystem.6.sh (1.4 KB) - added by 7 years ago.
openvpn-build setup script for Ubuntu 16.04
-
setup-generic-buildsystem.7.sh (1.4 KB) - added by 6 years ago.
Setup openvpn-build on Ubuntu 16.04 - fix osslsigncode download URL and exit on any error
Download all attachments as: .zip