mirror of
https://github.com/OpenVPN/openvpn.git
synced 2026-05-28 04:03:29 -04:00
GHA: Factor out building SSL libs to a reusable workflow
Some checks are pending
Build / Check code style with clang-format (push) Waiting to run
Build / Android - arm64-v8a (push) Waiting to run
Build / gcc-mingw - x64 - Debug - OSSL (push) Waiting to run
Build / gcc-mingw - x64 - Release - OSSL (push) Waiting to run
Build / gcc-mingw - x86 - Debug - OSSL (push) Waiting to run
Build / gcc-mingw - x86 - Release - OSSL (push) Waiting to run
Build / mingw unittest argv - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest auth_token - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest buffer - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest crypto - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest cryptoapi - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest misc - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest ncp - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest openvpnserv - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest options_parse - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest packet_id - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest pkt - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest provider - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest ssl - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest tls_crypt - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest user_pass - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest argv - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest auth_token - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest buffer - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest crypto - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest cryptoapi - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest misc - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest ncp - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest openvpnserv - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest options_parse - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest packet_id - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest pkt - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest provider - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest ssl - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest tls_crypt - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest user_pass - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest argv - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest auth_token - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest buffer - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest crypto - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest cryptoapi - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest misc - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest ncp - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest openvpnserv - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest options_parse - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest packet_id - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest pkt - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest provider - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest ssl - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest tls_crypt - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest user_pass - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest argv - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest auth_token - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest buffer - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest crypto - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest cryptoapi - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest misc - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest ncp - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest openvpnserv - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest options_parse - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest packet_id - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest pkt - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest provider - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest ssl - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest tls_crypt - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest user_pass - x86 - Release - OSSL (push) Blocked by required conditions
Build / gcc - ubuntu-24.04 - OpenSSL 3.0.13 --enable-pkcs11 (push) Waiting to run
Build / gcc - ubuntu-22.04 - OpenSSL 3.0.2 --enable-pkcs11 (push) Waiting to run
Build / clang-asan - ubuntu-22.04 - openssl (push) Waiting to run
Build / clang-asan - ubuntu-24.04 - openssl (push) Waiting to run
Build / macos-14 - libressl - asan (push) Waiting to run
Build / macos-14 - openssl@3 - asan (push) Waiting to run
Build / macos-15 - libressl - asan (push) Waiting to run
Build / macos-15 - openssl@3 - asan (push) Waiting to run
Build / macos-26 - libressl - asan (push) Waiting to run
Build / macos-26 - openssl@3 - asan (push) Waiting to run
Build / macos-14 - libressl - normal (push) Waiting to run
Build / macos-14 - openssl@3 - normal (push) Waiting to run
Build / macos-15 - libressl - normal (push) Waiting to run
Build / macos-15 - openssl@3 - normal (push) Waiting to run
Build / macos-26 - libressl - normal (push) Waiting to run
Build / macos-26 - openssl@3 - normal (push) Waiting to run
Build / msbuild - amd64 - openssl (push) Waiting to run
Build / msbuild - amd64-clang - openssl (push) Waiting to run
Build / msbuild - arm64 - openssl (push) Waiting to run
Build / msbuild - x86 - openssl (push) Waiting to run
Build / msbuild - x86-clang - openssl (push) Waiting to run
Build / libressl (push) Waiting to run
Build / openssl4 (push) Waiting to run
Build / mbedtls4 (push) Waiting to run
Build / aws-lc (push) Waiting to run
Some checks are pending
Build / Check code style with clang-format (push) Waiting to run
Build / Android - arm64-v8a (push) Waiting to run
Build / gcc-mingw - x64 - Debug - OSSL (push) Waiting to run
Build / gcc-mingw - x64 - Release - OSSL (push) Waiting to run
Build / gcc-mingw - x86 - Debug - OSSL (push) Waiting to run
Build / gcc-mingw - x86 - Release - OSSL (push) Waiting to run
Build / mingw unittest argv - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest auth_token - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest buffer - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest crypto - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest cryptoapi - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest misc - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest ncp - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest openvpnserv - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest options_parse - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest packet_id - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest pkt - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest provider - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest ssl - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest tls_crypt - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest user_pass - x64 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest argv - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest auth_token - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest buffer - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest crypto - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest cryptoapi - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest misc - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest ncp - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest openvpnserv - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest options_parse - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest packet_id - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest pkt - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest provider - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest ssl - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest tls_crypt - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest user_pass - x64 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest argv - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest auth_token - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest buffer - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest crypto - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest cryptoapi - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest misc - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest ncp - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest openvpnserv - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest options_parse - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest packet_id - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest pkt - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest provider - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest ssl - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest tls_crypt - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest user_pass - x86 - Debug - OSSL (push) Blocked by required conditions
Build / mingw unittest argv - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest auth_token - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest buffer - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest crypto - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest cryptoapi - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest misc - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest ncp - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest openvpnserv - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest options_parse - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest packet_id - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest pkt - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest provider - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest ssl - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest tls_crypt - x86 - Release - OSSL (push) Blocked by required conditions
Build / mingw unittest user_pass - x86 - Release - OSSL (push) Blocked by required conditions
Build / gcc - ubuntu-24.04 - OpenSSL 3.0.13 --enable-pkcs11 (push) Waiting to run
Build / gcc - ubuntu-22.04 - OpenSSL 3.0.2 --enable-pkcs11 (push) Waiting to run
Build / clang-asan - ubuntu-22.04 - openssl (push) Waiting to run
Build / clang-asan - ubuntu-24.04 - openssl (push) Waiting to run
Build / macos-14 - libressl - asan (push) Waiting to run
Build / macos-14 - openssl@3 - asan (push) Waiting to run
Build / macos-15 - libressl - asan (push) Waiting to run
Build / macos-15 - openssl@3 - asan (push) Waiting to run
Build / macos-26 - libressl - asan (push) Waiting to run
Build / macos-26 - openssl@3 - asan (push) Waiting to run
Build / macos-14 - libressl - normal (push) Waiting to run
Build / macos-14 - openssl@3 - normal (push) Waiting to run
Build / macos-15 - libressl - normal (push) Waiting to run
Build / macos-15 - openssl@3 - normal (push) Waiting to run
Build / macos-26 - libressl - normal (push) Waiting to run
Build / macos-26 - openssl@3 - normal (push) Waiting to run
Build / msbuild - amd64 - openssl (push) Waiting to run
Build / msbuild - amd64-clang - openssl (push) Waiting to run
Build / msbuild - arm64 - openssl (push) Waiting to run
Build / msbuild - x86 - openssl (push) Waiting to run
Build / msbuild - x86-clang - openssl (push) Waiting to run
Build / libressl (push) Waiting to run
Build / openssl4 (push) Waiting to run
Build / mbedtls4 (push) Waiting to run
Build / aws-lc (push) Waiting to run
We amassed a lot of code duplication there. Make
it easier to track the differences between the libraries.
Change-Id: I3d89016ccae297cfa596897c11a518f1ffbe3dc8
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Yuriy Darnobyt <yura.uddr@gmail.com>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1630
Message-Id: <20260420160732.9492-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg36686.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
(cherry picked from commit 8485518dce)
This commit is contained in:
parent
b450414d10
commit
66be31fe49
3 changed files with 155 additions and 313 deletions
349
.github/workflows/build.yaml
vendored
349
.github/workflows/build.yaml
vendored
|
|
@ -304,324 +304,49 @@ jobs:
|
|||
!${{ github.workspace }}/out/**/vcpkg_installed/**
|
||||
|
||||
libressl:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-24.04]
|
||||
ssllib: [libressl]
|
||||
build: [ normal, asan ]
|
||||
configureflags: ["--with-openssl-engine=no"]
|
||||
include:
|
||||
- build: asan
|
||||
cflags: "-fsanitize=address -fno-sanitize-recover=all -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g -O1"
|
||||
ldflags: -fsanitize=address -fno-sanitize-recover=all
|
||||
cc: clang
|
||||
- build: normal
|
||||
cflags: "-O2 -g"
|
||||
ldflags: ""
|
||||
cc: gcc
|
||||
|
||||
name: "${{matrix.cc}} ${{matrix.build}} - ${{matrix.os}} - ${{matrix.ssllib}}"
|
||||
runs-on: ${{matrix.os}}
|
||||
env:
|
||||
CFLAGS: ${{ matrix.cflags }}
|
||||
LDFLAGS: ${{ matrix.ldflags }}
|
||||
CC: ${{matrix.cc}}
|
||||
UBSAN_OPTIONS: print_stacktrace=1
|
||||
uses: ./.github/workflows/test-ssllib.yml
|
||||
with:
|
||||
libname: libressl
|
||||
ovpnlibdesc: LibreSSL
|
||||
# versioning=semver-coerced
|
||||
LIBRESSL_REPO: libressl/portable
|
||||
LIBRESSL_VERSION: v4.2.1
|
||||
LIBRESSL_INSTALL: /opt/libressl
|
||||
ghrepo: libressl/portable
|
||||
gitref: v4.2.1
|
||||
libconfigure: "LIBRESSL_GIT_OPTIONS=--no-single-branch ./autogen.sh && ./configure --prefix=$LIBPREFIX"
|
||||
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: sudo apt update && sudo apt install -y liblzo2-dev libpam0g-dev liblz4-dev linux-libc-dev man2html clang libcmocka-dev python3-docutils libtool automake autoconf pkg-config libcap-ng-dev libnl-genl-3-dev
|
||||
- name: Restore libressl from cache
|
||||
uses: actions/cache@v5
|
||||
id: libressl-cache
|
||||
with:
|
||||
path: ${{ env.LIBRESSL_INSTALL }}
|
||||
key: ${{ matrix.os }}-libressl-${{matrix.build }}-${{ env.LIBRESSL_VERSION }}
|
||||
- name: "libressl: checkout"
|
||||
if: steps.libressl-cache.outputs.cache-hit != 'true'
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
path: libressl
|
||||
repository: ${{ env.LIBRESSL_REPO }}
|
||||
ref: ${{ env.LIBRESSL_VERSION }}
|
||||
- name: "libressl: autogen.sh"
|
||||
if: steps.libressl-cache.outputs.cache-hit != 'true'
|
||||
env:
|
||||
LIBRESSL_GIT_OPTIONS: "--no-single-branch"
|
||||
run: ./autogen.sh
|
||||
working-directory: libressl
|
||||
- name: "libressl: configure"
|
||||
if: steps.libressl-cache.outputs.cache-hit != 'true'
|
||||
run: ./configure --prefix=${{ env.LIBRESSL_INSTALL }}
|
||||
working-directory: libressl
|
||||
- name: "libressl: make all"
|
||||
if: steps.libressl-cache.outputs.cache-hit != 'true'
|
||||
run: make -j3
|
||||
working-directory: libressl
|
||||
- name: "libressl: make install"
|
||||
if: steps.libressl-cache.outputs.cache-hit != 'true'
|
||||
run: sudo make install
|
||||
working-directory: libressl
|
||||
- name: "ldconfig"
|
||||
run: sudo ldconfig
|
||||
- name: Checkout OpenVPN
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- name: autoconf
|
||||
run: autoreconf -fvi
|
||||
- name: configure
|
||||
run: |
|
||||
OPENSSL_CFLAGS="-I${{ env.LIBRESSL_INSTALL }}/include" \
|
||||
OPENSSL_LIBS="-L${{ env.LIBRESSL_INSTALL }}/lib -lssl -lcrypto" \
|
||||
LDFLAGS="-Wl,-rpath=${{ env.LIBRESSL_INSTALL }}/lib" \
|
||||
./configure --with-crypto-library=openssl --enable-werror ${{matrix.configureflags}}
|
||||
- name: make all
|
||||
run: make -j3
|
||||
- name: Ensure the build uses LibreSSL
|
||||
run: |
|
||||
./src/openvpn/openvpn --version
|
||||
./src/openvpn/openvpn --version | grep -q "library versions: LibreSSL"
|
||||
- name: configure checks
|
||||
run: echo 'RUN_SUDO="sudo -E"' >tests/t_server_null.rc
|
||||
- name: make check
|
||||
run: make -j3 check VERBOSE=1
|
||||
|
||||
openssl:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-24.04]
|
||||
ssllib: [openssl]
|
||||
build: [ normal, asan ]
|
||||
configureflags: ["--with-openssl-engine=no"]
|
||||
include:
|
||||
- build: asan
|
||||
cflags: "-fsanitize=address -fno-sanitize-recover=all -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g -O1"
|
||||
ldflags: -fsanitize=address -fno-sanitize-recover=all
|
||||
cc: clang
|
||||
- build: normal
|
||||
cflags: "-O2 -g"
|
||||
ldflags: ""
|
||||
cc: gcc
|
||||
|
||||
name: "${{matrix.cc}} ${{matrix.build}} - ${{matrix.os}} - ${{matrix.ssllib}} - 4.0"
|
||||
runs-on: ${{matrix.os}}
|
||||
env:
|
||||
CFLAGS: ${{ matrix.cflags }}
|
||||
LDFLAGS: ${{ matrix.ldflags }}
|
||||
CC: ${{matrix.cc}}
|
||||
UBSAN_OPTIONS: print_stacktrace=1
|
||||
openssl4:
|
||||
uses: ./.github/workflows/test-ssllib.yml
|
||||
with:
|
||||
libname: openssl
|
||||
ovpnlibdesc: OpenSSL 4.
|
||||
# versioning=semver-coerced
|
||||
OPENSSL_REPO: openssl/openssl
|
||||
OPENSSL_VERSION: openssl-4.0.0-beta1
|
||||
OPENSSL_INSTALL: /opt/openssl
|
||||
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: sudo apt update && sudo apt install -y liblzo2-dev libpam0g-dev liblz4-dev linux-libc-dev man2html clang libcmocka-dev python3-docutils libtool automake autoconf pkg-config libcap-ng-dev libnl-genl-3-dev
|
||||
- name: Restore OpenSSL 4.0 from cache
|
||||
uses: actions/cache@v5
|
||||
id: openssl-cache
|
||||
with:
|
||||
path: ${{ env.OPENSSL_INSTALL }}
|
||||
key: ${{ matrix.os }}-openssl-${{matrix.build }}-${{ env.OPENSSL_VERSION }}
|
||||
- name: "openssl: checkout"
|
||||
if: steps.openssl-cache.outputs.cache-hit != 'true'
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
path: openssl
|
||||
repository: ${{ env.OPENSSL_REPO }}
|
||||
ref: ${{ env.OPENSSL_VERSION }}
|
||||
- name: "openssl: configure"
|
||||
if: steps.openssl-cache.outputs.cache-hit != 'true'
|
||||
run: ./Configure --prefix=${{ env.OPENSSL_INSTALL }} --libdir=${{ env.OPENSSL_INSTALL }}/lib --openssldir=${{ env.OPENSSL_INSTALL }} -g
|
||||
working-directory: openssl
|
||||
- name: "openssl: make all"
|
||||
if: steps.openssl-cache.outputs.cache-hit != 'true'
|
||||
run: make -j3
|
||||
working-directory: openssl
|
||||
- name: "openssl: make install"
|
||||
if: steps.openssl-cache.outputs.cache-hit != 'true'
|
||||
run: sudo make install
|
||||
working-directory: openssl
|
||||
- name: "ldconfig"
|
||||
run: sudo ldconfig
|
||||
- name: Checkout OpenVPN
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- name: autoconf
|
||||
run: autoreconf -fvi
|
||||
- name: configure
|
||||
run: |
|
||||
OPENSSL_CFLAGS="-I${{ env.OPENSSL_INSTALL }}/include" \
|
||||
OPENSSL_LIBS="-L${{ env.OPENSSL_INSTALL }}/lib -lssl -lcrypto" \
|
||||
LDFLAGS="-Wl,-rpath=${{ env.OPENSSL_INSTALL }}/lib" \
|
||||
./configure --with-crypto-library=openssl --enable-werror ${{matrix.configureflags}}
|
||||
- name: make all
|
||||
run: make -j3
|
||||
- name: Ensure the build uses Openssl
|
||||
run: |
|
||||
./src/openvpn/openvpn --version
|
||||
./src/openvpn/openvpn --version | grep -q "library versions: OpenSSL 4.0"
|
||||
- name: configure checks
|
||||
run: echo 'RUN_SUDO="sudo -E"' >tests/t_server_null.rc
|
||||
- name: make check
|
||||
run: make -j3 check VERBOSE=1
|
||||
ghrepo: openssl/openssl
|
||||
gitref: openssl-4.0.0-beta1
|
||||
libconfigure: ./Configure --prefix=$LIBPREFIX --libdir=$LIBPREFIX/lib --openssldir=$LIBPREFIX -g
|
||||
|
||||
mbedtls4:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-24.04]
|
||||
ssllib: [mbedtls4]
|
||||
build: [ normal, asan ]
|
||||
include:
|
||||
- build: asan
|
||||
cflags: "-fsanitize=address -fno-sanitize-recover=all -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g -O1"
|
||||
ldflags: -fsanitize=address -fno-sanitize-recover=all
|
||||
cc: clang
|
||||
- build: normal
|
||||
cflags: "-O2 -g"
|
||||
ldflags: ""
|
||||
cc: gcc
|
||||
|
||||
name: "${{matrix.cc}} ${{matrix.build}} - ${{matrix.os}} - ${{matrix.ssllib}}"
|
||||
runs-on: ${{matrix.os}}
|
||||
env:
|
||||
CFLAGS: ${{ matrix.cflags }}
|
||||
LDFLAGS: ${{ matrix.ldflags }}
|
||||
CC: ${{matrix.cc}}
|
||||
UBSAN_OPTIONS: print_stacktrace=1
|
||||
PKG_CONFIG_PATH: /opt/mbedtls4/lib/pkgconfig
|
||||
uses: ./.github/workflows/test-ssllib.yml
|
||||
with:
|
||||
libname: mbedtls
|
||||
ovpnlibname: mbedtls
|
||||
ovpnlibdesc: mbed TLS 4.
|
||||
# versioning=semver-coerced
|
||||
MBEDTLS_REPO: Mbed-TLS/mbedtls
|
||||
MBEDTLS_VERSION: v4.0.0
|
||||
MBEDTLS_INSTALL: /opt/mbedtls4
|
||||
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: sudo apt update && sudo apt install -y liblzo2-dev libpam0g-dev liblz4-dev linux-libc-dev man2html clang libcmocka-dev python3-docutils python3-jinja2 python3-jsonschema libtool automake autoconf pkg-config libcap-ng-dev libnl-genl-3-dev
|
||||
- name: Restore mbed TLS from cache
|
||||
uses: actions/cache@v5
|
||||
id: mbedtls-cache
|
||||
with:
|
||||
path: ${{ env.MBEDTLS_INSTALL }}
|
||||
key: ${{ matrix.os }}-mbedtls-${{matrix.build }}-${{ env.MBEDTLS_VERSION }}
|
||||
- name: "mbedtls: checkout"
|
||||
if: steps.mbedtls-cache.outputs.cache-hit != 'true'
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
path: mbedtls
|
||||
submodules: recursive
|
||||
repository: ${{ env.MBEDTLS_REPO }}
|
||||
ref: ${{ env.MBEDTLS_VERSION }}
|
||||
- uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # v4.2.3
|
||||
- name: "mbedtls: cmake"
|
||||
if: steps.mbedtls-cache.outputs.cache-hit != 'true'
|
||||
run: cmake -B build -DCMAKE_INSTALL_PREFIX=${{ env.MBEDTLS_INSTAL }}
|
||||
working-directory: mbedtls
|
||||
- name: "mbedtls: cmake --build"
|
||||
if: steps.mbedtls-cache.outputs.cache-hit != 'true'
|
||||
run: cmake --build build
|
||||
working-directory: mbedtls
|
||||
- name: "mbedtls: cmake --install"
|
||||
if: steps.mbedtls-cache.outputs.cache-hit != 'true'
|
||||
run: sudo cmake --install build
|
||||
working-directory: mbedtls
|
||||
- name: Checkout OpenVPN
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- name: autoconf
|
||||
run: autoreconf -fvi
|
||||
- name: configure
|
||||
run: ./configure --with-crypto-library=mbedtls --enable-werror
|
||||
- name: make all
|
||||
run: make -j3
|
||||
- name: Ensure the build uses mbed TLS ${{ env.MBEDTLS_VERSION }}
|
||||
run: |
|
||||
./src/openvpn/openvpn --version
|
||||
./src/openvpn/openvpn --version | grep -q "library versions: mbed TLS 4."
|
||||
- name: configure checks
|
||||
run: echo 'RUN_SUDO="sudo -E"' >tests/t_server_null.rc
|
||||
- name: make check
|
||||
run: make -j3 check VERBOSE=1
|
||||
ghrepo: Mbed-TLS/mbedtls
|
||||
gitref: v4.0.0
|
||||
libconfigure: cmake -B build -DCMAKE_INSTALL_PREFIX=$LIBPREFIX
|
||||
libmake: cmake --build build
|
||||
libinstall: sudo cmake --install build
|
||||
ovpnconfigureenv: PKG_CONFIG_PATH=$LIBPREFIX/lib/pkgconfig
|
||||
|
||||
aws-lc:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-24.04]
|
||||
ssllib: [ awslc ]
|
||||
build: [ normal, asan ]
|
||||
include:
|
||||
- build: asan
|
||||
cflags: "-fsanitize=address -fno-sanitize-recover=all -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g -O1"
|
||||
ldflags: -fsanitize=address -fno-sanitize-recover=all
|
||||
cc: clang
|
||||
cxx: clang++
|
||||
- build: normal
|
||||
cflags: "-O2 -g"
|
||||
ldflags: ""
|
||||
cc: gcc
|
||||
cxx: c++
|
||||
|
||||
name: "${{matrix.cc}} ${{matrix.build}} - ${{matrix.os}} - ${{matrix.ssllib}}"
|
||||
runs-on: ${{matrix.os}}
|
||||
env:
|
||||
CFLAGS: ${{ matrix.cflags }}
|
||||
LDFLAGS: ${{ matrix.ldflags }}
|
||||
CC: ${{matrix.cc}}
|
||||
CXX: ${{matrix.cxx}}
|
||||
UBSAN_OPTIONS: print_stacktrace=1
|
||||
AWS_LC_INSTALL: /opt/aws-lc
|
||||
uses: ./.github/workflows/test-ssllib.yml
|
||||
with:
|
||||
libname: aws-lc
|
||||
ovpnlibdesc: AWS-LC
|
||||
# versioning=semver-coerced
|
||||
AWS_LC_REPO: aws/aws-lc
|
||||
AWS_LC_VERSION: v1.70.0
|
||||
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: sudo apt update && sudo apt install -y gcc golang make liblzo2-dev libpam0g-dev liblz4-dev linux-libc-dev man2html clang libcmocka-dev python3-docutils python3-jinja2 python3-jsonschema libtool automake autoconf pkg-config libcap-ng-dev libnl-genl-3-dev
|
||||
- name: Restore AWS-LC from cache
|
||||
uses: actions/cache@v5
|
||||
id: aws-lc-cache
|
||||
with:
|
||||
path: ${{ env.AWS_LC_INSTALL }}
|
||||
key: ${{ matrix.os }}-aws-lc-${{matrix.build }}-${{ env.AWS_LC_VERSION }}
|
||||
- name: "AWS-LC: checkout"
|
||||
if: steps.aws-lc-cache.outputs.cache-hit != 'true'
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
path: aws-lc
|
||||
repository: ${{ env.AWS_LC_REPO }}
|
||||
ref: ${{ env.AWS_LC_VERSION }}
|
||||
- uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # v4.2.3
|
||||
- name: "AWS-LC: build"
|
||||
if: steps.aws-lc-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${{ env.AWS_LC_INSTALL }}" -DBUILD_SHARED_LIBS=1 ../
|
||||
ninja install
|
||||
working-directory: aws-lc
|
||||
- name: Checkout OpenVPN
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- name: autoconf
|
||||
run: autoreconf -fvi
|
||||
- name: configure with AWS-LC
|
||||
run: |
|
||||
OPENSSL_CFLAGS="-I${{ env.AWS_LC_INSTALL }}/include" \
|
||||
OPENSSL_LIBS="-L${{ env.AWS_LC_INSTALL }}/lib -lssl -lcrypto" \
|
||||
LDFLAGS="-Wl,-rpath=${{ env.AWS_LC_INSTALL }}/lib" \
|
||||
./configure --with-crypto-library=openssl
|
||||
- name: make all
|
||||
run: make -j3
|
||||
- name: Ensure the build uses AWS-LC
|
||||
run: |
|
||||
./src/openvpn/openvpn --version
|
||||
./src/openvpn/openvpn --version | grep -q "library versions: AWS-LC"
|
||||
- name: configure checks
|
||||
run: echo 'RUN_SUDO="sudo -E"' >tests/t_server_null.rc
|
||||
- name: make check
|
||||
run: make -j3 check VERBOSE=1
|
||||
ghrepo: aws/aws-lc
|
||||
gitref: v1.70.0
|
||||
libconfigure: cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$LIBPREFIX" -DBUILD_SHARED_LIBS=1
|
||||
libmake: cmake --build build
|
||||
libinstall: sudo cmake --install build
|
||||
# not ready for --enable-werror
|
||||
ovpnconfigureflags:
|
||||
|
|
|
|||
117
.github/workflows/test-ssllib.yml
vendored
Normal file
117
.github/workflows/test-ssllib.yml
vendored
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
name: test_ssllib
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
libname:
|
||||
required: true
|
||||
type: string
|
||||
ovpnlibname:
|
||||
type: string
|
||||
default: openssl
|
||||
ovpnlibdesc:
|
||||
required: true
|
||||
type: string
|
||||
ghrepo:
|
||||
required: true
|
||||
type: string
|
||||
gitref:
|
||||
required: true
|
||||
type: string
|
||||
libconfigure:
|
||||
required: true
|
||||
type: string
|
||||
libmake:
|
||||
type: string
|
||||
default: "make -j3"
|
||||
libinstall:
|
||||
type: string
|
||||
default: "sudo make install"
|
||||
ovpnconfigureenv:
|
||||
type: string
|
||||
default: >-
|
||||
OPENSSL_CFLAGS="-I$LIBPREFIX/include"
|
||||
OPENSSL_LIBS="-L$LIBPREFIX/lib -lssl -lcrypto"
|
||||
LDFLAGS="-Wl,-rpath=$LIBPREFIX/lib"
|
||||
ovpnconfigureflags:
|
||||
type: string
|
||||
default: --enable-werror --with-openssl-engine=no
|
||||
|
||||
jobs:
|
||||
test_ssllib:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-24.04]
|
||||
build: [normal, asan]
|
||||
include:
|
||||
- build: asan
|
||||
cflags: "-fsanitize=address -fno-sanitize-recover=all -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g -O1"
|
||||
ldflags: -fsanitize=address -fno-sanitize-recover=all
|
||||
cc: clang
|
||||
cxx: clang++
|
||||
- build: normal
|
||||
cflags: "-O2 -g"
|
||||
ldflags: ""
|
||||
cc: gcc
|
||||
cxx: g++
|
||||
|
||||
name: "${{matrix.cc}} ${{matrix.build}} - ${{matrix.os}} - ${{inputs.libname}}"
|
||||
runs-on: ${{matrix.os}}
|
||||
env:
|
||||
CFLAGS: ${{matrix.cflags}}
|
||||
LDFLAGS: ${{matrix.ldflags}}
|
||||
CC: ${{matrix.cc}}
|
||||
CXX: ${{matrix.cxx}}
|
||||
UBSAN_OPTIONS: print_stacktrace=1
|
||||
LIBPREFIX: /opt/${{inputs.libname}}
|
||||
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: sudo apt update && sudo apt install -y liblzo2-dev libpam0g-dev liblz4-dev linux-libc-dev man2html clang libcmocka-dev python3-docutils libtool automake autoconf pkg-config libcap-ng-dev libnl-genl-3-dev
|
||||
- name: Restore ${{inputs.libname}} from cache
|
||||
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
id: ssllib-cache
|
||||
with:
|
||||
path: ${{env.LIBPREFIX}}
|
||||
key: ${{matrix.os}}-${{inputs.libname}}-${{matrix.build }}-${{inputs.gitref}}
|
||||
- name: "${{inputs.libname}}: checkout"
|
||||
if: steps.ssllib-cache.outputs.cache-hit != 'true'
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
submodules: recursive
|
||||
path: ${{inputs.libname}}
|
||||
repository: ${{inputs.ghrepo}}
|
||||
ref: ${{inputs.gitref}}
|
||||
- name: "${{inputs.libname}}: configure"
|
||||
if: steps.ssllib-cache.outputs.cache-hit != 'true'
|
||||
run: ${{inputs.libconfigure}}
|
||||
working-directory: ${{inputs.libname}}
|
||||
- name: "${{inputs.libname}}: build"
|
||||
if: steps.ssllib-cache.outputs.cache-hit != 'true'
|
||||
run: ${{inputs.libmake}}
|
||||
working-directory: ${{inputs.libname}}
|
||||
- name: "${{inputs.libname}}: install"
|
||||
if: steps.ssllib-cache.outputs.cache-hit != 'true'
|
||||
run: ${{inputs.libinstall}}
|
||||
working-directory: ${{inputs.libname}}
|
||||
- name: Run ldconfig
|
||||
run: sudo ldconfig
|
||||
- name: "OpenVPN: checkout"
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- name: "OpenVPN: autoreconf"
|
||||
run: autoreconf -fvi
|
||||
- name: "OpenVPN: configure"
|
||||
run: |
|
||||
${{inputs.ovpnconfigureenv}} \
|
||||
./configure --with-crypto-library=${{inputs.ovpnlibname}} ${{inputs.ovpnconfigureflags}}
|
||||
- name: "OpenVPN: build"
|
||||
run: make -j3
|
||||
- name: Ensure the build uses ${{inputs.libname}}
|
||||
run: |
|
||||
./src/openvpn/openvpn --version
|
||||
./src/openvpn/openvpn --version | grep -q "library versions: ${{inputs.ovpnlibdesc}}"
|
||||
- name: "OpenVPN: configure checks"
|
||||
run: echo 'RUN_SUDO="sudo -E"' >tests/t_server_null.rc
|
||||
- name: "OpenVPN: make check"
|
||||
run: make -j3 check VERBOSE=1
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
"/^\\.github/workflows/.+\\.ya?ml$/"
|
||||
],
|
||||
"matchStrings": [
|
||||
"versioning=(?<versioning>.*?)\\n\\s*.*?_REPO:\\s*(?<depName>.*?)\\n\\s*.*?_VERSION:\\s*(?<currentValue>.*?)\\n"
|
||||
"versioning=(?<versioning>.*?)\\n\\s*ghrepo:\\s*(?<depName>.*?)\\n\\s*gitrepo:\\s*(?<currentValue>.*?)\\n"
|
||||
],
|
||||
"datasourceTemplate": "github-tags"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue