1 | #!/bin/sh |
---|
2 | # |
---|
3 | # Script to setup the environment for openvpn-build/generic and openvpn-build/windows-nsis |
---|
4 | |
---|
5 | BUILD_DEPS="mingw-w64 man2html dos2unix nsis unzip wget curl autoconf" |
---|
6 | OSSLSIGNCODE_DEPS="libssl-dev libcurl4-openssl-dev build-essential" |
---|
7 | OSSLSIGNCODE_URL="http://sourceforge.net/projects/osslsigncode/files/latest/download" |
---|
8 | OSSLSIGNCODE_PACKAGE="osslsigncode-latest.tar.gz" |
---|
9 | OPENVPN_BUILD_URL="https://github.com/OpenVPN/openvpn-build.git" |
---|
10 | PATCHED_DEBS_BASEURL="http://build.openvpn.net/downloads/packaging" |
---|
11 | PATCHED_DEBS_PRECISE="mingw-w64-dev_2.0.1-101_all.deb mingw-w64-tools_2.0.1-101_amd64.deb mingw-w64_2.0.1-101_all.deb nsis-common_2.46-101_all.deb nsis-doc_2.46-101_all.deb nsis-pluginapi_2.46-101_all.deb nsis_2.46-101_amd64.deb" |
---|
12 | PATCHED_DEBS_QUANTAL="mingw-w64-dev_2.0.3-101_all.deb mingw-w64-tools_2.0.3-101_amd64.deb mingw-w64_2.0.3-101_all.deb mingw-w64-i686-dev_2.0.3-101_all.deb mingw-w64-x86-64-dev_2.0.3-101_all.deb nsis-common_2.46-101_all.deb nsis-doc_2.46-101_all.deb nsis-pluginapi_2.46-101_all.deb nsis_2.46-101_amd64.deb" |
---|
13 | PATCHED_DEBS_TRUSTY="nsis-common_2.46-101_all.deb nsis-doc_2.46-101_all.deb nsis-pluginapi_2.46-101_all.deb nsis_2.46-101_amd64.deb" |
---|
14 | |
---|
15 | check_if_root() { |
---|
16 | if ! [ `whoami` = "root" ]; then |
---|
17 | echo "ERROR: you must run this script as root!" |
---|
18 | exit 1 |
---|
19 | fi |
---|
20 | } |
---|
21 | |
---|
22 | usage() { |
---|
23 | |
---|
24 | echo "Usage: setup-generic-buildsystem.sh <oscodename>" |
---|
25 | echo |
---|
26 | echo "Parameter <oscodename> is:" |
---|
27 | echo |
---|
28 | echo " trusty (Ubuntu 14.04)" |
---|
29 | echo " precise (Ubuntu 12.04)" |
---|
30 | echo " quantal (Ubuntu 12.10)" |
---|
31 | echo |
---|
32 | echo "Example:" |
---|
33 | echo |
---|
34 | echo " setup-generic-buildsystem.sh trusty" |
---|
35 | echo |
---|
36 | exit 1 |
---|
37 | } |
---|
38 | |
---|
39 | install_prequisites() { |
---|
40 | #apt-get update |
---|
41 | apt-get -y install $BUILD_DEPS $GIT_PKG $GNUEABI_PKG |
---|
42 | } |
---|
43 | |
---|
44 | # osslsigncode is required for signing the binaries and installers |
---|
45 | install_osslsigncode() { |
---|
46 | apt-get -y install $OSSLSIGNCODE_DEPS |
---|
47 | curl -L $OSSLSIGNCODE_URL > $OSSLSIGNCODE_PACKAGE |
---|
48 | tar -zxf $OSSLSIGNCODE_PACKAGE |
---|
49 | cd osslsigncode-* |
---|
50 | ./configure |
---|
51 | make |
---|
52 | make install |
---|
53 | cd .. |
---|
54 | } |
---|
55 | |
---|
56 | # Patched .deb files fix a few serious issues: |
---|
57 | # |
---|
58 | # 1) On Ubuntu 12.04/12.10 the stock mingw version fails to build OpenVPN-GUI |
---|
59 | # 2) On Ubuntu 12.04-14.04 the stock nsis version does not support long strings |
---|
60 | # required when extremely longs paths are used (Trac #465). |
---|
61 | # |
---|
62 | install_patched_debs() { |
---|
63 | |
---|
64 | for DEB in $PATCHED_DEBS; do |
---|
65 | if ! [ -r $DEB ]; then |
---|
66 | curl -O $PATCHED_DEBS_BASEURL/$DEB |
---|
67 | fi |
---|
68 | done |
---|
69 | dpkg -i $PATCHED_DEBS |
---|
70 | } |
---|
71 | |
---|
72 | clone_openvpn_build() { |
---|
73 | if ! [ -d "openvpn-build" ]; then |
---|
74 | git clone $OPENVPN_BUILD_URL |
---|
75 | fi |
---|
76 | } |
---|
77 | |
---|
78 | OSCODENAME=$1 |
---|
79 | |
---|
80 | if [ "$OSCODENAME" = "trusty" ]; then |
---|
81 | PATCHED_DEBS=$PATCHED_DEBS_TRUSTY |
---|
82 | GIT_PKG="git" |
---|
83 | GNUEABI_PKG="gcc-4.7-arm-linux-gnueabi" |
---|
84 | elif [ "$OSCODENAME" = "precise" ]; then |
---|
85 | PATCHED_DEBS=$PATCHED_DEBS_PRECISE |
---|
86 | GIT_PKG="git-core" |
---|
87 | GNUEABI_PKG="gcc-4.6-arm-linux-gnueabi" |
---|
88 | elif [ "$OSCODENAME" = "quantal" ]; then |
---|
89 | PATCHED_DEBS=$PATCHED_DEBS_QUANTAL |
---|
90 | GIT_PKG="git-core" |
---|
91 | GNUEABI_PKG="gcc-4.6-arm-linux-gnueabi" |
---|
92 | else |
---|
93 | echo "ERROR: unknown oscodename" |
---|
94 | echo |
---|
95 | usage |
---|
96 | fi |
---|
97 | |
---|
98 | check_if_root |
---|
99 | install_prequisites |
---|
100 | install_osslsigncode |
---|
101 | |
---|
102 | if ! [ "$PATCHED_DEBS" = "" ]; then |
---|
103 | install_patched_debs |
---|
104 | fi |
---|
105 | |
---|
106 | clone_openvpn_build |
---|