Skip to content

Commit 6a16f4f

Browse files
committed
hostap debian
1 parent ecaa8c0 commit 6a16f4f

File tree

1 file changed

+68
-47
lines changed

1 file changed

+68
-47
lines changed

.github/workflows/hostap.yml

Lines changed: 68 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,34 @@ jobs:
1818
with:
1919
wolfssl_ref: ${{ matrix.wolfssl_ref }}
2020
openssl_ref: ${{ matrix.openssl_ref }}
21+
replace_default: ${{ matrix.replace_default }}
2122
strategy:
2223
matrix:
23-
wolfssl_ref: [ 'master', 'v5.8.0-stable' ]
24-
openssl_ref: [ 'openssl-3.5.0' ]
24+
wolfssl_ref: [ 'v5.8.2-stable' ]
25+
openssl_ref: [ 'openssl-3.5.2' ]
26+
replace_default: [ true ]
2527

2628
test_hostap:
2729
runs-on: ubuntu-22.04
2830
needs: build_wolfprovider
31+
# Run inside Debian Bookworm to match packaging environment
32+
container:
33+
image: debian:bookworm
34+
env:
35+
DEBIAN_FRONTEND: noninteractive
2936
# This should be a safe limit for the tests to run.
3037
timeout-minutes: 90
3138
strategy:
3239
matrix:
3340
hostap_ref: [ 'main' ]
34-
wolfssl_ref: [ 'master', 'v5.8.0-stable' ]
35-
openssl_ref: [ 'openssl-3.5.0' ]
41+
wolfssl_ref: [ 'v5.8.2-stable' ]
42+
openssl_ref: [ 'openssl-3.5.2' ]
3643
force_fail: [ 'WOLFPROV_FORCE_FAIL=1', '', 'OPENSSL' ]
44+
replace_default: [ true ]
45+
env:
46+
WOLFSSL_PACKAGES_PATH: /tmp/wolfssl-packages
47+
OPENSSL_PACKAGES_PATH: /tmp/openssl-packages
48+
WOLFPROV_PACKAGES_PATH: /tmp/wolfprov-packages
3749

3850
steps:
3951
# Checkout the source so we can run the check-workflow-result script.
@@ -42,34 +54,53 @@ jobs:
4254
with:
4355
fetch-depth: 1
4456

45-
- name: Retrieving wolfProvider from cache
57+
- name: Checking OpenSSL/wolfProvider packages in cache
4658
uses: actions/cache/restore@v4
47-
id: wolfprov-cache-restore
59+
id: wolfprov-cache
4860
with:
4961
path: |
50-
wolfssl-install
51-
wolfprov-install
52-
openssl-install/lib64
53-
openssl-install/include
54-
openssl-install/bin
55-
key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }}
62+
${{ env.WOLFSSL_PACKAGES_PATH }}
63+
${{ env.OPENSSL_PACKAGES_PATH }}
64+
${{ env.WOLFPROV_PACKAGES_PATH }}
65+
key: openssl-wolfprov-debian-packages-${{ github.sha }}${{ matrix.replace_default && '-replace-default' || '' }}
5666
fail-on-cache-miss: true
5767

68+
- name: Install wolfSSL/OpenSSL/wolfprov packages
69+
run: |
70+
printf "Installing OpenSSL/wolfProvider packages:\n"
71+
ls -la ${{ env.WOLFSSL_PACKAGES_PATH }}
72+
ls -la ${{ env.OPENSSL_PACKAGES_PATH }}
73+
ls -la ${{ env.WOLFPROV_PACKAGES_PATH }}
74+
75+
apt install --reinstall -y \
76+
${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb
77+
78+
apt install --reinstall -y \
79+
${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \
80+
${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \
81+
${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb
82+
83+
apt install --reinstall -y \
84+
${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb
85+
86+
- name: Show OpenSSL version
87+
run: |
88+
echo "OpenSSL version:"
89+
openssl version -a || true
90+
91+
- name: Test OpenSSL providers before hostap installation
92+
run: |
93+
echo "Testing OpenSSL providers before hostap installation..."
94+
openssl list -providers
95+
5896
- name: Install hostap dependencies
59-
env:
60-
LD_LIBRARY_PATH: "$GITHUB_WORKSPACE/openssl-install/lib64:$GITHUB_WORKSPACE/wolfprov-install/lib:$LD_LIBRARY_PATH"
61-
LDFLAGS: "-L$GITHUB_WORKSPACE/openssl-install/lib64"
62-
CFLAGS: "-I$GITHUB_WORKSPACE/openssl-install/include"
63-
PKG_CONFIG_PATH: "$GITHUB_WORKSPACE/openssl-install/lib64/pkgconfig"
6497
run: |
65-
sudo apt-get update
66-
sudo apt-get install -y libpcap0.8 libpcap-dev curl libcurl4-openssl-dev \
98+
apt-get update
99+
apt-get install -y libpcap0.8 libpcap-dev curl libcurl4-openssl-dev \
67100
libnl-3-dev binutils-dev libiberty-dev libnl-genl-3-dev \
68101
libnl-route-3-dev libdbus-1-dev bridge-utils tshark python3-pycryptodome \
69-
libsqlite3-dev libzstd1 wireless-tools iw
70-
# Uninstall system cryptography and reinstall with custom OpenSSL
71-
sudo apt-get remove -y python3-cryptography
72-
pip install --no-cache-dir --force-reinstall cryptography
102+
libsqlite3-dev libzstd1 wireless-tools iw build-essential autoconf automake \
103+
libtool pkg-config git wget ca-certificates
73104
- name: Checkout hostap
74105
run: |
75106
test -d hostap || git clone https://w1.fi/hostap.git
@@ -109,18 +140,16 @@ jobs:
109140
working-directory: hostap/tests/hwsim
110141
run: |
111142
cat << EOF >> example-hostapd.config
112-
# Custom OpenSSL installation paths
113-
CFLAGS += -I$GITHUB_WORKSPACE/openssl-install/include
114-
LDFLAGS += -L$GITHUB_WORKSPACE/openssl-install/lib64
115-
# Override OpenSSL libraries to use custom installation with rpath
116-
LIBS += -L$GITHUB_WORKSPACE/openssl-install/lib64 -Wl,-rpath,$GITHUB_WORKSPACE/openssl-install/lib64
143+
# Use system-installed OpenSSL/wolfSSL packages
144+
CFLAGS += -I/usr/include/openssl
145+
LDFLAGS += -L/usr/lib/x86_64-linux-gnu
146+
LIBS += -lssl -lcrypto
117147
EOF
118148
cat << EOF >> example-wpa_supplicant.config
119-
# Custom OpenSSL installation paths
120-
CFLAGS += -I$GITHUB_WORKSPACE/openssl-install/include
121-
LDFLAGS += -L$GITHUB_WORKSPACE/openssl-install/lib64
122-
# Override OpenSSL libraries to use custom installation with rpath
123-
LIBS += -L$GITHUB_WORKSPACE/openssl-install/lib64 -Wl,-rpath,$GITHUB_WORKSPACE/openssl-install/lib64
149+
# Use system-installed OpenSSL/wolfSSL packages
150+
CFLAGS += -I/usr/include/openssl
151+
LDFLAGS += -L/usr/lib/x86_64-linux-gnu
152+
LIBS += -lssl -lcrypto
124153
EOF
125154
- name: Setup non-WPFF environment
126155
working-directory: hostap/tests/hwsim
@@ -131,18 +160,14 @@ jobs:
131160
# Set up wolfSSL environment variables
132161
# In UML mode, we can access the host filesystem directly
133162
echo "Setting up wolfSSL environment in UML mode"
134-
# Use the host filesystem paths directly
135-
export LD_LIBRARY_PATH="$GITHUB_WORKSPACE/openssl-install/lib64:$GITHUB_WORKSPACE/wolfprov-install/lib:$LD_LIBRARY_PATH"
136-
export OPENSSL_CONF="$GITHUB_WORKSPACE/provider.conf"
137-
export OPENSSL_MODULES="$GITHUB_WORKSPACE/wolfprov-install/lib"
163+
# Use system-installed packages
164+
export OPENSSL_CONF="/etc/ssl/openssl.cnf"
138165
export CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1
139166
echo "wolfSSL environment variables set:"
140-
echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
141167
echo "OPENSSL_CONF: $OPENSSL_CONF"
142-
echo "OPENSSL_MODULES: $OPENSSL_MODULES"
143168
# Test if wolfProvider is available
144169
echo "Testing OpenSSL providers:"
145-
$GITHUB_WORKSPACE/openssl-install/bin/openssl list -providers
170+
openssl list -providers
146171
EOF
147172
- name: Setup WPFF environment
148173
working-directory: hostap/tests/hwsim
@@ -153,19 +178,15 @@ jobs:
153178
# Set up wolfSSL environment variables
154179
# In UML mode, we can access the host filesystem directly
155180
echo "Setting up wolfSSL environment in UML mode"
156-
# Use the host filesystem paths directly
157-
export LD_LIBRARY_PATH="$GITHUB_WORKSPACE/openssl-install/lib64:$GITHUB_WORKSPACE/wolfprov-install/lib:$LD_LIBRARY_PATH"
158-
export OPENSSL_CONF="$GITHUB_WORKSPACE/provider.conf"
159-
export OPENSSL_MODULES="$GITHUB_WORKSPACE/wolfprov-install/lib"
181+
# Use system-installed packages
182+
export OPENSSL_CONF="/etc/ssl/openssl.cnf"
160183
export CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1
161184
export WOLFPROV_FORCE_FAIL=1
162185
echo "wolfSSL environment variables set:"
163-
echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
164186
echo "OPENSSL_CONF: $OPENSSL_CONF"
165-
echo "OPENSSL_MODULES: $OPENSSL_MODULES"
166187
# Test if wolfProvider is available
167188
echo "Testing OpenSSL providers:"
168-
$GITHUB_WORKSPACE/openssl-install/bin/openssl list -providers
189+
openssl list -providers
169190
EOF
170191
- name: Update certs
171192
working-directory: hostap/tests/hwsim/auth_serv

0 commit comments

Comments
 (0)