diff --git a/.fmf/version b/.fmf/version deleted file mode 100644 index d00491f..0000000 --- a/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/.gitignore b/.gitignore index 7a0be71..7b697d4 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/0001-test-test-unix-skip-unix-domain-socket-test.patch b/0001-test-test-unix-skip-unix-domain-socket-test.patch deleted file mode 100644 index d0b1f94..0000000 --- a/0001-test-test-unix-skip-unix-domain-socket-test.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 74eace0d89b63be92615364568ba36ad7d748477 Mon Sep 17 00:00:00 2001 -From: Kate Hsuan -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 - diff --git a/bolt-error-typedef.patch b/bolt-error-typedef.patch new file mode 100644 index 0000000..f982608 --- /dev/null +++ b/bolt-error-typedef.patch @@ -0,0 +1,27 @@ +From 5a739574608e5190816b3efd22e75f214c5fe4c4 Mon Sep 17 00:00:00 2001 +From: Christian Kellner +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 + diff --git a/bolt.spec b/bolt.spec index 065e815..13b1c79 100644 --- a/bolt.spec +++ b/bolt.spec @@ -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 - 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 - 0.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jun 13 2019 Christian Kellner - 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 - 0.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Jan 1 2019 Christian Kellner - 0.7-1 +- bolt 0.7 release + +* Wed Nov 28 2018 Christian Kellner - 0.6-1 +- bolt 0.6 release + +* Fri Sep 21 2018 Christian Kellner - 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 - 0.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon May 28 2018 Christian Kellner - 0.4-1 +- bolt 0.4 upstream release + +* Tue Apr 10 2018 Christian Kellner - 0.3-1 +- bolt 0.3 upstream release +- Update BuildRequires to include gcc +- Use forge macros + +* Tue Mar 6 2018 Christian Kellner - 0.2-1 +- bolt 0.2 upstream release +- Update BuildRequires dependencies. + +* Wed Feb 07 2018 Fedora Release Engineering - 0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sun Dec 17 2017 Christian Kellner - 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 - 0.1-1 +- Initial upstream release diff --git a/changelog b/changelog deleted file mode 100644 index b98a8e0..0000000 --- a/changelog +++ /dev/null @@ -1,133 +0,0 @@ -* Thu Jan 16 2025 Fedora Release Engineering - 0.9.8-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Jul 17 2024 Fedora Release Engineering - 0.9.8-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Fri May 31 2024 Kate Hsuan - 0.9.8-2 -- Update python3-gobject-base dependency for test - -* Wed May 22 2024 Kate Hsuan - 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 - 0.9.7-1 -- bolt 0.9.7 release -- Support 'nopcie' security level -- Bug fixes - -* Thu Feb 1 2024 Kate Hsuan - 0.9.6-4 -- Update SPDX license - -* Tue Jan 23 2024 Fedora Release Engineering - 0.9.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 0.9.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Sep 13 2023 Kate Hsuan - 0.9.6-1 -- Update 0.9.6 release -- Fixing for compiler warning and log message issues - -* Wed Jul 19 2023 Fedora Release Engineering - 0.9.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Tue Feb 14 2023 Kate hsuan - 0.9.5-1 -- Updated to upstream version - -* Wed Jan 18 2023 Fedora Release Engineering - 0.9.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Aug 23 2022 Simon Steinbeiss - 0.9.3-1 -- New upstream release - -* Wed Jul 20 2022 Fedora Release Engineering - 0.9.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Thu Jan 27 2022 Christian Kellner - 0.9.2-1 -- bolt 0.9.2 release - -* Wed Jan 19 2022 Fedora Release Engineering - 0.9.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Wed Jul 21 2021 Fedora Release Engineering - 0.9.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 0.9.1-3 -- Rebuilt for updated systemd-rpm-macros - See https://pagure.io/fesco/issue/2583. - -* Tue Jan 26 2021 Fedora Release Engineering - 0.9.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Tue Dec 1 2020 Christian Kellner - 0.9.1-1 -- bolt 0.9.1 release -- Update description with less emphasis on Thunderbolt version - -* Sat Aug 01 2020 Fedora Release Engineering - 0.9-3 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 27 2020 Fedora Release Engineering - 0.9-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jun 15 2020 Christian Kellner - 0.9-1 -- bolt 0.9 release - Drop all patches (all merged upstream). - -* Tue Jan 28 2020 Fedora Release Engineering - 0.8-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Thu Jan 23 2020 Christian Kellner - 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 - 0.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Thu Jun 13 2019 Christian Kellner - 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 - 0.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Tue Jan 1 2019 Christian Kellner - 0.7-1 -- bolt 0.7 release - -* Wed Nov 28 2018 Christian Kellner - 0.6-1 -- bolt 0.6 release - -* Fri Sep 21 2018 Christian Kellner - 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 - 0.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Mon May 28 2018 Christian Kellner - 0.4-1 -- bolt 0.4 upstream release - -* Tue Apr 10 2018 Christian Kellner - 0.3-1 -- bolt 0.3 upstream release -- Update BuildRequires to include gcc -- Use forge macros - -* Tue Mar 6 2018 Christian Kellner - 0.2-1 -- bolt 0.2 upstream release -- Update BuildRequires dependencies. - -* Wed Feb 07 2018 Fedora Release Engineering - 0.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Sun Dec 17 2017 Christian Kellner - 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 - 0.1-1 -- Initial upstream release \ No newline at end of file diff --git a/gating.yaml b/gating.yaml index f2c6454..d71584a 100644 --- a/gating.yaml +++ b/gating.yaml @@ -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} diff --git a/sources b/sources index 91dd35e..1e80b94 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (bolt-0.9.10.tar.gz) = a0707ec57b1b048906ac8f803acfa313e37bc31eb0acb77978f28a3200d026c019ce30157681ff39f1e0076dc9d828361fcd46cc058db7ac5ad9c890b64a88a0 +SHA512 (bolt-0.8.tar.gz) = 0fdbc026178a4ca6a8c53aa46933d1c411eb04e350955f8b10c7faff814576d0796dd28e56b968648e549c79cf5fa13d43970d797595af0f66457abaef8ace09 diff --git a/tests/main.fmf b/tests/main.fmf deleted file mode 100644 index 20e6de3..0000000 --- a/tests/main.fmf +++ /dev/null @@ -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 diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..c3c996b --- /dev/null +++ b/tests/tests.yml @@ -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 diff --git a/wakeup-uevents.patch b/wakeup-uevents.patch new file mode 100644 index 0000000..a10d420 --- /dev/null +++ b/wakeup-uevents.patch @@ -0,0 +1,50 @@ +From ea3e3e30eb3ce76f6a0ae816a0f35809872f4edf Mon Sep 17 00:00:00 2001 +From: Christian Kellner +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 +