mirror of
https://gitlab.freedesktop.org/libinput/libei.git
synced 2026-05-20 03:38:10 +02:00
The current implementation of that portal has two methods: EmulateInput to authenticate and Connect to get the fd to the EIS implementation. The portal implementation is in charge of finding EIS and restricting it if need be. This uses libsystemd because we can integrate that with epoll and our libei_dispatch() method. GDBus requires a glib mainloop, so it's not really suitable here. Given how simple this is anyway, it's easy to just do the DBus bits in the caller and then hand the fd to ei_setup_backend_fd(). A eis-fake-portal is provided for testing, this "portal" can use the custom portal bus name and connect the eis-demo-client to the eis-demo-server. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
300 lines
9.6 KiB
YAML
300 lines
9.6 KiB
YAML
# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0 filetype=yaml:
|
|
|
|
{# You're looking at the template here, so you can ignore the below
|
|
warning. This is the right file to edit #}
|
|
########################################
|
|
# #
|
|
# THIS FILE IS GENERATED, DO NOT EDIT #
|
|
# #
|
|
########################################
|
|
|
|
.templates_sha: &template_sha a7ea345b7a0b19e8a86a20d5349f9eca797cc1c7 # see https://docs.gitlab.com/ee/ci/yaml/#includefile
|
|
|
|
include:
|
|
{% for distro in distributions|sort(attribute="name") %}
|
|
{% if not distro.does_not_have_ci_templates %}
|
|
# {{ distro.name.capitalize() }} container builder template
|
|
- project: 'freedesktop/ci-templates'
|
|
ref: *template_sha
|
|
file: '/templates/{{distro.name}}.yml'
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
stages:
|
|
- prep # prep work like rebuilding the container images if there is a change
|
|
- build # for actually building and testing things in a container
|
|
- distro # distribs test
|
|
- container_clean # clean up unused container images
|
|
- deploy
|
|
|
|
variables:
|
|
###############################################################################
|
|
# This is the list of packages required to build libinput with the default #
|
|
# configuration. #
|
|
# #
|
|
# Run dnf install/apt-get install/.. with the list of packages for your #
|
|
# distribution #
|
|
# #
|
|
# See the documentation here: #
|
|
# https://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html #
|
|
###############################################################################
|
|
FEDORA_PACKAGES: 'git diffutils gcc gcc-c++ pkgconf-pkg-config meson systemd-devel protobuf-c-devel libxkbcommon-devel'
|
|
############################ end of package lists #############################
|
|
|
|
# these tags should be updated each time the list of packages is updated
|
|
# changing these will force rebuilding the associated image
|
|
# Note: these tags have no meaning and are not tied to a particular
|
|
# libinput version
|
|
{% for distro in distributions %}
|
|
{{"%-13s"| format(distro.name.upper() + '_TAG:')}}'{{distro.tag}}'
|
|
{% endfor %}
|
|
|
|
FDO_UPSTREAM_REPO: whot/libei
|
|
|
|
MESON_BUILDDIR: "build dir"
|
|
NINJA_ARGS: ''
|
|
MESON_ARGS: ''
|
|
MESON_TEST_ARGS: ''
|
|
GIT_DEPTH: 1
|
|
|
|
.policy:
|
|
retry:
|
|
max: 2
|
|
when:
|
|
- runner_system_failure
|
|
- stuck_or_timeout_failure
|
|
# cancel run when a newer version is pushed to the branch
|
|
interruptible: true
|
|
|
|
.default_artifacts:
|
|
artifacts:
|
|
name: "meson-logs-$CI_JOB_NAME"
|
|
when: always
|
|
expire_in: 1 week
|
|
paths:
|
|
- $MESON_BUILDDIR/meson-logs
|
|
reports:
|
|
junit: $MESON_BUILDDIR/meson-logs/.junit.xml
|
|
|
|
#################################################################
|
|
# #
|
|
# prep stage #
|
|
# #
|
|
#################################################################
|
|
|
|
# Re-generate the CI script and make sure it's the one currently checked in
|
|
# If this job fails, re-generate the gitlab-ci.yml script, see
|
|
# $SRCDIR/.gitlab-ci/generate-gitlab-ci.py
|
|
#
|
|
check-ci-script:
|
|
image: golang:alpine
|
|
stage: prep
|
|
before_script:
|
|
- apk add python3 py-pip git
|
|
- pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates
|
|
script:
|
|
- ci-fairy generate-template
|
|
- git diff --exit-code && exit 0 || true
|
|
- echo "Committed gitlab-ci.yml differs from generated gitlab-ci.yml. Please verify"
|
|
- exit 1
|
|
|
|
#
|
|
# Verify that commit messages are as expected, signed-off, etc.
|
|
#
|
|
|
|
check-commit:
|
|
image: golang:alpine
|
|
stage: prep
|
|
before_script:
|
|
- apk add python3 py-pip git
|
|
- pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates
|
|
script:
|
|
- ci-fairy check-commits --signed-off-by --junit-xml=results.xml
|
|
except:
|
|
- master@whot/libei
|
|
variables:
|
|
GIT_DEPTH: 100
|
|
artifacts:
|
|
reports:
|
|
junit: results.xml
|
|
|
|
#
|
|
# Verify that the merge request has the allow-collaboration checkbox ticked
|
|
#
|
|
|
|
check-merge-request:
|
|
image: golang:alpine
|
|
stage: deploy
|
|
before_script:
|
|
- apk add python3 py-pip git
|
|
- pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates
|
|
script:
|
|
- ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml
|
|
artifacts:
|
|
when: on_failure
|
|
reports:
|
|
junit: results.xml
|
|
allow_failure: true
|
|
|
|
#
|
|
# Note: images are rebuilt weekly with a scheduled pipeline with FDO_FORCE_REBUILD set
|
|
#
|
|
#
|
|
{% for distro in distributions %}
|
|
{% for version in distro.versions %}
|
|
{{distro.name}}:{{version}}@container-prep:
|
|
extends:
|
|
- .fdo.container-build@{{distro.name}}
|
|
- .policy
|
|
stage: prep
|
|
variables:
|
|
GIT_STRATEGY: none
|
|
FDO_DISTRIBUTION_VERSION: '{{version}}'
|
|
FDO_DISTRIBUTION_PACKAGES: ${{distro.name.upper()}}_PACKAGES
|
|
FDO_DISTRIBUTION_TAG: ${{distro.name.upper()}}_TAG
|
|
{% if version == 'ubuntu'%}
|
|
FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
{% endfor %}
|
|
|
|
#################################################################
|
|
# #
|
|
# container clean stage #
|
|
# run during the clean stage #
|
|
# #
|
|
#################################################################
|
|
|
|
#
|
|
# This stage will look for the container images we currently have in
|
|
# the registry and will remove any that are not tagged with the provided
|
|
# $container_image:$tag
|
|
#
|
|
.container-clean:
|
|
stage: container_clean
|
|
extends:
|
|
- .policy
|
|
image: golang:alpine
|
|
before_script:
|
|
- apk add python3 py-pip git
|
|
- pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates
|
|
script:
|
|
# Go to your Profile, Settings, Access Tokens
|
|
# Create a personal token with 'api' scope, copy the value.
|
|
# Go to CI/CD, Schedules, schedule a new monthly job (or edit the existing one)
|
|
# Define a variable of type File named AUTHFILE. Content is that token
|
|
# value.
|
|
- ci-fairy -v --authfile $AUTHFILE delete-image
|
|
--repository $FDO_DISTRIBUTION_NAME/$FDO_DISTRIBUTION_VERSION
|
|
--exclude-tag $FDO_DISTRIBUTION_TAG
|
|
dependencies: []
|
|
allow_failure: true
|
|
only:
|
|
- schedules
|
|
|
|
{% for distro in distributions %}
|
|
{% for version in distro.versions %}
|
|
{{distro.name}}:{{version}}@container-clean:
|
|
extends:
|
|
- .container-clean
|
|
variables:
|
|
GIT_STRATEGY: none
|
|
{{distro.name.upper()}}_VERSION: '{{version}}'
|
|
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/{{distro.name}}/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
|
|
FDO_DISTRIBUTION_VERSION: '{{version}}'
|
|
FDO_DISTRIBUTION_TAG: ${{distro.name.upper()}}_TAG
|
|
|
|
{% endfor %}
|
|
{% endfor %}
|
|
|
|
#################################################################
|
|
# #
|
|
# build stage #
|
|
# #
|
|
#################################################################
|
|
|
|
.build@template:
|
|
extends:
|
|
- .policy
|
|
- .default_artifacts
|
|
stage: build
|
|
script:
|
|
- .gitlab-ci/meson-build.sh
|
|
dependencies: []
|
|
|
|
#
|
|
# Fedora
|
|
#
|
|
|
|
{% for distro in distributions if distro.use_for_custom_build_tests %}
|
|
{% set version = "{}".format(distro.versions|last()) %}
|
|
.{{distro.name}}-build@template:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .build@template
|
|
variables:
|
|
FDO_DISTRIBUTION_VERSION: '{{version}}'
|
|
FDO_DISTRIBUTION_TAG: ${{distro.name.upper()}}_TAG
|
|
needs:
|
|
- "{{distro.name}}:{{version}}@container-prep"
|
|
|
|
default-build-release@{{distro.name}}:{{version}}:
|
|
stage: distro
|
|
extends:
|
|
- .{{distro.name}}-build@template
|
|
variables:
|
|
MESON_ARGS: "-Dbuildtype=release"
|
|
CFLAGS: "-Werror"
|
|
|
|
build-no-libxkcommon-nodeps@{{distro.name}}:{{version}}:
|
|
extends:
|
|
- .{{distro.name}}-build@template
|
|
before_script:
|
|
- dnf remove -y libxkcommon-devel
|
|
|
|
build-no-portal@{{distro.name}}:{{version}}:
|
|
extends:
|
|
- .{{distro.name}}-build@template
|
|
before_script:
|
|
- dnf remove -y libsystemd-devel
|
|
variables:
|
|
MESON_ARGS: "-Dportal=false"
|
|
|
|
valgrind@{{distro.name}}:{{version}}:
|
|
extends:
|
|
- .{{distro.name}}-build@template
|
|
variables:
|
|
MESON_TEST_ARGS: '--setup=valgrind'
|
|
before_script:
|
|
- dnf install -y valgrind
|
|
|
|
{% endfor %}
|
|
|
|
#################################################################
|
|
# #
|
|
# distro stage #
|
|
# #
|
|
#################################################################
|
|
|
|
{% for distro in distributions %}
|
|
{% for version in distro.versions %}
|
|
{{distro.name}}:{{version}}@default-build:
|
|
stage: distro
|
|
extends:
|
|
- .build@template
|
|
- .fdo.distribution-image@{{distro.name}}
|
|
variables:
|
|
FDO_DISTRIBUTION_VERSION: '{{version}}'
|
|
FDO_DISTRIBUTION_TAG: ${{distro.name.upper()}}_TAG
|
|
{# Where we have extra_variables defined, add them to the list #}
|
|
{% if distro.build is defined and distro.build.extra_variables is defined %}
|
|
{% for var in distro.build.extra_variables %}
|
|
{{var}}
|
|
{% endfor %}
|
|
{% endif %}
|
|
needs:
|
|
- "{{distro.name}}:{{version}}@container-prep"
|
|
|
|
{% endfor %}
|
|
{% endfor %}
|