summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--user/bolt/APKBUILD36
-rw-r--r--user/bolt/wakeup.patch50
2 files changed, 86 insertions, 0 deletions
diff --git a/user/bolt/APKBUILD b/user/bolt/APKBUILD
new file mode 100644
index 000000000..b14289263
--- /dev/null
+++ b/user/bolt/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=bolt
+pkgver=0.8
+pkgrel=0
+pkgdesc="Thunderbolt 3 device manager"
+url=" "
+arch="all"
+license="LGPL-2.1-only"
+depends=""
+makedepends="eudev-dev glib-dev meson ninja polkit-dev"
+subpackages=""
+source="https://gitlab.freedesktop.org/bolt/bolt/-/archive/$pkgver/bolt-$pkgver.tar.gz
+ wakeup.patch
+ "
+
+build() {
+ meson \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ . output
+ ninja -C output
+}
+
+check() {
+ ninja -C output test
+}
+
+package() {
+ DESTDIR="$pkgdir" ninja -C output install
+}
+
+sha512sums="0fdbc026178a4ca6a8c53aa46933d1c411eb04e350955f8b10c7faff814576d0796dd28e56b968648e549c79cf5fa13d43970d797595af0f66457abaef8ace09 bolt-0.8.tar.gz
+487f2c7824edba318692d40ffc4e55f893602587b1380b18877d9dca3b5b22b14e27001b3547369a8ec1a6c5fe7a5facc1fa97e92b3a5011a67ec967afce25ea wakeup.patch"
diff --git a/user/bolt/wakeup.patch b/user/bolt/wakeup.patch
new file mode 100644
index 000000000..a10d420c4
--- /dev/null
+++ b/user/bolt/wakeup.patch
@@ -0,0 +1,50 @@
+From ea3e3e30eb3ce76f6a0ae816a0f35809872f4edf Mon Sep 17 00:00:00 2001
+From: Christian Kellner <christian@kellner.me>
+Date: Mon, 13 Jan 2020 17:38:47 +0100
+Subject: [PATCH] manager: ignore wakeup device uevents for probing
+
+The probing detection code should ignore wakeup device uevents
+because these virtual devices can be added (and removed) without
+and correspondence to any physical thunderbolt device (un-)plug
+events.
+---
+ boltd/bolt-manager.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/boltd/bolt-manager.c b/boltd/bolt-manager.c
+index 877c008..c8b60da 100644
+--- a/boltd/bolt-manager.c
++++ b/boltd/bolt-manager.c
+@@ -2043,6 +2043,16 @@ device_is_thunderbolt_root (struct udev_device *dev)
+ bolt_streq (driver, "thunderbolt");
+ }
+
++static gboolean
++device_is_wakeup (struct udev_device *dev)
++{
++ const char *subsys;
++
++ subsys = udev_device_get_subsystem (dev);
++
++ return bolt_streq (subsys, "wakeup");
++}
++
+ static gboolean
+ probing_add_root (BoltManager *mgr,
+ struct udev_device *dev)
+@@ -2080,6 +2090,12 @@ manager_probing_device_added (BoltManager *mgr,
+ if (syspath == NULL)
+ return;
+
++ /* ignore events for wakeup devices which get removed
++ * and added at random time without any connection to
++ * any physical thunderbolt device */
++ if (device_is_wakeup (dev))
++ return;
++
+ roots = mgr->probing_roots;
+ for (guint i = 0; i < roots->len; i++)
+ {
+--
+2.24.1
+