Compare commits

..

1 commit

Author SHA1 Message Date
Christian Kellner
e6369adc49 Add patch to ignore wakeup device uevents
Closes rhbz#1790398
2020-01-23 19:46:54 +01:00
11 changed files with 164 additions and 216 deletions

View file

@ -1 +0,0 @@
1

10
.gitignore vendored
View file

@ -17,13 +17,3 @@ tests/source/
/bolt-0.6.tar.gz
/bolt-0.7.tar.gz
/bolt-0.8.tar.gz
/bolt-0.9.tar.gz
/bolt-0.9.1.tar.gz
/bolt-0.9.2.tar.gz
/bolt-0.9.3.tar.gz
/bolt-0.9.5.tar.gz
/bolt-0.9.6.tar.gz
/bolt-0.9.7.tar.gz
/bolt-0.9.8.tar.gz
/bolt-0.9.9.tar.gz
/bolt-0.9.10.tar.gz

View file

@ -1,31 +0,0 @@
From 74eace0d89b63be92615364568ba36ad7d748477 Mon Sep 17 00:00:00 2001
From: Kate Hsuan <hpa@redhat.com>
Date: Tue, 14 Feb 2023 16:25:04 +0800
Subject: [PATCH] test: test-unix: skip unix domain socket test
Skip the test since we can't test unix domain socket in mock.
---
tests/test-unix.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/tests/test-unix.c b/tests/test-unix.c
index 98de3db..366488f 100644
--- a/tests/test-unix.c
+++ b/tests/test-unix.c
@@ -198,13 +198,6 @@ main (int argc, char **argv)
test_pid_is_alive,
NULL);
- g_test_add ("/common/unix/bolt_sd_notify",
- TestNotify,
- NULL,
- test_notify_setup,
- test_sd_notify,
- test_notify_teardown);
-
g_test_add ("/common/unix/sd_watchdog_enabled",
TestDummy,
NULL,
--
2.39.1

27
bolt-error-typedef.patch Normal file
View file

@ -0,0 +1,27 @@
From 5a739574608e5190816b3efd22e75f214c5fe4c4 Mon Sep 17 00:00:00 2001
From: Christian Kellner <christian@kellner.me>
Date: Thu, 23 Jan 2020 19:07:05 +0100
Subject: [PATCH] common: fix BoltError to be a typedef
It was always meant to be a typedef not a (tentative) definition
of a global variable.
---
common/bolt-error.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/common/bolt-error.h b/common/bolt-error.h
index 569da46..0486964 100644
--- a/common/bolt-error.h
+++ b/common/bolt-error.h
@@ -36,7 +36,7 @@ G_BEGIN_DECLS
*
* Error codes used inside Bolt.
*/
-enum {
+typedef enum {
BOLT_ERROR_FAILED = 0,
BOLT_ERROR_UDEV,
BOLT_ERROR_NOKEY,
--
2.24.1

View file

@ -1,11 +1,12 @@
Name: bolt
Version: 0.9.10
Release: %autorelease
Version: 0.8
Release: 3%{?dist}
Summary: Thunderbolt device manager
License: LGPL-2.1-or-later
License: LGPLv2+
URL: https://gitlab.freedesktop.org/bolt/bolt
Source0: %{url}/-/archive/%{version}/%{name}-%{version}.tar.gz
Patch0: 0001-test-test-unix-skip-unix-domain-socket-test.patch
Patch0: wakeup-uevents.patch
Patch1: bolt-error-typedef.patch
BuildRequires: gcc
BuildRequires: asciidoc
@ -19,16 +20,16 @@ BuildRequires: systemd
%{?systemd_requires}
# for the integration test (optional)
%if 0%{?fedora} || 0%{?rhel} > 8
BuildRequires: python3-gobject-base
%if 0%{?fedora}
BuildRequires: pygobject3-devel
BuildRequires: python3-dbus
BuildRequires: python3-dbusmock
BuildRequires: umockdev-devel
%endif
%description
bolt is a system daemon to manage Thunderbolt devices via a D-BUS
API. Thunderbolt 3 introduced different security modes that require
bolt is a system daemon to manage thunderbolt 3 devices via a D-BUS
API. Thunderbolt 3 features different security modes that require
devices to be authorized before they can be used. The D-Bus API can be
used to list devices, enroll them (authorize and store them in the
local database) and forget them again (remove previously enrolled
@ -38,19 +39,11 @@ authorized as soon as they are connected. A command line tool, called
boltctl, can be used to control the daemon and perform all the above
mentioned tasks.
%package tests
Summary: Test files for bolt
Requires: %{name}%{?_isa} = %{version}-%{release}
%description tests
Test files for bolt
%prep
%autosetup -p1
%build
sed -i "s/WatchdogSec=3min/#WatchdogSec=3min/g" data/bolt.service.in
%meson -Ddb-name=boltd -Dinstall-tests=true
%meson -Ddb-name=boltd
%meson_build
%check
@ -84,8 +77,56 @@ sed -i "s/WatchdogSec=3min/#WatchdogSec=3min/g" data/bolt.service.in
%{_mandir}/man8/boltd.8*
%ghost %dir %{_localstatedir}/lib/boltd
%files tests
%{_libexecdir}/installed-tests/bolt
%changelog
%autochangelog
* Thu Jan 23 2020 Christian Kellner <christian@kellner.me> - 0.8-3
- Add patch to ignore uevents from wakeup devices. See upstream issue
https://gitlab.freedesktop.org/bolt/bolt/issues/156
Fixes rhbz#1790398
- Add patch to fix BoltError not being a typedef.
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jun 13 2019 Christian Kellner <ckellner@redhat.com> - 0.8-1
- bolt 0.8 release
D-Bus Configuration moved from sysconfdir to datadir.
Package new CHNAGELOG.md.
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Tue Jan 1 2019 Christian Kellner <gicmo@redhat.com> - 0.7-1
- bolt 0.7 release
* Wed Nov 28 2018 Christian Kellner <ckellner@redhat.com> - 0.6-1
- bolt 0.6 release
* Fri Sep 21 2018 Christian Kellner <ckellner@redhat.com> - 0.5-1
- bolt 0.5 release
- Remove forge macros again and use gitlab as authorative source
- Testing depedencies are now only pulled in on Fedora
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon May 28 2018 Christian Kellner <ckellner@redhat.com> - 0.4-1
- bolt 0.4 upstream release
* Tue Apr 10 2018 Christian Kellner <ckellner@redhat.com> - 0.3-1
- bolt 0.3 upstream release
- Update BuildRequires to include gcc
- Use forge macros
* Tue Mar 6 2018 Christian Kellner <ckellner@redhat.com> - 0.2-1
- bolt 0.2 upstream release
- Update BuildRequires dependencies.
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sun Dec 17 2017 Christian Kellner <ckellner@redhat.com> - 0.1-2
- Set database path to /var/lib/boltd, create it during
installation, which is needed for the service file to work.
* Thu Dec 14 2017 Christian Kellner <ckellner@redhat.com> - 0.1-1
- Initial upstream release

133
changelog
View file

@ -1,133 +0,0 @@
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.8-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.8-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Fri May 31 2024 Kate Hsuan <hpa@redhat.com> - 0.9.8-2
- Update python3-gobject-base dependency for test
* Wed May 22 2024 Kate Hsuan <hpa@redhat.com> - 0.9.8-1
- A new NHI for REMBRANDT.
- systemd configuration improvement.
- Fixed: Determine the string length before writing file.
- Fixed: Free on error to prevent resource leak.
* Fri Mar 1 2024 Kate Hsuan <hpa@redhat.com> - 0.9.7-1
- bolt 0.9.7 release
- Support 'nopcie' security level
- Bug fixes
* Thu Feb 1 2024 Kate Hsuan <hpa@redhat.com> - 0.9.6-4
- Update SPDX license
* Tue Jan 23 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Sep 13 2023 Kate Hsuan <hpa@redhat.com> - 0.9.6-1
- Update 0.9.6 release
- Fixing for compiler warning and log message issues
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Feb 14 2023 Kate hsuan <hpa@redhat.com> - 0.9.5-1
- Updated to upstream version
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Aug 23 2022 Simon Steinbeiss <simon.steinbeiss@redhat.com> - 0.9.3-1
- New upstream release
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 27 2022 Christian Kellner <ckellner@redhat.com> - 0.9.2-1
- bolt 0.9.2 release
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.9.1-3
- Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Dec 1 2020 Christian Kellner <ckellner@redhat.com> - 0.9.1-1
- bolt 0.9.1 release
- Update description with less emphasis on Thunderbolt version
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.9-3
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jun 15 2020 Christian Kellner <ckellner@redhat.com> - 0.9-1
- bolt 0.9 release
Drop all patches (all merged upstream).
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jan 23 2020 Christian Kellner <christian@kellner.me> - 0.8-3
- Add patch to ignore uevents from wakeup devices. See upstream issue
https://gitlab.freedesktop.org/bolt/bolt/issues/156
- Add patch to fix BoltError not being a typedef.
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jun 13 2019 Christian Kellner <ckellner@redhat.com> - 0.8-1
- bolt 0.8 release
D-Bus Configuration moved from sysconfdir to datadir.
Package new CHNAGELOG.md.
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Tue Jan 1 2019 Christian Kellner <gicmo@redhat.com> - 0.7-1
- bolt 0.7 release
* Wed Nov 28 2018 Christian Kellner <ckellner@redhat.com> - 0.6-1
- bolt 0.6 release
* Fri Sep 21 2018 Christian Kellner <ckellner@redhat.com> - 0.5-1
- bolt 0.5 release
- Remove forge macros again and use gitlab as authorative source
- Testing depedencies are now only pulled in on Fedora
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon May 28 2018 Christian Kellner <ckellner@redhat.com> - 0.4-1
- bolt 0.4 upstream release
* Tue Apr 10 2018 Christian Kellner <ckellner@redhat.com> - 0.3-1
- bolt 0.3 upstream release
- Update BuildRequires to include gcc
- Use forge macros
* Tue Mar 6 2018 Christian Kellner <ckellner@redhat.com> - 0.2-1
- bolt 0.2 upstream release
- Update BuildRequires dependencies.
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sun Dec 17 2017 Christian Kellner <ckellner@redhat.com> - 0.1-2
- Set database path to /var/lib/boltd, create it during
installation, which is needed for the service file to work.
* Thu Dec 14 2017 Christian Kellner <ckellner@redhat.com> - 0.1-1
- Initial upstream release

View file

@ -3,10 +3,4 @@ product_versions:
- fedora-*
decision_context: bodhi_update_push_testing
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
- !PassingTestCaseRule {test_case_name: dist.depcheck}

View file

@ -1 +1 @@
SHA512 (bolt-0.9.10.tar.gz) = a0707ec57b1b048906ac8f803acfa313e37bc31eb0acb77978f28a3200d026c019ce30157681ff39f1e0076dc9d828361fcd46cc058db7ac5ad9c890b64a88a0
SHA512 (bolt-0.8.tar.gz) = 0fdbc026178a4ca6a8c53aa46933d1c411eb04e350955f8b10c7faff814576d0796dd28e56b968648e549c79cf5fa13d43970d797595af0f66457abaef8ace09

View file

@ -1,12 +0,0 @@
summary:
Test for bolt
prepare:
how: install
package:
- bolt-tests
- python3-gobject-base
- python3-dbus
- python3-dbusmock
- umockdev-devel
execute:
script: tests/run-it.sh /usr/libexec/installed-tests/bolt/test-integration

23
tests/tests.yml Normal file
View file

@ -0,0 +1,23 @@
---
- hosts: localhost
roles:
- role: standard-test-source
tags:
- always
- role: standard-test-basic
tags:
- atomic
- classic
required_packages:
- bolt
- pygobject3-devel
- python3-dbus
- python3-dbusmock
- umockdev-devel
tests:
- smoke:
dir: smoke
run: boltctl --version
- integration:
dir: .
run: ./run-it.sh source/tests/test-integration

50
wakeup-uevents.patch Normal file
View file

@ -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