[Openvpn-devel] fix GitHub workflow working directories in MinGW builds

Message ID 20220424192510.75385-1-becm@gmx.de
State Superseded
Headers show
Series [Openvpn-devel] fix GitHub workflow working directories in MinGW builds | expand

Commit Message

Marc Becker April 24, 2022, 9:25 a.m. UTC
replace hardcoded directory names with env variable version info
bump pkcs11-helper version to 1.29.0
bump OpenSSL version to 1.1.1n
add OpenSSL version to cache key
use release file for pkcs11-helper archive
use OpenSSL URL endpoint with all/current versions

Signed-off-by: Marc Becker <becm@gmx.de>
---
 .github/workflows/build.yaml | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

--
2.30.2

Comments

Илья Шипицин April 24, 2022, 9:41 a.m. UTC | #1
I recall that link "
https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" becomes
broken as soon as new version is released.
that is the way how openssl warns you to update.

"old" links are immutable.

пн, 25 апр. 2022 г. в 00:27, Marc Becker <becm@gmx.de>:

> replace hardcoded directory names with env variable version info
> bump pkcs11-helper version to 1.29.0
> bump OpenSSL version to 1.1.1n
> add OpenSSL version to cache key
> use release file for pkcs11-helper archive
> use OpenSSL URL endpoint with all/current versions
>
> Signed-off-by: Marc Becker <becm@gmx.de>
> ---
>  .github/workflows/build.yaml | 36 ++++++++++++++++++------------------
>  1 file changed, 18 insertions(+), 18 deletions(-)
>
> diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
> index fa99e12b..34a9d9b9 100644
> --- a/.github/workflows/build.yaml
> +++ b/.github/workflows/build.yaml
> @@ -19,8 +19,8 @@ jobs:
>      env:
>        MAKEFLAGS: -j3
>        LZO_VERSION: "2.10"
> -      PKCS11_HELPER_VERSION: "1.26"
> -      OPENSSL_VERSION: "1.1.1j"
> +      PKCS11_HELPER_VERSION: "1.29.0"
> +      OPENSSL_VERSION: "1.1.1n"
>        TAP_WINDOWS_VERSION: "9.23.3"
>        CHOST: ${{ matrix.chost }}
>        TARGET: ${{ matrix.target }}
> @@ -46,20 +46,20 @@ jobs:
>          uses: actions/cache@v2
>          with:
>            path: '~/mingw/'
> -          key: ${{ matrix.target }}-mingw-${{ env.LZO_VERSION }}-${{
> env.PKCS11_HELPER_VERSION }}-${{ env.TAP_WINDOWS_VERSION }}
> +          key: ${{ matrix.target }}-mingw-${{ env.OPENSSL_VERSION }}-${{
> 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
>        # I haven't found a better solution so far.
>
> -      - name: Download mingw depnendencies
> +      - name: Download mingw dependencies
>          if: steps.cache.outputs.cache-hit != 'true'
>          run: |
>            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/archive/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.gz
> "
> -          wget -c -P download-cache/ "
> https://www.openssl.org/source/old/1.1.1/openssl-${OPENSSL_VERSION}.tar.gz
> "
> -          tar zxf
> "download-cache/pkcs11-helper-${PKCS11_HELPER_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"
>            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
> @@ -67,56 +67,56 @@ jobs:
>        - 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
> -        working-directory: "./openssl-1.1.1j"
> +        working-directory: "./openssl-${{ env.OPENSSL_VERSION }}"
>
>        - name: Build OpenSSL
>          if: steps.cache.outputs.cache-hit != 'true'
>          run: make
> -        working-directory: "./openssl-1.1.1j/"
> +        working-directory: "./openssl-${{ env.OPENSSL_VERSION }}"
>
>        - name: Install OpenSSL
>          if: steps.cache.outputs.cache-hit != 'true'
>          run: make install
> -        working-directory: "./openssl-1.1.1j/"
> +        working-directory: "./openssl-${{ env.OPENSSL_VERSION }}"
>
>        - name: autoreconf pkcs11-helper
>          if: steps.cache.outputs.cache-hit != 'true'
>          run: autoreconf -iv
> -        working-directory: "./pkcs11-helper-pkcs11-helper-1.26"
> +        working-directory: "./pkcs11-helper-${{ env.PKCS11_HELPER_VERSION
> }}"
>
>        - 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
> -        working-directory: "./pkcs11-helper-pkcs11-helper-1.26"
> +        working-directory: "./pkcs11-helper-${{ env.PKCS11_HELPER_VERSION
> }}"
>
>        - name: build pkcs11-helper
>          if: steps.cache.outputs.cache-hit != 'true'
>          run: make all
> -        working-directory: "./pkcs11-helper-pkcs11-helper-1.26"
> +        working-directory: "./pkcs11-helper-${{ env.PKCS11_HELPER_VERSION
> }}"
>
>        - name: install pkcs11-helper
>          if: steps.cache.outputs.cache-hit != 'true'
>          run: make install
> -        working-directory: "./pkcs11-helper-pkcs11-helper-1.26"
> +        working-directory: "./pkcs11-helper-${{ env.PKCS11_HELPER_VERSION
> }}"
>
>        - 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
> -        working-directory: "./lzo-2.10"
> +        working-directory: "./lzo-${{ env.LZO_VERSION }}"
>
>        - name: build lzo
>          if: steps.cache.outputs.cache-hit != 'true'
> -        working-directory: "./lzo-2.10"
> +        working-directory: "./lzo-${{ env.LZO_VERSION }}"
>          run: make
>
>        - name: install lzo
>          if: steps.cache.outputs.cache-hit != 'true'
> -        working-directory: "./lzo-2.10"
> +        working-directory: "./lzo-${{ env.LZO_VERSION }}"
>          run: make install
>
>        - name: copy tap-windows.h header
>          if: steps.cache.outputs.cache-hit != 'true'
> -        run: cp ./tap-windows-9.23.3/include/tap-windows.h
> ${HOME}/mingw/opt/include/
> +        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
> DCO_SOURCEDIR=$(realpath ../ovpn-dco-win) 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 --enable-dco
> --
> 2.30.2
>
>
>
> _______________________________________________
> Openvpn-devel mailing list
> Openvpn-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/openvpn-devel
>
<div dir="ltr"><div>I recall that link &quot;<a href="https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz">https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz</a>&quot; becomes broken as soon as new version is released.</div><div>that is the way how openssl warns you to update.</div><div><br></div><div>&quot;old&quot; links are immutable.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">пн, 25 апр. 2022 г. в 00:27, Marc Becker &lt;<a href="mailto:becm@gmx.de">becm@gmx.de</a>&gt;:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">replace hardcoded directory names with env variable version info<br>
bump pkcs11-helper version to 1.29.0<br>
bump OpenSSL version to 1.1.1n<br>
add OpenSSL version to cache key<br>
use release file for pkcs11-helper archive<br>
use OpenSSL URL endpoint with all/current versions<br>
<br>
Signed-off-by: Marc Becker &lt;<a href="mailto:becm@gmx.de" target="_blank">becm@gmx.de</a>&gt;<br>
---<br>
 .github/workflows/build.yaml | 36 ++++++++++++++++++------------------<br>
 1 file changed, 18 insertions(+), 18 deletions(-)<br>
<br>
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml<br>
index fa99e12b..34a9d9b9 100644<br>
--- a/.github/workflows/build.yaml<br>
+++ b/.github/workflows/build.yaml<br>
@@ -19,8 +19,8 @@ jobs:<br>
     env:<br>
       MAKEFLAGS: -j3<br>
       LZO_VERSION: &quot;2.10&quot;<br>
-      PKCS11_HELPER_VERSION: &quot;1.26&quot;<br>
-      OPENSSL_VERSION: &quot;1.1.1j&quot;<br>
+      PKCS11_HELPER_VERSION: &quot;1.29.0&quot;<br>
+      OPENSSL_VERSION: &quot;1.1.1n&quot;<br>
       TAP_WINDOWS_VERSION: &quot;9.23.3&quot;<br>
       CHOST: ${{ matrix.chost }}<br>
       TARGET: ${{ matrix.target }}<br>
@@ -46,20 +46,20 @@ jobs:<br>
         uses: actions/cache@v2<br>
         with:<br>
           path: &#39;~/mingw/&#39;<br>
-          key: ${{ matrix.target }}-mingw-${{ env.LZO_VERSION }}-${{ env.PKCS11_HELPER_VERSION }}-${{ env.TAP_WINDOWS_VERSION }}<br>
+          key: ${{ matrix.target }}-mingw-${{ env.OPENSSL_VERSION }}-${{ env.LZO_VERSION }}-${{ env.PKCS11_HELPER_VERSION }}-${{ env.TAP_WINDOWS_VERSION }}<br>
<br>
       # Repeating  if: steps.cache.outputs.cache-hit != &#39;true&#39;<br>
       # on every step for building dependencies is ugly but<br>
       # I haven&#39;t found a better solution so far.<br>
<br>
-      - name: Download mingw depnendencies<br>
+      - name: Download mingw dependencies<br>
         if: steps.cache.outputs.cache-hit != &#39;true&#39;<br>
         run: |<br>
           wget -c -P download-cache/ &quot;<a href="https://build.openvpn.net/downloads/releases/tap-windows-$%7BTAP_WINDOWS_VERSION%7D.zip" rel="noreferrer" target="_blank">https://build.openvpn.net/downloads/releases/tap-windows-${TAP_WINDOWS_VERSION}.zip</a>&quot;<br>
           wget -c -P download-cache/ &quot;<a href="https://www.oberhumer.com/opensource/lzo/download/lzo-$%7BLZO_VERSION%7D.tar.gz" rel="noreferrer" target="_blank">https://www.oberhumer.com/opensource/lzo/download/lzo-${LZO_VERSION}.tar.gz</a>&quot;<br>
-          wget -c -P download-cache/ &quot;<a href="https://github.com/OpenSC/pkcs11-helper/archive/pkcs11-helper-$%7BPKCS11_HELPER_VERSION%7D.tar.gz" rel="noreferrer" target="_blank">https://github.com/OpenSC/pkcs11-helper/archive/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.gz</a>&quot;<br>
-          wget -c -P download-cache/ &quot;<a href="https://www.openssl.org/source/old/1.1.1/openssl-$%7BOPENSSL_VERSION%7D.tar.gz" rel="noreferrer" target="_blank">https://www.openssl.org/source/old/1.1.1/openssl-${OPENSSL_VERSION}.tar.gz</a>&quot;<br>
-          tar zxf &quot;download-cache/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.gz&quot;<br>
+          wget -c -P download-cache/ &quot;<a href="https://github.com/OpenSC/pkcs11-helper/releases/download/pkcs11-helper-$%7BPKCS11_HELPER_VERSION%7D/pkcs11-helper-$%7BPKCS11_HELPER_VERSION%7D.tar.bz2" rel="noreferrer" target="_blank">https://github.com/OpenSC/pkcs11-helper/releases/download/pkcs11-helper-${PKCS11_HELPER_VERSION}/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2</a>&quot;<br>
+          wget -c -P download-cache/ &quot;<a href="https://www.openssl.org/source/openssl-$%7BOPENSSL_VERSION%7D.tar.gz" rel="noreferrer" target="_blank">https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz</a>&quot;<br>
+          tar jxf &quot;download-cache/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2&quot;<br>
           tar zxf &quot;download-cache/openssl-${OPENSSL_VERSION}.tar.gz&quot;<br>
           tar zxf &quot;download-cache/lzo-${LZO_VERSION}.tar.gz&quot;<br>
           unzip download-cache/tap-windows-${TAP_WINDOWS_VERSION}.zip<br>
@@ -67,56 +67,56 @@ jobs:<br>
       - name: Configure OpenSSL<br>
         if: steps.cache.outputs.cache-hit != &#39;true&#39;<br>
         run: ./Configure --cross-compile-prefix=${CHOST}- shared ${{ matrix.target }} no-capieng --prefix=&quot;${HOME}/mingw/opt&quot; --openssldir=&quot;${HOME}/mingw/opt&quot; -static-libgcc<br>
-        working-directory: &quot;./openssl-1.1.1j&quot;<br>
+        working-directory: &quot;./openssl-${{ env.OPENSSL_VERSION }}&quot;<br>
<br>
       - name: Build OpenSSL<br>
         if: steps.cache.outputs.cache-hit != &#39;true&#39;<br>
         run: make<br>
-        working-directory: &quot;./openssl-1.1.1j/&quot;<br>
+        working-directory: &quot;./openssl-${{ env.OPENSSL_VERSION }}&quot;<br>
<br>
       - name: Install OpenSSL<br>
         if: steps.cache.outputs.cache-hit != &#39;true&#39;<br>
         run: make install<br>
-        working-directory: &quot;./openssl-1.1.1j/&quot;<br>
+        working-directory: &quot;./openssl-${{ env.OPENSSL_VERSION }}&quot;<br>
<br>
       - name: autoreconf pkcs11-helper<br>
         if: steps.cache.outputs.cache-hit != &#39;true&#39;<br>
         run: autoreconf -iv<br>
-        working-directory: &quot;./pkcs11-helper-pkcs11-helper-1.26&quot;<br>
+        working-directory: &quot;./pkcs11-helper-${{ env.PKCS11_HELPER_VERSION }}&quot;<br>
<br>
       - name: configure pkcs11-helper<br>
         if: steps.cache.outputs.cache-hit != &#39;true&#39;<br>
         run: OPENSSL_LIBS=&quot;-L${HOME}/mingw/opt/lib -lssl -lcrypto&quot; OPENSSL_CFLAGS=-I$HOME/mingw/opt/include PKG_CONFIG_PATH=${HOME}/mingw/opt/lib/pkgconfig ./configure --host=${CHOST} --program-prefix=&#39;&#39; --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<br>
-        working-directory: &quot;./pkcs11-helper-pkcs11-helper-1.26&quot;<br>
+        working-directory: &quot;./pkcs11-helper-${{ env.PKCS11_HELPER_VERSION }}&quot;<br>
<br>
       - name: build pkcs11-helper<br>
         if: steps.cache.outputs.cache-hit != &#39;true&#39;<br>
         run: make all<br>
-        working-directory: &quot;./pkcs11-helper-pkcs11-helper-1.26&quot;<br>
+        working-directory: &quot;./pkcs11-helper-${{ env.PKCS11_HELPER_VERSION }}&quot;<br>
<br>
       - name: install pkcs11-helper<br>
         if: steps.cache.outputs.cache-hit != &#39;true&#39;<br>
         run: make install<br>
-        working-directory: &quot;./pkcs11-helper-pkcs11-helper-1.26&quot;<br>
+        working-directory: &quot;./pkcs11-helper-${{ env.PKCS11_HELPER_VERSION }}&quot;<br>
<br>
       - name: Configure lzo<br>
         if: steps.cache.outputs.cache-hit != &#39;true&#39;<br>
         run: ./configure --host=${CHOST} --program-prefix=&#39;&#39; --libdir=${HOME}/mingw/opt/lib --prefix=${HOME}/mingw/opt --build=x86_64-pc-linux-gnu<br>
-        working-directory: &quot;./lzo-2.10&quot;<br>
+        working-directory: &quot;./lzo-${{ env.LZO_VERSION }}&quot;<br>
<br>
       - name: build lzo<br>
         if: steps.cache.outputs.cache-hit != &#39;true&#39;<br>
-        working-directory: &quot;./lzo-2.10&quot;<br>
+        working-directory: &quot;./lzo-${{ env.LZO_VERSION }}&quot;<br>
         run: make<br>
<br>
       - name: install lzo<br>
         if: steps.cache.outputs.cache-hit != &#39;true&#39;<br>
-        working-directory: &quot;./lzo-2.10&quot;<br>
+        working-directory: &quot;./lzo-${{ env.LZO_VERSION }}&quot;<br>
         run: make install<br>
<br>
       - name: copy tap-windows.h header<br>
         if: steps.cache.outputs.cache-hit != &#39;true&#39;<br>
-        run: cp ./tap-windows-9.23.3/include/tap-windows.h ${HOME}/mingw/opt/include/<br>
+        run: cp ./tap-windows-${TAP_WINDOWS_VERSION}/include/tap-windows.h ${HOME}/mingw/opt/include/<br>
<br>
       - name: configure OpenVPN<br>
         run: PKG_CONFIG_PATH=${HOME}/mingw/opt/lib/pkgconfig DCO_SOURCEDIR=$(realpath ../ovpn-dco-win) LDFLAGS=-L$HOME/mingw/opt/lib CFLAGS=-I$HOME/mingw/opt/include OPENSSL_LIBS=&quot;-L${HOME}/opt/lib -lssl -lcrypto&quot; OPENSSL_CFLAGS=-I$HOME/mingw/opt/include PREFIX=$HOME/mingw/opt LZO_CFLAGS=-I$HOME/mingw/opt/include LZO_LIBS=&quot;-L${HOME}/mingw/opt/lib -llzo2&quot; ./configure  --host=${CHOST} --disable-lz4 --enable-dco<br>
--<br>
2.30.2<br>
<br>
<br>
<br>
_______________________________________________<br>
Openvpn-devel mailing list<br>
<a href="mailto:Openvpn-devel@lists.sourceforge.net" target="_blank">Openvpn-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/openvpn-devel" rel="noreferrer" target="_blank">https://lists.sourceforge.net/lists/listinfo/openvpn-devel</a><br>
</blockquote></div>
Marc Becker April 24, 2022, 10:32 a.m. UTC | #2
<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>
<div>&gt;&quot;old&quot; links are immutable.</div>

<div>&nbsp;</div>
The &quot;old&quot; links also do not provide the latest versions (currently&nbsp;1.1.1n &amp; 3.0.2).</div>

<div>&nbsp;</div>

<div>While the mirrors do follow the logic of having only the latest version on top level,</div>

<div>it seams on the main site all versions can be fetched via this pattern (tested).</div>

<div>&nbsp;</div>

<div>This way building a matrix with [ 1.0.2, 1.1.1n, 3.0.2 ] should also be possible with little effort.</div>

<div>&nbsp;</div>

<div>It also does not require version&rarr;subpath magic for pre-3.0 versions (when OpenSSL introduced sane versioning).</div></div></body></html>

Patch

diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index fa99e12b..34a9d9b9 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -19,8 +19,8 @@  jobs:
     env:
       MAKEFLAGS: -j3
       LZO_VERSION: "2.10"
-      PKCS11_HELPER_VERSION: "1.26"
-      OPENSSL_VERSION: "1.1.1j"
+      PKCS11_HELPER_VERSION: "1.29.0"
+      OPENSSL_VERSION: "1.1.1n"
       TAP_WINDOWS_VERSION: "9.23.3"
       CHOST: ${{ matrix.chost }}
       TARGET: ${{ matrix.target }}
@@ -46,20 +46,20 @@  jobs:
         uses: actions/cache@v2
         with:
           path: '~/mingw/'
-          key: ${{ matrix.target }}-mingw-${{ env.LZO_VERSION }}-${{ env.PKCS11_HELPER_VERSION }}-${{ env.TAP_WINDOWS_VERSION }}
+          key: ${{ matrix.target }}-mingw-${{ env.OPENSSL_VERSION }}-${{ 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
       # I haven't found a better solution so far.

-      - name: Download mingw depnendencies
+      - name: Download mingw dependencies
         if: steps.cache.outputs.cache-hit != 'true'
         run: |
           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/archive/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.gz"
-          wget -c -P download-cache/ "https://www.openssl.org/source/old/1.1.1/openssl-${OPENSSL_VERSION}.tar.gz"
-          tar zxf "download-cache/pkcs11-helper-${PKCS11_HELPER_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"
           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
@@ -67,56 +67,56 @@  jobs:
       - 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
-        working-directory: "./openssl-1.1.1j"
+        working-directory: "./openssl-${{ env.OPENSSL_VERSION }}"

       - name: Build OpenSSL
         if: steps.cache.outputs.cache-hit != 'true'
         run: make
-        working-directory: "./openssl-1.1.1j/"
+        working-directory: "./openssl-${{ env.OPENSSL_VERSION }}"

       - name: Install OpenSSL
         if: steps.cache.outputs.cache-hit != 'true'
         run: make install
-        working-directory: "./openssl-1.1.1j/"
+        working-directory: "./openssl-${{ env.OPENSSL_VERSION }}"

       - name: autoreconf pkcs11-helper
         if: steps.cache.outputs.cache-hit != 'true'
         run: autoreconf -iv
-        working-directory: "./pkcs11-helper-pkcs11-helper-1.26"
+        working-directory: "./pkcs11-helper-${{ env.PKCS11_HELPER_VERSION }}"

       - 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
-        working-directory: "./pkcs11-helper-pkcs11-helper-1.26"
+        working-directory: "./pkcs11-helper-${{ env.PKCS11_HELPER_VERSION }}"

       - name: build pkcs11-helper
         if: steps.cache.outputs.cache-hit != 'true'
         run: make all
-        working-directory: "./pkcs11-helper-pkcs11-helper-1.26"
+        working-directory: "./pkcs11-helper-${{ env.PKCS11_HELPER_VERSION }}"

       - name: install pkcs11-helper
         if: steps.cache.outputs.cache-hit != 'true'
         run: make install
-        working-directory: "./pkcs11-helper-pkcs11-helper-1.26"
+        working-directory: "./pkcs11-helper-${{ env.PKCS11_HELPER_VERSION }}"

       - 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
-        working-directory: "./lzo-2.10"
+        working-directory: "./lzo-${{ env.LZO_VERSION }}"

       - name: build lzo
         if: steps.cache.outputs.cache-hit != 'true'
-        working-directory: "./lzo-2.10"
+        working-directory: "./lzo-${{ env.LZO_VERSION }}"
         run: make

       - name: install lzo
         if: steps.cache.outputs.cache-hit != 'true'
-        working-directory: "./lzo-2.10"
+        working-directory: "./lzo-${{ env.LZO_VERSION }}"
         run: make install

       - name: copy tap-windows.h header
         if: steps.cache.outputs.cache-hit != 'true'
-        run: cp ./tap-windows-9.23.3/include/tap-windows.h ${HOME}/mingw/opt/include/
+        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 DCO_SOURCEDIR=$(realpath ../ovpn-dco-win) 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 --enable-dco