git: ceff6671ff1b - main - x11/squeekboard: update to 1.18.0

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Sat, 10 Jun 2023 23:14:26 UTC
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=ceff6671ff1b64d9589db6cba0cbb00da24c90d0

commit ceff6671ff1b64d9589db6cba0cbb00da24c90d0
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2022-04-25 13:14:00 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2023-06-10 23:13:43 +0000

    x11/squeekboard: update to 1.18.0
    
    Changes:        https://gitlab.gnome.org/World/Phosh/squeekboard/-/compare/v1.17.1...v1.18.0
    Reported by:    Repology
---
 x11/squeekboard/Makefile         |  17 +++-
 x11/squeekboard/Makefile.crates  |  36 ++++++-
 x11/squeekboard/distinfo         |  78 ++++++++++++--
 x11/squeekboard/files/patch-zbus | 214 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 332 insertions(+), 13 deletions(-)

diff --git a/x11/squeekboard/Makefile b/x11/squeekboard/Makefile
index 7c2cb76a51bb..525f84297d77 100644
--- a/x11/squeekboard/Makefile
+++ b/x11/squeekboard/Makefile
@@ -1,11 +1,10 @@
 PORTNAME=	squeekboard
 DISTVERSIONPREFIX=	v
-DISTVERSION=	1.17.1
-PORTREVISION=	14
+DISTVERSION=	1.18.0
 CATEGORIES=	x11 wayland
 
 PATCH_SITES=	${GL_SITE}/${GL_ACCOUNT}/${GL_PROJECT}/-/commit/
-PATCHFILES+=	1ccc663c4808.patch:-p1 # sync clap with future Cargo.lock.newer
+PATCHFILES+=	c0f57e735528.patch:-p1 # https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/551
 
 MAINTAINER=	jbeich@FreeBSD.org
 COMMENT=	On-screen keyboard input method for Wayland
@@ -29,7 +28,7 @@ USE_GITLAB=	yes
 USE_GNOME=	cairo gdkpixbuf2 gnomedesktop3 gtk30
 GL_SITE=	https://gitlab.gnome.org
 GL_ACCOUNT=	World/Phosh
-GL_COMMIT=	2faa98d85f1142383ec8ad1487616c1a7ad1882f
+GL_COMMIT=	cb338129ca19c8c054ee1b1d75bcca49e3234de9
 SHEBANG_FILES=	tools/entry.py
 MAKE_ENV=	${CARGO_ENV}
 CARGO_BUILD=	no
@@ -45,16 +44,26 @@ PLIST_FILES=	bin/${PORTNAME} \
 		share/applications/sm.puri.Squeekboard.desktop \
 		share/locale/ca/LC_MESSAGES/${PORTNAME}.mo \
 		share/locale/de/LC_MESSAGES/${PORTNAME}.mo \
+		share/locale/es/LC_MESSAGES/${PORTNAME}.mo \
 		share/locale/fa/LC_MESSAGES/${PORTNAME}.mo \
 		share/locale/fi/LC_MESSAGES/${PORTNAME}.mo \
 		share/locale/fur/LC_MESSAGES/${PORTNAME}.mo \
 		share/locale/gl/LC_MESSAGES/${PORTNAME}.mo \
 		share/locale/he/LC_MESSAGES/${PORTNAME}.mo \
+		share/locale/hu/LC_MESSAGES/${PORTNAME}.mo \
+		share/locale/it/LC_MESSAGES/${PORTNAME}.mo \
+		share/locale/ka/LC_MESSAGES/${PORTNAME}.mo \
+		share/locale/ko/LC_MESSAGES/${PORTNAME}.mo \
 		share/locale/nl/LC_MESSAGES/${PORTNAME}.mo \
+		share/locale/oc/LC_MESSAGES/${PORTNAME}.mo \
+		share/locale/pl/LC_MESSAGES/${PORTNAME}.mo \
+		share/locale/pt/LC_MESSAGES/${PORTNAME}.mo \
 		share/locale/pt_BR/LC_MESSAGES/${PORTNAME}.mo \
 		share/locale/ro/LC_MESSAGES/${PORTNAME}.mo \
 		share/locale/sl/LC_MESSAGES/${PORTNAME}.mo \
+		share/locale/sr/LC_MESSAGES/${PORTNAME}.mo \
 		share/locale/sv/LC_MESSAGES/${PORTNAME}.mo \
+		share/locale/tr/LC_MESSAGES/${PORTNAME}.mo \
 		share/locale/uk/LC_MESSAGES/${PORTNAME}.mo \
 		${NULL}
 
diff --git a/x11/squeekboard/Makefile.crates b/x11/squeekboard/Makefile.crates
index acde13a00cdb..c5c20af3796f 100644
--- a/x11/squeekboard/Makefile.crates
+++ b/x11/squeekboard/Makefile.crates
@@ -1,19 +1,33 @@
 CARGO_CRATES=	anyhow-1.0.63 \
+		async-io-1.9.0 \
 		atk-0.14.0 \
 		atk-sys-0.14.0 \
 		autocfg-1.1.0 \
 		bitflags-1.3.2 \
+		byteorder-1.4.3 \
+		cache-padded-1.2.0 \
 		cairo-rs-0.14.9 \
 		cairo-sys-rs-0.14.9 \
+		cc-1.0.73 \
 		cfg-expr-0.8.1 \
+		cfg-if-1.0.0 \
 		clap-3.1.18 \
 		clap_lex-0.2.4 \
+		concurrent-queue-1.2.4 \
+		derivative-2.2.0 \
 		either-1.8.0 \
+		enumflags2-0.6.4 \
+		enumflags2_derive-0.6.4 \
+		fastrand-1.8.0 \
 		field-offset-0.3.4 \
+		futures-0.3.24 \
 		futures-channel-0.3.24 \
 		futures-core-0.3.24 \
 		futures-executor-0.3.24 \
 		futures-io-0.3.24 \
+		futures-lite-1.12.0 \
+		futures-macro-0.3.24 \
+		futures-sink-0.3.24 \
 		futures-task-0.3.24 \
 		futures-util-0.3.24 \
 		gdk-0.14.3 \
@@ -32,20 +46,28 @@ CARGO_CRATES=	anyhow-1.0.63 \
 		hashbrown-0.12.3 \
 		heck-0.3.3 \
 		indexmap-1.9.1 \
+		instant-0.1.12 \
 		itertools-0.10.3 \
 		libc-0.2.132 \
 		linked-hash-map-0.5.6 \
+		log-0.4.17 \
 		maplit-1.0.2 \
+		memchr-2.5.0 \
 		memmap-0.7.0 \
 		memoffset-0.6.5 \
+		nb-connect-1.2.0 \
+		nix-0.22.3 \
 		once_cell-1.14.0 \
-		os_str_bytes-6.5.0 \
+		os_str_bytes-6.3.0 \
 		pango-0.14.8 \
 		pango-sys-0.14.0 \
+		parking-2.0.0 \
 		pest-2.3.0 \
 		pin-project-lite-0.2.9 \
 		pin-utils-0.1.0 \
 		pkg-config-0.3.25 \
+		polling-2.3.0 \
+		proc-macro-crate-0.1.5 \
 		proc-macro-crate-1.2.1 \
 		proc-macro-error-1.0.4 \
 		proc-macro-error-attr-1.0.4 \
@@ -53,13 +75,17 @@ CARGO_CRATES=	anyhow-1.0.63 \
 		quote-1.0.21 \
 		rustc_version-0.3.3 \
 		ryu-1.0.11 \
+		scoped-tls-1.0.0 \
 		semver-0.11.0 \
 		semver-parser-0.10.2 \
 		serde-1.0.144 \
 		serde_derive-1.0.144 \
+		serde_repr-0.1.9 \
 		serde_yaml-0.8.26 \
 		slab-0.4.7 \
 		smallvec-1.9.0 \
+		socket2-0.4.7 \
+		static_assertions-1.1.0 \
 		strum-0.21.0 \
 		strum_macros-0.21.1 \
 		syn-1.0.99 \
@@ -73,8 +99,14 @@ CARGO_CRATES=	anyhow-1.0.63 \
 		unicode-segmentation-1.9.0 \
 		version-compare-0.0.11 \
 		version_check-0.9.4 \
+		waker-fn-1.1.0 \
+		wepoll-ffi-0.1.2 \
 		winapi-0.3.9 \
 		winapi-i686-pc-windows-gnu-0.4.0 \
 		winapi-x86_64-pc-windows-gnu-0.4.0 \
 		xkbcommon-0.4.1 \
-		yaml-rust-0.4.5
+		yaml-rust-0.4.5 \
+		zbus-1.9.3 \
+		zbus_macros-1.9.3 \
+		zvariant-2.10.0 \
+		zvariant_derive-2.10.0
diff --git a/x11/squeekboard/distinfo b/x11/squeekboard/distinfo
index 4662cfa554ef..663d64a6a021 100644
--- a/x11/squeekboard/distinfo
+++ b/x11/squeekboard/distinfo
@@ -1,6 +1,8 @@
-TIMESTAMP = 1649165663
+TIMESTAMP = 1650892440
 SHA256 (rust/crates/anyhow-1.0.63.crate) = a26fa4d7e3f2eebadf743988fc8aec9fa9a9e82611acafd77c1462ed6262440a
 SIZE (rust/crates/anyhow-1.0.63.crate) = 43461
+SHA256 (rust/crates/async-io-1.9.0.crate) = 83e21f3a490c72b3b0cf44962180e60045de2925d8dff97918f7ee43c8f637c7
+SIZE (rust/crates/async-io-1.9.0.crate) = 36394
 SHA256 (rust/crates/atk-0.14.0.crate) = a83b21d2aa75e464db56225e1bda2dd5993311ba1095acaa8fa03d1ae67026ba
 SIZE (rust/crates/atk-0.14.0.crate) = 35031
 SHA256 (rust/crates/atk-sys-0.14.0.crate) = badcf670157c84bb8b1cf6b5f70b650fed78da2033c9eed84c4e49b11cbe83ea
@@ -9,20 +11,40 @@ SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36
 SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
 SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
 SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/byteorder-1.4.3.crate) = 14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610
+SIZE (rust/crates/byteorder-1.4.3.crate) = 22512
+SHA256 (rust/crates/cache-padded-1.2.0.crate) = c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c
+SIZE (rust/crates/cache-padded-1.2.0.crate) = 9125
 SHA256 (rust/crates/cairo-rs-0.14.9.crate) = 33b5725979db0c586d98abad2193cdb612dd40ef95cd26bd99851bf93b3cb482
 SIZE (rust/crates/cairo-rs-0.14.9.crate) = 48398
 SHA256 (rust/crates/cairo-sys-rs-0.14.9.crate) = b448b876970834fda82ba3aeaccadbd760206b75388fc5c1b02f1e343b697570
 SIZE (rust/crates/cairo-sys-rs-0.14.9.crate) = 11148
+SHA256 (rust/crates/cc-1.0.73.crate) = 2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11
+SIZE (rust/crates/cc-1.0.73.crate) = 57880
 SHA256 (rust/crates/cfg-expr-0.8.1.crate) = b412e83326147c2bb881f8b40edfbf9905b9b8abaebd0e47ca190ba62fda8f0e
 SIZE (rust/crates/cfg-expr-0.8.1.crate) = 34539
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
 SHA256 (rust/crates/clap-3.1.18.crate) = d2dbdf4bdacb33466e854ce889eee8dfd5729abf7ccd7664d0a2d60cd384440b
 SIZE (rust/crates/clap-3.1.18.crate) = 209664
 SHA256 (rust/crates/clap_lex-0.2.4.crate) = 2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5
 SIZE (rust/crates/clap_lex-0.2.4.crate) = 9652
+SHA256 (rust/crates/concurrent-queue-1.2.4.crate) = af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c
+SIZE (rust/crates/concurrent-queue-1.2.4.crate) = 15375
+SHA256 (rust/crates/derivative-2.2.0.crate) = fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b
+SIZE (rust/crates/derivative-2.2.0.crate) = 48076
 SHA256 (rust/crates/either-1.8.0.crate) = 90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797
 SIZE (rust/crates/either-1.8.0.crate) = 15992
+SHA256 (rust/crates/enumflags2-0.6.4.crate) = 83c8d82922337cd23a15f88b70d8e4ef5f11da38dd7cdb55e84dd5de99695da0
+SIZE (rust/crates/enumflags2-0.6.4.crate) = 10713
+SHA256 (rust/crates/enumflags2_derive-0.6.4.crate) = 946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce
+SIZE (rust/crates/enumflags2_derive-0.6.4.crate) = 3659
+SHA256 (rust/crates/fastrand-1.8.0.crate) = a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499
+SIZE (rust/crates/fastrand-1.8.0.crate) = 11369
 SHA256 (rust/crates/field-offset-0.3.4.crate) = 1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92
 SIZE (rust/crates/field-offset-0.3.4.crate) = 6046
+SHA256 (rust/crates/futures-0.3.24.crate) = 7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c
+SIZE (rust/crates/futures-0.3.24.crate) = 51399
 SHA256 (rust/crates/futures-channel-0.3.24.crate) = 30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050
 SIZE (rust/crates/futures-channel-0.3.24.crate) = 31963
 SHA256 (rust/crates/futures-core-0.3.24.crate) = 4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf
@@ -31,6 +53,12 @@ SHA256 (rust/crates/futures-executor-0.3.24.crate) = 9ff63c23854bee61b6e9cd331d5
 SIZE (rust/crates/futures-executor-0.3.24.crate) = 17745
 SHA256 (rust/crates/futures-io-0.3.24.crate) = bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68
 SIZE (rust/crates/futures-io-0.3.24.crate) = 8910
+SHA256 (rust/crates/futures-lite-1.12.0.crate) = 7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48
+SIZE (rust/crates/futures-lite-1.12.0.crate) = 36032
+SHA256 (rust/crates/futures-macro-0.3.24.crate) = 42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17
+SIZE (rust/crates/futures-macro-0.3.24.crate) = 11252
+SHA256 (rust/crates/futures-sink-0.3.24.crate) = 21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56
+SIZE (rust/crates/futures-sink-0.3.24.crate) = 7854
 SHA256 (rust/crates/futures-task-0.3.24.crate) = a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1
 SIZE (rust/crates/futures-task-0.3.24.crate) = 11836
 SHA256 (rust/crates/futures-util-0.3.24.crate) = 44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90
@@ -67,26 +95,38 @@ SHA256 (rust/crates/heck-0.3.3.crate) = 6d621efb26863f0e9924c6ac577e8275e5e6b774
 SIZE (rust/crates/heck-0.3.3.crate) = 10260
 SHA256 (rust/crates/indexmap-1.9.1.crate) = 10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e
 SIZE (rust/crates/indexmap-1.9.1.crate) = 54114
+SHA256 (rust/crates/instant-0.1.12.crate) = 7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c
+SIZE (rust/crates/instant-0.1.12.crate) = 6128
 SHA256 (rust/crates/itertools-0.10.3.crate) = a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3
 SIZE (rust/crates/itertools-0.10.3.crate) = 118661
 SHA256 (rust/crates/libc-0.2.132.crate) = 8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5
 SIZE (rust/crates/libc-0.2.132.crate) = 595317
 SHA256 (rust/crates/linked-hash-map-0.5.6.crate) = 0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f
 SIZE (rust/crates/linked-hash-map-0.5.6.crate) = 15049
+SHA256 (rust/crates/log-0.4.17.crate) = abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e
+SIZE (rust/crates/log-0.4.17.crate) = 38028
 SHA256 (rust/crates/maplit-1.0.2.crate) = 3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d
 SIZE (rust/crates/maplit-1.0.2.crate) = 8871
+SHA256 (rust/crates/memchr-2.5.0.crate) = 2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d
+SIZE (rust/crates/memchr-2.5.0.crate) = 65812
 SHA256 (rust/crates/memmap-0.7.0.crate) = 6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b
 SIZE (rust/crates/memmap-0.7.0.crate) = 15214
 SHA256 (rust/crates/memoffset-0.6.5.crate) = 5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce
 SIZE (rust/crates/memoffset-0.6.5.crate) = 7686
+SHA256 (rust/crates/nb-connect-1.2.0.crate) = b1bb540dc6ef51cfe1916ec038ce7a620daf3a111e2502d745197cd53d6bca15
+SIZE (rust/crates/nb-connect-1.2.0.crate) = 8126
+SHA256 (rust/crates/nix-0.22.3.crate) = e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf
+SIZE (rust/crates/nix-0.22.3.crate) = 230252
 SHA256 (rust/crates/once_cell-1.14.0.crate) = 2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0
 SIZE (rust/crates/once_cell-1.14.0.crate) = 31614
-SHA256 (rust/crates/os_str_bytes-6.5.0.crate) = ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267
-SIZE (rust/crates/os_str_bytes-6.5.0.crate) = 23166
+SHA256 (rust/crates/os_str_bytes-6.3.0.crate) = 9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff
+SIZE (rust/crates/os_str_bytes-6.3.0.crate) = 22928
 SHA256 (rust/crates/pango-0.14.8.crate) = 546fd59801e5ca735af82839007edd226fe7d3bb06433ec48072be4439c28581
 SIZE (rust/crates/pango-0.14.8.crate) = 37643
 SHA256 (rust/crates/pango-sys-0.14.0.crate) = 2367099ca5e761546ba1d501955079f097caa186bb53ce0f718dca99ac1942fe
 SIZE (rust/crates/pango-sys-0.14.0.crate) = 23109
+SHA256 (rust/crates/parking-2.0.0.crate) = 427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72
+SIZE (rust/crates/parking-2.0.0.crate) = 9714
 SHA256 (rust/crates/pest-2.3.0.crate) = 4b0560d531d1febc25a3c9398a62a71256c0178f2e3443baedd9ad4bb8c9deb4
 SIZE (rust/crates/pest-2.3.0.crate) = 85156
 SHA256 (rust/crates/pin-project-lite-0.2.9.crate) = e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116
@@ -95,6 +135,10 @@ SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d
 SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
 SHA256 (rust/crates/pkg-config-0.3.25.crate) = 1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae
 SIZE (rust/crates/pkg-config-0.3.25.crate) = 16838
+SHA256 (rust/crates/polling-2.3.0.crate) = 899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011
+SIZE (rust/crates/polling-2.3.0.crate) = 21678
+SHA256 (rust/crates/proc-macro-crate-0.1.5.crate) = 1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785
+SIZE (rust/crates/proc-macro-crate-0.1.5.crate) = 8096
 SHA256 (rust/crates/proc-macro-crate-1.2.1.crate) = eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9
 SIZE (rust/crates/proc-macro-crate-1.2.1.crate) = 9161
 SHA256 (rust/crates/proc-macro-error-1.0.4.crate) = da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c
@@ -109,6 +153,8 @@ SHA256 (rust/crates/rustc_version-0.3.3.crate) = f0dfe2087c51c460008730de8b57e6a
 SIZE (rust/crates/rustc_version-0.3.3.crate) = 12119
 SHA256 (rust/crates/ryu-1.0.11.crate) = 4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09
 SIZE (rust/crates/ryu-1.0.11.crate) = 47007
+SHA256 (rust/crates/scoped-tls-1.0.0.crate) = ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2
+SIZE (rust/crates/scoped-tls-1.0.0.crate) = 9146
 SHA256 (rust/crates/semver-0.11.0.crate) = f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6
 SIZE (rust/crates/semver-0.11.0.crate) = 20826
 SHA256 (rust/crates/semver-parser-0.10.2.crate) = 00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7
@@ -117,12 +163,18 @@ SHA256 (rust/crates/serde-1.0.144.crate) = 0f747710de3dcd43b88c9168773254e809d8d
 SIZE (rust/crates/serde-1.0.144.crate) = 76387
 SHA256 (rust/crates/serde_derive-1.0.144.crate) = 94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00
 SIZE (rust/crates/serde_derive-1.0.144.crate) = 54867
+SHA256 (rust/crates/serde_repr-0.1.9.crate) = 1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca
+SIZE (rust/crates/serde_repr-0.1.9.crate) = 9695
 SHA256 (rust/crates/serde_yaml-0.8.26.crate) = 578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b
 SIZE (rust/crates/serde_yaml-0.8.26.crate) = 40670
 SHA256 (rust/crates/slab-0.4.7.crate) = 4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef
 SIZE (rust/crates/slab-0.4.7.crate) = 16647
 SHA256 (rust/crates/smallvec-1.9.0.crate) = 2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1
 SIZE (rust/crates/smallvec-1.9.0.crate) = 28396
+SHA256 (rust/crates/socket2-0.4.7.crate) = 02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd
+SIZE (rust/crates/socket2-0.4.7.crate) = 44619
+SHA256 (rust/crates/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f
+SIZE (rust/crates/static_assertions-1.1.0.crate) = 18480
 SHA256 (rust/crates/strum-0.21.0.crate) = aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2
 SIZE (rust/crates/strum-0.21.0.crate) = 5296
 SHA256 (rust/crates/strum_macros-0.21.1.crate) = d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec
@@ -149,6 +201,10 @@ SHA256 (rust/crates/version-compare-0.0.11.crate) = 1c18c859eead79d8b95d09e46785
 SIZE (rust/crates/version-compare-0.0.11.crate) = 15208
 SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
 SIZE (rust/crates/version_check-0.9.4.crate) = 14895
+SHA256 (rust/crates/waker-fn-1.1.0.crate) = 9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca
+SIZE (rust/crates/waker-fn-1.1.0.crate) = 7114
+SHA256 (rust/crates/wepoll-ffi-0.1.2.crate) = d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb
+SIZE (rust/crates/wepoll-ffi-0.1.2.crate) = 31309
 SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
 SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
 SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
@@ -159,7 +215,15 @@ SHA256 (rust/crates/xkbcommon-0.4.1.crate) = 032ed00cc755c31221bbd6aaf9fa4196a01
 SIZE (rust/crates/xkbcommon-0.4.1.crate) = 57514
 SHA256 (rust/crates/yaml-rust-0.4.5.crate) = 56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85
 SIZE (rust/crates/yaml-rust-0.4.5.crate) = 47783
-SHA256 (World/Phosh-squeekboard-2faa98d85f1142383ec8ad1487616c1a7ad1882f_GL0.tar.gz) = 53e7836ba6b2a0628b4aca04819d1ae970c8af31870ef7d8c1616b69f204d1f8
-SIZE (World/Phosh-squeekboard-2faa98d85f1142383ec8ad1487616c1a7ad1882f_GL0.tar.gz) = 187038
-SHA256 (1ccc663c4808.patch) = 01ce4327cc3dde81d548c363b7fbfb1879895ebfc611ffd025bec4eea4712b13
-SIZE (1ccc663c4808.patch) = 736
+SHA256 (rust/crates/zbus-1.9.3.crate) = 9cbeb2291cd7267a94489b71376eda33496c1b9881adf6b36f26cc2779f3fc49
+SIZE (rust/crates/zbus-1.9.3.crate) = 62957
+SHA256 (rust/crates/zbus_macros-1.9.3.crate) = fa3959a7847cf95e3d51e312856617c5b1b77191176c65a79a5f14d778bbe0a6
+SIZE (rust/crates/zbus_macros-1.9.3.crate) = 14794
+SHA256 (rust/crates/zvariant-2.10.0.crate) = a68c7b55f2074489b7e8e07d2d0a6ee6b4f233867a653c664d8020ba53692525
+SIZE (rust/crates/zvariant-2.10.0.crate) = 64374
+SHA256 (rust/crates/zvariant_derive-2.10.0.crate) = e4ca5e22593eb4212382d60d26350065bf2a02c34b85bc850474a74b589a3de9
+SIZE (rust/crates/zvariant_derive-2.10.0.crate) = 8746
+SHA256 (World/Phosh-squeekboard-cb338129ca19c8c054ee1b1d75bcca49e3234de9_GL0.tar.gz) = 09b72e15937f14067b56070d67f810e8cc2a183e58112de7ee1b56764a5de5ef
+SIZE (World/Phosh-squeekboard-cb338129ca19c8c054ee1b1d75bcca49e3234de9_GL0.tar.gz) = 197265
+SHA256 (c0f57e735528.patch) = a20d602666bf458466c7d41b48fe793152c1d0440ad6035ffa756217d4171e44
+SIZE (c0f57e735528.patch) = 857
diff --git a/x11/squeekboard/files/patch-zbus b/x11/squeekboard/files/patch-zbus
new file mode 100644
index 000000000000..1000516f5d19
--- /dev/null
+++ b/x11/squeekboard/files/patch-zbus
@@ -0,0 +1,214 @@
+https://gitlab.freedesktop.org/dbus/zbus/-/commit/807909a6c7bf
+https://gitlab.freedesktop.org/dbus/zbus/-/commit/e3e2f7ddfd6e
+https://gitlab.freedesktop.org/dbus/zbus/-/commit/35d1b8778754
+
+--- cargo-crates/zbus-1.9.3/src/address.rs.orig	1970-01-01 00:00:00 UTC
++++ cargo-crates/zbus-1.9.3/src/address.rs
+@@ -57,8 +57,9 @@ impl Address {
+         match env::var("DBUS_SESSION_BUS_ADDRESS") {
+             Ok(val) => Self::from_str(&val),
+             _ => {
+-                let uid = Uid::current();
+-                let path = format!("unix:path=/run/user/{}/bus", uid);
++                let runtime_dir = env::var("XDG_RUNTIME_DIR")
++                    .unwrap_or_else(|_| format!("/run/user/{}", Uid::current()));
++                let path = format!("unix:path={}/bus", runtime_dir);
+ 
+                 Self::from_str(&path)
+             }
+--- cargo-crates/zbus-1.9.3/src/azync/connection.rs.orig	1970-01-01 00:00:00 UTC
++++ cargo-crates/zbus-1.9.3/src/azync/connection.rs
+@@ -177,13 +177,29 @@ where
+     /// Upon successful return, the connection is fully established and negotiated: D-Bus messages
+     /// can be sent and received.
+     pub async fn new_server(stream: S, guid: &Guid) -> Result<Self> {
+-        use nix::sys::socket::{getsockopt, sockopt::PeerCredentials};
++        #[cfg(any(target_os = "android", target_os = "linux"))]
++        let client_uid = {
++            use nix::sys::socket::{getsockopt, sockopt::PeerCredentials};
+ 
+-        // FIXME: Could and should this be async?
+-        let creds = getsockopt(stream.as_raw_fd(), PeerCredentials)
+-            .map_err(|e| Error::Handshake(format!("Failed to get peer credentials: {}", e)))?;
++            let creds = getsockopt(stream.as_raw_fd(), PeerCredentials)
++                .map_err(|e| Error::Handshake(format!("Failed to get peer credentials: {}", e)))?;
+ 
+-        let auth = Authenticated::server(Async::new(stream)?, guid.clone(), creds.uid()).await?;
++            creds.uid()
++        };
++        #[cfg(any(
++            target_os = "macos",
++            target_os = "ios",
++            target_os = "freebsd",
++            target_os = "dragonfly",
++            target_os = "openbsd",
++            target_os = "netbsd"
++        ))]
++        let client_uid = nix::unistd::getpeereid(stream.as_raw_fd())
++            .map_err(|e| Error::Handshake(format!("Failed to get peer credentials: {}", e)))?
++            .0
++            .into();
++
++        let auth = Authenticated::server(Async::new(stream)?, guid.clone(), client_uid).await?;
+ 
+         Ok(Self::new_authenticated(auth))
+     }
+--- cargo-crates/zbus-1.9.3/src/connection.rs.orig	1970-01-01 00:00:00 UTC
++++ cargo-crates/zbus-1.9.3/src/connection.rs
+@@ -160,12 +160,29 @@ impl Connection {
+     /// Upon successful return, the connection is fully established and negotiated: D-Bus messages
+     /// can be sent and received.
+     pub fn new_unix_server(stream: UnixStream, guid: &Guid) -> Result<Self> {
+-        use nix::sys::socket::{getsockopt, sockopt::PeerCredentials};
++        #[cfg(any(target_os = "android", target_os = "linux"))]
++        let client_uid = {
++            use nix::sys::socket::{getsockopt, sockopt::PeerCredentials};
+ 
+-        let creds = getsockopt(stream.as_raw_fd(), PeerCredentials)
+-            .map_err(|e| Error::Handshake(format!("Failed to get peer credentials: {}", e)))?;
++            let creds = getsockopt(stream.as_raw_fd(), PeerCredentials)
++                .map_err(|e| Error::Handshake(format!("Failed to get peer credentials: {}", e)))?;
+ 
+-        let handshake = ServerHandshake::new(stream, guid.clone(), creds.uid());
++            creds.uid()
++        };
++        #[cfg(any(
++            target_os = "macos",
++            target_os = "ios",
++            target_os = "freebsd",
++            target_os = "dragonfly",
++            target_os = "openbsd",
++            target_os = "netbsd"
++        ))]
++        let client_uid = nix::unistd::getpeereid(stream.as_raw_fd())
++            .map_err(|e| Error::Handshake(format!("Failed to get peer credentials: {}", e)))?
++            .0
++            .into();
++
++        let handshake = ServerHandshake::new(stream, guid.clone(), client_uid);
+         handshake
+             .blocking_finish()
+             .map(Connection::new_authenticated_unix)
+--- cargo-crates/zbus-1.9.3/src/handshake.rs.orig	1970-01-01 00:00:00 UTC
++++ cargo-crates/zbus-1.9.3/src/handshake.rs
+@@ -124,7 +124,7 @@ impl<S: Socket> ClientHandshake<S> {
+ 
+     fn flush_buffer(&mut self) -> Result<()> {
+         while !self.buffer.is_empty() {
+-            let written = self.socket.sendmsg(&self.buffer, &[])?;
++            let written = self.socket.sendmsg(&self.buffer, &[], false)?;
+             self.buffer.drain(..written);
+         }
+         Ok(())
+@@ -182,6 +182,15 @@ impl<S: Socket> Handshake<S> for ClientHandshake<S> {
+                     self.step = ClientHandshakeStep::SendingOauth;
+                 }
+                 ClientHandshakeStep::SendingOauth => {
++                    #[cfg(any(target_os = "freebsd", target_os = "dragonfly"))]
++                    {
++                        let zero = self.buffer.drain(..1).next().unwrap();
++                        if self.socket.sendmsg(&[zero], &[], true)? != 1 {
++                            return Err(Error::Handshake(
++                                "Could not send zero byte with credentials".to_string(),
++                            ));
++                        }
++                    }
+                     self.flush_buffer()?;
+                     self.step = ClientHandshakeStep::WaitOauth;
+                 }
+@@ -385,7 +394,7 @@ impl<S: Socket> ServerHandshake<S> {
+ 
+     fn flush_buffer(&mut self) -> Result<()> {
+         while !self.buffer.is_empty() {
+-            let written = self.socket.sendmsg(&self.buffer, &[])?;
++            let written = self.socket.sendmsg(&self.buffer, &[], false)?;
+             self.buffer.drain(..written);
+         }
+         Ok(())
+--- cargo-crates/zbus-1.9.3/src/raw/connection.rs.orig	1970-01-01 00:00:00 UTC
++++ cargo-crates/zbus-1.9.3/src/raw/connection.rs
+@@ -47,7 +47,7 @@ impl<S: Socket> Connection<S> {
+             // VecDeque should never return an empty front buffer if the VecDeque
+             // itself is not empty
+             debug_assert!(!front.is_empty());
+-            let written = self.socket.sendmsg(front, &[])?;
++            let written = self.socket.sendmsg(front, &[], false)?;
+             self.raw_out_buffer.drain(..written);
+         }
+ 
+@@ -55,14 +55,14 @@ impl<S: Socket> Connection<S> {
+         while let Some(msg) = self.msg_out_buffer.front() {
+             let mut data = msg.as_bytes();
+             let fds = msg.fds();
+-            let written = self.socket.sendmsg(data, &fds)?;
++            let written = self.socket.sendmsg(data, &fds, false)?;
+             // at least some part of the message has been sent, see if we can/need to send more
+             // now the message must be removed from msg_out_buffer and any leftover bytes
+             // must be stored into raw_out_buffer
+             let msg = self.msg_out_buffer.pop_front().unwrap();
+             data = &msg.as_bytes()[written..];
+             while !data.is_empty() {
+-                match self.socket.sendmsg(data, &[]) {
++                match self.socket.sendmsg(data, &[], false) {
+                     Ok(n) => data = &data[n..],
+                     Err(e) => {
+                         // an error occured, we cannot send more, store the remaining into
+--- cargo-crates/zbus-1.9.3/src/raw/socket.rs.orig	1970-01-01 00:00:00 UTC
++++ cargo-crates/zbus-1.9.3/src/raw/socket.rs
+@@ -47,7 +47,7 @@ pub trait Socket {
+     ///
+     /// If the underlying transport does not support transmitting file descriptors, this
+     /// will return `Err(ErrorKind::InvalidInput)`.
+-    fn sendmsg(&mut self, buffer: &[u8], fds: &[RawFd]) -> io::Result<usize>;
++    fn sendmsg(&mut self, buffer: &[u8], fds: &[RawFd], creds: bool) -> io::Result<usize>;
+ 
+     /// Close the socket.
+     ///
+@@ -74,6 +74,10 @@ impl Socket for UnixStream {
+             Ok(msg) => {
+                 let mut fds = vec![];
+                 for cmsg in msg.cmsgs() {
++                    #[cfg(any(target_os = "freebsd", target_os = "dragonfly"))]
++                    if let ControlMessageOwned::ScmCreds(_) = cmsg {
++                        continue;
++                    }
+                     if let ControlMessageOwned::ScmRights(fd) = cmsg {
+                         fds.extend(fd.iter().map(|&f| unsafe { OwnedFd::from_raw_fd(f) }));
+                     } else {
+@@ -89,12 +93,23 @@ impl Socket for UnixStream {
+         }
+     }
+ 
+-    fn sendmsg(&mut self, buffer: &[u8], fds: &[RawFd]) -> io::Result<usize> {
+-        let cmsg = if !fds.is_empty() {
++    fn sendmsg(&mut self, buffer: &[u8], fds: &[RawFd], creds: bool) -> io::Result<usize> {
++        let mut cmsg = if !fds.is_empty() {
+             vec![ControlMessage::ScmRights(fds)]
+         } else {
+             vec![]
+         };
++        #[cfg(any(target_os = "android", target_os = "linux"))]
++        let unix_creds;
++        if creds {
++            #[cfg(any(target_os = "android", target_os = "linux"))]
++            {
++                unix_creds = Some(nix::sys::socket::UnixCredentials::new());
++                cmsg.push(ControlMessage::ScmCredentials(unix_creds.as_ref().unwrap()));
++            }
++            #[cfg(any(target_os = "freebsd", target_os = "dragonfly"))]
++            cmsg.push(ControlMessage::ScmCreds);
++        }
+         let iov = [IoVec::from_slice(buffer)];
+         match sendmsg(self.as_raw_fd(), &iov, &cmsg, MsgFlags::empty(), None) {
+             // can it really happen?
+@@ -122,8 +137,8 @@ where
+         self.get_mut().recvmsg(buffer)
+     }
+ 
+-    fn sendmsg(&mut self, buffer: &[u8], fds: &[RawFd]) -> io::Result<usize> {
+-        self.get_mut().sendmsg(buffer, fds)
++    fn sendmsg(&mut self, buffer: &[u8], fds: &[RawFd], creds: bool) -> io::Result<usize> {
++        self.get_mut().sendmsg(buffer, fds, creds)
+     }
+ 
+     fn close(&self) -> io::Result<()> {