environment: BUILD_SUBMITTER: dalligi CI: "true" CI_API_GRAPHQL_URL: https://gitlab.freedesktop.org/api/graphql CI_API_V4_URL: https://gitlab.freedesktop.org/api/v4 CI_COMMIT_AUTHOR: Simon Ser CI_COMMIT_BEFORE_SHA: b29ebe4a1c6569dadb8630f35e1763ccc8954772 CI_COMMIT_BRANCH: backport-0.18.2 CI_COMMIT_DESCRIPTION: |4- We were always creating a custom mode object when the output didn't have a fixed mode. This is important to handle two cases: - Virtual outputs with no concept of fixed modes. - DRM outputs with a list of fixed modes but with a custom mode set. However, in the case where an output didn't have a fixed mode and was disabled, we were also creating the custom mode object. Clients would then see a "ghost" mode: a mode object with no properties at all. Fix this by only creating the custom mode object if the output is enabled. Fixes: 5de9e1a99d66 ("wlr-output-management: Send custom modes to clients") Closes: https://github.com/swaywm/sway/issues/8420 (cherry picked from commit 2c3053370c274f86411dda1c5fced6b1416d8ad1) CI_COMMIT_MESSAGE: | output-management-v1: only create custom mode object for enabled heads We were always creating a custom mode object when the output didn't have a fixed mode. This is important to handle two cases: - Virtual outputs with no concept of fixed modes. - DRM outputs with a list of fixed modes but with a custom mode set. However, in the case where an output didn't have a fixed mode and was disabled, we were also creating the custom mode object. Clients would then see a "ghost" mode: a mode object with no properties at all. Fix this by only creating the custom mode object if the output is enabled. Fixes: 5de9e1a99d66 ("wlr-output-management: Send custom modes to clients") Closes: https://github.com/swaywm/sway/issues/8420 (cherry picked from commit 2c3053370c274f86411dda1c5fced6b1416d8ad1) CI_COMMIT_REF_NAME: backport-0.18.2 CI_COMMIT_REF_PROTECTED: "false" CI_COMMIT_REF_SLUG: backport-0-18-2 CI_COMMIT_SHA: 0e002db57c3e5377fbce8ed4c784753b2340efa3 CI_COMMIT_SHORT_SHA: 0e002db5 CI_COMMIT_TIMESTAMP: "2024-11-11T14:21:21-05:00" CI_COMMIT_TITLE: 'output-management-v1: only create custom mode object for enabled heads' CI_CONFIG_PATH: .gitlab-ci.yml CI_DEFAULT_BRANCH: master CI_JOB_ID: "66433747" CI_JOB_NAME: archlinux CI_JOB_NAME_SLUG: archlinux CI_JOB_STAGE: test CI_JOB_STARTED_AT: "2024-11-11T19:21:35Z" CI_JOB_URL: https://gitlab.freedesktop.org/bl4ckb0ne/wlroots/-/jobs/66433747 CI_NODE_TOTAL: "1" CI_OPEN_MERGE_REQUESTS: wlroots/wlroots!4906 CI_PAGES_DOMAIN: pages.freedesktop.org CI_PAGES_URL: https://bl4ckb0ne.pages.freedesktop.org/wlroots CI_PIPELINE_CREATED_AT: "2024-11-11T19:21:30Z" CI_PIPELINE_ID: "1308394" CI_PIPELINE_IID: "274" CI_PIPELINE_NAME: "" CI_PIPELINE_SOURCE: push CI_PIPELINE_URL: https://gitlab.freedesktop.org/bl4ckb0ne/wlroots/-/pipelines/1308394 CI_PROJECT_CLASSIFICATION_LABEL: "" CI_PROJECT_DESCRIPTION: A modular Wayland compositor library CI_PROJECT_ID: "12159" CI_PROJECT_NAME: wlroots CI_PROJECT_NAMESPACE: bl4ckb0ne CI_PROJECT_NAMESPACE_ID: "10077" CI_PROJECT_PATH: bl4ckb0ne/wlroots CI_PROJECT_PATH_SLUG: bl4ckb0ne-wlroots CI_PROJECT_REPOSITORY_LANGUAGES: c,meson,glsl,makefile,shell CI_PROJECT_ROOT_NAMESPACE: bl4ckb0ne CI_PROJECT_TITLE: wlroots CI_PROJECT_URL: https://gitlab.freedesktop.org/bl4ckb0ne/wlroots CI_PROJECT_VISIBILITY: public CI_REGISTRY: registry.freedesktop.org CI_REGISTRY_USER: gitlab-ci-token CI_RUNNER_DESCRIPTION: dalligi SourceHut bridge CI_RUNNER_ID: "2241" CI_RUNNER_TAGS: '["dalligi"]' CI_SERVER_FQDN: gitlab.freedesktop.org CI_SERVER_HOST: gitlab.freedesktop.org CI_SERVER_NAME: GitLab CI_SERVER_PORT: "443" CI_SERVER_PROTOCOL: https CI_SERVER_REVISION: e8dca573167 CI_SERVER_SHELL_SSH_HOST: gitlab.freedesktop.org CI_SERVER_SHELL_SSH_PORT: "22" CI_SERVER_URL: https://gitlab.freedesktop.org CI_SERVER_VERSION: 17.5.1 CI_SERVER_VERSION_MAJOR: "17" CI_SERVER_VERSION_MINOR: "5" CI_SERVER_VERSION_PATCH: "1" CI_TEMPLATE_REGISTRY_HOST: registry.gitlab.com GITLAB_CI: "true" GITLAB_FEATURES: "" GITLAB_USER_EMAIL: simon@bl4ckb0ne.ca GITLAB_USER_ID: "9835" GITLAB_USER_LOGIN: bl4ckb0ne GITLAB_USER_NAME: Simon Zeni image: archlinux packages: - clang - lcms2 - libinput - libdisplay-info - libliftoff - libxkbcommon - mesa - meson - pixman - wayland - wayland-protocols - xcb-util-errors - xcb-util-image - xcb-util-renderutil - xcb-util-wm - xorg-xwayland - seatd - vulkan-icd-loader - vulkan-headers - glslang - hwdata sources: - https://gitlab-ci-token:glcbt-64_sVfxBhs9wyQHbyHdAv1z@gitlab.freedesktop.org/bl4ckb0ne/wlroots.git#0e002db57c3e5377fbce8ed4c784753b2340efa3 tasks: - setup: | cd wlroots CC=gcc meson setup build-gcc --fatal-meson-warnings --default-library=both -Dauto_features=enabled --prefix /usr -Db_sanitize=address,undefined CC=clang meson setup build-clang --fatal-meson-warnings -Dauto_features=enabled -Dc_std=c11 - gcc: | cd wlroots/build-gcc ninja sudo ninja install cd ../tinywl make - clang: | cd wlroots/build-clang ninja - smoke-test: | cd wlroots/build-gcc/tinywl sudo modprobe vkms udevadm settle export WLR_BACKENDS=drm export WLR_RENDERER=pixman export WLR_DRM_DEVICES=/dev/dri/by-path/platform-vkms-card export UBSAN_OPTIONS=halt_on_error=1 sudo chmod ugo+rw /dev/dri/by-path/platform-vkms-card sudo -E seatd-launch -- ./tinywl -s 'kill $PPID' || [ $? = 143 ]