commit 412e1afa4dac5fb6a39a0746a0642272705bbc0a11c4ff694c3946da9bb9fe36 Author: Jan Engelhardt Date: Thu Jun 27 08:31:17 2024 +0000 [info=ce1161ad6377ada74c6fd1059ed53def28371ae343c3fb055d187847a8e1bdc6] OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/libei?expand=0&rev=35 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_scmsync.obsinfo b/_scmsync.obsinfo new file mode 100644 index 0000000..a472b68 --- /dev/null +++ b/_scmsync.obsinfo @@ -0,0 +1,4 @@ +mtime: 1717765323 +commit: ce1161ad6377ada74c6fd1059ed53def28371ae343c3fb055d187847a8e1bdc6 +url: https://src.opensuse.org/pool/libei +revision: factory diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..b26b2ee --- /dev/null +++ b/baselibs.conf @@ -0,0 +1 @@ +libei1 diff --git a/build.specials.obscpio b/build.specials.obscpio new file mode 100644 index 0000000..7e5faf9 --- /dev/null +++ b/build.specials.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6536235befc648650b8b739563adec6cfa75a688da4a8d56ab970f1043edcf8 +size 256 diff --git a/libei-1.2.1.tar.gz b/libei-1.2.1.tar.gz new file mode 100644 index 0000000..bc10e5f --- /dev/null +++ b/libei-1.2.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e06f06aa4dd1f7d170a0e5194644fe5cc889adc9b7be16bed5f2c39145569a4 +size 231338 diff --git a/libei.changes b/libei.changes new file mode 100644 index 0000000..18ea8e8 --- /dev/null +++ b/libei.changes @@ -0,0 +1,168 @@ +------------------------------------------------------------------- +Wed Jun 5 18:28:34 UTC 2024 - Callum Farmer + +- Remove explicit includedir as it already installs to a + subdirectory + +------------------------------------------------------------------- +Wed Feb 14 10:02:03 UTC 2024 - Dominique Leuenberger + +- Add baselibs.conf: GNOME 46's at-spi2-core newly linkes libei, + and the at-spi stack is made available bi-arch. + +------------------------------------------------------------------- +Mon Feb 5 09:29:58 UTC 2024 - Jan Engelhardt + +- Update to release 1.2.1 + * Previously, using OEFFIS_DEVICE_ALL_DEVICES in + oeffis_create_session() would erroneously result in the portal + selecting no devices instead of all. + +------------------------------------------------------------------- +Wed Dec 6 08:31:30 UTC 2023 - Jan Engelhardt + +- Update to release 1.2 + * if the write buffer is full, outgoing messages are now cached + instead of returning EAGAIN. + * if a message send fails, stop trying to send more messages + which will do nothing but spam the log with more errors + * if we get disconnected by the server, stop trying to send + things to the server (and spam the log on error) + * use EINTR checks instead of blocking SIGALRM + * keep a cache of defunct objects to avoid spamming the log when + there are in-flight messages arriving after destroy + +------------------------------------------------------------------- +Thu Sep 7 06:04:28 UTC 2023 - Jan Engelhardt + +- Update to release 1.1 + * Correct documentation for ei_touch_(get|set)_user_data + +------------------------------------------------------------------- +Thu Aug 31 09:28:28 UTC 2023 - Jan Engelhardt + +- Update to release 1.0.901 (1.1.0~rc1) + * ei_device_get_region_at() and its libeis equivalent was added + as a helper to obtain a device's region at a given point. + * ei_region_get_mapping_id() returns the mapping id previously + set by the EIS implementation via + eis_region_set_mapping_id(). This mapping id can be used to + identify external resources that have a relationship with + this region. + This is a protocol addition and bumps the ei_device protocol + to version 2. + +------------------------------------------------------------------- +Thu Jun 8 13:10:22 UTC 2023 - Jan Engelhardt + +- Update to release 1.0.0 + * Protocol: + * ei_connection.sync now takes a version argument to allow for + future updates of the ei_callback interface. This is a + protocol change. + * The ei-scanner now exposes interface_arg + interface_arg_for + and version_arg + version_arg_for to allow for better + handling of arguments that refer to interfaces or versions, + respectively. + * Library: + * The enum eis_event_type was synced with libei so identical + events have the same enum value in both libraries. + * A few missing functions are now public too. + * libeis _for now_ sends all negotiated interface versions back + to the client during the initial handshake. + +------------------------------------------------------------------- +Mon May 29 12:50:07 UTC 2023 - Jan Engelhardt + +- Update to release 0.99.2 + * Export the event names through helper functions + * scanner: add the Interface.plainname property + +------------------------------------------------------------------- +Wed May 17 09:20:52 UTC 2023 - Jan Engelhardt + +- Update to release 0.99.1 + * The protocol no longer has a fixed capability enum, the + bitmask is based on the available interfaces. See the + ei_seat.capability event in the protocol documentation. + * New interfaces for button and scroll - these were split out + from the previously merged pointer/pointer_absolute + interfaces. Clients need to bind to those in addition to + binding to pointer and/or pointer_absolute. EIS + implementations need to provide those separately in addition + to pointer/pointer_absolute. + * A number of APIs have been renamed to adjust for this, e.g. + ei_event_pointer_get_scroll_x() is now + ei_event_scroll_get_dx() + * ei_seat_bind_capability() was removed, use + ei_seat_bind_capabilities() instead + * The pkgconfig files are now libei-1.0.pc, libeis-1.0.pc, + liboeffis-1.0.pc +- Delete ver.diff (obsolete), system-munit.diff (deactivate for now) + +------------------------------------------------------------------- +Thu Apr 6 13:12:49 UTC 2023 - Jan Engelhardt + +- Update to release 0.5 + * The previously protobuf-based ad-hoc protocol has changed to + custom format defined in the protocol.xml file. This protocol + is heavily influenced by the Wayland protocol but not binary + compatible. The protocol is not yet stable. + * ei_get_version() has been removed, with the protocol having + per-interface versions this is no longer useful. + * ei_device_start_emulating() now takes a sequence number. + * Support for properties has been removed. + * libreis has been removed. + +------------------------------------------------------------------- +Tue Dec 13 10:10:37 UTC 2022 - Jan Engelhardt + +- Update to release 0.4.1 + * ei_setup_backend_portal() was removed. The portal it + connected to never really existed and all the efforts since + have gone into supporting libei connections through the + RemoteDesktop and the InputCapture portals. Note that these + changes are not yet merged into upstream xdg-desktop-portal. + * a new library "liboeffis" takes the place of the above. It is + a helper library to connect to the RemoteDesktop portal via + DBus with a minimal API and retrieve the EIS socket. This + library is intended to be used by tools that cannot easily + talk DBus themselves (this includes Xwayland). + * the libei/libeis log handlers have a new API which makes + handling log messages a bit simpler. + * version exchange between client/server make it possible (in + the future) to have multiple supported protocol versions. + +------------------------------------------------------------------- +Tue Jun 7 06:44:15 UTC 2022 - Jan Engelhardt + +- Update to release 0.3 + * libei now supports the concept of sender/receiver contexts. A + libei context in sender mode can send events to the + (EIS-created) devices, a libei context in receiver mode can + receive events from the (EIS-created) devices. This allows + for libei to be used as a transport layer for captured input + events. + * A libei context can bind/unbind to seat capabilities + individually at any time + * Frame events now carry a timestamp + * A helper tool ei-debug-events is now available, this tool can + be used in e.g. portal implementation to show the events + being sent. + +------------------------------------------------------------------- +Wed Mar 2 08:00:57 UTC 2022 - Jan Engelhardt + +- Update to release 0.2 + * Development snapshot, no curated changelog available. + +------------------------------------------------------------------- +Wed Aug 26 00:06:10 UTC 2020 - Jan Engelhardt + +- Add meson_build call. + +------------------------------------------------------------------- +Thu Aug 13 09:01:21 UTC 2020 - Jan Engelhardt + +- Initial package (version 0+134/7965e8f) for build.opensuse.org +- Add system-munit.diff, ver.diff diff --git a/libei.spec b/libei.spec new file mode 100644 index 0000000..6a9e0db --- /dev/null +++ b/libei.spec @@ -0,0 +1,90 @@ +# +# spec file for package libei +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + +%define lname libei1 +Name: libei +Version: 1.2.1 +Release: 0 +Summary: Library for emulated input in Wayland +License: MIT +Group: Development/Libraries/C and C++ +URL: https://gitlab.freedesktop.org/libinput/libei/ +Source0: https://gitlab.freedesktop.org/libinput/libei/-/archive/%version/%name-%version.tar.gz +Source99: baselibs.conf +BuildRequires: meson >= 0.57 +BuildRequires: ninja +BuildRequires: protobuf-c +BuildRequires: python3-attrs +BuildRequires: python3-jinja2 +BuildRequires: pkgconfig(libevdev) +BuildRequires: pkgconfig(libprotobuf-c) +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(protobuf-lite) +BuildRequires: pkgconfig(xkbcommon) + +%description +libei is a library to send Emulated Input (EI) to a matching Emulated +Input Server (EIS) which can receive those events with libeis. + +It targets Wayland and provides separation, distinction and control, +which, for comparison, are not available with XTEST (X11's emulated +input). + +%package -n %lname +Summary: Library for emulated input in Wayland +Group: System/Libraries + +%description -n %lname +libei is a library to send Emulated Input (EI) to a matching Emulated +Input Server (EIS) which can receive those events with libeis. + +It targets Wayland and provides separation, distinction and control, +which, for comparison, are not available with XTEST (X11's emulated +input). + +%package devel +Summary: Header files for libei, a library for emulated input under Wayland +Group: Development/Libraries/C and C++ +Requires: %lname = %version + +%description devel +libei is a library for Emulated Input, targeting the Wayland stack. + +%prep +%autosetup -p1 + +%build +%meson -Dtests=disabled +%meson_build + +%install +%meson_install + +%post -n %lname -p /sbin/ldconfig +%postun -n %lname -p /sbin/ldconfig + +%files -n %lname +%_libdir/lib*.so.* + +%files devel +%_bindir/ei-debug-* +%_includedir/%name-1.0 +%_libdir/pkgconfig/*.pc +%_libdir/*.so +%license COPYING + +%changelog