[libcamera-ci] WIP: Drop support for Debian 11
diff mbox series

Message ID 20260611160354.1900259-1-laurent.pinchart@ideasonboard.com
State New
Headers show
Series
  • [libcamera-ci] WIP: Drop support for Debian 11
Related show

Commit Message

Laurent Pinchart June 11, 2026, 4:03 p.m. UTC
Debian 11 (Bullseye) will reach end of LTS life on 2026-08-31. Drop it
from the CI.

The main effect is dropping compilation testing on gcc 9 and 10. gcc
10.1 has been released 6 years ago, and the last minor release (10.5) 3
years ago. It is not shipped as the default compiler by any LTS of the
major distributions we support.

gcc 11, on the other hand, is the default compiler on Ubuntu 22.04 LTS,
supported until May 2027. Add it to the Debian 12 builds to ensure
coverage of the whole range of compilers that libcamera supports.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
I'm sending this patch for early review, my plan is to delay merging it
until end of August when LTS support for Bullseye ends.
---
 .gitlab-ci/setup-container.sh | 44 ++++-------------------------------
 gitlab-ci.yml                 | 29 +++--------------------
 2 files changed, 7 insertions(+), 66 deletions(-)


base-commit: fc3798d77d07ae71c6d0e9b6c6957694a8170cd3

Patch
diff mbox series

diff --git a/.gitlab-ci/setup-container.sh b/.gitlab-ci/setup-container.sh
index 6c4b439b887b..bb00895c1888 100755
--- a/.gitlab-ci/setup-container.sh
+++ b/.gitlab-ci/setup-container.sh
@@ -67,6 +67,7 @@  PKGS_LIBCAMERA_RUNTIME_MULTIARCH=(
 	libudev-dev
 	libunwind-dev
 	libyaml-dev
+	libyuv-dev
 	lttng-tools
 	nlohmann-json3-dev
 	qt6-base-dev
@@ -109,15 +110,11 @@  declare -A components
 
 # Install additional packages on a per distribution version basis.
 case $FDO_DISTRIBUTION_VERSION in
-'bullseye')
-	# gcc 9 to expand compilation testing coverage.
-	PKGS_LIBCAMERA_RUNTIME+=( g++-9 )
-	;;
 'bookworm')
+	# gcc 11 to expand compilation testing coverage.
+	PKGS_LIBCAMERA_RUNTIME+=( g++-11 )
 	# libclang-rt-dev for the clang ASan runtime.
 	PKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libclang-rt-dev )
-	# For the Android camera HAL and the virtual pipeline handler.
-	PKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libyuv-dev )
 	;;
 'trixie')
 	# gcc 13 to expand compilation testing coverage.
@@ -138,8 +135,6 @@  case $FDO_DISTRIBUTION_VERSION in
 	PKGS_LIBCAMERA_RUNTIME+=( clang-format jq python3-autopep8 reuse shellcheck )
 	# libclang-rt-dev for the clang ASan runtime.
 	PKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libclang-rt-19-dev )
-	# For the Android camera HAL and the virtual pipeline handler.
-	PKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libyuv-dev )
 	# For lc-compliance in the `test-lc-compliance:virtual` job
 	# libevent-dev cannot be used here, see build-libcamera-common.sh
 	PKGS_LIBCAMERA_RUNTIME_MULTIARCH+=( libevent-2.1-7t64 libevent-pthreads-2.1-7t64 )
@@ -170,14 +165,6 @@  cbuild_install_pkgs() {
 
 	local arch
 
-	# The qt6-tools-dev-tools package is only available for bullseye in the
-	# backports repository. Enable backports only for that version.
-	if [[ $FDO_DISTRIBUTION_VERSION == 'bullseye' ]] ; then
-		echo "deb http://archive.debian.org/debian bullseye-backports main" \
-		       > /etc/apt/sources.list.d/bullseye-backports.list
-		apt update
-	fi
-
 	apt install -y ${pkgs_cbuild[@]}
 	apt-mark auto ${pkgs_cbuild[@]}
 
@@ -220,13 +207,8 @@  dpkg_check_version() {
 cbuild_fixups() {
 	echo "Applying miscellaneous fixups"
 
-	local pip3_options
 	local pkg
 
-	if [[ $FDO_DISTRIBUTION_VERSION != 'bullseye' ]] ; then
-		pip3_options=--break-system-packages
-	fi
-
 	# Install packages from pip to ensure minimum versions.
 	for pkg in "${PKGS_PIP_MIN_VERSIONS[@]}" ; do
 		pkg=($pkg)
@@ -254,27 +236,9 @@  cbuild_fixups() {
 			fi
 
 			apt install -y python3-pip
-			pip3 install ${pip3_options} ${pip_name}==${min_version}
+			pip3 install --break-system-packages ${pip_name}==${min_version}
 		fi
 	done
-
-	# Create pybind11.pc manually if not provided by the distribution
-	# package.
-	if [[ ! -f /usr/share/pkgconfig/pybind11.pc ]] ; then
-		echo "pybind11-dev package not providing pybind11.pc, creating file manually"
-
-		version=$(dpkg_version pybind11-dev)
-
-		cat <<EOF > /usr/share/pkgconfig/pybind11.pc
-prefix=/usr
-includedir=\${prefix}/include
-
-Name: pybind11
-Description: Seamless operability between C++11 and Python
-Version: ${version}
-Cflags: -I\${includedir}
-EOF
-	fi
 }
 
 cbuild_cleanup_pkgs() {
diff --git a/gitlab-ci.yml b/gitlab-ci.yml
index 427f2d2516dc..d01ee87d3325 100644
--- a/gitlab-ci.yml
+++ b/gitlab-ci.yml
@@ -62,11 +62,6 @@  include:
     ref: *templates_sha
     file: '/templates/debian.yml'
 
-.libcamera-ci.debian:11:
-  variables:
-    FDO_DISTRIBUTION_VERSION: 'bullseye'
-    FDO_DISTRIBUTION_TAG: '2026-04-05.0'
-
 .libcamera-ci.debian:12:
   variables:
     FDO_DISTRIBUTION_VERSION: 'bookworm'
@@ -92,11 +87,6 @@  include:
       fi ;
       .gitlab-ci/setup-container.sh
 
-container-debian:11:
-  extends:
-    - .container-debian
-    - .libcamera-ci.debian:11
-
 container-debian:12:
   extends:
     - .container-debian
@@ -152,22 +142,6 @@  container-debian:13:
     BUILD_TYPE: debug
     MESON_OPTIONS: ${MESON_ALL_OPTIONS}
 
-build-full:debian:11:
-  extends:
-    - .libcamera-ci.debian:11
-    - .build-full:debian
-  needs:
-    - job: container-debian:11
-      artifacts: false
-  parallel:
-    matrix:
-      - ARCH: amd64
-        CC: gcc-9
-        CXX: g++-9
-      - ARCH: amd64
-        CC: gcc-10
-        CXX: g++-10
-
 build-full:debian:12:
   extends:
     - .libcamera-ci.debian:12
@@ -180,6 +154,9 @@  build-full:debian:12:
       ${MESON_ALL_OPTIONS}
   parallel:
     matrix:
+      - ARCH: amd64
+        CC: gcc-11
+        CXX: g++-11
       - ARCH: amd64
         CC: gcc-12
         CXX: g++-12