Commit graph

446 commits

Author SHA1 Message Date
Peter Hutterer
81d6fb335d test: add a helper function to mark test progress
Makes debugging easier: just insert a few peck_mark() calls and see
them correctly mixed into the output.
2022-03-03 05:41:15 +00:00
Peter Hutterer
e9e67449d5 test: localize a coordinate set a bit better 2022-03-03 05:41:15 +00:00
Peter Hutterer
d5bdcfc0da eis: add the functions to fetch a region back from the device
Same as ei_device_get_region() and friends.
2022-03-03 15:03:26 +10:00
Peter Hutterer
c15fcdc140 util: add a helper for fetching the cmdline.
Better than duplicating this three times.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-03 00:43:02 +00:00
Peter Hutterer
a59474b5ca gitlab CI: fail the CI early if the fork is private
Copied from libinput, this provides a better error message than weirdly
failing jobs.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-03 00:31:18 +00:00
Peter Hutterer
46681e2855 Add SPDX identifiers to all source files
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-03 00:27:36 +00:00
Peter Hutterer
6926175e30 gitlab CI: drop the requirement for Signed-off-by
I'm starting to question this, there are plenty of large projects
where this isn't a requirement (GNOME, systemd, ...) and libei doesn't
exactly contain sophisticated technology that needs a DCO.

Plus, it's a constant source of confusion for new contributors.
Let's drop the requirement.
2022-03-03 00:24:41 +00:00
Peter Hutterer
46e65370c6 gitlab CI: add a -Werror job (allowed to fail)
Most of the time we don't pay attention to the details in the actual
jobs, them passing is good enough. So let's have at least one job with
-Werror that fails if our CI has warnings we don't have locally.
Allowed to fail because we don't want to be beholden to compiler changes
(though having this fail for a long period makes the job less useful
again).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-02 16:26:16 +10:00
Peter Hutterer
06ce6c3a92 gitlab CI: move the pages job configuration to config.yml
Makes it less error-prone to forgetful updates like 191913, I hope.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-02 16:26:16 +10:00
Peter Hutterer
12e6eed191 meson.build: don't pass werror through to munit
We don't control compiler warnings in that project and currently we
always get one, so let's not prevent werror from working.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-02 16:26:16 +10:00
Peter Hutterer
d2166bf2bd Documentation updates
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-02 15:55:04 +10:00
Peter Hutterer
fb4b11de43 Fix a typo in the docs
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-02 15:55:04 +10:00
Peter Hutterer
97b7a27241 libei 0.2 2022-03-02 10:05:52 +10:00
Peter Hutterer
60523606cf meson.build: add -Wno-unused-variables when buildling with clang
The test suite makes a lot of use of this pattern:
	_unref_(ei_event) *ev = peck_ei_event(....)

Most of the work is done in the peck function, with the caller just
needing cleanup. Unfortunately clang sees this as unused variable and
insists on warning about all of them.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-01 23:28:49 +00:00
Peter Hutterer
ca34a091ac meson.build: add a few compiler flags
And handle them through the compiler.get_supported_arguments() function
in meson.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-01 23:28:49 +00:00
Peter Hutterer
5ab50db599 util-io: avoid variable length arrays for clang's benefit
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-01 23:28:49 +00:00
Peter Hutterer
6a3b4a31c6 util-tristate: mark the inline functions as used for clang's benefit
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-01 23:28:49 +00:00
Peter Hutterer
d6a654adcc util-object: define the cleanup helper functions as used
Cuts down on approximately a million compiler warnings with clang.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-01 23:28:49 +00:00
Peter Hutterer
6afd5c2f94 Drop "static" from some clang-says-the-re-not-const variables
Looks pretty const to me but compiler authors presumably have a
different interpretation.

../src/libei-log.c:52:34: error: initializer element is not a compile-time constant
        static const char *reset_code = ansi_colorcode[RESET];
                                        ^~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-01 23:28:49 +00:00
Peter Hutterer
5f2afdf806 Fix a bunch of compiler warnings
Most are signed vs unsigned, the remaining ones are an unused
variables/functions.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-01 23:28:49 +00:00
Peter Hutterer
2c4506fdb8 Drain all data from the fd if we are disconnecting anyway
If we get EPROTO or EINVAL on the connection, all we do is disconnect
(ourselves or the client). So let's drain the fd so there's no other
data to be parsed by accident and then continue with actually
disconnecting.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-01 23:25:43 +00:00
Peter Hutterer
e36e856141 meson.build: use the SPDX identifier for the license
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-01 14:03:02 +10:00
Peter Hutterer
b3b0866bd4 doc: fix a doxygen complaint
<pid> was interpreted as html

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-01 13:48:43 +10:00
Peter Hutterer
7f6312c043 doc: fix some invalid \ref commands
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-01 13:47:57 +10:00
Peter Hutterer
c88435e51b doc: expand the mainpage with an illustration
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-01 13:46:32 +10:00
Peter Hutterer
6f0172a179 eis: namespace the internal event handlers
We will need eis_device_foo() for the actual event API soon, so let's
move the internal handlers out of the way by namespacing them.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-28 02:23:40 +00:00
Peter Hutterer
86488fdc5a eis: streamline the event handlers a bit
Use a helper function to find the device, no need to duplicate these
loops everywhere.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-28 02:23:40 +00:00
Peter Hutterer
bbbf2ff0f2 ei: add a helper function to create an event from a device
Just cuts down on duplication/room for error

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-28 02:23:40 +00:00
Peter Hutterer
e3ed2c4ee6 proto: group the client messages vs events
This is just for easier readability and extensibility.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-28 02:23:40 +00:00
Peter Hutterer
56187e1543 eis-demo-server: add ei client tracking
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-28 02:23:40 +00:00
Peter Hutterer
7a91f27d42 eis: fix an error when the seat is removed twice
Previous sequence reproducible with the eis-demo-server and
ei-demo-client:
- ctrl+c the client
- eis client dispatch fails with an rc < 0 due to the socket being closed
- eis calls eis_client_disconnect() which calls eis_seat_removed()
  - that triggers an event for `SEAT_UNBIND`
  - seat is set to REMOVE
- eis-demo-server gets the `SEAT_UNBIND` event and (correctly) calls
  eis_seat_remove() since it doesn't know the client is disconnected
  yet. That is due to the library unwinding the state transparently.

Fix this by splitting out the calls: eis_drop_seat() is the internally
used one that sets it to a new state of REMOVED_INTERNALLY, and then
eis_seat_remove merely updates the state.

Fixes #10

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-25 15:48:22 +10:00
Peter Hutterer
6f3a62f5d2 Remove some if 0 code
If 0-ed out in the switch to server-side devices, this can go now.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-22 00:57:36 +00:00
Peter Hutterer
95cca59647 test: remove a set of unused variables
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-22 00:57:36 +00:00
Peter Hutterer
1bcf6c2a61 eis: remove a default statement for better compiler warnings
Requires the same handling as 30d154b0d8
now

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-22 00:57:36 +00:00
Peter Hutterer
e885e5e3da proto: remove two superfluous semicolons
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-22 00:57:36 +00:00
Peter Hutterer
44b986daec proto: correct a few comments dating to an earlier version of this
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-22 00:57:36 +00:00
Peter Hutterer
3f97bacd21 meson.build: use gnu_symbol_visibility option
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-21 14:22:00 +10:00
Peter Hutterer
6801ab188b README: some updates for the current implementation state
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-17 13:40:31 +10:00
Peter Hutterer
191913a9e3 gitlab CI: update the pages job to F35 too
Almost like there was a comment there telling me to do exactly that and
I didn't notice...

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-16 14:48:41 +10:00
Peter Hutterer
d3149b75c2 gitlab CI: update to build on F35 and latest ci-templates
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-16 13:36:59 +10:00
Peter Hutterer
47d8b2e0b5 Add static asserts to ensure our enums are sizeof(int)
Prevents any ABI suprprises by the enums being expanded to long or
shortened to char on special targets.

Fixes #11

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-02-16 03:25:42 +00:00
David Redondo
befbf2005c Free lockfile path
Signed-off-by: David Redondo <kde@david-redondo.de>
2021-12-05 23:14:54 +00:00
David Redondo
30d154b0d8 Allow compiling against newer protobuf-c
The internal enumerator name changed.

Signed-off-by: David Redondo <kde@david-redondo.de>
2021-12-01 17:04:39 +01:00
Peter Hutterer
b94a80d43a Add the two XML files for the current portal implementation
These aren't actually used here but it provides an easier-to-understand
example for what the current portal interface is.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-09-01 12:29:44 +10:00
Peter Hutterer
802e5965cc tools: add a blurb to each tool to list what it is for
Let's not force users/developers to dig through the commit log to figure
out what each tool does.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-09-01 12:29:44 +10:00
Peter Hutterer
28532aa9c6 tools: no need to abort on errors in the fake portal
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-09-01 12:29:44 +10:00
Peter Hutterer
b863445c28 tools: default to LIBEI_SOCKET in the fake portal too
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-09-01 12:29:44 +10:00
Peter Hutterer
df5237a7ea tools: update the portal for the latest version
The latest version of the portal communication adds session capabilities
and wraps the calls a bit differently.

This now  also includes a helper tool for the impl.portal part so we can
run xdg-desktop-portal against that without the need for a mutter
implementation.
Use:
- run the eis-demo-server
- run the eis-fake-impl-portal
- run the xdg-desktop-portal (it'll use the fake impl portal)
- run an ei client with the portal enabled

Note that the ei-fake-portal is a shortcut, it will open eis directly
without going through the impl.portal.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-09-01 12:29:44 +10:00
Peter Hutterer
43be3ddc89 util: add a strreplace function
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-09-01 12:26:05 +10:00
Peter Hutterer
4b3b48291b tools: whitespace fixes in the demo client
And fix a missing field initializer warning while we're here.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-08-27 09:14:00 +10:00