Skip to content

Commit 9969003

Browse files
committed
- Added proper configurations for versions in wget and openldap that are
being tested on ubuntu 24.04. - Wireshark workflow - Removing master version testing from the libjcat workflow. Uses post quantum by default, not currently supported by gnutls-wolfssl.
1 parent 9504fb7 commit 9969003

4 files changed

Lines changed: 209 additions & 22 deletions

File tree

.github/workflows/libjcat.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
strategy:
2020
matrix:
2121
os: [ ubuntu-latest ]
22-
libjcat_ref: [ 'master', '0.2.3', '0.2.0' ]
22+
libjcat_ref: [ '0.2.3', '0.2.0' ]
2323
fail-fast: false
2424
runs-on: ${{ matrix.os }}
2525
container:

.github/workflows/openldap.yml

Lines changed: 58 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,23 +60,48 @@ jobs:
6060
libtasn1-bin libtasn1-6-dev libunistring-dev libp11-kit-dev libunbound-dev \
6161
git wget libsasl2-dev libsasl2-modules libsasl2-modules-gssapi-mit \
6262
libargon2-dev groff-base libltdl-dev automake libtool
63-
# ───────────── cache the wolfssl/gnutls tool-chain ─────────────
63+
64+
- name: Prepare cache directories (native runner)
65+
if: matrix.use_container == false
66+
run: |
67+
sudo mkdir -p /opt/gnutls /opt/wolfssl /opt/wolfssl-gnutls-wrapper
68+
sudo chown -R $USER:$USER /opt/gnutls /opt/wolfssl /opt/wolfssl-gnutls-wrapper
69+
70+
# ───────────── cache the wolfssl/gnutls tool-chain ─────────────
6471
- name: Restore cached gnutls-wolfssl
6572
id: cache-gnutls
6673
uses: actions/cache@v4
6774
with:
6875
path: |
69-
/opt/gnutls
70-
/opt/wolfssl
71-
/opt/wolfssl-gnutls-wrapper
72-
key: gnutls-wolfssl-${{ runner.os }}-${{ hashFiles('setup.sh', 'wolfssl-gnutls-wrapper/**', 'wolfssl/**', 'gnutls/**') }}
76+
${{ matrix.use_container && '/opt/gnutls' || '~/cache/gnutls' }}
77+
${{ matrix.use_container && '/opt/wolfssl' || '~/cache/wolfssl' }}
78+
${{ matrix.use_container && '/opt/wolfssl-gnutls-wrapper' || '~/cache/wolfssl-gnutls-wrapper' }}
79+
key: gnutls-wolfssl-${{ runner.os }}-${{ matrix.use_container }}-${{ hashFiles('setup.sh', 'wolfssl-gnutls-wrapper/**', 'wolfssl/**', 'gnutls/**') }}
7380
restore-keys: |
74-
gnutls-wolfssl-${{ runner.os }}-
81+
gnutls-wolfssl-${{ runner.os }}-${{ matrix.use_container }}-
82+
83+
- name: Copy cache to /opt (native runner only)
84+
if: matrix.use_container == false && steps.cache-gnutls.outputs.cache-hit == 'true'
85+
run: |
86+
sudo mkdir -p /opt
87+
sudo cp -a ~/cache/gnutls /opt/
88+
sudo cp -a ~/cache/wolfssl /opt/
89+
sudo cp -a ~/cache/wolfssl-gnutls-wrapper /opt/
90+
7591
- name: Build GnuTLS with wolfSSL provider using setup.sh script
7692
if: steps.cache-gnutls.outputs.cache-hit != 'true'
7793
run: |
7894
echo "Running setup.sh..."
7995
GNUTLS_INSTALL=/opt/gnutls WOLFSSL_INSTALL=/opt/wolfssl ./setup.sh
96+
# For native runner: also save to cache location
97+
if [[ "${{ matrix.use_container }}" == "false" ]]; then
98+
mkdir -p ~/cache
99+
sudo cp -a /opt/gnutls ~/cache/
100+
sudo cp -a /opt/wolfssl ~/cache/
101+
sudo cp -a /opt/wolfssl-gnutls-wrapper ~/cache/
102+
sudo chown -R $(id -u):$(id -g) ~/cache
103+
fi
104+
80105
- name: Check setup.sh output directories
81106
run: |
82107
test -d /opt/wolfssl || { echo "/opt/wolfssl missing"; exit 1; }
@@ -95,6 +120,32 @@ jobs:
95120
export PKG_CONFIG_PATH=/opt/gnutls/lib/pkgconfig
96121
export CPPFLAGS=-I/opt/gnutls/include
97122
export LDFLAGS="-L/opt/gnutls/lib -Wl,-rpath,/opt/gnutls/lib"
123+
if [[ "${{ matrix.openldap_ref }}" = "OPENLDAP_REL_ENG_2_6_7" ]]; then
124+
./configure \
125+
ac_cv_func_memcmp_working=yes \
126+
lt_cv_dlopen_self=yes \
127+
--with-yielding-select=yes \
128+
--enable-dynamic \
129+
--enable-crypt \
130+
--with-tls=gnutls \
131+
--with-cyrus-sasl \
132+
--enable-otp \
133+
--with-argon2=libargon2 \
134+
--enable-argon2 \
135+
--enable-ppolicy \
136+
--enable-remoteauth \
137+
--prefix=/opt/openldap \
138+
--enable-modules \
139+
--enable-ipv6 \
140+
--enable-asyncmeta=mod \
141+
--enable-mdb=yes \
142+
--enable-ldap=mod \
143+
--enable-meta=mod \
144+
--enable-null=mod \
145+
--enable-passwd=mod \
146+
--enable-proxycache=mod \
147+
--enable-dnssrv=mod
148+
else
98149
./configure \
99150
--with-tls=gnutls \
100151
--with-cyrus-sasl \
@@ -105,6 +156,7 @@ jobs:
105156
--enable-remoteauth \
106157
--prefix=/opt/openldap \
107158
--enable-modules
159+
fi
108160
- name: Build OpenLDAP
109161
working-directory: openldap
110162
run: |

.github/workflows/wget.yml

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,16 @@ jobs:
4444
run: |
4545
apt-get update
4646
apt-get install -y build-essential
47-
4847
- name: Install GnuTLS dependencies
4948
if: matrix.use_container == true
5049
run: |
5150
apt-get install -y gnulib autopoint gperf gtk-doc-tools nettle-dev clang \
5251
libtasn1-bin libtasn1-6-dev libunistring-dev libp11-kit-dev libunbound-dev \
5352
sudo wget git flex
54-
5553
- name: Install wget dependencies
5654
if: matrix.use_container == true
5755
run: |
5856
sudo apt-get install -y autoconf-archive libhttp-daemon-perl
59-
6057
- name: Install dependencies on native Ubuntu
6158
if: matrix.use_container == false
6259
run: |
@@ -65,24 +62,40 @@ jobs:
6562
libtasn1-bin libtasn1-6-dev libunistring-dev libp11-kit-dev libunbound-dev \
6663
wget git flex autoconf-archive libhttp-daemon-perl
6764
68-
# ───────────── cache the wolfssl/gnutls tool-chain ─────────────
65+
# ───────────── cache the wolfssl/gnutls tool-chain ─────────────
6966
- name: Restore cached gnutls-wolfssl
7067
id: cache-gnutls
7168
uses: actions/cache@v4
7269
with:
7370
path: |
74-
/opt/gnutls
75-
/opt/wolfssl
76-
/opt/wolfssl-gnutls-wrapper
77-
key: gnutls-wolfssl-${{ runner.os }}-${{ hashFiles('setup.sh', 'wolfssl-gnutls-wrapper/**', 'wolfssl/**', 'gnutls/**') }}
71+
${{ matrix.use_container && '/opt/gnutls' || '~/cache/gnutls' }}
72+
${{ matrix.use_container && '/opt/wolfssl' || '~/cache/wolfssl' }}
73+
${{ matrix.use_container && '/opt/wolfssl-gnutls-wrapper' || '~/cache/wolfssl-gnutls-wrapper' }}
74+
key: gnutls-wolfssl-${{ runner.os }}-${{ matrix.use_container }}-${{ hashFiles('setup.sh', 'wolfssl-gnutls-wrapper/**', 'wolfssl/**', 'gnutls/**') }}
7875
restore-keys: |
79-
gnutls-wolfssl-${{ runner.os }}-
76+
gnutls-wolfssl-${{ runner.os }}-${{ matrix.use_container }}-
77+
78+
- name: Copy cache to /opt (native runner only)
79+
if: matrix.use_container == false && steps.cache-gnutls.outputs.cache-hit == 'true'
80+
run: |
81+
sudo mkdir -p /opt
82+
sudo cp -a ~/cache/gnutls /opt/
83+
sudo cp -a ~/cache/wolfssl /opt/
84+
sudo cp -a ~/cache/wolfssl-gnutls-wrapper /opt/
8085
8186
- name: Build GnuTLS with wolfSSL provider using setup.sh script
8287
if: steps.cache-gnutls.outputs.cache-hit != 'true'
8388
run: |
8489
echo "Running setup.sh..."
8590
GNUTLS_INSTALL=/opt/gnutls WOLFSSL_INSTALL=/opt/wolfssl ./setup.sh
91+
# For native runner: also save to cache location
92+
if [[ "${{ matrix.use_container }}" == "false" ]]; then
93+
mkdir -p ~/cache
94+
sudo cp -a /opt/gnutls ~/cache/
95+
sudo cp -a /opt/wolfssl ~/cache/
96+
sudo cp -a /opt/wolfssl-gnutls-wrapper ~/cache/
97+
sudo chown -R $(id -u):$(id -g) ~/cache
98+
fi
8699
87100
- name: Check setup.sh output directories
88101
run: |
@@ -92,7 +105,6 @@ jobs:
92105
test -d /opt/gnutls || exit 1
93106
echo "Check for wrapper installation..."
94107
test -d /opt/wolfssl-gnutls-wrapper/lib || exit 1
95-
96108
- name: Build wget at ${{ matrix.wget_ref }}
97109
uses: actions/checkout@v4
98110
with:
@@ -111,13 +123,21 @@ jobs:
111123
git clone https://github.com/coreutils/gnulib gnulib
112124
./bootstrap
113125
autoreconf -fi
114-
./configure --with-ssl=gnutls --with-libgnutls-prefix=/opt/gnutls
115-
126+
if [[ "${{ matrix.wget_ref }}" = "v1.21.4" ]]; then
127+
./configure --with-ssl=gnutls --with-libgnutls-prefix=/opt/gnutls \
128+
--without-libssl-prefix \
129+
--disable-rpath \
130+
--with-ssl=gnutls \
131+
--enable-pcre \
132+
--with-zlib \
133+
--enable-ipv6
134+
else
135+
./configure --with-ssl=gnutls --with-libgnutls-prefix=/opt/gnutls
136+
fi
116137
- name: Make wget
117138
working-directory: wget
118139
run: |
119140
make -j $(nproc)
120-
121141
# Get python 3.11 for old versions of wget
122142
- name: Install pyenv dependencies
123143
if: matrix.wget_ref == 'v1.21.3' || matrix.wget_ref == 'v1.21.4'
@@ -127,12 +147,10 @@ jobs:
127147
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
128148
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \
129149
libffi-dev liblzma-dev
130-
131150
- name: Install pyenv
132151
if: matrix.wget_ref == 'v1.21.3' || matrix.wget_ref == 'v1.21.4'
133152
run: |
134153
curl https://pyenv.run | bash
135-
136154
- name: Test wget
137155
working-directory: wget
138156
run: |
@@ -146,5 +164,10 @@ jobs:
146164
pyenv global 3.11.9
147165
python --version
148166
fi
167+
# To make /opt/gnutls visible to the test binaries, LD_LIBRARY_PATH
168+
# is needed since we disable rpath for v1.21.4.
169+
if [[ "${{ matrix.wget_ref }}" = "v1.21.4" ]]; then
170+
export LD_LIBRARY_PATH=/opt/gnutls/lib:/opt/wolfssl/lib:/opt/wolfssl-gnutls-wrapper/lib:$LD_LIBRARY_PATH
171+
fi
149172
make check
150173
find . -name '*.log' | xargs grep wgw

.github/workflows/wireshark.yml

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
name: wireshark test
2+
3+
on:
4+
push:
5+
branches: [ 'master', 'main', 'release/**' ]
6+
pull_request:
7+
branches: [ '*' ]
8+
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
jobs:
14+
build_gnutls:
15+
name: Build wolfSSL, GnuTLS and provider
16+
timeout-minutes: 20
17+
strategy:
18+
matrix:
19+
os: [ ubuntu-24.04 ]
20+
wireshark_ref: [ 'master', 'v4.2.12', 'v4.6.0' ]
21+
fail-fast: false
22+
runs-on: ${{ matrix.os }}
23+
24+
steps:
25+
- name: Checkout repository
26+
uses: actions/checkout@v4
27+
28+
- name: Install dependencies
29+
run: |
30+
sudo apt-get update
31+
sudo apt-get install -y build-essential gnulib autopoint gperf gtk-doc-tools nettle-dev clang \
32+
libtasn1-bin libtasn1-6-dev libunistring-dev libp11-kit-dev libunbound-dev \
33+
wget git flex autoconf-archive libhttp-daemon-perl ninja-build
34+
35+
- name: Restore cached gnutls-wolfssl
36+
id: cache-gnutls
37+
uses: actions/cache@v4
38+
with:
39+
path: |
40+
~/cache/gnutls
41+
~/cache/wolfssl
42+
~/cache/wolfssl-gnutls-wrapper
43+
key: gnutls-wolfssl-${{ runner.os }}-${{ hashFiles('setup.sh', 'wolfssl-gnutls-wrapper/**', 'wolfssl/**', 'gnutls/**') }}
44+
restore-keys: |
45+
gnutls-wolfssl-${{ runner.os }}-
46+
47+
- name: Copy cache to /opt
48+
if: steps.cache-gnutls.outputs.cache-hit == 'true'
49+
run: |
50+
sudo mkdir -p /opt
51+
sudo cp -a ~/cache/gnutls /opt/
52+
sudo cp -a ~/cache/wolfssl /opt/
53+
sudo cp -a ~/cache/wolfssl-gnutls-wrapper /opt/
54+
echo "Cache restored successfully"
55+
56+
- name: Build GnuTLS with wolfSSL provider using setup.sh script
57+
if: steps.cache-gnutls.outputs.cache-hit != 'true'
58+
run: |
59+
echo "Cache miss - running setup.sh..."
60+
GNUTLS_INSTALL=/opt/gnutls WOLFSSL_INSTALL=/opt/wolfssl ./setup.sh
61+
# Save to cache location
62+
mkdir -p ~/cache
63+
sudo cp -a /opt/gnutls ~/cache/
64+
sudo cp -a /opt/wolfssl ~/cache/
65+
sudo cp -a /opt/wolfssl-gnutls-wrapper ~/cache/
66+
sudo chown -R $(id -u):$(id -g) ~/cache
67+
68+
- name: Check setup.sh output directories
69+
run: |
70+
echo "Check for wolfSSL installation..."
71+
ls -la /opt/wolfssl || { echo "/opt/wolfssl not found"; exit 1; }
72+
echo "Check for GnuTLS installation..."
73+
ls -la /opt/gnutls || { echo "/opt/gnutls not found"; exit 1; }
74+
echo "Check for wrapper installation..."
75+
ls -la /opt/wolfssl-gnutls-wrapper/lib || { echo "/opt/wolfssl-gnutls-wrapper/lib not found"; exit 1; }
76+
77+
- name: Clone wireshark
78+
run: |
79+
git clone https://github.com/wireshark/wireshark.git
80+
81+
- name: Setup and build wireshark
82+
working-directory: wireshark
83+
run: |
84+
if [[ "${{ matrix.wireshark_ref }}" != "master" ]]; then
85+
git checkout ${{ matrix.wireshark_ref }}
86+
fi
87+
sudo ./tools/debian-setup.sh
88+
sudo ./tools/debian-setup.sh --install-deb-deps
89+
sudo ./tools/debian-setup.sh --install-test-deps
90+
mkdir build && cd build
91+
export PKG_CONFIG_PATH=/opt/gnutls/lib/pkgconfig:$PKG_CONFIG_PATH
92+
cmake -G Ninja .. \
93+
-DENABLE_PCAP=ON \
94+
-DENABLE_GNUTLS=ON \
95+
-DENABLE_CAP=ON \
96+
-DENABLE_SBC=ON \
97+
-DENABLE_NETLINK=ON \
98+
-DBUILD_mmdbresolve=OFF \
99+
-DBUILD_randpktdump=OFF \
100+
-DBUILD_androiddump=OFF \
101+
-DBUILD_dcerpcidl2wrs=OFF \
102+
-DENABLE_QT5=OFF \
103+
-DBUILD_wireshark=OFF
104+
ninja
105+
ninja test-programs
106+
107+
- name: Test Wireshark (TLS related tests only)
108+
working-directory: wireshark
109+
run: |
110+
export PKG_CONFIG_PATH=/opt/gnutls/lib/pkgconfig:$PKG_CONFIG_PATH
111+
cd build
112+
pytest ../test/suite_decryption.py -v -s

0 commit comments

Comments
 (0)