[Openvpn-devel] Adding AWS-LC to the OpenVPN CI

Message ID 20250131205727.60957-1-smittals@amazon.com
State Accepted
Headers show
Series [Openvpn-devel] Adding AWS-LC to the OpenVPN CI | expand

Commit Message

Shubham Mittal Jan. 31, 2025, 8:57 p.m. UTC
URL: https://github.com/OpenVPN/openvpn/pull/673
Acked-by: Arne Schwabe <arne@rfc2549.org>
Signed-off-by: Shubham Mittal <smittals@amazon.com>
---
 .github/workflows/build.yaml | 62 ++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

Comments

Arne Schwabe Feb. 3, 2025, 12:03 p.m. UTC | #1
Am 31.01.25 um 21:57 schrieb Shubham Mittal:
> URL: https://github.com/OpenVPN/openvpn/pull/673
> Acked-by: Arne Schwabe <arne@rfc2549.org>
> Signed-off-by: Shubham Mittal <smittals@amazon.com>

Looks good now.

Acked-by: Arne Schwabe <arne@rfc2549.org>
Gert Doering Feb. 3, 2025, 12:48 p.m. UTC | #2
Your patch has been applied to the master branch.

For future submissions, please take a few things into account to make
our lives easier

  - please do not include the "Acked-By:" lines - this is added by me,
    after seeing a formal ACK on the mailing list or in Gerrit.
    Github PR reviews are not considered "formal ACK" for OpenVPN main
    (transparency and archiving requirements), as of today.

  - if you send a new version of the patch, please include "-v2", "-v3"
    etc. in the git-send-email (or git-format-patch) command, so it's
    clear which e-mail is which patch version, and also to which version
    a comment on the list applies.

thanks :-)

commit 060ead650450553214dad3e9856c500deb672bba
Author: Shubham Mittal
Date:   Fri Jan 31 12:57:27 2025 -0800

     Adding AWS-LC to the OpenVPN CI

     Signed-off-by: Shubham Mittal <smittals@amazon.com>
     Acked-by: Arne Schwabe <arne@rfc2549.org>
     Message-Id: <20250131205727.60957-1-smittals@amazon.com>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg30776.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering

Patch

diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 90d52023..88ec513b 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -424,3 +424,65 @@  jobs:
         run: echo 'RUN_SUDO="sudo -E"' >tests/t_server_null.rc
       - name: make check
         run: make -j3 check VERBOSE=1
+
+  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: ${{ github.workspace }}/aws-lc/aws-lc-install
+
+    steps:
+      - name: Install dependencies
+        run: sudo apt update && sudo apt install -y cmake gcc ninja-build 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: "AWS-LC: checkout"
+        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+        with:
+          path: aws-lc
+          repository: aws/aws-lc
+          ref: v1.42.0
+      - name: "AWS-LC: build"
+        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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.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: configure checks
+        run: echo 'RUN_SUDO="sudo -E"' >tests/t_server_null.rc
+      - name: make check
+        run: make -j3 check VERBOSE=1
\ No newline at end of file