diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index be03fa95c..5cffa14e6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,5 @@ # SPDX-License-Identifier: CC0-1.0 -# SPDX-FileCopyrightText: 2018-2023 Collabora, Ltd. and the Monado contributors +# SPDX-FileCopyrightText: 2018-2024 Collabora, Ltd. and the Monado contributors ############################################### # GENERATED - DO NOT EDIT @@ -126,11 +126,17 @@ win:container_prep: +# Variables for build and usage of Debian bookworm image +.monado.variables.debian:bookworm: + variables: + FDO_DISTRIBUTION_VERSION: "bookworm" + FDO_DISTRIBUTION_TAG: "2024-03-21.2" + # Variables for build and usage of Debian bullseye image .monado.variables.debian:bullseye: variables: FDO_DISTRIBUTION_VERSION: "bullseye" - FDO_DISTRIBUTION_TAG: "2024-01-16" + FDO_DISTRIBUTION_TAG: "2024-03-21" # Variables for build and usage of Debian bookworm-ndk image .monado.variables.debian:bookworm-ndk: @@ -164,6 +170,18 @@ win:container_prep: ### # Container prep jobs +# Make Debian bookworm image +debian:bookworm:container_prep: + stage: container_prep + extends: + - .container-rules + - .monado.variables.debian:bookworm + - .fdo.container-build@debian # from ci-templates + + variables: + FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates clang-format cmake codespell curl debhelper devscripts doxygen dput-ng gettext-base git glslang-tools graphviz libbluetooth-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev ninja-build pandoc patch pipx pkg-config python3 python3-click python3-pip unzip wayland-protocols wget' + FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/i386_and_proclamation_container_prep.sh' + # Make Debian bullseye image debian:bullseye:container_prep: stage: container_prep @@ -173,8 +191,7 @@ debian:bullseye:container_prep: - .fdo.container-build@debian # from ci-templates variables: - FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates clang-format cmake codespell curl debhelper devscripts doxygen dput-ng gettext-base git glslang-tools graphviz libbluetooth-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev ninja-build pandoc patch pkg-config python3 python3-click python3-pip unzip wget' - FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/i386_and_proclamation_container_prep.sh' + FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libbluetooth-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev ninja-build pandoc patch pkg-config python3 unzip wayland-protocols wget' # Make Debian bookworm-ndk image debian:bookworm-ndk:container_prep: @@ -197,7 +214,7 @@ ubuntu:focal:container_prep: - .fdo.container-build@ubuntu # from ci-templates variables: - FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libbluetooth-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev ninja-build pandoc patch pkg-config python3 unzip wget' + FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libbluetooth-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev ninja-build pandoc patch pkg-config python3 unzip wayland-protocols wget' # Make Ubuntu jammy image ubuntu:jammy:container_prep: @@ -208,7 +225,7 @@ ubuntu:jammy:container_prep: - .fdo.container-build@ubuntu # from ci-templates variables: - FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libbluetooth-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev ninja-build pandoc patch pkg-config python3 reprepro unzip wget' + FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libbluetooth-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev ninja-build pandoc patch pkg-config python3 reprepro unzip wayland-protocols wget' # Make Arch image arch:container_prep: @@ -237,6 +254,14 @@ alpine:container_prep: ### # Container usage base jobs +# Base for using Debian bookworm image +.monado.image.debian:bookworm: + extends: + - .monado.variables.debian:bookworm + - .fdo.distribution-image@debian # from ci-templates + - .build-rules + + # Base for using Debian bullseye image .monado.image.debian:bullseye: extends: @@ -289,7 +314,7 @@ alpine:container_prep: # Style check job format-and-spellcheck: extends: - - .monado.image.debian:bullseye + - .monado.image.debian:bookworm stage: build script: @@ -316,7 +341,7 @@ debian:cmake: stage: build extends: - .monado.packaging.conditions - - .monado.image.debian:bullseye + - .monado.image.debian:bookworm before_script: - pushd doc/changes - proclamation build vNEXT @@ -334,7 +359,7 @@ debian:cmake: debian:cmake-no-opencv: stage: build extends: - - .monado.image.debian:bullseye + - .monado.image.debian:bookworm script: - .gitlab-ci/prebuild.sh @@ -344,7 +369,7 @@ debian:cmake-no-opencv: debian:cmake-no-sdl2: stage: build extends: - - .monado.image.debian:bullseye + - .monado.image.debian:bookworm script: - .gitlab-ci/prebuild.sh @@ -354,7 +379,7 @@ debian:cmake-no-sdl2: debian:cmake-no-service: stage: build extends: - - .monado.image.debian:bullseye + - .monado.image.debian:bookworm script: - .gitlab-ci/prebuild.sh @@ -364,13 +389,23 @@ debian:cmake-no-service: debian:cmake:32bit: stage: build extends: - - .monado.image.debian:bullseye + - .monado.image.debian:bookworm script: - .gitlab-ci/prebuild.sh - .gitlab-ci/ci-cmake-build.sh -DCMAKE_TOOLCHAIN_FILE=.gitlab-ci/i386.cmake -DXRT_HAVE_OPENCV=OFF - cd build && ctest --output-on-failure +debian:bullseye:cmake: + stage: build + extends: + - .monado.image.debian:bullseye + script: + + - .gitlab-ci/prebuild.sh + - .gitlab-ci/ci-cmake-build.sh + - cd build && ctest --output-on-failure + ndk:armeabi-v7a: stage: build extends: @@ -566,6 +601,33 @@ windows: +debian:bookworm:package: + extends: + - .monado.image.debian:bookworm + - .monado.packaging.conditions + variables: + GIT_STRATEGY: clone + DEBFULLNAME: "Monado CI" + DEBEMAIL: "rylie.pavlik@collabora.com" + DISTRO: debian + CODENAME: bookworm + DEB_VERSION_SUFFIX: bpo12 + stage: package + before_script: + - git config --global user.name Monado CI + - git config --global user.email rylie.pavlik@collabora.com + script: + - .gitlab-ci/prebuild.sh + # Prep the source tree + - git clean -dfx + # Call this script to build binary and source packages. + # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints. + - .gitlab-ci/build-and-submit-package.sh + artifacts: + paths: + - "incoming/" + expire_in: 2 days + debian:bullseye:package: extends: - .monado.image.debian:bullseye @@ -654,6 +716,7 @@ reprepro:package: - .monado.packaging.conditions needs: + - debian:bookworm:package - debian:bullseye:package - ubuntu:focal:package - ubuntu:jammy:package diff --git a/.gitlab-ci/config.yml b/.gitlab-ci/config.yml index 429bff255..d9a77cc0e 100644 --- a/.gitlab-ci/config.yml +++ b/.gitlab-ci/config.yml @@ -1,5 +1,5 @@ # SPDX-License-Identifier: CC0-1.0 -# SPDX-FileCopyrightText: 2018-2023 Collabora, Ltd. and the Monado contributors +# SPDX-FileCopyrightText: 2018-2024, Collabora, Ltd. and the Monado contributors # Please run the following from the repo root after modifying this file: # make -f .gitlab-ci/ci-scripts.mk @@ -15,41 +15,42 @@ fdo_ci_templates_sha: 185ede0e9b9b1924b92306ab8b882a6294e92613 unzip: cmake: ninja-build: - libeigen3-dev: curl: patch: python3: pkg-config: + ca-certificates: + glslang-tools: + libeigen3-dev: + libgl1-mesa-dev: + libglvnd-dev: + libudev-dev: + libusb-1.0-0-dev: + libvulkan-dev: libx11-dev: libx11-xcb-dev: - libxxf86vm-dev: - libxrandr-dev: libxcb-randr0-dev: - libvulkan-dev: - glslang-tools: - libglvnd-dev: - libgl1-mesa-dev: - ca-certificates: - libusb-1.0-0-dev: - libudev-dev: + libxrandr-dev: + libxxf86vm-dev: + wayland-protocols: # These are optional packages, that we're building against to ensure we build as much code as possible - libhidapi-dev: - libwayland-dev: - libuvc-dev: - libopencv-dev: - libv4l-dev: - libcjson-dev: - libsdl2-dev: - libegl1-mesa-dev: - libdbus-1-dev: - libgstreamer1.0-dev: - libgstreamer-plugins-base1.0-dev: - libsystemd-dev: - libbsd-dev: libbluetooth-dev: + libbsd-dev: + libcjson-dev: + libdbus-1-dev: + libegl1-mesa-dev: + libgstreamer-plugins-base1.0-dev: + libgstreamer1.0-dev: + libhidapi-dev: + libopencv-dev: + libsdl2-dev: + libsystemd-dev: + libuvc-dev: + libv4l-dev: + libwayland-dev: # Only used for building packages - devscripts: debhelper: + devscripts: dput-ng: gettext-base: pandoc: @@ -69,15 +70,16 @@ distributions: - name: debian images: # This image does some extra work. - - codename: bullseye + - codename: bookworm script: i386_and_proclamation_container_prep.sh - tag: "2024-01-16" - deb_version_suffix: bpo11 + tag: "2024-03-21.2" + deb_version_suffix: bpo12 packages: <<: *default_debian_packages codespell: doxygen: graphviz: + pipx: python3-pip: python3-click: clang-format: @@ -111,6 +113,15 @@ distributions: # OpenCV doesn't play nicely with us in multi-arch. XRT_HAVE_OPENCV: "OFF" + - codename: bullseye + tag: "2024-03-21" + deb_version_suffix: bpo11 + packages: + <<: *default_debian_packages + build_jobs: + - name: "debian:bullseye:cmake" + + # This one is pretty minimal, compared to the others. # Though, we now install the android SDK in it... - codename: bookworm-ndk diff --git a/.gitlab-ci/distributions b/.gitlab-ci/distributions index a03d28bb5..7452ff0a8 100644 --- a/.gitlab-ci/distributions +++ b/.gitlab-ci/distributions @@ -1,3 +1,11 @@ +Origin: monado.freedesktop.org +Description: Monado CI apt repository +Codename: bookworm +Architectures: amd64 i386 source +Components: main +Tracking: minimal +SignWith: ${MONADO_GPG_FINGERPRINT} + Origin: monado.freedesktop.org Description: Monado CI apt repository Codename: bullseye diff --git a/.gitlab-ci/i386_and_proclamation_container_prep.sh b/.gitlab-ci/i386_and_proclamation_container_prep.sh index d13b90327..24c5cda53 100755 --- a/.gitlab-ci/i386_and_proclamation_container_prep.sh +++ b/.gitlab-ci/i386_and_proclamation_container_prep.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2018-2022, Collabora, Ltd. and the Monado contributors +# Copyright 2018-2024, Collabora, Ltd. and the Monado contributors # SPDX-License-Identifier: BSL-1.0 ( @@ -9,4 +9,5 @@ bash ./install-ci-fairy.sh ) -python3 -m pip install proclamation cmakelang +# Getting the path set up right for pipx in CI is a hassle. +python3 -m pip install --break-system-packages proclamation cmakelang diff --git a/.gitlab-ci/reprepro.sh b/.gitlab-ci/reprepro.sh index 5b2fea400..c0f695820 100755 --- a/.gitlab-ci/reprepro.sh +++ b/.gitlab-ci/reprepro.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # SPDX-License-Identifier: CC0-1.0 -# SPDX-FileCopyrightText: 2018-2022 Collabora, Ltd. and the Monado contributors +# SPDX-FileCopyrightText: 2018-2024 Collabora, Ltd. and the Monado contributors ############################################### # GENERATED - DO NOT EDIT # @@ -30,6 +30,16 @@ echo "---------------------" # For each distro, sign the changes file and add it to the repo. +# bookworm +if [ -f "incoming/bookworm.distro" ]; then + VERSION=$(cat incoming/bookworm.distro) + echo "Signing and processing bookworm: ${VERSION}" + debsign -k "${MONADO_GPG_FINGERPRINT}" -p "gpg --batch --no-tty --yes --pinentry-mode loopback --passphrase ${MONADO_GPG_PASSPHRASE}" "incoming/monado_${VERSION}_amd64.changes" + reprepro -V --ignore=wrongdistribution -b repo include bookworm "incoming/monado_${VERSION}_amd64.changes" +else + echo "Skipping bookworm - no artifact found" +fi + # bullseye if [ -f "incoming/bullseye.distro" ]; then VERSION=$(cat incoming/bullseye.distro) diff --git a/.gitlab-ci/templates/.gitlab-ci.yml.jinja b/.gitlab-ci/templates/.gitlab-ci.yml.jinja index 95a03f992..fb642eb05 100644 --- a/.gitlab-ci/templates/.gitlab-ci.yml.jinja +++ b/.gitlab-ci/templates/.gitlab-ci.yml.jinja @@ -1,5 +1,5 @@ # SPDX-License-Identifier: CC0-1.0 -# SPDX-FileCopyrightText: 2018-2023 Collabora, Ltd. and the Monado contributors +# SPDX-FileCopyrightText: 2018-2024 Collabora, Ltd. and the Monado contributors {# ignore the warning, this is actually the template to edit. #} ############################################### diff --git a/.gitlab-ci/templates/distributions.jinja b/.gitlab-ci/templates/distributions.jinja index 049165c0d..3d3b66ef6 100644 --- a/.gitlab-ci/templates/distributions.jinja +++ b/.gitlab-ci/templates/distributions.jinja @@ -1,5 +1,5 @@ {# -Copyright 2020-2022, Collabora, Ltd. +Copyright 2020-2024, Collabora, Ltd. SPDX-License-Identifier: BSL-1.0 #} diff --git a/.gitlab-ci/templates/reprepro.sh.jinja b/.gitlab-ci/templates/reprepro.sh.jinja index abb442d29..c1a7da6b0 100644 --- a/.gitlab-ci/templates/reprepro.sh.jinja +++ b/.gitlab-ci/templates/reprepro.sh.jinja @@ -1,6 +1,6 @@ #!/usr/bin/env bash # SPDX-License-Identifier: CC0-1.0 -# SPDX-FileCopyrightText: 2018-2022 Collabora, Ltd. and the Monado contributors +# SPDX-FileCopyrightText: 2018-2024 Collabora, Ltd. and the Monado contributors {# ignore the warning, this is actually the template to edit. #} ###############################################