diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index 7b697d4..7a0be71 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,13 @@ 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 new file mode 100644 index 0000000..d0b1f94 --- /dev/null +++ b/0001-test-test-unix-skip-unix-domain-socket-test.patch @@ -0,0 +1,31 @@ +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 deleted file mode 100644 index f982608..0000000 --- a/bolt-error-typedef.patch +++ /dev/null @@ -1,27 +0,0 @@ -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 13b1c79..065e815 100644 --- a/bolt.spec +++ b/bolt.spec @@ -1,12 +1,11 @@ Name: bolt -Version: 0.8 -Release: 3%{?dist} +Version: 0.9.10 +Release: %autorelease Summary: Thunderbolt device manager -License: LGPLv2+ +License: LGPL-2.1-or-later URL: https://gitlab.freedesktop.org/bolt/bolt Source0: %{url}/-/archive/%{version}/%{name}-%{version}.tar.gz -Patch0: wakeup-uevents.patch -Patch1: bolt-error-typedef.patch +Patch0: 0001-test-test-unix-skip-unix-domain-socket-test.patch BuildRequires: gcc BuildRequires: asciidoc @@ -20,16 +19,16 @@ BuildRequires: systemd %{?systemd_requires} # for the integration test (optional) -%if 0%{?fedora} -BuildRequires: pygobject3-devel +%if 0%{?fedora} || 0%{?rhel} > 8 +BuildRequires: python3-gobject-base BuildRequires: python3-dbus BuildRequires: python3-dbusmock BuildRequires: umockdev-devel %endif %description -bolt is a system daemon to manage thunderbolt 3 devices via a D-BUS -API. Thunderbolt 3 features different security modes that require +bolt is a system daemon to manage Thunderbolt devices via a D-BUS +API. Thunderbolt 3 introduced 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 @@ -39,11 +38,19 @@ 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 -%meson -Ddb-name=boltd +sed -i "s/WatchdogSec=3min/#WatchdogSec=3min/g" data/bolt.service.in +%meson -Ddb-name=boltd -Dinstall-tests=true %meson_build %check @@ -77,56 +84,8 @@ mentioned tasks. %{_mandir}/man8/boltd.8* %ghost %dir %{_localstatedir}/lib/boltd +%files tests +%{_libexecdir}/installed-tests/bolt + %changelog -* 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 +%autochangelog diff --git a/changelog b/changelog new file mode 100644 index 0000000..b98a8e0 --- /dev/null +++ b/changelog @@ -0,0 +1,133 @@ +* 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 d71584a..f2c6454 100644 --- a/gating.yaml +++ b/gating.yaml @@ -3,4 +3,10 @@ product_versions: - fedora-* decision_context: bodhi_update_push_testing rules: - - !PassingTestCaseRule {test_case_name: dist.depcheck} + - !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} diff --git a/sources b/sources index 1e80b94..91dd35e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (bolt-0.8.tar.gz) = 0fdbc026178a4ca6a8c53aa46933d1c411eb04e350955f8b10c7faff814576d0796dd28e56b968648e549c79cf5fa13d43970d797595af0f66457abaef8ace09 +SHA512 (bolt-0.9.10.tar.gz) = a0707ec57b1b048906ac8f803acfa313e37bc31eb0acb77978f28a3200d026c019ce30157681ff39f1e0076dc9d828361fcd46cc058db7ac5ad9c890b64a88a0 diff --git a/tests/main.fmf b/tests/main.fmf new file mode 100644 index 0000000..20e6de3 --- /dev/null +++ b/tests/main.fmf @@ -0,0 +1,12 @@ +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 deleted file mode 100644 index c3c996b..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- -- 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 deleted file mode 100644 index a10d420..0000000 --- a/wakeup-uevents.patch +++ /dev/null @@ -1,50 +0,0 @@ -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 -