Skip to contentSkip to conversation

travis-ci: add 2 mingw "build only" configurations

PATCH In review Ilya Shipitsin 4 participants 7 messages Apr 25, 2017 – Apr 26, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 travis-ci: add 2 mingw "build only" configurations

Inspired by https://www.mail-archive.com/[email protected]/msg13032.html
build options are taken from regular windows installer builds

---
v2: moved download/build dependencies into functions, changed cross build detection from shell expansion ${CHOST+x} to more recognised -z "${CHOST}", which required changing 'set -eux' to 'set -ex'. Added comments to make code readable without looking into commit message.

 .travis.yml           |  35 +++++++++++++----
 .travis/build-deps.sh | 101 +++++++++++++++++++++++++++++++++++++++++++++++---
 2 files changed, 123 insertions(+), 13 deletions(-)
.travis.yml +28 -7
index 3c0aa7d..2f9fe4c 100644
@@ -12,6 +12,9 @@ env:
   global:
     - JOBS=3
     - PREFIX="${HOME}/opt"
+    - TAP_WINDOWS_VERSION=9.21.2
+    - LZO_VERSION=2.10
+    - PKCS11_HELPER_VERSION=1.11
     - MBEDTLS_VERSION="2.4.0"
     - MBEDTLS_CFLAGS="-I${PREFIX}/include"
     - MBEDTLS_LIBS="-L${PREFIX}/lib -lmbedtls -lmbedx509 -lmbedcrypto"
@@ -50,6 +53,12 @@ matrix:
       os: osx
       osx_image: xcode7.3
       compiler: clang
+    - env: SSLLIB="openssl" CHOST=x86_64-w64-mingw32
+      os: linux
+      compiler: ": Win64 build only"
+    - env: SSLLIB="openssl" CHOST=i686-w64-mingw32
+      os: linux
+      compiler: ": Win32 build only"
   exclude:
     - compiler: gcc
 
@@ -60,6 +69,7 @@ addons:
       - libpam0g-dev
       - liblz4-dev
       - linux-libc-dev
+      - man2html
 
 cache:
   ccache: true
@@ -72,16 +82,27 @@ before_install:
   - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew install lzo; fi
 
 install:
+  - if [ ! -z "${CHOST}" ]; then unset CC; fi
   - .travis/build-deps.sh > build-deps.log 2>&1 || (cat build-deps.log && exit 1)
 
 script:
   - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then export LD_LIBRARY_PATH="${PREFIX}/lib:${LD_LIBRARY_PATH}"; fi
   - if [ "${TRAVIS_OS_NAME}" = "osx"   ]; then export DYLD_LIBRARY_PATH="${PREFIX}/lib:${DYLD_LIBRARY_PATH}"; fi
   - autoreconf -vi
-  - ./configure --with-crypto-library="${SSLLIB}" ${EXTRA_CONFIG} || (cat config.log && exit 1)
-  - make -j$JOBS
-  - src/openvpn/openvpn --version || true
-  - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then ldd src/openvpn/openvpn; fi
-  - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then otool -L src/openvpn/openvpn; fi
-  - make check
-  - $EXTRA_SCRIPT
+  - if [ -z "${CHOST}" ]; then
+      ./configure --with-crypto-library="${SSLLIB}" ${EXTRA_CONFIG} || (cat config.log && exit 1);
+      make -j$JOBS;
+      src/openvpn/openvpn --version || true;
+      if [ "${TRAVIS_OS_NAME}" = "linux" ]; then ldd src/openvpn/openvpn; fi;
+      if [ "${TRAVIS_OS_NAME}" = "osx" ]; then otool -L src/openvpn/openvpn; fi;
+      make check;
+      $EXTRA_SCRIPT;
+    else
+      export TAP_CFLAGS="-I${PWD}/tap-windows-${TAP_WINDOWS_VERSION}/include";
+      export LZO_CFLAGS="-I${PREFIX}/include";
+      export LZO_LIBS="-L${PREFIX}/lib -llzo2";
+      export PKCS11_HELPER_LIBS="-L${PREFIX}/lib -lpkcs11-helper";
+      export PKCS11_HELPER_CFLAGS="-I${PREFIX}/include";
+      ./configure --with-crypto-library="${SSLLIB}" --host=${CHOST} --build=x86_64-pc-linux-gnu --enable-pkcs11 --disable-plugins || (cat config.log && exit 1);
+      make -j$JOBS;
+    fi
.travis/build-deps.sh +95 -6

146 lines not on this page · raw message

Signature · 1 line
2.5.5
#1 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Quoted 2 lines · Ilya Shipitsin

Inspired by
https://www.mail-archive.com/[email protected]/msg13

032.html

Quoted 2 lines

build options are taken from regular windows installer builds

Quoted 69 lines

download/build dependencies into functions, changed cross build detection from shell expansion ${CHOST+x} to more recognised -z "${CHOST}", which required changing 'set -eux' to 'set -ex'. Added comments to make code readable without looking into commit message.

.travis.yml | 35 +++++++++++++---- .travis/build-deps.sh
| 101 +++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 123 insertions(+), 13 deletions(-)

.travis.yml index 3c0aa7d..2f9fe4c renamed from .travis.yml +0 -0

100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,9 @@ env:
global: - JOBS=3 - PREFIX="${HOME}/opt" + -
TAP_WINDOWS_VERSION=9.21.2 + - LZO_VERSION=2.10 + -
PKCS11_HELPER_VERSION=1.11 - MBEDTLS_VERSION="2.4.0" - MBEDTLS_CFLAGS="-I${PREFIX}/include" - MBEDTLS_LIBS="-L${PREFIX}/lib -lmbedtls -lmbedx509 -lmbedcrypto" @@ -50,6 +53,12 @@ matrix: os: osx osx_image: xcode7.3 compiler:
clang + - env: SSLLIB="openssl" CHOST=x86_64-w64-mingw32 +
os: linux + compiler: ": Win64 build only" + - env:
SSLLIB="openssl" CHOST=i686-w64-mingw32 + os: linux +
compiler: ": Win32 build only" exclude: - compiler: gcc

.travis.yml index 3c0aa7d..2f9fe4c renamed from .travis.yml +0 -0
@@ -60,6 +69,7 @@ addons: - libpam0g-dev - liblz4-dev -

linux-libc-dev + - man2html

cache: ccache: true @@ -72,16 +82,27 @@ before_install: - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew install lzo; fi

install: + - if [ ! -z "${CHOST}" ]; then unset CC; fi - .travis/build-deps.sh > build-deps.log 2>&1 || (cat build-deps.log && exit 1)

script: - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then export LD_LIBRARY_PATH="${PREFIX}/lib:${LD_LIBRARY_PATH}"; fi - if [
"${TRAVIS_OS_NAME}" = "osx" ]; then export
DYLD_LIBRARY_PATH="${PREFIX}/lib:${DYLD_LIBRARY_PATH}"; fi - autoreconf -vi - - ./configure --with-crypto-library="${SSLLIB}" ${EXTRA_CONFIG} || (cat config.log && exit 1) - - make -j$JOBS -
- src/openvpn/openvpn --version || true - - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then ldd src/openvpn/openvpn; fi -
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then otool -L src/openvpn/openvpn; fi - - make check - - $EXTRA_SCRIPT + - if
[ -z "${CHOST}" ]; then + ./configure
--with-crypto-library="${SSLLIB}" ${EXTRA_CONFIG} || (cat
config.log && exit 1); + make -j$JOBS; +
src/openvpn/openvpn --version || true; + if [
"${TRAVIS_OS_NAME}" = "linux" ]; then ldd src/openvpn/openvpn; fi;
+ if [ "${TRAVIS_OS_NAME}" = "osx" ]; then otool -L
src/openvpn/openvpn; fi; + make check; + $EXTRA_SCRIPT; +
else + export
TAP_CFLAGS="-I${PWD}/tap-windows-${TAP_WINDOWS_VERSION}/include"; +
export LZO_CFLAGS="-I${PREFIX}/include"; + export
LZO_LIBS="-L${PREFIX}/lib -llzo2"; + export
PKCS11_HELPER_LIBS="-L${PREFIX}/lib -lpkcs11-helper"; + export
PKCS11_HELPER_CFLAGS="-I${PREFIX}/include"; + ./configure
--with-crypto-library="${SSLLIB}" --host=${CHOST} --build=x86_64-pc-linux-gnu --enable-pkcs11 --disable-plugins ||
(cat config.log && exit 1); + make -j$JOBS; + fi

.travis/build-deps.sh index renamed from .travis/build-deps.sh +0 -0

3ffba0b..2229bb7 100755 --- a/.travis/build-deps.sh +++ b/.travis/build-deps.sh @@ -1,9 +1,58 @@ #!/bin/sh -set -eux +set -ex

Quoted 6 lines

# Set defaults PREFIX="${PREFIX:-${HOME}/opt}"

+download_tap_windows () { + if [ ! -f
"download-cache/tap-windows-${TAP_WINDOWS_VERSION}.zip" ]; then + wget -P download-cache/ \ + "http://build.openvpn.net/downloads/releases/tap-windows-${TAP_WINDOWS

_VERSION}.zip"

Quoted 2 lines

+ fi

Quoted 4 lines

+} + +download_lzo () { + if [ ! -f
"download-cache/lzo-${LZO_VERSION}.tar.gz" ]; then + wget -P
download-cache/ \ + "http://www.oberhumer.com/opensource/lzo/download/lzo-${LZO_VERSION}.t

ar.gz"

Quoted 2 lines

+ fi

Quoted 11 lines

+} + +build_lzo () { + if [ "$(cat ${PREFIX}/.lzo-version)" !=
"${LZO_VERSION}" ]; then + tar zxf
download-cache/lzo-${LZO_VERSION}.tar.gz + ( + cd
"lzo-${LZO_VERSION}" + + ./configure --host=${CHOST}
--program-prefix='' \ + --libdir=${PREFIX}/lib
--prefix=${PREFIX} --build=x86_64-pc-linux-gnu + make
all install + ) + echo "${LZO_VERSION}" >
"${PREFIX}/.lzo-version" + fi +} + +download_pkcs11_helper () {
+ if [ ! -f "pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2" ];
then + wget -P download-cache/ \ +
"http://downloads.sourceforge.net/project/opensc/pkcs11-helper/pkcs11-

helper-${PKCS11_HELPER_VERSION}.tar.bz2"

Quoted 2 lines

+ fi

Quoted 50 lines

+} + +build_pkcs11_helper () { + if [ "$(cat
${PREFIX}/.pkcs11_helper-version)" != "${PKCS11_HELPER_VERSION}" ];
then + tar jxf
download-cache/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2 +
( + cd "pkcs11-helper-${PKCS11_HELPER_VERSION}" + +
./configure --host=${CHOST} --program-prefix=''
--libdir=${PREFIX}/lib \ + --prefix=${PREFIX}
--build=x86_64-pc-linux-gnu --disable-crypto-engine-gnutls
--disable-crypto-engine-nss + make all install +
) + echo "${PKCS11_HELPER_VERSION}" >
"${PREFIX}/.pkcs11_helper-version" + fi +} + download_mbedtls ()
{ if [ ! -f "download-cache/mbedtls-${MBEDTLS_VERSION}-apache.tgz" ]; then wget -P download-cache/ \ @@ -31,7 +80,6 @@ download_openssl () { }

build_openssl_linux () { - tar zxf
"download-cache/openssl-${OPENSSL_VERSION}.tar.gz" ( cd "openssl-${OPENSSL_VERSION}/" ./config shared --openssldir="${PREFIX}" -DPURIFY @@ -40,7 +88,6 @@ build_openssl_linux () { }

build_openssl_osx () { - tar zxf
"download-cache/openssl-${OPENSSL_VERSION}.tar.gz" ( cd "openssl-${OPENSSL_VERSION}/" ./Configure darwin64-x86_64-cc shared \ @@ -49,9 +96,28 @@ build_openssl_osx () { ) }

+build_openssl_mingw () { + ( + cd
"openssl-${OPENSSL_VERSION}/" + + if [ "${CHOST}" =
"i686-w64-mingw32" ]; then + export TARGET=mingw +
elif [ "${CHOST}" = "x86_64-w64-mingw32" ]; then +
export TARGET=mingw64 + fi + + ./Configure
--cross-compile-prefix=${CHOST}- shared \ + ${TARGET}
no-multilib no-capieng --openssldir="${PREFIX}" -static-libgcc +
make install + ) +} + build_openssl () { if [ "$(cat
${PREFIX}/.openssl-version)" != "${OPENSSL_VERSION}" ]; then -
if [ "${TRAVIS_OS_NAME}" = "osx" ]; then + tar zxf
"download-cache/openssl-${OPENSSL_VERSION}.tar.gz" + if [ !
-z "${CHOST}" ]; then + build_openssl_mingw +
elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then build_openssl_osx elif [ "${TRAVIS_OS_NAME}" = "linux" ]; then build_openssl_linux @@ -61,16 +127,26 @@ build_openssl () { }

# Enable ccache -if [ "${TRAVIS_OS_NAME}" != "osx" ]; then +if [ "${TRAVIS_OS_NAME}" != "osx" ] && [ -z "${CHOST}" ]; then # ccache not available on osx, see: #
https://github.com/travis-ci/travis-ci/issues/5567 + # also
ccache not enabled for cross builds mkdir -p "${HOME}/bin" ln -s "$(which ccache)" "${HOME}/bin/${CC}" PATH="${HOME}/bin:${PATH}" fi

Quoted 17 lines

+if [ ! -z "${CHOST}" ]; then + # + # openvpn requires at
least mingw-gcc-4.9, which is available at xenial repo + # +
echo "deb http://archive.ubuntu.com/ubuntu xenial main universe" |
sudo tee -a /etc/apt/sources.list.d/xenial.list + echo "deb
http://archive.ubuntu.com/ubuntu xenial main" | sudo tee -a
/etc/apt/sources.list.d/xenial.list + sudo apt-get update +
sudo apt-get -y install dpkg mingw-w64 +fi + # Download and build crypto lib -mkdir -p download-cache if [ "${SSLLIB}" = "openssl" ]; then download_openssl build_openssl @@ -81,3 +157,16 @@ else echo "Invalid crypto lib: ${SSLLIB}" exit 1 fi + +# Download and build dependencies for mingw cross build +# dependencies are the same as in regular windows installer build +if [ ! -z "${CHOST}" ]; then +
download_tap_windows + unzip
download-cache/tap-windows-${TAP_WINDOWS_VERSION}.zip + +
download_lzo + build_lzo + + download_pkcs11_helper +
build_pkcs11_helper +fi

Hi,

Looks much better than the previous patch, thanks! I believe all the issues identified in the previous patch version[1] have been resolved, namely:

- - Build/download code is now split into clean functions
- - Variables are now referenced using a consistent style

Travis seems to be happy with the changes also[2].

The only minor complaint is trailing whitespace on two lines:

$ git am <patch>
Applying: travis-ci: add 2 mingw "build only" configurations
/home/samuli/opt/openvpn/.git/rebase-apply/patch:169: trailing whitespac
e.
        if [ "${CHOST}" = "i686-w64-mingw32" ]; then
/home/samuli/opt/openvpn/.git/rebase-apply/patch:177: trailing whitespac
e.
        make install
warning: 2 lines add whitespace errors.

ACK on the condition that trailing whitespace is fixed. That can be easily done at commit time by the repository maintainer, if he's willing .

- --
Samuli Seppänen
Community Manager
OpenVPN Technologies, Inc

irc freenode net: mattock

[1]
<https://www.mail-archive.com/[email protected]/msg143
06.html>
[2] <https://travis-ci.org/chipitsine/openvpn/builds/225505133>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCAAGBQJY/y8tAAoJEClYTZ9AhkV4dJkH/1x1Fy5QRGpa6K2GRkAgQvUN 8J4H4CFg1e4xVO2hW5x1RFmsRyqFcMArxpekTwOdgKEJ+QZufhOXXE+bkkEbiytQ MHWLTlWu15pA3zKaMlzoErQBIJjgP0LXaBp47mu9jVSLWYkA5ae8XoHzBsVc8kno XyG2s+Dk9GzFRrpIpqwiharCqY/3E3+7+sEXOUbZ226mmktVIStcxeukbZyBakc+ oSLz4I3gwVfE3bTv14vJg0aONpdOK3d2SETIO/Gs+OxdJ6ntsLNkKdeVqYwgvq2Q S1ZL7M2QPLDGwdqLbxkegSKJ3JOoBhTxYAlE2o/teM9teucgFCfnaZYJz8u/NtY= =FJlW
-----END PGP SIGNATURE-----

#2 lore raw
In reply to Ilya Shipitsin

Hi,

Quoted 9 lines · Ilya Shipitsin

Inspired by https://www.mail-archive.com/[email protected]/msg13032.html
build options are taken from regular windows installer builds

---
v2: moved download/build dependencies into functions, changed cross build detection from shell expansion ${CHOST+x} to more recognised -z "${CHOST}", which required changing 'set -eux' to 'set -ex'. Added comments to make code readable without looking into commit message.

Thanks, this looks much better now! Just one nit: if we give $CHOST a default value, we don't have to remove set -u:

.travis/build-deps.sh line 5

Quoted 9 lines
.travis/build-deps.sh +1 -1
@@ -1,9 +1,58 @@
 #!/bin/sh
-set -eux
+set -ex
 
 # Set defaults
 PREFIX="${PREFIX:-${HOME}/opt}"

Just add a CHOST="${CHOST:-}" line here. Keeping -u will help us catch future problems (typos in variable names, for example).

Samuli already verified that this does what it should, so once we can get -u back I too agree that this patch is ready to be applied.

Thanks for improving the patch and not giving up :)

-Steffan

#3 lore raw

2017-04-25 22:49 GMT+05:00 Steffan Karger <[email protected]...>:

Quoted 11 lines

Hi,

Quoted 1 line · Ilya Shipitsin

Inspired by https://www.mail-archive.com/[email protected]...

sourceforge.net/msg13032.html

Quoted 6 lines

build options are taken from regular windows installer builds

---
v2: moved download/build dependencies into functions, changed cross build detection from shell expansion ${CHOST+x} to more recognised -z

Quoted 7 lines

"${CHOST}",

Quoted 2 lines

which required changing 'set -eux' to 'set -ex'. Added comments to make code readable without looking into commit message.

Thanks, this looks much better now! Just one nit: if we give $CHOST a default value, we don't have to remove set -u:

defining CHOST when we actually do not need it does not make any sense. I can keep "set -u" and use shell variable expansion trick

http://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash

Quoted 8 lines
Quoted 8 lines
.travis/build-deps.sh +1 -1
@@ -1,9 +1,58 @@
 #!/bin/sh
-set -eux
+set -ex
 
Quoted 6 lines

.travis/build-deps.sh line 5

Quoted 2 lines
.travis/build-deps.sh +0 -0
 # Set defaults
 PREFIX="${PREFIX:-${HOME}/opt}"

Just add a CHOST="${CHOST:-}" line here. Keeping -u will help us catch future problems (typos in variable names, for example).

we already had problems with such complicated definition

https://github.com/OpenVPN/openvpn/commit/368991264d82f038bde30a67910ac6c7681a4ba9#diff-ff51f64442ce689bd8d8466e365dd600R6

those errors are not easy to catch, so I would avoid defining variables in such way.

I think, we need to remove PREFIX definition as well.

Quoted 17 lines

Samuli already verified that this does what it should, so once we can get -u back I too agree that this patch is ready to be applied.

Thanks for improving the patch and not giving up :)

-Steffan

------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openvpn-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

#4 lore raw

Hi,

Quoted 15 lines · Илья Шипицин

2017-04-25 22:49 GMT+05:00 Steffan Karger <[email protected]... <mailto:[email protected]...>>:

On 25-04-17 09:50, Ilya Shipitsin wrote:
> Inspired by https://www.mail-archive.com/[email protected]/msg13032.html
<https://www.mail-archive.com/[email protected]/msg13032.html>
> build options are taken from regular windows installer builds
>
> Signed-off-by: Ilya Shipitsin <[email protected]... <mailto:[email protected]...>> > ---
> v2: moved download/build dependencies into functions, changed cross build > detection from shell expansion ${CHOST+x} to more recognised -z "${CHOST}", > which required changing 'set -eux' to 'set -ex'. Added comments to make
> code readable without looking into commit message.

Quoted 7 lines

Thanks, this looks much better now! Just one nit: if we give $CHOST a default value, we don't have to remove set -u:

defining CHOST when we actually do not need it does not make any sense. I can keep "set -u" and use shell variable expansion trick

http://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash

Yeah, shell scripting can be a bit cumbersome... Both options are hacks, and I do not have a clear preference. As long as we can have "set -u" :-)

Quoted 13 lines

.travis/build-deps.sh line 5

Quoted 9 lines
.travis/build-deps.sh +1 -1
@@ -1,9 +1,58 @@
 #!/bin/sh
-set -eux
+set -ex
 
 # Set defaults
 PREFIX="${PREFIX:-${HOME}/opt}"

Just add a CHOST="${CHOST:-}" line here. Keeping -u will help us catch future problems (typos in variable names, for example).

Quoted 8 lines

we already had problems with such complicated definition

https://github.com/OpenVPN/openvpn/commit/368991264d82f038bde30a67910ac6c7681a4ba9#diff-ff51f64442ce689bd8d8466e365dd600R6

those errors are not easy to catch, so I would avoid defining variables in such way.

I think, we need to remove PREFIX definition as well.

Ok, let's do that. (But as a separate patch, as it does not have anything to do with windows builds.)

-Steffan

#5 lore raw
In reply to Ilya Shipitsin
Quoted 6 lines · Ilya Shipitsin

Inspired by https://www.mail-archive.com/[email protected]/msg13032.html
build options are taken from regular windows installer builds

---
v2: moved download/build dependencies into functions, changed cross build

[....]

.travis/build-deps.sh build_openssl () { · line 144

Quoted 6 lines
.travis/build-deps.sh +6 -0
+if [ ! -z "${CHOST}" ]; then
+      #
+      # openvpn requires at least mingw-gcc-4.9, which is available at xenial repo
+      #
+      echo "deb http://archive.ubuntu.com/ubuntu xenial main universe" | sudo tee -a /etc/apt/sources.list.d/xenial.list
+      echo "deb http://archive.ubuntu.com/ubuntu xenial main" | sudo tee -a /etc/apt/sources.list.d/xenial.list

I haven't been following all the history of this discussion on the list, but skimming this most recent version of the patch I noticed that the above-quoted code adds two separate "deb" lines to xenial.list, both of which include "main". Presumably that won't actually cause any problems, but it seemed unlikely to have been intentional....

(I am not familiar with travis, but I take it this code is run in a context where there's no need to make sure that the "xenial" lines aren't added repeatedly by multiple runs of this script?)

Nathan

----------------------------------------------------------------------------
Nathan Stratton Treadway - [email protected]... - Mid-Atlantic region
Ray Ontko & Co. - Software consulting services - http://www.ontko.com/
GPG Key: http://www.ontko.com/~nathanst/gpg_key.txt ID: 1023D/ECFB6239
Key fingerprint = 6AD8 485E 20B9 5C71 231C 0C32 15F3 ADCD ECFB 6239

#6 lore raw

2017-04-26 1:34 GMT+05:00 Nathan Stratton Treadway <[email protected]...>:

Quoted 26 lines · Ilya Shipitsin
Quoted 1 line

Inspired by https://www.mail-archive.com/[email protected]...

sourceforge.net/msg13032.html

Quoted 5 lines

build options are taken from regular windows installer builds

---
v2: moved download/build dependencies into functions, changed cross build

[....]

.travis/build-deps.sh build_openssl () {

Quoted 3 lines
.travis/build-deps.sh +3 -0
+if [ ! -z "${CHOST}" ]; then
+      #
+      # openvpn requires at least mingw-gcc-4.9, which is available at

xenial repo

Review

Quoted 2 lines
(quoted diff) +2 -0
+      #
+      echo "deb http://archive.ubuntu.com/ubuntu xenial main universe"

| sudo tee -a /etc/apt/sources.list.d/xenial.list

Quoted 1 line

+ echo "deb http://archive.ubuntu.com/ubuntu xenial main" | sudo

tee -a /etc/apt/sources.list.d/xenial.list

I haven't been following all the history of this discussion on the list, but skimming this most recent version of the patch I noticed that the above-quoted code adds two separate "deb" lines to xenial.list, both of which include "main". Presumably that won't actually cause any problems, but it seemed unlikely to have been intentional....

Quoted 4 lines

(I am not familiar with travis, but I take it this code is run in a context where there's no need to make sure that the "xenial" lines aren't added repeatedly by multiple runs of this script?)

nice catch.

while it does not matter for travis-ci (because vm is created from scratch on every build), we should keep build scripts reusable for any build environment.

I'll fix that

Quoted 20 lines

Nathan

------------------------------------------------------------
----------------
Nathan Stratton Treadway - [email protected]... - Mid-Atlantic region Ray Ontko & Co. - Software consulting services -
http://www.ontko.com/
GPG Key: http://www.ontko.com/~nathanst/gpg_key.txt ID: 1023D/ECFB6239
Key fingerprint = 6AD8 485E 20B9 5C71 231C 0C32 15F3 ADCD ECFB 6239

------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openvpn-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel