Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 913906 Details for
Bug 937846
dev-libs/libei-1.3.0 fails tests: 9 libei:python / scanner-pytest FAIL 0.63s exit status 1
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
from Arniiiii: work/libei-1.3.0-build/meson-logs/testlog.txt
file_937846.txt (text/plain), 124.58 KB, created by
Arniiiii
on 2024-12-13 09:41:41 UTC
(
hide
)
Description:
from Arniiiii: work/libei-1.3.0-build/meson-logs/testlog.txt
Filename:
MIME Type:
Creator:
Arniiiii
Created:
2024-12-13 09:41:41 UTC
Size:
124.58 KB
patch
obsolete
>Log of Meson test suite run on 2024-12-13T09:27:43.500948 > >Inherited environment: SANDBOX_MESSAGE_P@TH=/proc/4/fd/2 SLOT=0 SHELL=/bin/bash separator_powerline_left='î²' RUBY_TARGETS='' CFLAGS_x32=-mx32 PORTAGE_INST_UID=0 KERNEL_ABI=amd64 PORTAGE_PYTHONPATH=/usr/lib/python3.12/site-packages QEMU_SOFTMMU_TARGETS='' MAKING_BINPKG_FEATURES='binpkg-docompress binpkg-multi-instance' PORTAGE_FEATURES='assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg buildpkg-live collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles installsources ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news noclean nostrip parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms split-elog split-log strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr' __E_EXEDESTTREE='' ac_cv_c_undeclared_builtin_options='none needed' ESYSROOT='' XDG_CONFIG_DIRS=/etc/xdg LESS='-sFRiMX --shift 5' PORTAGE_SCHEDULING_POLICY=idle ROOTPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/lib/llvm/20/bin:/usr/lib/llvm/18/bin:/usr/lib/llvm/17/bin:/opt/cuda/bin CFLAGS_x86='-m32 -mfpmath=sse' TERM_PROGRAM_VERSION=3.4 JDK_HOME=/etc/java-config-2/current-system-vm USE_EXPAND_VALUES_KERNEL='Darwin linux SunOS' PORTAGE_PYTHON=/usr/bin/python3.12 PYTHON_SINGLE_TARGET='' __E_DOCDESTTREE='' PROFILE_ONLY_VARIABLES='ARCH ELIBC IUSE_IMPLICIT KERNEL USE_EXPAND_IMPLICIT USE_EXPAND_UNPREFIXED USE_EXPAND_VALUES_ARCH USE_EXPAND_VALUES_ELIBC USE_EXPAND_VALUES_KERNEL' R_HOME=/usr/lib64/R SYMLINK_LIB=no TMUX=/tmp/tmux-0/default,5768,0 PKG_CONFIG_PATH=/var/tmp/portage/dev-libs/libei-1.3.0/temp/python3.12/pkgconfig SANDBOX_ACTIVE=armedandready DEBUGBUILD=1 USERLAND=GNU CPU_FLAGS_X86='' PKG_TMPDIR=/var/tmp/portage/._unmerge_ LUA_TARGETS='' LDFLAGS_x86='-m elf_i386' TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=134217728 MULTILIB_STRICT_DIRS='/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib' CGO_LDFLAGS='-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--defsym=__gentoo_check_ldflags__=0' PKGUSE='' JAVA_HOME=/etc/java-config-2/current-system-vm TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE=1 DOTNET_ROOT=/opt/dotnet-sdk-bin-8.0 SANDBOX_ON=1 IUSE_EFFECTIVE='abi_x86_64 alpha amd64 amd64-linux arm arm64 arm64-macos elibc_Darwin elibc_SunOS elibc_bionic elibc_glibc elibc_mingw elibc_musl elogind hppa kernel_Darwin kernel_SunOS kernel_linux loong m68k mips ppc ppc-macos ppc64 ppc64-linux prefix prefix-guest prefix-stack riscv s390 sparc systemd test x64-macos x64-solaris x86 x86-linux' BINPKG_FORMAT=gpkg EPREFIX='' EBUILD_PHASE_FUNC=src_test CAMERAS='' EPYTHON=python3.12 CURL_SSL='' PORTAGE_IPC_DAEMON=1 TMUX_PLUGIN_MANAGER_PATH=/root/.config/tmux/plugins/ EBUILD_PHASE=test IUSE_IMPLICIT='abi_x86_64 prefix prefix-guest prefix-stack' color_window_off_status_current_bg=colour254 ANT_HOME=/usr/share/ant AMDGPU_TARGETS='' PORTAGE_SIGPIPE_STATUS=141 OFFICE_IMPLEMENTATION='' CBUILD=x86_64-pc-linux-gnu yank=/root/.config/tmux/yank.sh LDFLAGS_amd64='-m elf_x86_64' color_dark=colour232 BINPKG_GPG_VERIFY_BASE_COMMAND='/usr/bin/gpg --verify --batch --no-tty --no-auto-check-trustdb --status-fd 2 [PORTAGE_CONFIG] [SIGNATURE]' DEFAULT_ABI=amd64 GUILE_SINGLE_TARGET='' ALSA_CARDS='' ABI_S390='' KERNEL=linux FFLAGS='-O3 -pipe -march=alderlake -mabm -mno-cldemote -mno-kl -mno-pconfig -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=48 --param=l2-cache-size=30720 -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -fgraphite-identity -floop-interchange -floop-strip-mine -floop-nest-optimize -ftree-loop-linear -ggdb3 -frecord-gcc-switches' EDITOR=/bin/nano ED=/var/tmp/portage/dev-libs/libei-1.3.0/image MULTILIB_STRICT_DENY='64-bit.*shared object' PORTAGE_ARCHLIST='alpha amd64 amd64-linux arm arm-linux arm64 arm64-linux arm64-macos hppa loong m68k mips ppc ppc-macos ppc64 ppc64-linux riscv riscv-linux s390 sparc x64-macos x64-solaris x86 x86-linux x86-macos' EBUILD=/var/db/repos/gentoo/dev-libs/libei/libei-1.3.0.ebuild INHERITED=' toolchain-funcs multilib flag-o-matic multiprocessing ninja-utils python-utils-r1 meson python-any-r1' OPENMPI_RM='' ADA_TARGET='' EBUILD_MASTER_PID=21 PORTAGE_REPO_NAME=gentoo PWD=/var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build PORTAGE_RESTRICT='' PORTAGE_DOCOMPRESS_SIZE_LIMIT=128 LOGNAME=portage EXEOPTIONS=-m0755 CTARGET_default=x86_64-pc-linux-gnu DEFINED_PHASES=' compile configure install prepare setup test unpack' LIBDIR_amd64=lib64 wg_is_zoomed='#[fg=colour232,bg=colour134]#{?window_zoomed_flag,[Z],}#[default]' SANDBOX_VERBOSE=1 PORTAGE_WORKDIR_MODE=0700 BECAUSE_I_WANT_MANUALLY_DELETE_LOGS_WHEN_I_WANT=noclean PKGDIR=/var/cache/binpkgs color_blue=colour39 FILESDIR=/var/tmp/portage/dev-libs/libei-1.3.0/files DIROPTIONS=-m0755 MAKEOPTS=-j24 PORTAGE_CONFIGROOT=/ wg_date='#[fg=colour134]%h %d %H:%M#[default]' ENV_UNSET='CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME' PM_EBUILD_HOOK_DIR=/etc/portage/env FIND_BAD_PACKAGE_FEATURES=multilib-strict CXXFLAGS='-O3 -pipe -march=alderlake -mabm -mno-cldemote -mno-kl -mno-pconfig -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=48 --param=l2-cache-size=30720 -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -fgraphite-identity -floop-interchange -floop-strip-mine -floop-nest-optimize -ftree-loop-linear -ggdb3 -frecord-gcc-switches' PORTAGE_OVERRIDE_EPREFIX='' MARCH_NATIVE_GCC='-march=alderlake -mabm -mno-cldemote -mno-kl -mno-pconfig -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=48 --param=l2-cache-size=30720' LLVM_SLOT='' T=/var/tmp/portage/dev-libs/libei-1.3.0/temp S=/var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0 P=libei-1.3.0 color_window_off_indicator=colour088 D=/var/tmp/portage/dev-libs/libei-1.3.0/image A='libei-1.3.0.tar.bz2 munit-fbbdf1467eb0d04a6ee465def2e529e4c87f2118.tar.gz' CATEGORY=dev-libs LDFLAGS_x32='-m elf32_x86_64' color_black=colour232 LD_PRELOAD=libsandbox.so PYTHON_TARGETS='' QA_VDB=y color_green=colour076 CALLIGRA_FEATURES='' LDFLAGS='-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--defsym=__gentoo_check_ldflags__=0' HOME=/var/tmp/portage/dev-libs/libei-1.3.0/homedir LIBREOFFICE_EXTENSIONS='' QA_CMP=y LANG=en_US.utf8 LTO_FLAGS_GCC='-flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing' CFLAGS_amd64=-m64 WORKDIR=/var/tmp/portage/dev-libs/libei-1.3.0/work QEMU_USER_TARGETS='' LS_COLORS='' INSOPTIONS=-m0644 SANDBOX_LIB=libsandbox.so UWSGI_PLUGINS='' COLUMNS=232 CHOST_x86=i686-pc-linux-gnu BROOT='' PORTAGE_TMPDIR=/var/tmp LTO_WARNINGS_GCC='-Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing' BECAUSE_PACKAGE_TESTING_WIKI_LDF=-Wl,--defsym=__gentoo_check_ldflags__=0 color_red=colour160 PORTAGE_COLORMAP='PORTAGE_COLOR_BAD=$'"'"''"'"' >PORTAGE_COLOR_BRACKET=$'"'"''"'"' >PORTAGE_COLOR_ERR=$'"'"''"'"' >PORTAGE_COLOR_GOOD=$'"'"''"'"' >PORTAGE_COLOR_HILITE=$'"'"''"'"' >PORTAGE_COLOR_INFO=$'"'"''"'"' >PORTAGE_COLOR_LOG=$'"'"''"'"' >PORTAGE_COLOR_NORMAL=$'"'"''"'"' >PORTAGE_COLOR_QAWARN=$'"'"''"'"' >PORTAGE_COLOR_WARN=$'"'"''"'"'' SANDBOX_READ=/:/var/tmp/portage LCD_DEVICES='' BINPKG_GPG_VERIFY_GPG_HOME=/etc/portage/gnupg RUSTFLAGS='-C target-cpu=native -C opt-level=3 -C link-arg=-Wl,-z,pack-relative-relocs ' FEATURES='assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg buildpkg-live collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles installsources ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news noclean nostrip parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms split-elog split-log strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr' TMPDIR=/var/tmp/portage/dev-libs/libei-1.3.0/temp PORTAGE_BIN_PATH=/usr/lib/portage/python3.12 IWDT_ALL=y CPU_FLAGS_PPC='' SANDBOX_METHOD=any _tide_location_color='' OPENMPI_OFED_FEATURES='' CGO_CFLAGS='-O3 -pipe -march=alderlake -mabm -mno-cldemote -mno-kl -mno-pconfig -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=48 --param=l2-cache-size=30720 -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -fgraphite-identity -floop-interchange -floop-strip-mine -floop-nest-optimize -ftree-loop-linear -ggdb3 -frecord-gcc-switches' wg_is_keys_off='#[fg=white,bg=colour088]#([ $(tmux show-option -qv key-table) = '"'"'off'"'"' ] && echo '"'"'OFF'"'"')#[default]' color_purple=colour134 PORTAGE_INTERNAL_CALLER=1 PORTAGE_COMPRESSION_COMMAND='xz -T24 --memlimit-compress=50% -q -9 -T 24' PVR=1.3.0 PORTAGE_VERBOSE=1 color_session_text=colour39 color_level_warn=colour220 PKG_LOGDIR=/var/tmp/portage/dev-libs/libei-1.3.0/temp/logging CGO_CXXFLAGS='-O3 -pipe -march=alderlake -mabm -mno-cldemote -mno-kl -mno-pconfig -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=48 --param=l2-cache-size=30720 -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -fgraphite-identity -floop-interchange -floop-strip-mine -floop-nest-optimize -ftree-loop-linear -ggdb3 -frecord-gcc-switches' separator_powerline_right='î°' CPU_FLAGS_ARM='' KEYWORDS='~alpha amd64 arm arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86' PORTAGE_COMPRESS_EXCLUDE_SUFFIXES='css gif htm[l]? jp[e]?g js pdf png' PORTAGE_BUILD_USER=portage OPENMPI_FABRICS='' NGINX_MODULES_MAIL='' USE_EXPAND_UNPREFIXED=ARCH MOPREFIX=libei CHOST_amd64=x86_64-pc-linux-gnu QA_SED=y MOZ_GMP_PATH=/usr/lib64/nsbrowser/plugins/gmp-gmpopenh264/system-installed FFTOOLS='' LLVM_TARGETS='' FETCHCOMMAND_SSH='bash -c "x=\${2#ssh://} ; host=\${x%%/*} ; port=\${host##*:} ; host=\${host%:*} ; [[ \${host} = \${port} ]] && port= ; exec rsync --rsh=\"ssh \${port:+-p\${port}} \${3}\" -avP \"\${host}:/\${x#*/}\" \"\$1\"" rsync "${DISTDIR}/${FILE}" "${URI}" "${PORTAGE_SSH_OPTS}"' JAVAC=/etc/java-config-2/current-system-vm/bin/javac color_yellow=colour220 GOAMD64=v3 color_status_text=colour245 PORTAGE_PYM_PATH=/usr/lib/python3.12/site-packages PARALELL_SOME_STUFF_FEATURES=parallel-fetch FCFLAGS='-O3 -pipe -march=alderlake -mabm -mno-cldemote -mno-kl -mno-pconfig -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=48 --param=l2-cache-size=30720 -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -fgraphite-identity -floop-interchange -floop-strip-mine -floop-nest-optimize -ftree-loop-linear -ggdb3 -frecord-gcc-switches' _tide_pad=' ' STUDIO_JDK=/opt/android-studio/jbr MULTILIB_STRICT_EXEMPT='(perl5|gcc|binutils|eclipse-3|debug|portage|udev|systemd|clang|python-exec|llvm)' LUA_SINGLE_TARGET='' DISTUTILS_STRICT_ENTRY_POINTS=1 TERM=foot PROFILE_23_USRTYPE=split-usr BOOTSTRAP_USE='unicode pkg-config split-usr xml python_targets_python3_12 python_single_target_python3_12 multilib zstd cet' EROOT='' LESSOPEN='|lesspipe.sh %s' DEBUG_FLAGS_GCC=-ggdb3 PORTAGE_XATTR_EXCLUDE='bcachefs.* bcachefs_effective.* btrfs.* security.evm security.ima security.selinux system.nfs4_acl user.apache_handler user.Beagle.* user.dublincore.* user.mime_encoding user.xdg.*' PORTAGE_LOG_FILE=/var/tmp/portage/dev-libs/libei-1.3.0/temp/build.log NOCOLOR=no TMUX_PANE=%0 PORTAGE_DEBUG=0 PYTHON=/usr/bin/python3.12 PORTAGE_PROPERTIES='' color_level_ok=colour076 color_light=white SANDBOX_DEBUG=0 PORTAGE_DEPCACHEDIR=/var/cache/edb/dep L10N='' ALLOW_TEST=network ARCH=amd64 NGINX_MODULES_HTTP='' MANPAGER=manpager ROOT='' VIDEO_CARDS='' ABI_X86=64 TEMP=/var/tmp/portage/dev-libs/libei-1.3.0/temp BINPKG_GPG_SIGNING_DIGEST=SHA512 USE_EXPAND_VALUES_ARCH='alpha amd64 amd64-linux arm arm64 arm64-macos hppa loong m68k mips ppc ppc64 ppc64-linux ppc-macos riscv s390 sparc x64-macos x64-solaris x86 x86-linux' LIBDIR_x32=libx32 NPM_CONFIG_GLOBALCONFIG=/etc/npm/npmrc INPUT_DEVICES='' GPG_VERIFY_USER_DROP=nobody SHLVL=1 TEST_PACKAGES='collision-protect ipc-sandbox network-sandbox sandbox split-log split-elog strict test userfetch userpriv usersandbox' _tide_color_separator_same_color='' DISTDIR=/var/tmp/portage/dev-libs/libei-1.3.0/distdir enable_year2038=no PORTAGE_REPOSITORIES='[DEFAULT] >auto-sync = yes >main-repo = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >volatile = true > >[booboo] >auto-sync = yes >location = /var/db/repos/booboo >masters = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >sync-type = git >sync-uri = https://github.com/gentoo-mirror/booboo.git >volatile = false > >[crossdev_experiments] >auto-sync = no >location = /var/db/repos/crossdev_experiments >masters = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >volatile = false > >[ex_repo] >auto-sync = yes >location = /var/db/repos/ex_repo >masters = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >sync-type = git >sync-uri = https://github.com/Gerodote/ex_repo.git >volatile = false > >[gentoo] >auto-sync = yes >location = /var/db/repos/gentoo >masters = >priority = -1000 >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc >sync-openpgp-key-refresh = true >sync-openpgp-key-refresh-retry-count = 40 >sync-openpgp-key-refresh-retry-delay-exp-base = 2 >sync-openpgp-key-refresh-retry-delay-max = 60 >sync-openpgp-key-refresh-retry-delay-mult = 4 >sync-openpgp-key-refresh-retry-overall-timeout = 1200 >sync-openpgp-keyserver = hkps://keys.gentoo.org >sync-rcu = false >sync-type = rsync >sync-uri = rsync://rsync.gentoo.org/gentoo-portage >volatile = false >sync-rsync-verify-jobs = 1 >sync-rsync-verify-max-age = 3 >sync-rsync-verify-metamanifest = yes >sync-rsync-extra-opts = > >[gentoo-zh] >auto-sync = yes >location = /var/db/repos/gentoo-zh >masters = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >sync-type = git >sync-uri = https://github.com/gentoo-mirror/gentoo-zh.git >volatile = false > >[guru] >auto-sync = yes >location = /var/db/repos/guru >masters = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >sync-type = git >sync-uri = https://github.com/gentoo-mirror/guru.git >volatile = false > >[librewolf] >auto-sync = yes >location = /var/db/repos/librewolf >masters = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >sync-type = git >sync-uri = https://codeberg.org/librewolf/gentoo.git >volatile = false > >[mrpenguin] >auto-sync = yes >location = /var/db/repos/mrpenguin >masters = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >sync-type = git >sync-uri = https://github.com/Gerodote/MrPenguin-s_ebuilds >volatile = false > >[mv] >auto-sync = yes >location = /var/db/repos/mv >masters = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >sync-type = git >sync-uri = https://github.com/gentoo-mirror/mv.git >volatile = false > >[nest] >auto-sync = yes >location = /var/db/repos/nest >masters = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >sync-type = git >sync-uri = https://github.com/gentoo-mirror/nest.git >volatile = false > >[pf4public] >auto-sync = yes >location = /var/db/repos/pf4public >masters = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >sync-type = git >sync-uri = https://github.com/gentoo-mirror/pf4public.git >volatile = false > >[steam-overlay] >auto-sync = yes >location = /var/db/repos/steam-overlay >masters = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >sync-type = git >sync-uri = https://github.com/gentoo-mirror/steam-overlay.git >volatile = false > >[supertux88] >auto-sync = yes >location = /var/db/repos/supertux88 >masters = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >sync-type = git >sync-uri = https://github.com/gentoo-mirror/supertux88.git >volatile = false > >[torbrowser] >auto-sync = yes >location = /var/db/repos/torbrowser >masters = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >sync-type = git >sync-uri = https://github.com/gentoo-mirror/torbrowser.git >volatile = false > >[vowstar] >auto-sync = yes >location = /var/db/repos/vowstar >masters = gentoo >strict-misc-digests = true >sync-allow-hardlinks = true >sync-openpgp-key-refresh = true >sync-rcu = false >sync-type = git >sync-uri = https://github.com/gentoo-mirror/vowstar.git >volatile = false >' APACHE2_MPMS='' PAGER=/usr/bin/less PERL_FEATURES='' LEX=flex SANDBOX_WRITE=:/dev/console:/dev/fd:/dev/full:/dev/null:/dev/ptmx:/dev/pts/:/dev/pty:/dev/shm:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/proc/self/fd:/tmp/:/usr/lib/cf:/usr/lib/conftest:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/tmp/:/usr/tmp/cf:/usr/tmp/conftest:/var/tmp/:/var/tmp/portage:/var/tmp/portage/dev-libs/libei-1.3.0/homedir/.bash_history CHOST_default=x86_64-pc-linux-gnu GPSD_PROTOCOLS='' __E_DESTTREE=/usr LC_MESSAGES=C.utf8 XTABLES_ADDONS='' LICENSE=MIT PYTHONDONTWRITEBYTECODE=1 SYSROOT='' VOICEMAIL_STORAGE='' PV=1.3.0 RESUMECOMMAND_SSH='bash -c "x=\${2#ssh://} ; host=\${x%%/*} ; port=\${host##*:} ; host=\${host%:*} ; [[ \${host} = \${port} ]] && port= ; exec rsync --rsh=\"ssh \${port:+-p\${port}} \${3}\" -avP \"\${host}:/\${x#*/}\" \"\$1\"" rsync "${DISTDIR}/${FILE}" "${URI}" "${PORTAGE_SSH_OPTS}"' SANDBOX_LOG=/var/tmp/portage/dev-libs/libei-1.3.0/temp/sandbox.log wg_session='#[fg=colour39] #S #[default]' PR=r0 COLLECTD_PLUGINS='' PN=libei XARGS='xargs -r' __E_INSDESTTREE='' SANE_BACKENDS='' USE_EXPAND_IMPLICIT='ARCH ELIBC KERNEL' PF=libei-1.3.0 GUILE_TARGETS='' USE_EXPAND_VALUES_ELIBC='bionic Darwin glibc mingw musl SunOS' PORTAGE_BASHRC=/etc/portage/bashrc ACCEPT_LICENSE=MIT color_main=colour166 BUILD_PREFIX=/var/tmp/portage MERGE_TYPE=source gl_cv_func_getcwd_path_max=yes GCC_SPECS='' ABI_MIPS='' GSETTINGS_BACKEND=dconf PORTAGE_ACTUAL_DISTDIR=/var/cache/distfiles color_white=white CCACHE_DISABLE=1 LIBDIR_default=lib color_level_stress=colour160 SANDBOX_PREDICT=/var/tmp/portage/dev-libs/libei-1.3.0/homedir:/dev/crypto:/var/cache/man:/dev/nvidiactl:/dev/nvidia-caps:/dev/char:/dev/random:/proc/self/coredump_filter:/dev/random:/proc/self/coredump_filter:/dev/random:/proc/self/coredump_filter:/var/cache/fontconfig:/proc/self/task:/dev/nvidiactl:/dev/nvidia-uvm:/dev/ati/card:/dev/dri/card:/dev/dri/card0:/dev/dri/renderD128:/ LIBOPTIONS=-m0644 GRUB_PLATFORMS='' CGO_FFLAGS='-O3 -pipe -march=alderlake -mabm -mno-cldemote -mno-kl -mno-pconfig -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=48 --param=l2-cache-size=30720 -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -fgraphite-identity -floop-interchange -floop-strip-mine -floop-nest-optimize -ftree-loop-linear -ggdb3 -frecord-gcc-switches' GPG_VERIFY_GROUP_DROP=nogroup GCC_POLLY='-fgraphite-identity -floop-interchange -floop-strip-mine -floop-nest-optimize -ftree-loop-linear' SANDBOX_DENY='' LC_COLLATE=C XDG_DATA_DIRS=/root/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/etc/eselect/wine/share QA_CMP_ARGS=-xS color_secondary=colour134 CHOST=x86_64-pc-linux-gnu BINPKG_GPG_SIGNING_BASE_COMMAND='/usr/bin/flock /run/lock/portage-binpkg-gpg.lock /usr/bin/gpg --sign --armor [PORTAGE_CONFIG]' TMP=/var/tmp/portage/dev-libs/libei-1.3.0/temp PORTAGE_INST_GID=0 PATH=/var/tmp/portage/dev-libs/libei-1.3.0/temp/python3.12/bin:/usr/lib/portage/python3.12/ebuild-helpers/xattr:/usr/lib/portage/python3.12/ebuild-helpers:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/lib/llvm/20/bin:/usr/lib/llvm/18/bin:/usr/lib/llvm/17/bin:/etc/eselect/wine/bin:/opt/cuda/bin:/opt/cuda/libnvvp SANDBOX_DEBUG_LOG=/var/log/sandbox/sandbox-debug-4.log PORTAGE_BZIP2_COMMAND=bzip2 PORTAGE_BUILDDIR=/var/tmp/portage/dev-libs/libei-1.3.0 CHOST_x32=x86_64-pc-linux-gnux32 JUST_FUN_FEATURES='' NGINX_MODULES_STREAM='' USE='abi_x86_64 amd64 elibc_glibc elogind kernel_linux test' PORTAGE_REPO_REVISIONS='{"gentoo": "5293d4b91dabb4c61afc4990b4f177d273f0fc80"}' PHP_TARGETS='' POSTGRES_TARGETS='' CFLAGS='-O3 -pipe -march=alderlake -mabm -mno-cldemote -mno-kl -mno-pconfig -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=48 --param=l2-cache-size=30720 -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -fgraphite-identity -floop-interchange -floop-strip-mine -floop-nest-optimize -ftree-loop-linear -ggdb3 -frecord-gcc-switches' USE_EXPAND='ABI_MIPS ABI_S390 ABI_X86 ADA_TARGET ALSA_CARDS AMDGPU_TARGETS APACHE2_MODULES APACHE2_MPMS CALLIGRA_FEATURES CAMERAS COLLECTD_PLUGINS CPU_FLAGS_ARM CPU_FLAGS_PPC CPU_FLAGS_X86 CURL_QUIC CURL_SSL ELIBC FFTOOLS GPSD_PROTOCOLS GRUB_PLATFORMS GUILE_SINGLE_TARGET GUILE_TARGETS INPUT_DEVICES KERNEL L10N LCD_DEVICES LIBREOFFICE_EXTENSIONS LLVM_SLOT LLVM_TARGETS LUA_SINGLE_TARGET LUA_TARGETS NGINX_MODULES_HTTP NGINX_MODULES_MAIL NGINX_MODULES_STREAM OFFICE_IMPLEMENTATION OPENMPI_FABRICS OPENMPI_OFED_FEATURES OPENMPI_RM PERL_FEATURES PHP_TARGETS POSTGRES_TARGETS PYTHON_SINGLE_TARGET PYTHON_TARGETS QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS RUBY_TARGETS SANE_BACKENDS UWSGI_PLUGINS VIDEO_CARDS VOICEMAIL_STORAGE XTABLES_ADDONS' SANDBOX_BASHRC=/usr/share/sandbox/sandbox.bashrc wg_battery='#{battery_status_fg} #{battery_icon} #{battery_percentage}' MULTILIB_ABIS='amd64 x86' LV2_PATH=/usr/lib64/lv2 LIBDIR_x86=lib tmux_version=3.4 PORTAGE_GID=250 PORTAGE_BUILD_GROUP=portage gl_cv_compiler_check_decl_option=-Werror=implicit-function-declaration BECAUSE_PACKAGE_TESTING_WIKI_CF=-frecord-gcc-switches wg_user_host='#[fg=colour134]#(whoami)#[default]@#H' DEBUG_RELATED_FEATURES='installsources nostrip' APACHE2_MODULES='' COMMON_FLAGS='-O3 -pipe -march=alderlake -mabm -mno-cldemote -mno-kl -mno-pconfig -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=48 --param=l2-cache-size=30720 -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -fgraphite-identity -floop-interchange -floop-strip-mine -floop-nest-optimize -ftree-loop-linear -ggdb3 -frecord-gcc-switches' ELIBC=glibc EAPI=8 SHELL_SETS_TITLE=0 ABI=amd64 ECLASS_DEPTH=0 PORTAGE_BASHRC_FILES=/var/db/repos/gentoo/profiles/releases/23.0/profile.bashrc color_window_off_status_bg=colour238 OLDPWD=/var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0 color_orange=colour166 EMERGE_FROM=ebuild LADSPA_PATH=/usr/lib64/ladspa CURL_QUIC='' TERM_PROGRAM=tmux _=/usr/bin/meson > >==================================== 1/10 ==================================== >test: libei / unit-tests-utils >start time: 09:27:43 >duration: 0.02s >result: exit status 0 >command: UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 MESON_TEST_ITERATION=1 LD_LIBRARY_PATH=/var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/subprojects/munit MALLOC_PERTURB_=173 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/test/unit-tests-utils --log-visible debug >----------------------------------- stdout ----------------------------------- >Running test suite with seed 0x37fe6b07... >test_strv_from_mem [ OK ] [ 0.00002925 / 0.00002813 CPU ] >test_strlen0 [ OK ] [ 0.00000200 / 0.00000175 CPU ] >test_cmdline_as_str [ OK ] [ 0.00010315 / 0.00010301 CPU ] >test_strreplace [ OK ] [ 0.00001495 / 0.00001473 CPU ] >test_strendswith [ OK ] [ 0.00000419 / 0.00000395 CPU ] >test_strstartswith [ OK ] [ 0.00000563 / 0.00000470 CPU ] >test_strstrip [ OK ] [ 0.00001428 / 0.00001406 CPU ] >test_strjoin [ OK ] [ 0.00001338 / 0.00001306 CPU ] >test_kvsplit_double [ OK ] [ 0.00003381 / 0.00003359 CPU ] >test_strsplit [ OK ] [ 0.00001649 / 0.00001628 CPU ] >test_source_write [ OK ] [ 0.00009132 / 0.00009105 CPU ] >test_source_readd [ OK ] [ 0.00002197 / 0.00002170 CPU ] >test_source [ OK ] [ 0.00004173 / 0.00003612 CPU ] >test_sink [ OK ] [ 0.00001730 / 0.00001694 CPU ] >list_foreach [ OK ] [ 0.00000246 / 0.00000205 CPU ] >list_first_last [ OK ] [ 0.00000272 / 0.00000231 CPU ] >test_list_nth [ OK ] [ 0.00000280 / 0.00000251 CPU ] >test_list_append [ OK ] [ 0.00000246 / 0.00000216 CPU ] >test_list_insert [ OK ] [ 0.00000208 / 0.00000195 CPU ] >test_signal_blocker [ OK ] [ 0.00000508 / 0.00000499 CPU ] >test_pass_fd [ OK ] [ 0.00040939 / 0.00017053 CPU ] >test_iobuf_recv_fd [ OK ] [ 0.00006298 / 0.00006281 CPU ] >test_iobuf_append_fd_too_many [ OK ] [ 0.00005169 / 0.00005154 CPU ] >test_iobuf_append_fd [ OK ] [ 0.00002829 / 0.00002808 CPU ] >test_iobuf_append_short [ OK ] [ 0.00000888 / 0.00000873 CPU ] >test_iobuf_pop [ OK ] [ 0.00000955 / 0.00000932 CPU ] >test_iobuf_prepend_empty_buffer [ OK ] [ 0.00001211 / 0.00001175 CPU ] >test_iobuf_append_values [ OK ] [ 0.00000947 / 0.00000940 CPU ] >test_iobuf_append_prepend [ OK ] [ 0.00001120 / 0.00001106 CPU ] >test_iobuf_take_fd [ OK ] [ 0.00001068 / 0.00001045 CPU ] >test_iobuf_cleanup [ OK ] [ 0.00000858 / 0.00000841 CPU ] >test_iobuf_new [ OK ] [ 0.00000855 / 0.00000846 CPU ] >test_bits_mask [ OK ] [ 0.00000176 / 0.00000162 CPU ] >test_bits_flag_8 [ OK ] [ 0.00000715 / 0.00000081 CPU ] >test_bits_flag_32 [ OK ] [ 0.00000258 / 0.00000225 CPU ] >35 of 35 (100%) tests successful, 0 (0%) test skipped. >============================================================================== > >==================================== 2/10 ==================================== >test: libei / unit-tests-ei >start time: 09:27:43 >duration: 0.02s >result: exit status 0 >command: UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 MESON_TEST_ITERATION=1 MALLOC_PERTURB_=91 LD_LIBRARY_PATH=/var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/subprojects/munit MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/test/unit-tests-ei --log-visible debug >----------------------------------- stdout ----------------------------------- >Running test suite with seed 0xbaf30df7... >test_region_convert [ OK ] [ 0.00000318 / 0.00000265 CPU ] >test_region_contains [ OK ] [ 0.00000226 / 0.00000199 CPU ] >test_region_setters [ OK ] [ 0.00001138 / 0.00001124 CPU ] >test_log_handler [ OK ] [ 0.00012751 / 0.00012720 CPU ] >test_configure_name [ OK ] [ 0.00006527 / 0.00006517 CPU ] >test_init_unref [ OK ] [ 0.00001539 / 0.00001518 CPU ] >test_brei_send_message [ OK ] [ 0.00014905 / 0.00014882 CPU ] >test_brei_marshal_bad_sig [ OK ] [ 0.00001851 / 0.00001828 CPU ] >test_brei_marshal [ OK ] [ 0.00001177 / 0.00001157 CPU ] >test_brei_string_proto_length [ OK ] [ 0.00000259 / 0.00000226 CPU ] >10 of 10 (100%) tests successful, 0 (0%) test skipped. >============================================================================== > >==================================== 3/10 ==================================== >test: libei / unit-tests-eis >start time: 09:27:43 >duration: 0.02s >result: exit status 0 >command: MALLOC_PERTURB_=124 UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 MESON_TEST_ITERATION=1 LD_LIBRARY_PATH=/var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/subprojects/munit MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/test/unit-tests-eis --log-visible debug >----------------------------------- stdout ----------------------------------- >Running test suite with seed 0xff6b2d37... >test_region_contains [ OK ] [ 0.00000229 / 0.00000198 CPU ] >test_region_setters [ OK ] [ 0.00000238 / 0.00000204 CPU ] >test_log_handler [ OK ] [ 0.00006928 / 0.00006906 CPU ] >test_brei_send_message [ OK ] [ 0.00014179 / 0.00014156 CPU ] >test_brei_marshal_bad_sig [ OK ] [ 0.00001841 / 0.00001818 CPU ] >test_brei_marshal [ OK ] [ 0.00001026 / 0.00001019 CPU ] >test_brei_string_proto_length [ OK ] [ 0.00000263 / 0.00000243 CPU ] >7 of 7 (100%) tests successful, 0 (0%) test skipped. >============================================================================== > >==================================== 4/10 ==================================== >test: libei / unit-tests-oeffis >start time: 09:27:43 >duration: 0.02s >result: exit status 0 >command: UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 MALLOC_PERTURB_=34 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 MESON_TEST_ITERATION=1 LD_LIBRARY_PATH=/var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/subprojects/munit MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/test/unit-tests-oeffis --log-visible debug >----------------------------------- stdout ----------------------------------- >Running test suite with seed 0x18a31fd7... >test_failed_connect [ OK ] [ 0.00833934 / 0.00014505 CPU ] >test_init_unref [ OK ] [ 0.00002235 / 0.00002202 CPU ] >2 of 2 (100%) tests successful, 0 (0%) test skipped. >============================================================================== > >==================================== 5/10 ==================================== >test: libei / dtdcheck >start time: 09:27:43 >duration: 0.02s >result: exit status 0 >command: UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 MESON_TEST_ITERATION=1 MALLOC_PERTURB_=198 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /usr/bin/xmllint --dtdvalid /var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0/proto/protocol.dtd /var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0/proto/protocol.xml >----------------------------------- stdout ----------------------------------- ><?xml version="1.0" encoding="UTF-8"?> ><protocol name="ei"> > > <copyright> > Copyright © 2008-2011 Kristian Høgsberg > Copyright © 2010-2011 Intel Corporation > Copyright © 2012-2013 Collabora, Ltd. > Copyright © 2023 Red Hat, Inc. > > Permission is hereby granted, free of charge, to any person > obtaining a copy of this software and associated documentation files > (the "Software"), to deal in the Software without restriction, > including without limitation the rights to use, copy, modify, merge, > publish, distribute, sublicense, and/or sell copies of the Software, > and to permit persons to whom the Software is furnished to do so, > subject to the following conditions: > > The above copyright notice and this permission notice (including the > next paragraph) shall be included in all copies or substantial > portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS > BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN > ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. > </copyright> > > <interface name="ei_handshake" version="1"> > <description summary="handshake object"> > This is a special interface to setup the client as seen by the EIS > implementation. The object for this interface has the fixed object > id 0 and only exists until the connection has been set up, see the > ei_handshake.connection event. > > The ei_handshake version is 1 until: > - the EIS implementation sends the handshake_version event with > a version other than 1, and, in response, > - the client sends the handshake_version request with a > version equal or lower to the EIS implementation version. > > The EIS implementation must send the handshake_version event immediately > once the physical connection has been established. > > Once the ei_connection.connection event has been sent the handshake > is destroyed by the EIS implementation. > </description> > > <!-- ei_handshake client requests version 1 --> > > <request name="handshake_version" since="1"> > <description summary="handshake version notification request"> > Notifies the EIS implementation that this client supports the > given version of the ei_handshake interface. The version number > must be less than or equal to the version in the > handshake_version event sent by the EIS implementation when > the connection was established. > > Immediately after sending this request, the client must assume the negotiated > version number for the ei_handshake interface and the EIS implementation > may send events and process requests matching that version. > > This request must be sent exactly once and it must be the first request > the client sends. > </description> > <arg name="version" type="uint32" summary="the interface version"/> > </request> > > <request name="finish" since="1"> > <description summary="setup completion request"> > Notify the EIS implementation that configuration is complete. > > In the future (and possibly after requiring user interaction), > the EIS implementation responds by sending the ei_handshake.connection event. > </description> > </request> > > <enum name="context_type" since="1"> > <description summary="context type"> > This enum denotes context types for the libei context. > > A context type of receiver is a libei context receiving events > from the EIS implementation. A context type of sender is a libei context > sending events to the EIS implementation. > </description> > <entry name="receiver" value="1" summary="this client receives events from the EIS implementation"/> > <entry name="sender" value="2" summary="this client sends events to the EIS implementation"/> > </enum> > > <request name="context_type" since="1"> > <description summary="context type request"> > Notify the EIS implementation of the type of this context. The context types > defines whether the client will send events to or receive events from the > EIS implementation. > > Depending on the context type, certain requests must not be used and some > events must not be sent by the EIS implementation. > > This request is optional, the default client type is context_type.receiver. > This request must not be sent more than once and must be sent before > ei_handshake.finish. > </description> > <arg name="context_type" type="uint32" enum="context_type" summary="the client context type"/> > </request> > > <request name="name" since="1"> > <description summary="context name request"> > Notify the EIS implementation of the client name. The name is a > human-presentable UTF-8 string and should represent the client name > as accurately as possible. This name may be presented to the user > for identification of this client (e.g. to confirm the client has > permissions to connect). > > There is no requirement for the EIS implementation to use this name. For > example, where the client is managed through an XDG Desktop Portal an EIS > implementation would typically use client identification information sent > by the portal instead. > > This request is optional, the default client name is implementation-defined. > This request must not be sent more than once and must be sent before > ei_handshake.finish. > </description> > <arg name="name" type="string" summary="the client name"/> > </request> > > <request name="interface_version" since="1"> > <description summary="interface support notification"> > Notify the EIS implementation that the client supports the > given named interface with the given maximum version number. > > Future objects created by the EIS implementation will > use the respective interface version (or any lesser version) > as announced by the ei_connection.interface_version event. > > This request must be sent for the "ei_connection" interface, > failing to do so will result in the EIS implementation disconnecting > the client on ei_handshake.finish. > > This request must not be sent for the "ei_handshake" interface, use > the ei_handshake.handshake_version request instead. > > Note that an EIS implementation may consider some interfaces to > be required and immediately ei_connection.disconnect a client > not supporting those interfaces. > > This request must not be sent more than once per interface and must be > sent before ei_handshake.finish. > </description> > <arg name="name" type="string" summary="the interface name"/> > <arg name="version" type="uint32" summary="the interface version"/> > </request> > > <!-- ei_handshake events version 1 --> > <event name="handshake_version" since="1"> > <description summary="handshake version notification event"> > This event is sent exactly once and immediately after connection > to the EIS implementation. > > In response, the client must send the ei_handshake.handshake_version request > with any version up to including the version provided in this event. > See the ei_handshake.handshake_version request for details on what happens next. > </description> > <arg name="version" type="uint32" summary="the interface version"/> > </event> > > <event name="interface_version" since="1"> > <description summary="interface support event"> > Notifies the client that the EIS implementation supports > the given named interface with the given maximum version number. > > The client must not assume those interfaces are supported unless > and until those versions have been received. > > This request must not be sent for the "ei_handshake" interface, use > the handshake_version event instead. > > This event may be sent by the EIS implementation for any > other supported interface (but not necessarily all supported > interfaces) before the ei_handshake.connection event. > </description> > <arg name="name" type="string" summary="the interface name"/> > <arg name="version" type="uint32" summary="the interface version"/> > </event> > > <event name="connection" type="destructor" since="1"> > <description summary="the core connection object"> > Provides the client with the connection object that is the top-level > object for all future requests and events. > > This event is sent exactly once at some unspecified time after the client > sends the ei_handshake.finish request to the EIS implementation. > > The ei_handshake object will be destroyed by the > EIS implementation immediately after this event has been sent, a > client must not attempt to use it after that point. > > The version sent by the EIS implementation is the version of the "ei_connection" > interface as announced by ei_handshake.interface_version, or any > lower version. > > The serial number is the start value of the EIS implementation's serial > number sequence. Clients must not assume any specific value for this > serial number. Any future serial number in any event is monotonically > increasing by an unspecified amount. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > <arg name="connection" type="new_id" interface="ei_connection" summary="the connection object"/> > <arg name="version" type="uint32" summary="the version of the connection object"/> > </event> > </interface> > > <interface name="ei_connection" version="1"> > <description summary="core global object"> > The core connection object. This is the top-level object for any communication > with the EIS implementation. > > Note that for a client to receive this object, it must announce > support for this interface in ei_handshake.interface_version. > </description> > > <!-- ei_connection client requests version 1 --> > > <request name="sync" since="1"> > <description summary="asynchronous roundtrip"> > The sync request asks the EIS implementation to emit the 'done' event > on the returned ei_callback object. Since requests are > handled in-order and events are delivered in-order, this can > be used as a synchronization point to ensure all previous requests and the > resulting events have been handled. > > The object returned by this request will be destroyed by the > EIS implementation after the callback is fired and as such the client must not > attempt to use it after that point. > > The callback_data in the ei_callback.done event is always zero. > > Note that for a client to use this request it must announce > support for the "ei_callback" interface in ei_handshake.interface_version. > It is a protocol violation to request sync without having announced the > "ei_callback" interface and the EIS implementation must disconnect > the client. > </description> > <arg name="callback" type="new_id" interface="ei_callback" summary="callback object for the sync request"/> > <arg name="version" type="uint32" summary="the interface version"/> > </request> > > <request name="disconnect" type="destructor" since="1"> > <description summary="disconnection request"> > A request to the EIS implementation that this client should be disconnected. > This is a courtesy request to allow the EIS implementation to distinquish > between a client disconnecting on purpose and one disconnecting through the > socket becoming invalid. > > Immediately after sending this request, the client may destroy the > ei_connection object and it should close the socket. The EIS implementation > will treat the connection as already disconnected on receipt and does not > send the ei_connection.disconnect event in response to this request. > </description> > </request> > > <!-- ei_connection events version 1 --> > > <enum name="disconnect_reason" since="1"> > <description summary="disconnection reason"> > A reason why a client was disconnected. This enum is intended to > provide information to the client on whether it was disconnected as > part of normal operations or as result of an error on either the client > or EIS implementation side. > > A nonzero value describes an error, with the generic value "error" (1) reserved > as fallback. > > This enum may be extended in the future, clients must be able to handle > values that are not in their supported version of this enum. > </description> > <entry name="disconnected" value="0" summary="client was purposely disconnected"/> > <entry name="error" value="1" summary="an error caused the disconnection"/> > <entry name="mode" value="2" summary="sender/receiver client sent request for receiver/sender mode"/> > <entry name="protocol" value="3" summary="client committed a protocol violation"/> > <entry name="value" value="4" summary="client sent an invalid value"/> > <entry name="transport" value="5" summary="error on the transport layer"/> > </enum> > > <event name="disconnected" type="destructor" since="1"> > <description summary="disconnection event"> > This event may be sent by the EIS implementation immediately before > the client is disconnected. The last_serial argument is set to the last > serial number used in a request by the client or zero if the client has not > yet issued a request. > > Where a client is disconnected by EIS on purpose, for example after > a user interaction, the reason is disconnect_reason.disconnected (i.e. zero) > and the explanation is NULL. > > Where a client is disconnected due to some invalid request or other > protocol error, the reason is one of disconnect_reason (i.e. nonzero) and > explanation may contain a string explaining why. This string is > intended to help debugging only and is not guaranteed to stay constant. > > The ei_connection object will be destroyed by the > EIS implementation immediately after this event has been sent, a > client must not attempt to use it after that point. > > There is no guarantee this event is sent - the connection may be closed > without a disconnection event. > </description> > <arg name="last_serial" type="uint32" summary="the last serial sent by the EIS implementation"/> > <arg name="reason" type="uint32" enum="disconnect_reason" summary="the reason for being disconnected"/> > <arg name="explanation" type="string" allow-null="true" summary="an explanation for debugging purposes"/> > </event> > > <event name="seat" since="1"> > <description summary="Seat presence notification"> > Notification that a new seat has been added. > > A seat is a set of input devices that logically belong together. > > This event is only sent if the client announced support for the > "ei_seat" interface in ei_handshake.interface_version. > The interface version is equal or less to the client-supported > version in ei_handshake.interface_version for the "ei_seat" > interface. > </description> > <arg name="seat" type="new_id" interface="ei_seat"/> > <arg name="version" type="uint32" summary="the interface version"/> > </event> > > <event name="invalid_object" since="1"> > <description summary="Invalid object in request notification"> > Notification that an object ID used in an earlier request was > invalid and does not exist. > > This event is sent by the EIS implementation when an object that > does not exist as seen by the EIS implementation. The protocol is > asynchronous and this may occur e.g. when the EIS implementation > destroys an object at the same time as the client requests functionality > from that object. For example, an EIS implementation may send > ei_device.destroyed and destroy the device's resources (and protocol object) > at the same time as the client attempts to ei_device.start_emulating > on that object. > > It is the client's responsibilty to unwind any state changes done > to the object since the last successful message. > </description> > <arg name="last_serial" type="uint32" summary="the last serial sent by the EIS implementation"/> > <arg name="invalid_id" type="uint64"/> > </event> > > <event name="ping" since="1"> > <description summary="ping event"> > The ping event asks the client to emit the 'done' event > on the provided ei_pingpong object. Since requests are > handled in-order and events are delivered in-order, this can > be used as a synchronization point to ensure all previous requests > and the resulting events have been handled. > > The object returned by this request must be destroyed by the > ei client implementation after the callback is fired and as > such the client must not attempt to use it after that point. > > The callback_data in the resulting ei_pingpong.done request is > ignored by the EIS implementation. > > Note that for a EIS implementation to use this request the client must > announce support for this interface in ei_handshake.interface_version. It is > a protocol violation to send this event to a client without the > "ei_pingpong" interface. > </description> > <arg name="ping" type="new_id" interface="ei_pingpong" summary="callback object for the ping request"/> > <arg name="version" type="uint32" summary="the version of the callback object"/> > </event> > </interface> > > <interface name="ei_callback" version="1"> > <description summary="callback object"> > Interface for ensuring a roundtrip to the EIS implementation. > Clients can handle the 'done' event to get notified when > the related request that created the ei_callback object is done. > > Note that for a client to receive objects of this type, it must announce > support for this interface in ei_handshake.interface_version. > </description> > > <!-- ei_callback events version 1 --> > > <event name="done" type="destructor" since="1"> > <description summary="done event"> > Notify the client when the related request is done. Immediately after this event > the ei_callback object is destroyed by the EIS implementation and as such the > client must not attempt to use it after that point. > </description> > <arg name="callback_data" type="uint64" summary="request-specific data for the callback"/> > </event> > </interface> > > <interface name="ei_pingpong" version="1"> > <description summary="callback object"> > Interface for ensuring a roundtrip to the client implementation. > This interface is identical to ei_callback but is intended for > the EIS implementation to enforce a roundtrip to the client. > > Note that for a client to receive objects of this type, it must announce > support for this interface in ei_handshake.interface_version. > </description> > > <!-- ei_pingpong client requests version 1 --> > > <request name="done" type="destructor" since="1"> > <description summary="done event"> > Notify the EIS implementation when the related event is done. Immediately after this request > the ei_pingpong object is destroyed by the client and as such must not be used > any further. > </description> > <arg name="callback_data" type="uint64" summary="request-specific data for the callback"/> > </request> > > <!-- ei_pingpong events version 1 --> > </interface> > > <interface name="ei_seat" version="1"> > <description summary="seat object"> > An ei_seat represents a set of input devices that logically belong together. In most > cases only one seat is present and all input devices on that seat share the same > pointer and keyboard focus. > > A seat has potential capabilities, a client is expected to bind to those capabilities. > The EIS implementation then creates logical input devices based on the capabilities the > client is interested in. > > Immediately after creation of the ei_seat object, the EIS implementation sends a burst > of events with information about this seat. This burst of events is terminated by the > ei_seat.done event. > > Note that for a client to receive objects of this type, it must announce > support for this interface in ei_handshake.interface_version. > </description> > > <!-- ei_seat client requests version 1 --> > > <request name="release" since="1"> > <description summary="Seat removal request"> > Notification that the client is no longer interested in this seat. > The EIS implementation will release any resources related to this seat and > send the ei_seat.destroyed event once complete. > > Note that releasing a seat does not guarantee another seat becomes available. > In other words, in most single-seat cases, releasing the seat means the > connection becomes effectively inert. > </description> > </request> > > <request name="bind" since="1"> > <description summary="Seat binding"> > Bind to the bitmask of capabilities given. The bitmask is zero or more of the > masks representing an interface as provided in the ei_seat.capability event. > See the ei_seat.capability event documentation for examples. > > Binding masks that are not supported in the ei_device's interface version > is a client bug and may result in disconnection. > > A client may send this request multiple times to adjust the capabilities it > is interested in. If previously-bound capabilities are dropped by the client, > the EIS implementation may ei_device.remove devices that have these capabilities. > </description> > <arg name="capabilities" type="uint64" summary="bitmask of the capabilities"/> > </request> > > <!-- ei_seat events version 1 --> > > <event name="destroyed" type="destructor" since="1"> > <description summary="Seat removal notification"> > This seat has been removed and a client should release all > associated resources. > > This ei_seat object will be destroyed by the EIS implementation immmediately after > after this event is sent and as such the client must not attempt to use > it after that point. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > </event> > > <event name="name" since="1"> > <description summary="Seat name notification"> > The name of this seat, if any. This event is optional and sent once immediately > after object creation. > > It is a protocol violation to send this event after the ei_seat.done event. > </description> > <arg name="name" type="string" summary="the seat name"/> > </event> > > <event name="capability" since="1"> > <description summary="Seat capability notification"> > A notification that this seat supports devices with the given interface. > The interface is mapped to a bitmask by the EIS implementation. > A client may then binary OR these bitmasks in ei_seat.bind. > In response, the EIS implementation may then create device based on those > bound capabilities. > > For example, an EIS implementation may map "ei_pointer" to 0x1, > "ei_keyboard" to 0x4 and "ei_touchscreen" to 0x8. A client may then > ei_seat.bind(0xc) to bind to keyboard and touchscreen but not pointer. > Note that as shown in this example the set of masks may be sparse. > The value of the mask is contant for the lifetime of the seat but may differ > between seats. > > Note that seat capabilities only represent a mask of possible capabilities on > devices in this seat. A capability that is not available on the seat cannot > ever be available on any device in this seat. For example, a seat that only has the > pointer and keyboard capabilities can never have a device with the touchscreen > capability. It is up to the EIS implementation to decide how many (if any) devices > with any given capability exist in this seat. > > Only interfaces that the client announced during ei_handshake.interface_version > can be a seat capability. > > This event is sent multiple times - once per supported interface. > The set of capabilities is constant for the lifetime of the seat. > > It is a protocol violation to send this event after the ei_seat.done event. > </description> > <arg name="mask" type="uint64" summary="the mask representing this capability"/> > <arg name="interface" type="string" summary="the interface name for this capability"/> > </event> > > <event name="done" since="1"> > <description summary="Seat setup completion notification"> > Notification that the initial burst of events is complete and > the client can set up this seat now. > > It is a protocol violation to send this event more than once. > </description> > </event> > > <event name="device" since="1"> > <description summary="Device presence notification"> > Notification that a new device has been added. > > This event is only sent if the client announced support for the > "ei_device" interface in ei_handshake.interface_version. > The interface version is equal or less to the client-supported > version in ei_handshake.interface_version for the "ei_device" > interface. > </description> > <arg name="device" type="new_id" interface="ei_device" summary="the new device"/> > <arg name="version" type="uint32" summary="the interface version"/> > </event> > </interface> > > <interface name="ei_device" version="2"> > <description summary="device object"> > An ei_device represents a single logical input devices. Like physical input devices > an ei_device may have multiple capabilities and may e.g. function as pointer > and keyboard. > > Depending on the ei_handshake.context_type, an ei_device can > emulate events via client requests or receive events. It is a protocol violation > to emulate certain events on a receiver device, or for the EIS implementation > to send certain events to the device. See the individual request/event documentation > for details. > > Note that for a client to receive objects of this type, it must announce > support for this interface in ei_handshake.interface_version. > </description> > > <!-- ei_device client requests version 1 --> > > <request name="release" since="1"> > <description summary="Device removal request"> > Notification that the client is no longer interested in this device. > > Note that releasing a device does not guarantee another device becomes available. > > The EIS implementation will release any resources related to this device and > send the ei_device.destroyed event once complete. > </description> > </request> > > <request name="start_emulating" since="1" context-type="sender"> > <description summary="Device start emulating request"> > Notify the EIS implementation that the given device is about to start > sending events. This should be seen more as a transactional boundary than a > time-based boundary. The primary use-cases for this are to allow for setup on > the EIS implementation side and/or UI updates to indicate that a device is > sending events now and for out-of-band information to sync with a given event > sequence. > > There is no actual requirement that events start immediately once emulation > starts and there is no requirement that a client calls ei_device.stop_emulating > after the most recent events. > For example, in a remote desktop use-case the client would call > ei_device.start_emulating once the remote desktop session starts (rather than when > the device sends events) and ei_device.stop_emulating once the remote desktop > session stops. > > The sequence number identifies this transaction between start/stop emulating. > It must go up by at least 1 on each call to ei_device.start_emulating. > Wraparound must be handled by the EIS implementation but callers must ensure > that detection of wraparound is possible. > > It is a protocol violation to request ei_device.start_emulating after > ei_device.start_emulating without an intermediate stop_emulating. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than sender. > </description> > <arg name="last_serial" type="uint32" summary="the last serial sent by the EIS implementation"/> > <arg name="sequence" type="uint32" summary="sequence number to identify this emulation sequence"/> > </request> > > <request name="stop_emulating" since="1" context-type="sender"> > <description summary="Device start emulating request"> > Notify the EIS implementation that the given device is no longer sending > events. See ei_device.start_emulating for details. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than sender. > </description> > <arg name="last_serial" type="uint32" summary="the last serial sent by the EIS implementation"/> > </request> > > <request name="frame" since="1" context-type="sender"> > <description summary="Device frame request"> > Generate a frame event to group the current set of events > into a logical hardware event. This function must be called after one > or more events on any of ei_pointer, ei_pointer_absolute, > ei_scroll, ei_button, ei_keyboard or ei_touchscreen has > been requested by the EIS implementation. > > The EIS implementation should not process changes to the device state > until the ei_device.frame event. For example, pressing and releasing > a key within the same frame is a logical noop. > > The given timestamp applies to all events in the current frame. > The timestamp must be in microseconds of CLOCK_MONOTONIC. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than sender. > </description> > <arg name="last_serial" type="uint32" summary="the last serial sent by the EIS implementation"/> > <arg name="timestamp" type="uint64" summary="timestamp in microseconds"/> > </request> > > <!-- ei_device events version 1 --> > > <event name="destroyed" type="destructor" since="1"> > <description summary="Device removal notification"> > This device has been removed and a client should release all > associated resources. > > This ei_device object will be destroyed by the EIS implementation immmediately after > after this event is sent and as such the client must not attempt to use > it after that point. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > </event> > > <event name="name" since="1"> > <description summary="device name notification"> > The name of this device, if any. This event is optional and sent once immediately > after object creation. > > It is a protocol violation to send this event after the ei_device.done event. > </description> > <arg name="name" type="string" summary="the device name"/> > </event> > > <enum name="device_type" since="1"> > <description summary="device type"> > If the device type is ei_device.device_type.virtual, the device is a > virtual device representing input as applied on the EIS implementation's > screen. A relative virtual device generates input events in logical pixels, > an absolute virtual device generates input events in logical pixels on one > of the device's regions. Virtual devices do not have a ei_device.dimension but > it may have an ei_device.region. > > If the device type is ei_device.device_type.physical, the device is a > representation of a physical device as if connected to the EIS > implementation's host computer. A relative physical device generates input > events in mm, an absolute physical device generates input events in mm > within the device's specified physical size. Physical devices do not have > regions and no ei_device.region events are sent for such devices. > </description> > <entry name="virtual" value="1" summary="a virtual device"/> > <entry name="physical" value="2" summary="representation of a physical device"/> > </enum> > > <event name="device_type" since="1"> > <description summary="device type notification"> > The device type, one of virtual or physical. > > Devices of type ei_device.device_type.physical are supported only clients of > type ei_handshake.context_type.receiver. > > This event is sent once immediately after object creation. > It is a protocol violation to send this event after the ei_device.done event. > </description> > <arg name="device_type" type="uint32" enum="device_type" summary="the device type"/> > </event> > > <event name="dimensions" since="1"> > <description summary="device dimensions notification"> > The device dimensions in mm. This event is optional and sent once immediately > after object creation. > > This event is only sent for devices of ei_device.device_type.physical. > > It is a protocol violation to send this event after the ei_device.done event. > </description> > <arg name="width" type="uint32" summary="the device physical width in mm"/> > <arg name="height" type="uint32" summary="the device physical height in mm"/> > </event> > > <event name="region" since="1"> > <description summary="device dimensions notification"> > Notifies the client of one region. The number of regions is constant for a device > and all regions are announced immediately after object creation. > > A region is rectangular and defined by an x/y offset and a width and a height. > A region defines the area on an EIS desktop layout that is accessible by > this device - this region may not be the full area of the desktop. > Input events may only be sent for points within the regions. > > The use of regions is private to the EIS compositor and coordinates may not > match the size of the actual desktop. For example, a compositor may set a > 1920x1080 region to represent a 4K monitor and transparently map input > events into the respective true pixels. > > Absolute devices may have different regions, it is up to the libei client > to send events through the correct device to target the right pixel. For > example, a dual-head setup my have two absolute devices, the first with a > zero offset region spanning the left screen, the second with a nonzero > offset spanning the right screen. > > The physical scale denotes a constant multiplication factor that needs to be applied to > any relative movement on this region for that movement to match the same > *physical* movement on another region. > > It is an EIS implementation bug to advertise the touch and/or absolute pointer capability > on a device_type.virtual device without advertising an ei_region for this device. > > This event is optional and sent immediately after object creation. Where a device > has multiple regions, this event is sent once for each region. > It is a protocol violation to send this event after the ei_device.done event. > > Note: the fourth argument ('hight') was misspelled when the protocol was declared > stable but changing the name is an API breaking change. > </description> > <arg name="offset_x" type="uint32" summary="region x offset in logical pixels"/> > <arg name="offset_y" type="uint32" summary="region y offset in logical pixels"/> > <arg name="width" type="uint32" summary="region width in logical pixels"/> > <!-- note the typo: hight --> > <arg name="hight" type="uint32" summary="region height in logical pixels"/> > <arg name="scale" type="float" summary="the physical scale for this region"/> > </event> > > <event name="interface" since="1"> > <description summary="device capability notification"> > Notification that a new device has a sub-interface. > > This event may be sent for the following interfaces: > - "ei_pointer" > - "ei_pointer_absolute" > - "ei_scroll" > - "ei_button" > - "ei_keyboard" > - "ei_touchscreen" > The interface version is equal or less to the client-supported > version in ei_handshake.interface_version for the respective interface. > > It is a protocol violation to send a notification for an interface that > the client has not bound to with ei_seat.bind. > > This event is optional and sent immediately after object creation > and at most once per interface. > It is a protocol violation to send this event after the ei_device.done event. > </description> > <arg name="object" type="new_id" interface_arg="interface_name"/> > <arg name="interface_name" type="string" summary="the interface name"/> > <arg name="version" type="uint32" summary="the interface version"/> > </event> > > <event name="done" since="1"> > <description summary="device setup completion notification"> > Notification that the initial burst of events is complete and > the client can set up this device now. > > It is a protocol violation to send this event more than once per device. > </description> > </event> > > <event name="resumed" since="1"> > <description summary="device resumed notification"> > Notification that the device has been resumed by the EIS implementation > and (depending on the ei_handshake.context_type) the client may request > ei_device.start_emulating or the EIS implementation may > ei_device.start_emulating events. > > It is a client bug to request emulation of events on a device that is > not resumed. The EIS implementation may silently discard such events. > > A newly advertised device is in the ei_device.paused state. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > </event> > > <event name="paused" since="1"> > <description summary="device paused notification"> > Notification that the device has been paused by the EIS implementation > and no futher events will be accepted on this device until > it is resumed again. > > For devices of ei_device_setup.context_type sender, the client thus does > not need to request ei_device.stop_emulating and may request > ei_device.start_emulating after a subsequent ei_device.resumed. > > For devices of ei_device_setup.context_type receiver and where > the EIS implementation did not send a ei_device.stop_emulating > prior to this event, the device may send a ei_device.start_emulating > event after a subsequent ei_device.resumed event. > > Pausing a device resets the logical state of the device to neutral. > This includes: > - any buttons or keys logically down are released > - any modifiers logically down are released > - any touches logically down are released > > It is a client bug to request emulation of events on a device that is > not resumed. The EIS implementation may silently discard such events. > > A newly advertised device is in the ei_device.paused state. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > </event> > > <event name="start_emulating" since="1" context-type="receiver"> > <description summary="Device start emulating event"> > See the ei_device.start_emulating request for details. > > It is a protocol violation to send this event for a client > of an ei_handshake.context_type other than receiver. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > <arg name="sequence" type="uint32"/> > </event> > > <event name="stop_emulating" since="1" context-type="receiver"> > <description summary="Device stop emulating event"> > See the ei_device.stop_emulating request for details. > > It is a protocol violation to send this event for a client > of an ei_handshake.context_type other than receiver. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > </event> > > <event name="frame" since="1" context-type="receiver"> > <description summary="Device frame event"> > See the ei_device.frame request for details. > > It is a protocol violation to send this event for a client > of an ei_handshake.context_type other than receiver. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > <arg name="timestamp" type="uint64" summary="timestamp in microseconds"/> > </event> > > <!-- ei_device events version 2 --> > > <event name="region_mapping_id" since="2"> > <description summary="region id notification"> > Notifies the client that the region specified in the next ei_device.region > event is to be assigned the given mapping_id. > > This ID can be used by the client to identify an external resource that has a > relationship with this region. > For example the client may receive a data stream with the video > data that this region represents. By attaching the same identifier to the data > stream and this region the EIS implementation can inform the client > that the video data stream and the region represent paired data. > > This event is optional and sent immediately after object creation but before > the corresponding ei_device.region event. Where a device has multiple regions, > this event may be sent zero or one time for each region. > It is a protocol violation to send this event after the ei_device.done event or > to send this event without a corresponding following ei_device.region event. > </description> > <arg name="mapping_id" type="string" summary="region mapping id"/> > </event> > > </interface> > > <interface name="ei_pointer" version="1"> > <description summary="pointer object"> > Interface for pointer motion requests and events. > > This interface is only provided once per device and where a client > requests ei_pointer.release the interface does not get re-initialized. An > EIS implementation may adjust the behavior of the device (including removing > the device) if the interface is releasd. > > Note that for a client to receive objects of this type, it must announce > support for this interface in ei_handshake.interface_version. > </description> > > <!-- ei_pointer client requests version 1 --> > > <request name="release" since="1"> > <description summary="Pointer removal request"> > Notification that the client is no longer interested in this pointer. > The EIS implementation will release any resources related to this pointer and > send the ei_pointer.destroyed event once complete. > </description> > </request> > > <request name="motion_relative" since="1" context-type="sender"> > <description summary="Relative motion request"> > Generate a relative motion event on this pointer. > > It is a client bug to send this request more than once > within the same ei_device.frame and the EIS implementation > may ignore either or all such requests and/or disconnect the client. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than sender. > </description> > <arg name="x" type="float" summary="the x movement in logical pixels"/> > <arg name="y" type="float" summary="the y movement in logical pixels"/> > </request> > > <!-- ei_pointer events version 1 --> > > <event name="destroyed" type="destructor" since="1"> > <description summary="Pointer removal notification"> > This object has been removed and a client should release all > associated resources. > > This object will be destroyed by the EIS implementation immmediately after > after this event is sent and as such the client must not attempt to use > it after that point. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > </event> > > <event name="motion_relative" since="1" context-type="receiver"> > <description summary="Relative motion event"> > See the ei_pointer.motion_relative request for details. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than receiver. > </description> > <arg name="x" type="float"/> > <arg name="y" type="float"/> > </event> > </interface> > > <interface name="ei_pointer_absolute" version="1"> > <description summary="absolute pointer object"> > Interface for absolute pointer requests and events. > > This interface is only provided once per device and where a client > requests ei_pointer_absolute.release the interface does not get > re-initialized. An EIS implementation may adjust the behavior of the > device (including removing the device) if the interface is releasd. > > Note that for a client to receive objects of this type, it must announce > support for this interface in ei_handshake.interface_version. > </description> > > <!-- ei_pointer_absolute client requests version 1 --> > > <request name="release" since="1"> > <description summary="Pointer absolute removal request"> > Notification that the client is no longer interested in this object. > The EIS implementation will release any resources related to this object and > send the ei_pointer_absolute.destroyed event once complete. > </description> > </request> > > <request name="motion_absolute" since="1" context-type="sender"> > <description summary="Absolute motion request"> > Generate an absolute motion event on this pointer. The x/y > coordinates must be within the device's regions or the event > is silently discarded. > > It is a client bug to send this request more than once > within the same ei_device.frame and the EIS implementation > may ignore either or all such requests and/or disconnect the client. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than sender. > </description> > <arg name="x" type="float" summary="the x position in logical pixels"/> > <arg name="y" type="float" summary="the y position in logical pixels"/> > </request> > > <!-- ei_pointer_absolute events version 1 --> > > <event name="destroyed" type="destructor" since="1"> > <description summary="Pointer absolute removal notification"> > This object has been removed and a client should release all > associated resources. > > This object will be destroyed by the EIS implementation immmediately after > after this event is sent and as such the client must not attempt to use > it after that point. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > </event> > > <event name="motion_absolute" since="1" context-type="receiver"> > <description summary="Absolute motion event"> > See the ei_pointer_absolute.motion_absolute request for details. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than receiver. > </description> > <arg name="x" type="float"/> > <arg name="y" type="float"/> > </event> > </interface> > > <interface name="ei_scroll" version="1"> > <description summary="scroll object"> > Interface for scroll requests and events. > > This interface is only provided once per device and where a client > requests ei_scroll.release the interface does not get > re-initialized. An EIS implementation may adjust the behavior of the > device (including removing the device) if the interface is releasd. > > Note that for a client to receive objects of this type, it must announce > support for this interface in ei_handshake.interface_version. > </description> > > <request name="release" since="1"> > <description summary="Scroll removal request"> > Notification that the client is no longer interested in this object. > The EIS implementation will release any resources related to this object and > send the ei_scroll.destroyed event once complete. > </description> > </request> > > <request name="scroll" since="1" context-type="sender"> > <description summary="Scroll request"> > Generate a a smooth (pixel-precise) scroll event on this pointer. > Clients must not send ei_scroll.scroll_discrete events for the same event, > the EIS implementation is responsible for emulation of discrete > scroll events. > > It is a client bug to send this request more than once > within the same ei_device.frame and the EIS implementation > may ignore either or all such requests and/or disconnect the client. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than sender. > </description> > <arg name="x" type="float" summary="the x movement in logical pixels"/> > <arg name="y" type="float" summary="the y movement in logical pixels"/> > </request> > > <request name="scroll_discrete" since="1" context-type="sender"> > <description summary="Scroll discrete request"> > Generate a a discrete (e.g. wheel) scroll event on this pointer. > Clients must not send ei_scroll.scroll events for the same event, > the EIS implementation is responsible for emulation of smooth > scroll events. > > A discrete scroll event is based logical scroll units (equivalent to one > mouse wheel click). The value for one scroll unit is 120, a fraction or > multiple thereof represents a fraction or multiple of a wheel click. > > It is a client bug to send this request more than once > within the same ei_device.frame and the EIS implementation > may ignore either or all such requests and/or disconnect the client. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than sender. > </description> > <arg name="x" type="int32" summary="the x movement in fractions or multiples of 120"/> > <arg name="y" type="int32" summary="the y movement in fractions or multiples of 120"/> > </request> > > <request name="scroll_stop" since="1" context-type="sender"> > <description summary="Scroll stop request"> > Generate a a scroll stop or cancel event on this pointer. > > A scroll stop event notifies the EIS implementation that the interaction causing a > scroll motion previously triggered with ei_scroll.scroll or > ei_scroll.scroll_discrete has stopped. For example, if all > fingers are lifted off a touchpad, two-finger scrolling has logically > stopped. The EIS implementation may use this information to e.g. start kinetic scrolling > previously based on the previous finger speed. > > If is_cancel is nonzero, the event represents a cancellation of the > current interaction. This indicates that the interaction has stopped to the > point where further (server-emulated) scroll events from this device are wrong. > > It is a client bug to send this request more than once > within the same ei_device.frame and the EIS implementation > may ignore either or all such requests and/or disconnect the client. > > It is a client bug to send this request for an axis that > had a a nonzero value in either ei_scroll.scroll or ei_scroll.scroll_discrete > in the current frame and the EIS implementation > may ignore either or all such requests and/or disconnect the client. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than sender. > </description> > <arg name="x" type="uint32" summary="nonzero if this axis stopped scrolling"/> > <arg name="y" type="uint32" summary="nonzero if this axis stopped scrolling"/> > <arg name="is_cancel" type="uint32" summary="nonzero to indicate this is a cancel event"/> > </request> > > <!-- ei_scroll events version 1 --> > > <event name="destroyed" type="destructor" since="1"> > <description summary="Scroll removal notification"> > This object has been removed and a client should release all > associated resources. > > This object will be destroyed by the EIS implementation immmediately after > after this event is sent and as such the client must not attempt to use > it after that point. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > </event> > > <event name="scroll" since="1" context-type="receiver"> > <description summary="Scroll event"> > See the ei_scroll.scroll request for details. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than receiver. > </description> > <arg name="x" type="float"/> > <arg name="y" type="float"/> > </event> > > <event name="scroll_discrete" since="1" context-type="receiver"> > <description summary="Discrete scroll event"> > See the ei_scroll.scroll_discrete request for details. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than receiver. > </description> > <arg name="x" type="int32"/> > <arg name="y" type="int32"/> > </event> > > <event name="scroll_stop" since="1" context-type="receiver"> > <description summary="Scroll stop event"> > > See the ei_scroll.scroll_stop request for details. > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than receiver. > </description> > <arg name="x" type="uint32"/> > <arg name="y" type="uint32"/> > <arg name="is_cancel" type="uint32"/> > </event> > </interface> > > <interface name="ei_button" version="1"> > <description summary="button object"> > Interface for button requests and events. > > This interface is only provided once per device and where a client > requests ei_button.release the interface does not get > re-initialized. An EIS implementation may adjust the behavior of the > device (including removing the device) if the interface is releasd. > > Note that for a client to receive objects of this type, it must announce > support for this interface in ei_handshake.interface_version. > </description> > > <request name="release" since="1"> > <description summary="Button removal request"> > Notification that the client is no longer interested in this object. > The EIS implementation will release any resources related to this object and > send the ei_button.destroyed event once complete. > </description> > </request> > > <enum name="button_state" since="1"> > <description summary="Button state"> > The logical state of a button. > </description> > <entry name="released" value="0" summary="the button is logically up"/> > <entry name="press" value="1" summary="the button is logically down"/> > </enum> > > <request name="button" since="1" context-type="sender"> > <description summary="Button state change request"> > Generate a button event on this pointer. > > The button codes must match the defines in linux/input-event-codes.h. > > It is a client bug to send more than one button request for the same button > within the same ei_device.frame and the EIS implementation > may ignore either or all button state changes and/or disconnect the client. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than sender. > </description> > <arg name="button" type="uint32" summary="button code"/> > <arg name="state" type="uint32" enum="button_state"/> > </request> > > <!-- ei_button events version 1 --> > > <event name="destroyed" type="destructor" since="1"> > <description summary="Pointer removal notification"> > This pointer has been removed and a client should release all > associated resources. > > This ei_scroll object will be destroyed by the EIS implementation immmediately after > after this event is sent and as such the client must not attempt to use > it after that point. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > </event> > > <event name="button" since="1" context-type="receiver"> > <description summary="Button state change event"> > See the ei_scroll.button request for details. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than receiver. > > It is an EIS implementation bug to send more than one button request > for the same button within the same ei_device.frame. > </description> > <arg name="button" type="uint32"/> > <arg name="state" type="uint32" enum="button_state"/> > </event> > > </interface> > > <interface name="ei_keyboard" version="1"> > <description summary="keyboard object"> > Interface for keyboard requests and events. > > This interface is only provided once per device and where a client > requests ei_keyboard.release the interface does not get re-initialized. An > EIS implementation may adjust the behavior of the device (including removing > the device) if the interface is releasd. > > Note that for a client to receive objects of this type, it must announce > support for this interface in ei_handshake.interface_version. > </description> > > <!-- ei_keyboard client requests version 1 --> > > <request name="release" since="1"> > <description summary="keyboard removal request"> > Notification that the client is no longer interested in this keyboard. > The EIS implementation will release any resources related to this keyboard and > send the ei_keyboard.destroyed event once complete. > </description> > </request> > > <enum name="key_state" since="1"> > <description summary="Key state"> > The logical state of a key. > </description> > <entry name="released" value="0" summary="the key is logically up"/> > <entry name="press" value="1" summary="the key is logically down"/> > </enum> > > <request name="key" since="1" context-type="sender"> > <description summary="Key state change request"> > Generate a key event on this keyboard. If the device has an > ei_keyboard.keymap, the key code corresponds to that keymap. > > The key codes must match the defines in linux/input-event-codes.h. > > It is a client bug to send more than one key request for the same key > within the same ei_device.frame and the EIS implementation > may ignore either or all key state changes and/or disconnect the client. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than sender. > </description> > <arg name="key" type="uint32" summary="the key code"/> > <arg name="state" type="uint32" enum="key_state" summary="logical state of the key"/> > </request> > > <!-- ei_keyboard events version 1 --> > > <event name="destroyed" type="destructor" since="1"> > <description summary="Keyboard removal notification"> > This keyboard has been removed and a client should release all > associated resources. > > This ei_keyboard object will be destroyed by the EIS implementation immmediately after > after this event is sent and as such the client must not attempt to use > it after that point. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > </event> > > <enum name="keymap_type" since="1"> > <description summary="the keymap type"> > The keymap type describes how the keymap in the ei_keyboard.keymap event > should be parsed. > </description> > <entry name="xkb" value="1" summary="a libxkbcommon-compatible XKB keymap"/> > </enum> > > <event name="keymap" since="1"> > <description summary="keymap notification"> > Notification that this device has a keymap. Future key events must be > interpreted by the client according to this keymap. For clients > of ei_handshake.context_type sender it is the client's > responsibility to send the correct ei_keyboard.key keycodes to > generate the expected keysym in the EIS implementation. > > The keymap is constant for the lifetime of the device. > > This event provides a file descriptor to the client which can be > memory-mapped in read-only mode to provide a keyboard mapping > description. The fd must be mapped with MAP_PRIVATE by > the recipient, as MAP_SHARED may fail. > > This event is optional and only sent immediately after the ei_keyboard object is created > and before the ei_device.done event. It is a protocol violation to send this > event after the ei_device.done event. > </description> > <arg name="keymap_type" type="uint32" enum="keymap_type" summary="the keymap type"/> > <arg name="size" type="uint32" summary="the keymap size in bytes"/> > <arg name="keymap" type="fd" summary="file descriptor to the keymap"/> > </event> > > <event name="key" since="1" context-type="receiver"> > <description summary="Key state change event"> > See the ei_keyboard.key request for details. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than receiver. > > It is a protocol violation to send a key down event in the same > frame as a key up event for the same key in the same frame. > </description> > <arg name="key" type="uint32"/> > <arg name="state" type="uint32" enum="key_state"/> > </event> > > <event name="modifiers" since="1"> > <description summary="Modifier change event"> > Notification that the EIS implementation has changed group or modifier > states on this device, but not necessarily in response to an > ei_keyboard.key event. Future ei_keyboard.key requests must take the > new group or modifier state into account. > > This event should not be sent in response to ei_keyboard.key events > that change the group or modifier state according to the keymap. The > client is expected to track such group or modifier states on its own. > > A client must assume that all modifiers are lifted when it > receives an ei_device.paused event. The EIS implementation > must send this event after ei_device.resumed to notify the client > of any nonzero modifier state. > > This event does not reqire an ei_device.frame and should > be processed immediately by the client. > > This event is only sent for devices with an ei_keyboard.keymap. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > <arg name="depressed" type="uint32" summary="depressed modifiers"/> > <arg name="locked" type="uint32" summary="locked modifiers"/> > <arg name="latched" type="uint32" summary="latched modifiers"/> > <arg name="group" type="uint32" summary="the keyboard group (layout)"/> > </event> > </interface> > > <interface name="ei_touchscreen" version="1"> > <description summary="touchscreen object"> > Interface for touchscreen requests and events. > > This interface is only provided once per device and where a client > requests ei_touchscreen.release the interface does not get re-initialized. An > EIS implementation may adjust the behavior of the device (including removing > the device) if the interface is releasd. > > Note that for a client to receive objects of this type, it must announce > support for this interface in ei_handshake.interface_version. > </description> > > <!-- ei_touchscreen client requests version 1 --> > > <request name="release" since="1"> > <description summary="touch removal request"> > Notification that the client is no longer interested in this touch. > The EIS implementation will release any resources related to this touch and > send the ei_touch.destroyed event once complete. > </description> > </request> > > <request name="down" since="1" context-type="sender"> > <description summary="touch down request"> > Notifies the EIS implementation about a new touch logically down at the > given coordinates. The touchid is a unique id for this touch. Touchids > may be re-used after ei_touchscreen.up. > > The x/y coordinates must be within the device's regions or the event and future > ei_touchscreen.motion events with the same touchid are silently discarded. > > It is a protocol violation to send a touch down in the same > frame as a touch motion or touch up. > </description> > <arg name="touchid" type="uint32" summary="a unique touch id to identify this touch"/> > <arg name="x" type="float" summary="touch x coordinate in logical pixels"/> > <arg name="y" type="float" summary="touch y coordinate in logical pixels"/> > </request> > > <request name="motion" since="1" context-type="sender"> > <description summary="touch motion request"> > Notifies the EIS implementation about an existing touch changing position to > the given coordinates. The touchid is the unique id for this touch previously > sent with ei_touchscreen.down. > > The x/y coordinates must be within the device's regions or the event is > silently discarded. > > It is a protocol violation to send a touch motion in the same > frame as a touch down or touch up. > </description> > <arg name="touchid" type="uint32" summary="a unique touch id to identify this touch"/> > <arg name="x" type="float" summary="touch x coordinate in logical pixels"/> > <arg name="y" type="float" summary="touch y coordinate in logical pixels"/> > </request> > > <request name="up" since="1" context-type="sender"> > <description summary="touch up request"> > Notifies the EIS implementation about an existing touch being logically > up. The touchid is the unique id for this touch previously > sent with ei_touchscreen.down. > > The touchid may be re-used after this request. > > It is a protocol violation to send a touch up in the same > frame as a touch motion or touch down. > </description> > <arg name="touchid" type="uint32" summary="a unique touch id to identify this touch"/> > </request> > > <!-- ei_touchscreen events version 1 --> > > <event name="destroyed" type="destructor" since="1"> > <description summary="Touchscreen removal notification"> > This touch has been removed and a client should release all > associated resources. > > This ei_touchscreen object will be destroyed by the EIS implementation immmediately after > after this event is sent and as such the client must not attempt to use > it after that point. > </description> > <arg name="serial" type="uint32" summary="this event's serial number"/> > </event> > > <event name="down" since="1" context-type="receiver"> > <description summary="touch down request"> > See the ei_touchscreen.down request for details. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than receiver. > > It is a protocol violation to send a touch down in the same > frame as a touch motion or touch up. > </description> > <arg name="touchid" type="uint32"/> > <arg name="x" type="float"/> > <arg name="y" type="float"/> > </event> > > <event name="motion" since="1" context-type="receiver"> > <description summary="touch motion request"> > See the ei_touchscreen.motion request for details. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than receiver. > > It is a protocol violation to send a touch motion in the same > frame as a touch down or touch up. > </description> > <arg name="touchid" type="uint32"/> > <arg name="x" type="float"/> > <arg name="y" type="float"/> > </event> > > <event name="up" since="1" context-type="receiver"> > <description summary="touch motion request"> > See the ei_touchscreen.up request for details. > > It is a protocol violation to send this request for a client > of an ei_handshake.context_type other than receiver. > > It is a protocol violation to send a touch up in the same > frame as a touch motion or touch down. > </description> > <arg name="touchid" type="uint32"/> > </event> > </interface> ></protocol> >============================================================================== > >==================================== 6/10 ==================================== >test: libei:nosigalrm / eierpecken-no-sigalrm >start time: 09:27:43 >duration: 0.14s >result: exit status 0 >command: UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 LD_LIBRARY_PATH=/var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/src:/var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/subprojects/munit MESON_TEST_ITERATION=1 MALLOC_PERTURB_=203 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/test/eierpecken --log-visible debug >----------------------------------- stdout ----------------------------------- >Running test suite with seed 0x1d679921... >test_passive_ei_device_pointer_rel [ OK ] [ 0.00062607 / 0.00062600 CPU ] >test_passive_ei_device_keyboard_key [ OK ] [ 0.00061729 / 0.00061149 CPU ] >test_passive_ei_device_button_button [ OK ] [ 0.00076841 / 0.00076844 CPU ] >test_passive_ei_device_stop_emulating_when_removing[ OK ] [ 0.00056713 / 0.00056306 CPU ] >test_passive_ei_device_start_stop_emulating[ OK ] [ 0.00062149 / 0.00061244 CPU ] >test_ei_device_remove_no_stop_emulating_event[ OK ] [ 0.00036346 / 0.00036318 CPU ] >test_ei_flush_frame [ OK ] [ 0.00033400 / 0.00033373 CPU ] >test_ei_buffered_frame [ OK ] [ 0.00082719 / 0.00081836 CPU ] >test_ei_no_empty_frames [ OK ] [ 0.00063829 / 0.00063842 CPU ] >test_ei_frame_timestamp [ OK ] [ 0.00034062 / 0.00034031 CPU ] >test_ei_keyboard_modifiers [ OK ] [ 0.00029948 / 0.00029929 CPU ] >test_ei_keymap_set [ OK ] [ 0.00067946 / 0.00067542 CPU ] >test_ei_keymap_invalid [ OK ] [ 0.00032778 / 0.00032670 CPU ] >test_ei_device_multitouch [ OK ] [ 0.00083627 / 0.00082348 CPU ] >test_ei_device_touch [ OK ] [ 0.00071792 / 0.00071310 CPU ] >test_ei_device_scroll_stop_cancel [ OK ] [ 0.00064329 / 0.00063672 CPU ] >test_ei_device_scroll_cancel [ OK ] [ 0.00050015 / 0.00049580 CPU ] >test_ei_device_scroll_stop [ OK ] [ 0.00078135 / 0.00078139 CPU ] >test_ei_device_scroll [ OK ] [ 0.00058360 / 0.00058358 CPU ] >test_ei_device_pointer_abs [ OK ] [ 0.00059546 / 0.00058864 CPU ] >test_ei_device_regions_late_add [ OK ] [ 0.00030837 / 0.00030807 CPU ] >test_ei_device_regions_ref_unref [ OK ] [ 0.00043897 / 0.00043316 CPU ] >test_ei_device_regions_touch [ OK ] [ 0.00065776 / 0.00065766 CPU ] >test_ei_device_regions_absmotion [ OK ] [ 0.00062397 / 0.00061851 CPU ] >test_ei_device_regions [ OK ] [ 0.00039804 / 0.00039000 CPU ] >test_ei_device_pointer_rel [ OK ] [ 0.00049899 / 0.00049499 CPU ] >test_ei_device_keyboard_key [ OK ] [ 0.00056331 / 0.00056320 CPU ] >test_ei_device_button_button [ OK ] [ 0.00062727 / 0.00062720 CPU ] >test_ei_device_close [ OK ] [ 0.00091201 / 0.00091206 CPU ] >test_ei_device_add_remove [ OK ] [ 0.00077022 / 0.00076195 CPU ] >test_ei_device_never_added [ OK ] [ 0.00054614 / 0.00054594 CPU ] >test_ei_device_set_name_multiple_devices[ OK ] [ 0.00037473 / 0.00037443 CPU ] >test_passive_ei_device_type [ OK ] [ 0.00062781 / 0.00062513 CPU ] >test_ei_device_basics [ OK ] [ 0.00059021 / 0.00058666 CPU ] >eistest_regions [ OK ] [ 0.00075381 / 0.00072701 CPU ] >eistest_device_ignore_paused_device [ OK ] [ 0.00100965 / 0.00100328 CPU ] >eistest_device_resume_pause_twice [ OK ] [ 0.00072194 / 0.00071941 CPU ] >eistest_cliend_bind_some_caps [ OK ] [ 0.00056969 / 0.00053849 CPU ] >eistest_cliend_bind_all_caps [ OK ] [ 0.00042168 / 0.00040608 CPU ] >eistest_name [ OK ] [ 0.00022964 / 0.00022449 CPU ] >eistest_ref_unref [ OK ] [ 0.00002169 / 0.00002136 CPU ] >test_ei_invalid_object_ids [ OK ] [ 0.00071648 / 0.00071634 CPU ] >test_ei_exceed_write_buffer_cleanup [ OK ] [ 0.01569448 / 0.01565136 CPU ] >test_ei_exceed_write_buffer [ OK ] [ 0.03857401 / 0.03807385 CPU ] >test_xdotool_rel_motion [ OK ] [ 0.00065349 / 0.00065323 CPU ] >test_client_is_receiver [ OK ] [ 0.00053509 / 0.00051744 CPU ] >test_client_is_sender [ OK ] [ 0.00036741 / 0.00036216 CPU ] >test_ei_disconnect_after_unbind_after_received[ OK ] [ 0.00057763 / 0.00057766 CPU ] >test_ei_disconnect_after_unbind_before_received[ OK ] [ 0.00050762 / 0.00050763 CPU ] >test_ei_disconnect_self_after_bind_after_received[ OK ] [ 0.00032995 / 0.00032145 CPU ] >test_ei_disconnect_after_bind_after_received[ OK ] [ 0.00045790 / 0.00045772 CPU ] >test_ei_disconnect_self_after_bind_before_received[ OK ] [ 0.00052362 / 0.00052351 CPU ] >test_ei_disconnect_after_bind_before_received[ OK ] [ 0.00050703 / 0.00050704 CPU ] >test_ei_disconnect_self_after_seat [ OK ] [ 0.00048365 / 0.00048351 CPU ] >test_ei_disconnect_after_seat [ OK ] [ 0.00052973 / 0.00052300 CPU ] >test_ei_disconnect_self_after_connect[ OK ] [ 0.00046723 / 0.00046709 CPU ] >test_ei_disconnect_after_connect [ OK ] [ 0.00032494 / 0.00032470 CPU ] >test_ei_disconnect_self_immediately [ OK ] [ 0.00046463 / 0.00045751 CPU ] >test_ei_disconnect_immediately [ OK ] [ 0.00041672 / 0.00041670 CPU ] >test_ei_ref_unref [ OK ] [ 0.00002269 / 0.00002246 CPU ] >test_ei_seat_bind_unbind_immediately [ OK ] [ 0.00075468 / 0.00075463 CPU ] >test_ei_seat_bind_unbind_noref [ OK ] [ 0.00083845 / 0.00083385 CPU ] >test_ei_seat_bind_unbind [ OK ] [ 0.00067327 / 0.00067323 CPU ] >test_passive_ei_flush_frame [ OK ] [ 0.00039623 / 0.00039069 CPU ] >test_passive_ei_frame_timestamp [ OK ] [ 0.00032760 / 0.00032751 CPU ] >test_passive_ei_device_multitouch [ OK ] [ 0.00079777 / 0.00079219 CPU ] >test_passive_ei_device_touch [ OK ] [ 0.00106366 / 0.00104963 CPU ] >test_passive_ei_device_scroll_stop_cancel[ OK ] [ 0.00044284 / 0.00043755 CPU ] >test_passive_ei_device_scroll_cancel [ OK ] [ 0.00078757 / 0.00078256 CPU ] >test_passive_ei_device_scroll_stop [ OK ] [ 0.00042285 / 0.00042258 CPU ] >test_passive_ei_device_scroll_delta [ OK ] [ 0.00048201 / 0.00047622 CPU ] >test_passive_ei_device_pointer_abs [ OK ] [ 0.00072472 / 0.00071140 CPU ] >72 of 72 (100%) tests successful, 0 (0%) test skipped. >============================================================================== > >==================================== 7/10 ==================================== >test: libei:sigalrm / eierpecken >start time: 09:27:43 >duration: 0.14s >result: exit status 0 >command: UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 LD_LIBRARY_PATH=/var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/src:/var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/subprojects/munit MESON_TEST_ITERATION=1 MALLOC_PERTURB_=103 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/test/eierpecken --log-visible debug --enable-sigalarm >----------------------------------- stdout ----------------------------------- >Running test suite with seed 0x1d130513... >test_passive_ei_device_pointer_rel [ OK ] [ 0.00055471 / 0.00054406 CPU ] >test_passive_ei_device_keyboard_key [ OK ] [ 0.00072318 / 0.00070975 CPU ] >test_passive_ei_device_button_button [ OK ] [ 0.00056912 / 0.00055969 CPU ] >test_passive_ei_device_stop_emulating_when_removing[ OK ] [ 0.00067060 / 0.00066277 CPU ] >test_passive_ei_device_start_stop_emulating[ OK ] [ 0.00066426 / 0.00065578 CPU ] >test_ei_device_remove_no_stop_emulating_event[ OK ] [ 0.00060444 / 0.00058194 CPU ] >test_ei_flush_frame [ OK ] [ 0.00066740 / 0.00065933 CPU ] >test_ei_buffered_frame [ OK ] [ 0.00086425 / 0.00085380 CPU ] >test_ei_no_empty_frames [ OK ] [ 0.00063076 / 0.00062339 CPU ] >test_ei_frame_timestamp [ OK ] [ 0.00072723 / 0.00070690 CPU ] >test_ei_keyboard_modifiers [ OK ] [ 0.00054834 / 0.00054199 CPU ] >test_ei_keymap_set [ OK ] [ 0.00065781 / 0.00065018 CPU ] >test_ei_keymap_invalid [ OK ] [ 0.00053314 / 0.00052262 CPU ] >test_ei_device_multitouch [ OK ] [ 0.00062417 / 0.00058292 CPU ] >test_ei_device_touch [ OK ] [ 0.00124861 / 0.00122843 CPU ] >test_ei_device_scroll_stop_cancel [ OK ] [ 0.00065421 / 0.00064641 CPU ] >test_ei_device_scroll_cancel [ OK ] [ 0.00047285 / 0.00046515 CPU ] >test_ei_device_scroll_stop [ OK ] [ 0.00040598 / 0.00039733 CPU ] >test_ei_device_scroll [ OK ] [ 0.00048938 / 0.00047991 CPU ] >test_ei_device_pointer_abs [ OK ] [ 0.00097938 / 0.00096104 CPU ] >test_ei_device_regions_late_add [ OK ] [ 0.00058562 / 0.00057868 CPU ] >test_ei_device_regions_ref_unref [ OK ] [ 0.00057552 / 0.00056886 CPU ] >test_ei_device_regions_touch [ OK ] [ 0.00082316 / 0.00081366 CPU ] >test_ei_device_regions_absmotion [ OK ] [ 0.00047348 / 0.00046295 CPU ] >test_ei_device_regions [ OK ] [ 0.00051853 / 0.00051263 CPU ] >test_ei_device_pointer_rel [ OK ] [ 0.00074593 / 0.00073764 CPU ] >test_ei_device_keyboard_key [ OK ] [ 0.00069627 / 0.00068801 CPU ] >test_ei_device_button_button [ OK ] [ 0.00044126 / 0.00040848 CPU ] >test_ei_device_close [ OK ] [ 0.00064133 / 0.00063685 CPU ] >test_ei_device_add_remove [ OK ] [ 0.00083516 / 0.00082058 CPU ] >test_ei_device_never_added [ OK ] [ 0.00054269 / 0.00052911 CPU ] >test_ei_device_set_name_multiple_devices[ OK ] [ 0.00041334 / 0.00040470 CPU ] >test_passive_ei_device_type [ OK ] [ 0.00055557 / 0.00054413 CPU ] >test_ei_device_basics [ OK ] [ 0.00060809 / 0.00059779 CPU ] >eistest_regions [ OK ] [ 0.00069691 / 0.00067809 CPU ] >eistest_device_ignore_paused_device [ OK ] [ 0.00067749 / 0.00066770 CPU ] >eistest_device_resume_pause_twice [ OK ] [ 0.00049583 / 0.00048765 CPU ] >eistest_cliend_bind_some_caps [ OK ] [ 0.00047610 / 0.00047080 CPU ] >eistest_cliend_bind_all_caps [ OK ] [ 0.00051694 / 0.00051017 CPU ] >eistest_name [ OK ] [ 0.00021892 / 0.00021021 CPU ] >eistest_ref_unref [ OK ] [ 0.00001941 / 0.00001906 CPU ] >test_ei_invalid_object_ids [ OK ] [ 0.00085594 / 0.00084538 CPU ] >test_ei_exceed_write_buffer_cleanup [ OK ] [ 0.01630980 / 0.01613759 CPU ] >test_ei_exceed_write_buffer [ OK ] [ 0.04050973 / 0.04018819 CPU ] >test_xdotool_rel_motion [ OK ] [ 0.00049159 / 0.00048044 CPU ] >test_client_is_receiver [ OK ] [ 0.00038920 / 0.00038434 CPU ] >test_client_is_sender [ OK ] [ 0.00044833 / 0.00044238 CPU ] >test_ei_disconnect_after_unbind_after_received[ OK ] [ 0.00037515 / 0.00036577 CPU ] >test_ei_disconnect_after_unbind_before_received[ OK ] [ 0.00030838 / 0.00030062 CPU ] >test_ei_disconnect_self_after_bind_after_received[ OK ] [ 0.00048959 / 0.00048346 CPU ] >test_ei_disconnect_after_bind_after_received[ OK ] [ 0.00049403 / 0.00048750 CPU ] >test_ei_disconnect_self_after_bind_before_received[ OK ] [ 0.00051276 / 0.00050654 CPU ] >test_ei_disconnect_after_bind_before_received[ OK ] [ 0.00054615 / 0.00053382 CPU ] >test_ei_disconnect_self_after_seat [ OK ] [ 0.00058589 / 0.00057769 CPU ] >test_ei_disconnect_after_seat [ OK ] [ 0.00034922 / 0.00033812 CPU ] >test_ei_disconnect_self_after_connect[ OK ] [ 0.00036220 / 0.00034976 CPU ] >test_ei_disconnect_after_connect [ OK ] [ 0.00034371 / 0.00034020 CPU ] >test_ei_disconnect_self_immediately [ OK ] [ 0.00047800 / 0.00047180 CPU ] >test_ei_disconnect_immediately [ OK ] [ 0.00043839 / 0.00043304 CPU ] >test_ei_ref_unref [ OK ] [ 0.00001925 / 0.00001904 CPU ] >test_ei_seat_bind_unbind_immediately [ OK ] [ 0.00068469 / 0.00067759 CPU ] >test_ei_seat_bind_unbind_noref [ OK ] [ 0.00089010 / 0.00087926 CPU ] >test_ei_seat_bind_unbind [ OK ] [ 0.00054615 / 0.00053700 CPU ] >test_passive_ei_flush_frame [ OK ] [ 0.00035390 / 0.00035150 CPU ] >test_passive_ei_frame_timestamp [ OK ] [ 0.00070280 / 0.00068718 CPU ] >test_passive_ei_device_multitouch [ OK ] [ 0.00062412 / 0.00061403 CPU ] >test_passive_ei_device_touch [ OK ] [ 0.00069702 / 0.00069289 CPU ] >test_passive_ei_device_scroll_stop_cancel[ OK ] [ 0.00043697 / 0.00043424 CPU ] >test_passive_ei_device_scroll_cancel [ OK ] [ 0.00079213 / 0.00076159 CPU ] >test_passive_ei_device_scroll_stop [ OK ] [ 0.00061478 / 0.00060328 CPU ] >test_passive_ei_device_scroll_delta [ OK ] [ 0.00051549 / 0.00051221 CPU ] >test_passive_ei_device_pointer_abs [ OK ] [ 0.00052118 / 0.00051829 CPU ] >72 of 72 (100%) tests successful, 0 (0%) test skipped. >============================================================================== > >==================================== 8/10 ==================================== >test: libei:python / python-black >start time: 09:27:43 >duration: 0.43s >result: exit status 0 >command: MALLOC_PERTURB_=182 UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 MESON_TEST_ITERATION=1 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /usr/bin/black --check /var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0 /var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0/proto/ei-scanner >----------------------------------- stderr ----------------------------------- >All done! ⨠ð° ⨠>8 files would be left unchanged. >============================================================================== > >==================================== 9/10 ==================================== >test: libei:python / scanner-pytest >start time: 09:27:43 >duration: 1.68s >result: exit status 1 >command: UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 MESON_TEST_ITERATION=1 MALLOC_PERTURB_=230 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /usr/bin/pytest --verbose --log-level=DEBUG -n auto -k TestScanner >----------------------------------- stdout ----------------------------------- >========================================================================================================= test session starts ========================================================================================================== >platform linux -- Python 3.12.8, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.12 >cachedir: .pytest_cache >rootdir: /var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/test >plugins: xdist-3.6.1, import-check-0.0.4, mock-3.14.0, anyio-4.6.2.post1 >created: 16/16 workers >16 workers [8 items] > >scheduling tests via LoadScheduling > >test_scanner.py::TestScanner::test_ei_names[eis] >test_scanner.py::TestScanner::test_versione_arg[ei] >test_scanner.py::TestScanner::test_ei_names[ei] >test_scanner.py::TestScanner::test_interface_arg[ei] >test_scanner.py::TestScanner::test_ei_names[brei] >test_scanner.py::TestScanner::test_cli_extra_data[jsonfile] >test_scanner.py::TestScanner::test_cli_extra_data[string] >test_scanner.py::TestScanner::test_cli_extra_data[yamlfile] >[gw0] [ 12%] PASSED test_scanner.py::TestScanner::test_ei_names[eis] >[gw4] [ 25%] PASSED test_scanner.py::TestScanner::test_versione_arg[ei] >[gw6] [ 37%] PASSED test_scanner.py::TestScanner::test_cli_extra_data[jsonfile] >[gw1] [ 50%] PASSED test_scanner.py::TestScanner::test_ei_names[ei] >[gw2] [ 62%] PASSED test_scanner.py::TestScanner::test_ei_names[brei] >[gw7] [ 75%] PASSED test_scanner.py::TestScanner::test_cli_extra_data[string] >[gw5] [ 87%] PASSED test_scanner.py::TestScanner::test_cli_extra_data[yamlfile] >[gw3] [100%] FAILED test_scanner.py::TestScanner::test_interface_arg[ei] > >=============================================================================================================== FAILURES =============================================================================================================== >__________________________________________________________________________________________________ TestScanner.test_interface_arg[ei] __________________________________________________________________________________________________ >[gw3] linux -- Python 3.12.8 /usr/bin/python3.12 > >self = <test_scanner.TestScanner object at 0x7fd7bdf61c70> >protocol = Protocol(copyright='\nCopyright © 2008-2011 Kristian Høgsberg\nCopyright © 2010-2011 Intel Corporation\nCopyright © 20...to receive objects of this type, it must announce\nsupport for this interface in ei_handshake.interface_version.\n'))]) > > @pytest.mark.parametrize("component", ("ei",)) > def test_interface_arg(self, protocol: Protocol): > intf = next((i for i in protocol.interfaces if i.name == "ei_device")) > event = next((e for e in intf.events if e.name == "interface")) > > obj, interface_name, version = event.arguments >> assert obj.interface_arg == interface_name > >test_scanner.py:54: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ><attrs generated eq eiscanner.Argument>:11: in __eq__ > self.interface_arg_for == other.interface_arg_for and ><attrs generated eq eiscanner.Argument>:10: in __eq__ > self.interface_arg == other.interface_arg and ><attrs generated eq eiscanner.Argument>:11: in __eq__ > self.interface_arg_for == other.interface_arg_for and >E RecursionError: maximum recursion depth exceeded >!!! Recursion detected (same locals & position) >-------------------------------------------------------------------------------------------------------- Captured stdout setup --------------------------------------------------------------------------------------------------------- >protocol for component ei >======================================================================================================= short test summary info ======================================================================================================== >FAILED test_scanner.py::TestScanner::test_interface_arg[ei] - RecursionError: maximum recursion depth exceeded >===================================================================================================== 1 failed, 7 passed in 1.47s ====================================================================================================== >============================================================================== > >=================================== 10/10 ==================================== >test: libei:python / oeffis-pytest >start time: 09:27:43 >duration: 3.90s >result: exit status 0 >command: LD_LIBRARY_PATH=/var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0-build/src UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 MESON_TEST_ITERATION=1 MALLOC_PERTURB_=79 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /usr/bin/pytest --verbose --log-level=DEBUG -n auto >----------------------------------- stdout ----------------------------------- >========================================================================================================= test session starts ========================================================================================================== >platform linux -- Python 3.12.8, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.12 >cachedir: .pytest_cache >rootdir: /var/tmp/portage/dev-libs/libei-1.3.0/work/libei-1.3.0/test >plugins: xdist-3.6.1, import-check-0.0.4, mock-3.14.0, anyio-4.6.2.post1 >created: 16/16 workers >16 workers [7 items] > >scheduling tests via LoadScheduling > >test_oeffis.py::test_ref_unref >test_oeffis.py::TestOeffis::test_create_session >test_oeffis.py::test_set_user_data >[gw0] [ 14%] PASSED test_oeffis.py::test_ref_unref >test_oeffis.py::test_version_compare >[gw6] [ 28%] PASSED test_oeffis.py::test_version_compare >test_oeffis.py::TestOeffis::test_create_session_all_devices >test_oeffis.py::test_ctx >[gw2] [ 42%] PASSED test_oeffis.py::test_ctx >[gw1] [ 57%] PASSED test_oeffis.py::test_set_user_data >test_oeffis.py::test_error_out >[gw3] [ 71%] PASSED test_oeffis.py::test_error_out >[gw4] [ 85%] PASSED test_oeffis.py::TestOeffis::test_create_session >[gw5] [100%] PASSED test_oeffis.py::TestOeffis::test_create_session_all_devices > >=========================================================================================================== warnings summary =========================================================================================================== >../../../../../../../../usr/lib/python3.12/site-packages/gi/overrides/__init__.py:108: 16 warnings > /usr/lib/python3.12/site-packages/gi/overrides/__init__.py:108: DeprecationWarning: 'pkgutil.get_loader' is deprecated and slated for removal in Python 3.14; use importlib.util.find_spec() instead > override_loader = get_loader(override_package_name) > >../../../../../../../../usr/lib/python3.12/pkgutil.py:291: 16 warnings > /usr/lib/python3.12/pkgutil.py:291: DeprecationWarning: 'pkgutil.find_loader' is deprecated and slated for removal in Python 3.14; use importlib.util.find_spec() instead > return find_loader(fullname) > >-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html >============================================================================================== 7 passed, 2 skipped, 32 warnings in 3.69s =============================================================================================== >============================================================================== > > >Summary of Failures: > > 9/10 libei:python / scanner-pytest FAIL 1.68s exit status 1 > >Ok: 9 >Expected Fail: 0 >Fail: 1 >Unexpected Pass: 0 >Skipped: 0 >Timeout: 0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 937846
:
900006
|
900007
| 913906 |
913950
|
913951