Compare commits
No commits in common. "c8" and "c9-beta" have entirely different histories.
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,2 +1,2 @@
|
|||||||
SOURCES/mdevctl-1.1.0-vendor.tar.gz
|
SOURCES/mdevctl-1.3.0-vendor.tar.gz
|
||||||
SOURCES/mdevctl-1.1.0.tar.gz
|
SOURCES/mdevctl-1.3.0.crate
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
3741595d871a00830c5b3c50f383eeda9f948469 SOURCES/mdevctl-1.1.0-vendor.tar.gz
|
1eb0a8815731747b34af4ffd35b7755c35007d88 SOURCES/mdevctl-1.3.0-vendor.tar.gz
|
||||||
4bbd9e344db7324765572def56201d6fd6611057 SOURCES/mdevctl-1.1.0.tar.gz
|
4fbc6ecc1754c0d236933fe74feb789c4bbfb3c3 SOURCES/mdevctl-1.3.0.crate
|
||||||
|
|||||||
@ -1,43 +0,0 @@
|
|||||||
From ff69f6c64b14282172716d4e97b4b81da7606483 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jonathon Jongsma <jjongsma@redhat.com>
|
|
||||||
Date: Wed, 1 Dec 2021 16:37:36 -0600
|
|
||||||
Subject: [PATCH 1/2] Report root error when a callout can't be executed
|
|
||||||
|
|
||||||
We were ignoring the error result when a callout script failed to
|
|
||||||
execute. In order to debug issues more easily, handle the error and
|
|
||||||
print it to the debug output.
|
|
||||||
|
|
||||||
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
||||||
---
|
|
||||||
src/callouts.rs | 8 ++++----
|
|
||||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/callouts.rs b/src/callouts.rs
|
|
||||||
index 1c92d85..17b733b 100644
|
|
||||||
--- a/src/callouts.rs
|
|
||||||
+++ b/src/callouts.rs
|
|
||||||
@@ -240,8 +240,8 @@ impl Callout {
|
|
||||||
for s in dir.as_ref().read_dir().ok()? {
|
|
||||||
let path = s.ok()?.path();
|
|
||||||
|
|
||||||
- match self.invoke_script(dev, &path, event, action).ok() {
|
|
||||||
- Some(res) => {
|
|
||||||
+ match self.invoke_script(dev, &path, event, action) {
|
|
||||||
+ Ok(res) => {
|
|
||||||
if res.status.code().is_none() {
|
|
||||||
warn!("callout script {:?} was terminated by a signal", path);
|
|
||||||
continue;
|
|
||||||
@@ -255,8 +255,8 @@ impl Callout {
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- _ => {
|
|
||||||
- debug!("failed to execute callout script {:?}", path);
|
|
||||||
+ Err(e) => {
|
|
||||||
+ debug!("failed to execute callout script {:?}: {:?}", path, e);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.33.1
|
|
||||||
|
|
||||||
@ -1,57 +0,0 @@
|
|||||||
From 70ba0298a49ccffc085da051ad553a1242f0bfe1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jonathon Jongsma <jjongsma@redhat.com>
|
|
||||||
Date: Wed, 1 Dec 2021 16:39:06 -0600
|
|
||||||
Subject: [PATCH 2/2] tests: read stdin in callout test scripts
|
|
||||||
|
|
||||||
Callout scripts are intended to be passed a JSON device configuration
|
|
||||||
string on stdin. For our simple callout tests, we used single-line
|
|
||||||
test scripts that unconditionally returned a constant response code
|
|
||||||
(either error or success). This sometimes causes the tests to fail due
|
|
||||||
to the following error:
|
|
||||||
|
|
||||||
[2021-12-01T20:33:25Z DEBUG mdevctl::callouts] failed to execute callout script "/tmp/mdevctl-testZg8CPd/etc/mdevctl.d/scripts.d/callouts/rc1.sh": Failed to write to stdin of command
|
|
||||||
|
|
||||||
Caused by:
|
|
||||||
Broken pipe (os error 32)
|
|
||||||
|
|
||||||
What seems to be happening is that mdevctl spawns the callout script and
|
|
||||||
then attempts to write the JSON device configuration to its stdin pipe.
|
|
||||||
However, the test scripts are so short that they may have exited before
|
|
||||||
mdevctl can finish writing to stdin, which results in the command
|
|
||||||
failing with a broken pipe error. In order to avoid this, make sure that
|
|
||||||
the test scripts read from stdin before exiting.
|
|
||||||
|
|
||||||
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
||||||
---
|
|
||||||
tests/callouts/rc0.sh | 1 +
|
|
||||||
tests/callouts/rc1.sh | 1 +
|
|
||||||
tests/callouts/rc2.sh | 1 +
|
|
||||||
3 files changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/tests/callouts/rc0.sh b/tests/callouts/rc0.sh
|
|
||||||
index 039e4d0..669d0ec 100755
|
|
||||||
--- a/tests/callouts/rc0.sh
|
|
||||||
+++ b/tests/callouts/rc0.sh
|
|
||||||
@@ -1,2 +1,3 @@
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
+json=$(</dev/stdin)
|
|
||||||
exit 0
|
|
||||||
diff --git a/tests/callouts/rc1.sh b/tests/callouts/rc1.sh
|
|
||||||
index ecdbef9..3863171 100755
|
|
||||||
--- a/tests/callouts/rc1.sh
|
|
||||||
+++ b/tests/callouts/rc1.sh
|
|
||||||
@@ -1,2 +1,3 @@
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
+json=$(</dev/stdin)
|
|
||||||
exit 1
|
|
||||||
diff --git a/tests/callouts/rc2.sh b/tests/callouts/rc2.sh
|
|
||||||
index 5c66540..f2ec274 100755
|
|
||||||
--- a/tests/callouts/rc2.sh
|
|
||||||
+++ b/tests/callouts/rc2.sh
|
|
||||||
@@ -1,2 +1,3 @@
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
+json=$(</dev/stdin)
|
|
||||||
exit 2
|
|
||||||
--
|
|
||||||
2.33.1
|
|
||||||
|
|
||||||
@ -1,27 +1,25 @@
|
|||||||
Name: mdevctl
|
%bcond_without check
|
||||||
Version: 1.1.0
|
|
||||||
Release: 2%{?dist}
|
|
||||||
Summary: Mediated device management and persistence utility
|
|
||||||
|
|
||||||
Group: System Environment/Kernel
|
%global crate mdevctl
|
||||||
License: LGPLv2
|
|
||||||
URL: https://github.com/mdevctl/mdevctl
|
|
||||||
|
|
||||||
Source0: https://github.com/mdevctl/mdevctl/archive/%{version}/%{name}-%{version}.tar.gz
|
Name: mdevctl
|
||||||
Source1: https://github.com/mdevctl/mdevctl/archive/%{version}/%{name}-%{version}-vendor.tar.gz
|
Version: 1.3.0
|
||||||
|
Release: 1%{?dist}
|
||||||
|
Summary: A mediated device management utility for Linux
|
||||||
|
|
||||||
ExclusiveArch: %{rust_arches}
|
License: LGPL-2.1-only
|
||||||
|
URL: https://crates.io/crates/mdevctl
|
||||||
|
Source: %{crates_source}
|
||||||
|
Source1: https://github.com/mdevctl/mdevctl/releases/download/v%{version}/mdevctl-%{version}-vendor.tar.gz
|
||||||
|
|
||||||
BuildRequires: bash
|
BuildRequires: make systemd python3-docutils
|
||||||
BuildRequires: git
|
%if 0%{?rhel}
|
||||||
BuildRequires: make
|
BuildRequires: rust-toolset
|
||||||
BuildRequires: systemd
|
%else
|
||||||
BuildRequires: rust-toolset
|
BuildRequires: rust-packaging >= 21
|
||||||
|
%endif
|
||||||
Requires(post,postun): %{_sbindir}/udevadm
|
Requires(post,postun): %{_sbindir}/udevadm
|
||||||
|
|
||||||
Patch0: 0001-Report-root-error-when-a-callout-can-t-be-executed.patch
|
|
||||||
Patch1: 0002-tests-read-stdin-in-callout-test-scripts.patch
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
mdevctl is a utility for managing and persisting devices in the
|
mdevctl is a utility for managing and persisting devices in the
|
||||||
mediated device device framework of the Linux kernel. Mediated
|
mediated device device framework of the Linux kernel. Mediated
|
||||||
@ -30,55 +28,100 @@ can be dynamically created and potentially used by drivers like
|
|||||||
vfio-mdev for assignment to virtual machines.
|
vfio-mdev for assignment to virtual machines.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -S git_am -n %{name}-%{version}
|
%autosetup -n %{crate}-%{version_no_tilde} -p1 %{?rhel:-a1}
|
||||||
%cargo_prep -V 1
|
%if 0%{?rhel}
|
||||||
|
%cargo_prep -v vendor
|
||||||
|
%else
|
||||||
|
%cargo_prep
|
||||||
|
|
||||||
|
%generate_buildrequires
|
||||||
|
%cargo_generate_buildrequires
|
||||||
|
%endif
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%cargo_build
|
%cargo_build
|
||||||
|
%cargo_license_summary
|
||||||
|
%{cargo_license} > LICENSE.dependencies
|
||||||
|
%if 0%{?rhel}
|
||||||
|
%cargo_vendor_manifest
|
||||||
|
%endif
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%make_install
|
%make_install
|
||||||
|
|
||||||
|
%if %{with check}
|
||||||
%check
|
%check
|
||||||
export MDEVCTL_LOG=debug RUST_BACKTRACE=full
|
|
||||||
%cargo_test
|
%cargo_test
|
||||||
|
%endif
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%license COPYING
|
%license COPYING
|
||||||
|
%license LICENSE.dependencies
|
||||||
|
%if 0%{?rhel}
|
||||||
|
%license cargo-vendor.txt
|
||||||
|
%endif
|
||||||
%doc README.md
|
%doc README.md
|
||||||
%{_sbindir}/mdevctl
|
%{_sbindir}/mdevctl
|
||||||
%{_sbindir}/lsmdev
|
%{_sbindir}/lsmdev
|
||||||
%{_udevrulesdir}/60-mdevctl.rules
|
%{_udevrulesdir}/60-mdevctl.rules
|
||||||
%dir %{_sysconfdir}/mdevctl.d
|
%dir %{_sysconfdir}/mdevctl.d
|
||||||
%dir %{_sysconfdir}/mdevctl.d/scripts.d/callouts
|
%dir %{_prefix}/lib/mdevctl/scripts.d/callouts
|
||||||
%dir %{_sysconfdir}/mdevctl.d/scripts.d/notifiers
|
%dir %{_prefix}/lib/mdevctl/scripts.d/notifiers
|
||||||
%{_mandir}/man8/mdevctl.8*
|
%{_mandir}/man8/mdevctl.8*
|
||||||
%{_mandir}/man8/lsmdev.8*
|
%{_mandir}/man8/lsmdev.8*
|
||||||
%{_datadir}/bash-completion/completions/mdevctl
|
%{_datadir}/bash-completion/completions/mdevctl
|
||||||
%{_datadir}/bash-completion/completions/lsmdev
|
%{_datadir}/bash-completion/completions/lsmdev
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jun 05 2025 Miroslav Rezanina <mrezanin@redhat.com> - 1.3.0-1
|
||||||
|
- Rebase to 1.3.0
|
||||||
|
Resolves: RHEL-73318
|
||||||
|
|
||||||
|
* Thu Jan 20 2022 Jonathon Jongsma <jjongsma@redhat.com> - 1.1.0-4
|
||||||
|
- fix gating.yaml indentation and rebuild
|
||||||
|
|
||||||
|
* Thu Jan 13 2022 Jonathon Jongsma <jjongsma@redhat.com> - 1.1.0-3
|
||||||
|
- add gating.yml and rpminspect.yml and rebuild
|
||||||
|
Related: rhbz#1999686
|
||||||
|
|
||||||
* Wed Dec 01 2021 Eduardo Lima (Etrunko) <etrunko@redhat.com> - 1.1.0-2
|
* Wed Dec 01 2021 Eduardo Lima (Etrunko) <etrunko@redhat.com> - 1.1.0-2
|
||||||
- Create additonal directories required by installation.
|
- Create additonal directories required by installation.
|
||||||
- Fix sporadic callout test failures
|
Related: rhbz#1999686
|
||||||
Related: rhbz#1999687
|
|
||||||
|
|
||||||
* Thu Nov 18 2021 Eduardo Lima (Etrunko) <etrunko@redhat.com> - 1.1.0-1
|
* Thu Nov 18 2021 Eduardo Lima (Etrunko) <etrunko@redhat.com> - 1.1.0-1
|
||||||
- Rebase mdevctl to 1.1.0
|
- Rebase mdevctl to 1.1.0
|
||||||
Resolves: rhbz#1999687
|
Resolves: rhbz#1999686
|
||||||
|
|
||||||
* Wed Jun 30 2021 Danilo de Paula <ddepaula@redhat.com> - 0.81-1
|
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 0.78-4
|
||||||
- Rebase mdevctl to 0.81.1
|
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||||
|
Related: rhbz#1991688
|
||||||
|
|
||||||
* Mon Nov 30 2020 Danilo - 0.78-1
|
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 0.78-3
|
||||||
- Rebase to 0.78
|
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||||
|
|
||||||
* Mon May 18 2020 Danilo - 0.61-3
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.78-2
|
||||||
- Rebuilding for a manual gating test
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.61-2
|
* Tue Nov 24 2020 Alex Williamson <alex.williamson@redhat.com> - 0.78-1
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
- e029640033d3 ("Automatic version commit for tag 0.78")
|
||||||
|
- e32f506656fd ("use standard bash path")
|
||||||
|
- 70690b64401f ("avoid other tags spilling into the .spec changelog")
|
||||||
|
- 70b89c18cf5b ("Merge pull request #31 from awilliam/20201113.0")
|
||||||
|
- 80187bc9ba03 ("Merge pull request #30 from fiuczy/fix-error-cleanup")
|
||||||
|
- 97ea8bbeefb7 ("mdevctl: fix cleanup on error when creating and removing mdev")
|
||||||
|
- b45d33dfd36c ("version support")
|
||||||
|
- 2b1c16ce6fb0 ("Fix attributes getting applied via start-parent-mdevs")
|
||||||
|
- 25d5e8d24d57 ("mdevctl: fix cleanup on error when writing to attribute")
|
||||||
|
|
||||||
|
* Fri Jul 17 2020 Cornelia Huck <cohuck@redhat.com> - 0.69-1
|
||||||
|
- a2621934aa37 ("Merge pull request #18 from cohuck/validate")
|
||||||
|
- ffbcef5a1c84 ("Merge pull request #25 from etrunko/master")
|
||||||
|
- 5ec75a83bf30 ("Remove never used 'available' option")
|
||||||
|
- d49b0f0db6b3 ("Merge pull request #23 from eskultety/man-fix")
|
||||||
|
- 4cfe37eb2d99 ("man: Point --verbose to the 'list' command rather than 'types'")
|
||||||
|
- a0ae49eb7178 ("Merge pull request #17 from cohuck/install_symlinks")
|
||||||
|
- 504beba6e8f9 ("Force symlink cretion")
|
||||||
|
- 522c5ded00ff ("Fix attribute validation")
|
||||||
|
|
||||||
* Thu Dec 19 2019 Alex Williamson <alex.williamson@redhat.com> - 0.61-1
|
* Thu Dec 19 2019 Alex Williamson <alex.williamson@redhat.com> - 0.61-1
|
||||||
- d7dfac5f5bfb ("Merge pull request #15 from cohuck/attr_sanity")
|
- d7dfac5f5bfb ("Merge pull request #15 from cohuck/attr_sanity")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user