Compare commits

...

No commits in common. 'c9' and 'i10c-beta' have entirely different histories.

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: 4%{?dist} %global crate mdevctl
Summary: Mediated device management and persistence utility
Name: mdevctl
Group: System Environment/Kernel Version: 1.3.0
License: LGPLv2 Release: 5%{?dist}
URL: https://github.com/mdevctl/mdevctl Summary: A mediated device management utility for Linux
Source0: https://github.com/mdevctl/mdevctl/archive/%{version}/%{name}-%{version}.tar.gz License: LGPL-2.1-only
Source1: https://github.com/mdevctl/mdevctl/archive/%{version}/%{name}-%{version}-vendor.tar.gz URL: https://crates.io/crates/mdevctl
Source: %{crates_source}
ExclusiveArch: %{rust_arches} 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,59 +28,108 @@ 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 Jan 20 2022 Jonathon Jongsma <jjongsma@redhat.com> - 1.1.0-4 * Tue Nov 26 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 1.3.0-5
- fix gating.yaml indentation and rebuild - Rebuilt for MSVSphere 10
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1.3.0-5
- Bump release for June 2024 mass rebuild
* Fri Feb 02 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 1.3.0-4
- Update Rust macro usage
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jan 11 2024 Alex Williamson <alex.williamson@redhat.com> - 1.3.0-1
- New upstream release: https://github.com/mdevctl/mdevctl/releases/tag/v1.3.0
- Note upstream moved default script location from /etc/mdevctl.d/scripts.d
to /usr/lib/mdevctl/scripts.d. Both locations are currently supported, the
new locations is recommended.
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sun Feb 05 2023 Fabio Valentini <decathorpe@gmail.com> - 1.2.0-3
- Rebuild for fixed frame pointer compiler flags in Rust RPM macros.
- Slightly modernize Rust packaging (drop ExclusiveArch, __cargo_skip_build).
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Aug 05 2022 Alex Williamson <alex.williamson@redhat.com> - 1.2.0-1
- New upstream release: https://github.com/mdevctl/mdevctl/releases/tag/v1.2.0
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 13 2022 Jonathon Jongsma <jjongsma@redhat.com> - 1.1.0-3 * Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-3
- add gating.yml and rpminspect.yml and rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Related: rhbz#1999686
* Wed Dec 01 2021 Eduardo Lima (Etrunko) <etrunko@redhat.com> - 1.1.0-2 * Fri Sep 10 2021 Alex Williamson <alex.williamson@redhat.com> - 1.1.0-2
- Create additonal directories required by installation. - Correct bogus changelog date in -1
Related: rhbz#1999686
* Thu Nov 18 2021 Eduardo Lima (Etrunko) <etrunko@redhat.com> - 1.1.0-1 * Fri Sep 10 2021 Alex Williamson <alex.williamson@redhat.com> - 1.1.0-1
- Rebase mdevctl to 1.1.0 - New upstream release: https://github.com/mdevctl/mdevctl/releases/tag/v1.1.0
Resolves: rhbz#1999686
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 0.78-4 * Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.0-2
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Related: rhbz#1991688
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 0.78-3
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.78-2 * Mon Jul 12 2021 Alex Williamson <alex.williamson@redhat.com> - 1.0.0-1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - Upstream rewrite in rust
* Thu Jun 10 2021 Alex Williamson <alex.williamson@redhat.com> - 0.81-1
- c077ee72b286 ("Automatic version commit for tag 0.81")
- 4aad72d7a921 ("Merge pull request #37 from fiuczy/fix-define-jsonfile")
- e6cf620b4b04 ("Fix define from jsonfile")
* Tue Nov 24 2020 Alex Williamson <alex.williamson@redhat.com> - 0.78-1 * Tue Nov 24 2020 Alex Williamson <alex.williamson@redhat.com> - 0.78-1
- e029640033d3 ("Automatic version commit for tag 0.78") - e029640033d3 ("Automatic version commit for tag 0.78")

Loading…
Cancel
Save