Skip to content

Commit 063ba88

Browse files
committed
Migrating from ubuntu to debian:bookworm
1 parent 0038efd commit 063ba88

21 files changed

Lines changed: 206 additions & 129 deletions

.github/workflows/chrony.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ jobs:
2222
chrony_ref: [ 'master', '4.3', '4.6.1' ]
2323
fail-fast: false
2424
runs-on: ${{ matrix.os }}
25+
container:
26+
image: debian:bookworm
2527

2628
steps:
2729
- name: Checkout gnutls-wolfssl repository
@@ -30,13 +32,13 @@ jobs:
3032
- name: Ensure make available (Ubuntu only)
3133
if: matrix.os == 'ubuntu-latest'
3234
run: |
33-
sudo apt-get update
34-
sudo apt-get install -y build-essential
35+
apt-get update
36+
apt-get install -y build-essential
3537
3638
- name: Install GnuTLS dependencies (Ubuntu only)
3739
if: matrix.os == 'ubuntu-latest'
3840
run: |
39-
sudo apt-get install -y gnulib autopoint gperf gtk-doc-tools nettle-dev clang libtasn1-bin libtasn1-6-dev libunistring-dev libp11-kit-dev libunbound-dev
41+
apt-get install -y gnulib autopoint gperf gtk-doc-tools nettle-dev clang libtasn1-bin libtasn1-6-dev libunistring-dev libp11-kit-dev libunbound-dev sudo wget git
4042
4143
- name: Install chrony dependencies (Ubuntu only)
4244
if: matrix.os == 'ubuntu-latest'

.github/workflows/curl.yml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ jobs:
2222
curl_ref: [ 'master', 'curl-7_88_1', 'curl-8_4_0' ]
2323
fail-fast: false
2424
runs-on: ${{ matrix.os }}
25+
container:
26+
image: debian:bookworm
2527

2628
steps:
2729
- name: Checkout repository
@@ -30,19 +32,19 @@ jobs:
3032
- name: Ensure make available (Ubuntu only)
3133
if: matrix.os == 'ubuntu-latest'
3234
run: |
33-
sudo apt-get update
34-
sudo apt-get install -y build-essential
35+
apt-get update
36+
apt-get install -y build-essential
3537
3638
- name: Install GnuTLS dependencies (Ubuntu only)
3739
if: matrix.os == 'ubuntu-latest'
3840
run: |
39-
sudo apt-get update
40-
sudo apt-get install -y gnulib autopoint gperf gtk-doc-tools nettle-dev clang libtasn1-bin libtasn1-6-dev libunistring-dev libp11-kit-dev libunbound-dev
41+
apt-get update
42+
apt-get install -y gnulib autopoint gperf gtk-doc-tools nettle-dev clang libtasn1-bin libtasn1-6-dev libunistring-dev libp11-kit-dev libunbound-dev sudo wget git
4143
4244
- name: Install curl test dependencies
4345
run: |
4446
sudo apt-get update
45-
sudo apt-get install nghttp2 libpsl5 libpsl-dev python3-impacket
47+
sudo apt-get install -y nghttp2 libpsl5 libpsl-dev python3-impacket
4648
4749
- name: Restore cached gnutls-wolfssl
4850
id: cache-gnutls
@@ -96,4 +98,6 @@ jobs:
9698

9799
- name: Test curl
98100
working-directory: curl
99-
run: WGW_LOGGING=0 make -j $(nproc) test-ci
101+
run: |
102+
export USER=root
103+
WGW_LOGGING=0 make -j $(nproc) test-ci

.github/workflows/deb.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ concurrency:
1111
jobs:
1212
deb-testing:
1313
runs-on: ubuntu-latest
14+
container:
15+
image: debian:bookworm
1416
env:
1517
DEBIAN_FRONTEND: noninteractive
1618
steps:
@@ -19,12 +21,13 @@ jobs:
1921

2022
- name: Install build tooling
2123
run: |
22-
sudo apt-get update
23-
sudo apt-get install -y --no-install-recommends \
24+
apt-get update
25+
apt-get install -y --no-install-recommends \
2426
build-essential devscripts debhelper-compat fakeroot clang \
2527
autoconf automake libtool pkg-config gettext bison flex gperf \
2628
libgmp-dev libunistring-dev nettle-dev libtasn1-dev libp11-kit-dev \
27-
libev-dev gtk-doc-tools lintian libtasn1-bin git texinfo
29+
libev-dev gtk-doc-tools lintian libtasn1-bin git texinfo sudo git \
30+
wget
2831
2932
- name: Build & install wolfSSL (non-FIPS)
3033
run: |

.github/workflows/dirmngr.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ jobs:
1414
build_and_test:
1515
name: Build wolfSSL + GnuTLS, then GnuPG ${{ matrix.gnupg_ref }}
1616
runs-on: ubuntu-latest
17+
container:
18+
image: debian:bookworm
1719
timeout-minutes: 40
1820
strategy:
1921
matrix:
@@ -26,12 +28,12 @@ jobs:
2628

2729
- name: Install build prerequisites
2830
run: |
29-
sudo apt-get update
30-
sudo apt-get install -y build-essential autoconf automake libtool \
31+
apt-get update
32+
apt-get install -y build-essential autoconf automake libtool \
3133
gettext texinfo pkg-config wget gnulib \
3234
autopoint gperf gtk-doc-tools nettle-dev \
3335
clang libtasn1-bin libtasn1-6-dev \
34-
libunistring-dev libp11-kit-dev libunbound-dev
36+
libunistring-dev libp11-kit-dev libunbound-dev sudo wget git
3537
3638
- name: Restore cached wolfSSL/GnuTLS
3739
id: cache-gnutls

.github/workflows/fwupd.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ jobs:
2222
fwupd_ref: [ 'main', '1.9.26', '2.0.12' ]
2323
fail-fast: false
2424
runs-on: ${{ matrix.os }}
25+
container:
26+
image: debian:bookworm
2527

2628
steps:
2729
- name: Checkout gnutls-wolfssl repository
@@ -30,8 +32,8 @@ jobs:
3032
- name: Ensure make available (Ubuntu only)
3133
if: matrix.os == 'ubuntu-latest'
3234
run: |
33-
sudo apt-get update
34-
sudo apt-get install -y build-essential
35+
apt-get update
36+
apt-get install -y build-essential sudo wget git
3537
3638
- name: Install GnuTLS dependencies (Ubuntu only)
3739
if: matrix.os == 'ubuntu-latest'
@@ -45,11 +47,17 @@ jobs:
4547
sudo apt install -y \
4648
meson ninja-build git libgusb-dev libglib2.0-dev libxmlb-dev \
4749
libsoup2.4-dev libarchive-dev libjson-glib-dev libpolkit-gobject-1-dev \
48-
libsystemd-dev valgrind gobject-introspection gtk-doc-tools python3-pip \
50+
libsystemd-dev valgrind gobject-introspection libgirepository1.0-dev gtk-doc-tools python3-pip \
4951
libgpgme-dev valac libcurl4-gnutls-dev libpango-1.0-0 libpangocairo-1.0-0 \
5052
libpango1.0-dev libcairo2 libcairo2-dev libcairo-gobject2 python3-cairo \
5153
python3-gi-cairo python3-gi gir1.2-pango-1.0 gir1.2-cairo-1.0 gir1.2-gtk-3.0 \
5254
gnu-efi flashrom libflashrom-dev mingw-w64-tools libumockdev-dev
55+
sudo apt-get install -y python3-pip
56+
sudo apt-get install -y policykit-1 libpolkit-agent-1-dev gettext itstool
57+
sudo apt-get install -y libzstd-dev zstd
58+
sudo apt-get install -y gvfs libgvfs-dev
59+
pip3 install --break-system-packages jinja2 packaging typogrify
60+
pip3 install --break-system-packages --upgrade meson
5361
5462
- name: Install build and test dependencies (Ubuntu only)
5563
if: matrix.os == 'ubuntu-latest'

.github/workflows/glib-networking.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ jobs:
2222
glib-networking_ref: [ 'master', '2.74.0', '2.80.1' ]
2323
fail-fast: false
2424
runs-on: ${{ matrix.os }}
25+
container:
26+
image: debian:bookworm
2527

2628
steps:
2729
- name: Checkout gnutls-wolfssl repository
@@ -30,13 +32,13 @@ jobs:
3032
- name: Ensure make available (Ubuntu only)
3133
if: matrix.os == 'ubuntu-latest'
3234
run: |
33-
sudo apt-get update
34-
sudo apt-get install -y build-essential
35+
apt-get update
36+
apt-get install -y build-essential
3537
3638
- name: Install GnuTLS dependencies (Ubuntu only)
3739
if: matrix.os == 'ubuntu-latest'
3840
run: |
39-
sudo apt-get install -y gnulib autopoint gperf gtk-doc-tools nettle-dev clang libtasn1-bin libtasn1-6-dev libunistring-dev libp11-kit-dev libunbound-dev
41+
apt-get install -y gnulib autopoint gperf gtk-doc-tools nettle-dev clang libtasn1-bin libtasn1-6-dev libunistring-dev libp11-kit-dev libunbound-dev sudo wget git
4042
4143
- name: Install glib-networking dependencies (Ubuntu only)
4244
if: matrix.os == 'ubuntu-latest'

.github/workflows/gst-libav1.0.yml

Lines changed: 66 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
name: gst-libav1.0 Build and Test
2-
32
on:
43
push:
54
branches: [ 'master', 'main', 'release/**' ]
@@ -8,38 +7,32 @@ on:
87
concurrency:
98
group: ${{ github.workflow }}-${{ github.ref }}
109
cancel-in-progress: true
11-
1210
jobs:
1311
build_and_test:
1412
name: Build & Test gst-libav1.0
1513
runs-on: ubuntu-latest
1614
container:
17-
image: ubuntu:25.04
15+
image: debian:bookworm
1816
options: --user root
1917
timeout-minutes: 60
20-
2118
strategy:
2219
matrix:
2320
gst_ref: [ 'master', 'debian/1.26.2-1', 'debian/1.26.3-1' ]
2421
fail-fast: false
25-
2622
steps:
2723
- name: Checkout gnutls-wolfssl repository
2824
uses: actions/checkout@v4
29-
3025
- name: Install Meson and ninja
3126
run: |
3227
apt-get update
3328
apt-get install -y sudo meson ninja-build
34-
3529
- name: Install GStreamer ≥1.26 dev-packages
3630
run: |
3731
apt-get update
3832
apt-get install -y \
3933
libgstreamer1.0-dev \
4034
libgstreamer-plugins-base1.0-dev \
4135
gstreamer1.0-tools
42-
4336
- name: Install build tools & dependencies
4437
run: |
4538
apt-get install -y \
@@ -54,10 +47,10 @@ jobs:
5447
gstreamer1.0-libav \
5548
gnulib autopoint gperf gtk-doc-tools nettle-dev \
5649
clang libtasn1-bin libtasn1-6-dev libunistring-dev \
57-
libp11-kit-dev libunbound-dev wget gtk-doc-tools libswscale-dev libswresample-dev \
58-
nasm
50+
libp11-kit-dev libunbound-dev wget gtk-doc-tools libswscale-dev libswresample-dev nasm \
51+
python3-pip flex bison libgirepository1.0-dev python3-dev
52+
pip3 install --break-system-packages --upgrade meson
5953
60-
# ───────────── cache the wolfssl/gnutls tool-chain ─────────────
6154
- name: Restore cached gnutls-wolfssl
6255
id: cache-gnutls
6356
uses: actions/cache@v4
@@ -74,35 +67,67 @@ jobs:
7467
if: steps.cache-gnutls.outputs.cache-hit != 'true'
7568
run: |
7669
GNUTLS_INSTALL=/opt/gnutls WOLFSSL_INSTALL=/opt/wolfssl ./setup.sh
77-
7870
- name: Verify GnuTLS install
7971
run: |
8072
test -d /opt/gnutls/lib || (echo "/opt/gnutls/lib missing" && exit 1)
8173
74+
- name: Restore cached GStreamer
75+
id: cache-gstreamer
76+
uses: actions/cache@v4
77+
with:
78+
path: /opt/gstreamer
79+
key: gstreamer-1.26.2-${{ runner.os }}-bookworm
80+
restore-keys: |
81+
gstreamer-1.26.2-${{ runner.os }}-
82+
83+
- name: Build GStreamer 1.26.2 from source
84+
if: steps.cache-gstreamer.outputs.cache-hit != 'true'
85+
run: |
86+
pip3 install --break-system-packages meson ninja
87+
git clone https://github.com/GStreamer/gstreamer.git gstreamer-source
88+
cd gstreamer-source
89+
git checkout 1.26.2
90+
meson setup build \
91+
--prefix=/opt/gstreamer \
92+
--libdir=lib \
93+
-Dgood=enabled \
94+
-Dbad=enabled \
95+
-Dugly=enabled \
96+
-Dlibav=disabled \
97+
-Ddevtools=disabled \
98+
-Dsharp=disabled \
99+
-Dpython=disabled \
100+
-Drs=disabled \
101+
-Dgst-plugins-bad:vulkan=disabled \
102+
-Dgst-plugins-bad:nvcodec=disabled \
103+
-Dgst-plugins-bad:qsv=disabled
104+
ninja -C build
105+
ninja -C build install
106+
cd ..
107+
rm -rf gstreamer-source
82108
- name: Build FFmpeg with GnuTLS & MPEG-4 encoder
83109
run: |
84110
cd $RUNNER_WORKSPACE
85111
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg-gnutls
86112
cd ffmpeg-gnutls
87-
export PKG_CONFIG_PATH="/opt/gnutls/lib/pkgconfig"
88-
export CPPFLAGS="-I/opt/gnutls/include"
89-
export LDFLAGS="-L/opt/gnutls/lib -Wl,-rpath,/opt/gnutls/lib"
90-
export LD_LIBRARY_PATH="/opt/gnutls/lib:$LD_LIBRARY_PATH"
113+
export PKG_CONFIG_PATH="/opt/gnutls/lib/pkgconfig:/opt/gstreamer/lib/pkgconfig"
114+
export CPPFLAGS="-I/opt/gnutls/include -I/opt/gstreamer/include"
115+
export LDFLAGS="-L/opt/gnutls/lib -L/opt/gstreamer/lib -Wl,-rpath,/opt/gnutls/lib -Wl,-rpath,/opt/gstreamer/lib"
116+
export LD_LIBRARY_PATH="/opt/gnutls/lib:/opt/gstreamer/lib:$LD_LIBRARY_PATH"
91117
./configure \
92118
--prefix=/opt/ffmpeg-gnutls \
93119
--disable-openssl \
94120
--enable-gnutls \
95121
--enable-encoder=mpeg4 \
96122
--enable-shared
97123
make -j"$(nproc)" && make install
98-
99124
- name: Verify libav* link against custom GnuTLS
100125
run: |
101-
export PKG_CONFIG_PATH="/opt/gnutls/lib/pkgconfig:/opt/ffmpeg-gnutls/lib/pkgconfig:$PKG_CONFIG_PATH"
102-
export CPPFLAGS="-I/opt/gnutls/include -I/opt/ffmpeg-gnutls/include $CPPFLAGS"
103-
export LDFLAGS="-L/opt/gnutls/lib -L/opt/ffmpeg-gnutls/lib \
104-
-Wl,-rpath,/opt/gnutls/lib -Wl,-rpath=/opt/ffmpeg-gnutls/lib $LDFLAGS"
105-
export LD_LIBRARY_PATH="/opt/gnutls/lib:/opt/ffmpeg-gnutls/lib:$LD_LIBRARY_PATH"
126+
export PKG_CONFIG_PATH="/opt/gnutls/lib/pkgconfig:/opt/ffmpeg-gnutls/lib/pkgconfig:/opt/gstreamer/lib/pkgconfig:$PKG_CONFIG_PATH"
127+
export CPPFLAGS="-I/opt/gnutls/include -I/opt/ffmpeg-gnutls/include -I/opt/gstreamer/include $CPPFLAGS"
128+
export LDFLAGS="-L/opt/gnutls/lib -L/opt/ffmpeg-gnutls/lib -L/opt/gstreamer/lib \
129+
-Wl,-rpath,/opt/gnutls/lib -Wl,-rpath=/opt/ffmpeg-gnutls/lib -Wl,-rpath,/opt/gstreamer/lib $LDFLAGS"
130+
export LD_LIBRARY_PATH="/opt/gnutls/lib:/opt/ffmpeg-gnutls/lib:/opt/gstreamer/lib:$LD_LIBRARY_PATH"
106131
for lib in libavformat.so.62 libavfilter.so.11; do
107132
echo ">>> ldd for $lib:"
108133
ldd /opt/ffmpeg-gnutls/lib/$lib
@@ -113,50 +138,46 @@ jobs:
113138
fi
114139
echo "✔ $lib is using custom GnuTLS"
115140
done
116-
117141
- name: Clone & checkout gst-libav1.0 @ ${{ matrix.gst_ref }}
118142
run: |
119143
git clone https://salsa.debian.org/gstreamer-team/gst-libav1.0.git gst-libav
120144
cd gst-libav
121145
git fetch --tags
122146
git checkout ${{ matrix.gst_ref }}
123-
124147
- name: Build gst-libav1.0 (${{ matrix.gst_ref }})
125148
working-directory: gst-libav
126149
run: |
127-
export PKG_CONFIG_PATH="/opt/gnutls/lib/pkgconfig:/opt/ffmpeg-gnutls/lib/pkgconfig:$PKG_CONFIG_PATH"
128-
export CPPFLAGS="-I/opt/gnutls/include -I/opt/ffmpeg-gnutls/include $CPPFLAGS"
129-
export LDFLAGS="-L/opt/gnutls/lib -L/opt/ffmpeg-gnutls/lib \
130-
-Wl,-rpath,/opt/gnutls/lib -Wl,-rpath=/opt/ffmpeg-gnutls/lib $LDFLAGS"
131-
export LD_LIBRARY_PATH="/opt/gnutls/lib:/opt/ffmpeg-gnutls/lib:$LD_LIBRARY_PATH"
150+
export PKG_CONFIG_PATH="/opt/gnutls/lib/pkgconfig:/opt/ffmpeg-gnutls/lib/pkgconfig:/opt/gstreamer/lib/pkgconfig:$PKG_CONFIG_PATH"
151+
export CPPFLAGS="-I/opt/gnutls/include -I/opt/ffmpeg-gnutls/include -I/opt/gstreamer/include $CPPFLAGS"
152+
export LDFLAGS="-L/opt/gnutls/lib -L/opt/ffmpeg-gnutls/lib -L/opt/gstreamer/lib \
153+
-Wl,-rpath,/opt/gnutls/lib -Wl,-rpath=/opt/ffmpeg-gnutls/lib -Wl,-rpath,/opt/gstreamer/lib $LDFLAGS"
154+
export LD_LIBRARY_PATH="/opt/gnutls/lib:/opt/ffmpeg-gnutls/lib:/opt/gstreamer/lib:$LD_LIBRARY_PATH"
132155
rm -rf build
133156
meson setup build --prefix=/usr -Ddoc=disabled -Dtests=enabled
134157
ninja -C build
135-
136158
- name: Smoke-test plugin with gst-inspect & playbin
137159
working-directory: gst-libav
138160
run: |
139-
export PKG_CONFIG_PATH="/opt/gnutls/lib/pkgconfig:/opt/ffmpeg-gnutls/lib/pkgconfig:$PKG_CONFIG_PATH"
140-
export CPPFLAGS="-I/opt/gnutls/include -I/opt/ffmpeg-gnutls/include $CPPFLAGS"
141-
export LDFLAGS="-L/opt/gnutls/lib -L/opt/ffmpeg-gnutls/lib \
142-
-Wl,-rpath,/opt/gnutls/lib -Wl,-rpath=/opt/ffmpeg-gnutls/lib $LDFLAGS"
143-
export LD_LIBRARY_PATH="/opt/gnutls/lib:/opt/ffmpeg-gnutls/lib:$LD_LIBRARY_PATH"
161+
export PKG_CONFIG_PATH="/opt/gnutls/lib/pkgconfig:/opt/ffmpeg-gnutls/lib/pkgconfig:/opt/gstreamer/lib/pkgconfig:$PKG_CONFIG_PATH"
162+
export CPPFLAGS="-I/opt/gnutls/include -I/opt/ffmpeg-gnutls/include -I/opt/gstreamer/include $CPPFLAGS"
163+
export LDFLAGS="-L/opt/gnutls/lib -L/opt/ffmpeg-gnutls/lib -L/opt/gstreamer/lib \
164+
-Wl,-rpath,/opt/gnutls/lib -Wl,-rpath=/opt/ffmpeg-gnutls/lib -Wl,-rpath,/opt/gstreamer/lib $LDFLAGS"
165+
export LD_LIBRARY_PATH="/opt/gnutls/lib:/opt/ffmpeg-gnutls/lib:/opt/gstreamer/lib:$LD_LIBRARY_PATH"
144166
PAGER=cat \
145167
GST_PLUGIN_PATH=$(pwd)/build \
146-
GST_PLUGIN_SYSTEM_PATH_1_0=/usr/lib/x86_64-linux-gnu/gstreamer-1.0 \
147-
gst-inspect-1.0 libav
168+
GST_PLUGIN_SYSTEM_PATH_1_0=/opt/gstreamer/lib/gstreamer-1.0 \
169+
/opt/gstreamer/bin/gst-inspect-1.0 libav
148170
timeout 30s env \
149171
GST_PLUGIN_PATH=$(pwd)/build \
150-
GST_PLUGIN_SYSTEM_PATH_1_0=/usr/lib/x86_64-linux-gnu/gstreamer-1.0 \
151-
gst-launch-1.0 -v playbin \
172+
GST_PLUGIN_SYSTEM_PATH_1_0=/opt/gstreamer/lib/gstreamer-1.0 \
173+
/opt/gstreamer/bin/gst-launch-1.0 -v playbin \
152174
uri=https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8 || test $? -eq 124
153-
154175
- name: Run upstream gst-libav tests
155176
working-directory: gst-libav
156177
run: |
157-
export PKG_CONFIG_PATH="/opt/gnutls/lib/pkgconfig:/opt/ffmpeg-gnutls/lib/pkgconfig:$PKG_CONFIG_PATH"
158-
export CPPFLAGS="-I/opt/gnutls/include -I/opt/ffmpeg-gnutls/include $CPPFLAGS"
159-
export LDFLAGS="-L/opt/gnutls/lib -L/opt/ffmpeg-gnutls/lib \
160-
-Wl,-rpath,/opt/gnutls/lib -Wl,-rpath=/opt/ffmpeg-gnutls/lib $LDFLAGS"
161-
export LD_LIBRARY_PATH="/opt/gnutls/lib:/opt/ffmpeg-gnutls/lib:$LD_LIBRARY_PATH"
178+
export PKG_CONFIG_PATH="/opt/gnutls/lib/pkgconfig:/opt/ffmpeg-gnutls/lib/pkgconfig:/opt/gstreamer/lib/pkgconfig:$PKG_CONFIG_PATH"
179+
export CPPFLAGS="-I/opt/gnutls/include -I/opt/ffmpeg-gnutls/include -I/opt/gstreamer/include $CPPFLAGS"
180+
export LDFLAGS="-L/opt/gnutls/lib -L/opt/ffmpeg-gnutls/lib -L/opt/gstreamer/lib \
181+
-Wl,-rpath,/opt/gnutls/lib -Wl,-rpath=/opt/ffmpeg-gnutls/lib -Wl,-rpath,/opt/gstreamer/lib $LDFLAGS"
182+
export LD_LIBRARY_PATH="/opt/gnutls/lib:/opt/ffmpeg-gnutls/lib:/opt/gstreamer/lib:$LD_LIBRARY_PATH"
162183
meson test -C build --print-errorlogs

0 commit comments

Comments
 (0)