This also updates the host system to ubuntu 22.04 and remove the ovpn-dco-win
checkout as we now include the required headers in our own repository.

Signed-off-by: Arne Schwabe <a...@rfc2549.org>

Patch v2: rebase

Signed-off-by: Arne Schwabe <a...@rfc2549.org>
---
 .github/workflows/build.yaml | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index f182a4fe4..f34f6a266 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -39,23 +39,22 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
+        osslver: [1.1.1q, 3.0.5]
+        target: [mingw64, mingw]
         include:
           - target: mingw64
             chost: x86_64-w64-mingw32
           - target: mingw
             chost: i686-w64-mingw32
 
-    name: "gcc-mingw - ${{matrix.target}}"
-
-    runs-on: ubuntu-20.04
+    name: "gcc-mingw - ${{matrix.target}} - OSSL ${{ matrix.osslver }}"
+    runs-on: ubuntu-22.04
     env:
       MAKEFLAGS: -j3
       LZO_VERSION: "2.10"
       PKCS11_HELPER_VERSION: "1.29.0"
-      OPENSSL_VERSION: "1.1.1n"
+      OPENSSL_VERSION: "${{ matrix.osslver }}"
       TAP_WINDOWS_VERSION: "9.23.3"
-      CHOST: ${{ matrix.chost }}
-      TARGET: ${{ matrix.target }}
     steps:
       - name: Install dependencies
         run: sudo apt update && sudo apt install -y mingw-w64 libtool automake 
autoconf man2html unzip
@@ -73,7 +72,7 @@ jobs:
         uses: actions/cache@v3
         with:
           path: '~/mingw/'
-          key: ${{ matrix.target }}-mingw-${{ env.OPENSSL_VERSION }}-${{ 
env.LZO_VERSION }}-${{ env.PKCS11_HELPER_VERSION }}-${{ env.TAP_WINDOWS_VERSION 
}}
+          key: ${{ matrix.target }}-mingw-${{ matrix.osslver }}-${{ 
env.LZO_VERSION }}-${{ env.PKCS11_HELPER_VERSION }}-${{ env.TAP_WINDOWS_VERSION 
}}
 
       # Repeating  if: steps.cache.outputs.cache-hit != 'true'
       # on every step for building dependencies is ugly but
@@ -85,15 +84,15 @@ jobs:
           wget -c -P download-cache/ 
"https://build.openvpn.net/downloads/releases/tap-windows-${TAP_WINDOWS_VERSION}.zip";
           wget -c -P download-cache/ 
"https://www.oberhumer.com/opensource/lzo/download/lzo-${LZO_VERSION}.tar.gz";
           wget -c -P download-cache/ 
"https://github.com/OpenSC/pkcs11-helper/releases/download/pkcs11-helper-${PKCS11_HELPER_VERSION}/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2";
-          wget -c -P download-cache/ 
"https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz";
           tar jxf 
"download-cache/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2"
+          wget -c -P download-cache/ 
"https://www.openssl.org/source/old/1.1.1/openssl-${OPENSSL_VERSION}.tar.gz"; || 
wget -c -P download-cache/ 
"https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz";
           tar zxf "download-cache/openssl-${OPENSSL_VERSION}.tar.gz"
           tar zxf "download-cache/lzo-${LZO_VERSION}.tar.gz"
           unzip download-cache/tap-windows-${TAP_WINDOWS_VERSION}.zip
 
       - name: Configure OpenSSL
         if: steps.cache.outputs.cache-hit != 'true'
-        run: ./Configure --cross-compile-prefix=${CHOST}- shared ${{ 
matrix.target }} no-capieng --prefix="${HOME}/mingw/opt" 
--openssldir="${HOME}/mingw/opt" -static-libgcc
+        run: ./Configure --cross-compile-prefix=${{ matrix.chost }}- shared 
${{ matrix.target }} no-capieng --prefix="${HOME}/mingw/opt" 
--openssldir="${HOME}/mingw/opt" -static-libgcc
         working-directory: "./openssl-${{ env.OPENSSL_VERSION }}"
 
       - name: Build OpenSSL
@@ -101,6 +100,9 @@ jobs:
         run: make
         working-directory: "./openssl-${{ env.OPENSSL_VERSION }}"
 
+      # OpenSSL 3.0.5 installs itself into mingw/opt/lib64 instead of
+      # mingw/opt/lib, so we include both dirs in the following steps
+      # (pkcs11-helper and OpenVPN) so the libraries will be found
       - name: Install OpenSSL
         if: steps.cache.outputs.cache-hit != 'true'
         run: make install
@@ -113,7 +115,7 @@ jobs:
 
       - name: configure pkcs11-helper
         if: steps.cache.outputs.cache-hit != 'true'
-        run: OPENSSL_LIBS="-L${HOME}/mingw/opt/lib -lssl -lcrypto" 
OPENSSL_CFLAGS=-I$HOME/mingw/opt/include 
PKG_CONFIG_PATH=${HOME}/mingw/opt/lib/pkgconfig ./configure --host=${CHOST} 
--program-prefix='' --libdir=${HOME}/mingw/opt/lib --prefix=${HOME}/mingw/opt 
--build=x86_64-pc-linux-gnu --disable-crypto-engine-gnutls 
--disable-crypto-engine-nss --disable-crypto-engine-polarssl 
--disable-crypto-engine-mbedtls
+        run: OPENSSL_LIBS="-L${HOME}/mingw/opt/lib -L${HOME}/mingw/opt/lib64 
-lssl -lcrypto" OPENSSL_CFLAGS=-I$HOME/mingw/opt/include 
PKG_CONFIG_PATH=${HOME}/mingw/opt/lib/pkgconfig ./configure --host=${{ 
matrix.chost }} --program-prefix='' --libdir=${HOME}/mingw/opt/lib 
--prefix=${HOME}/mingw/opt --build=x86_64-pc-linux-gnu 
--disable-crypto-engine-gnutls --disable-crypto-engine-nss 
--disable-crypto-engine-polarssl --disable-crypto-engine-mbedtls
         working-directory: "./pkcs11-helper-${{ env.PKCS11_HELPER_VERSION }}"
 
       - name: build pkcs11-helper
@@ -128,7 +130,7 @@ jobs:
 
       - name: Configure lzo
         if: steps.cache.outputs.cache-hit != 'true'
-        run: ./configure --host=${CHOST} --program-prefix='' 
--libdir=${HOME}/mingw/opt/lib --prefix=${HOME}/mingw/opt 
--build=x86_64-pc-linux-gnu
+        run: ./configure --host=${{ matrix.chost }} --program-prefix='' 
--libdir=${HOME}/mingw/opt/lib --prefix=${HOME}/mingw/opt 
--build=x86_64-pc-linux-gnu
         working-directory: "./lzo-${{ env.LZO_VERSION }}"
 
       - name: build lzo
@@ -146,7 +148,7 @@ jobs:
         run: cp ./tap-windows-${TAP_WINDOWS_VERSION}/include/tap-windows.h 
${HOME}/mingw/opt/include/
 
       - name: configure OpenVPN
-        run: PKG_CONFIG_PATH=${HOME}/mingw/opt/lib/pkgconfig 
LDFLAGS=-L$HOME/mingw/opt/lib CFLAGS=-I$HOME/mingw/opt/include 
OPENSSL_LIBS="-L${HOME}/opt/lib -lssl -lcrypto" 
OPENSSL_CFLAGS=-I$HOME/mingw/opt/include PREFIX=$HOME/mingw/opt 
LZO_CFLAGS=-I$HOME/mingw/opt/include LZO_LIBS="-L${HOME}/mingw/opt/lib -llzo2" 
./configure  --host=${CHOST} --disable-lz4
+        run: PKG_CONFIG_PATH=${HOME}/mingw/opt/lib/pkgconfig 
LDFLAGS=-L$HOME/mingw/opt/lib CFLAGS=-I$HOME/mingw/opt/include 
OPENSSL_LIBS="-L${HOME}/opt/lib -L$HOME/mingw/opt/lib64 -lssl -lcrypto" 
OPENSSL_CFLAGS=-I$HOME/mingw/opt/include PREFIX=$HOME/mingw/opt 
LZO_CFLAGS=-I$HOME/mingw/opt/include LZO_LIBS="-L${HOME}/mingw/opt/lib -llzo2" 
./configure  --host=${{ matrix.chost }} --disable-lz4
         working-directory: openvpn
 
       - name: build OpenVPN
-- 
2.32.1 (Apple Git-133)



_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to