--- /dev/null
+From 2ad24655a51cbbc630cc9eece8b294627275e3f8 Mon Sep 17 00:00:00 2001
+From: Stefan Hajnoczi <stefanha@redhat.com>
+Date: Mon, 7 Nov 2022 09:41:59 -0500
+Subject: [PATCH 2/2] virtio-driver: upgrade to memfd 0.6.1
+
+The memfd crate is outdated. Fedora would like to package the latest
+crate. Upgrade to the latest memfd version.
+
+Suggested-by: Fabio Valentini <decathorpe@gmail.com>
+Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
+---
+ Cargo.lock | 110 +++++++++++++++++++++++++++++++++++++--
+ virtio-driver/Cargo.toml | 2 +-
+ 2 files changed, 108 insertions(+), 4 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 241ae86..20f0714 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -57,6 +57,33 @@ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6"
+
++[[package]]
++name = "errno"
++version = "0.2.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
++dependencies = [
++ "errno-dragonfly",
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "errno-dragonfly"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
++dependencies = [
++ "cc",
++ "libc",
++]
++
++[[package]]
++name = "io-lifetimes"
++version = "0.7.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074"
++
+ [[package]]
+ name = "io-uring"
+ version = "0.5.8"
+@@ -89,13 +116,19 @@ version = "0.2.137"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89"
+
++[[package]]
++name = "linux-raw-sys"
++version = "0.0.46"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d"
++
+ [[package]]
+ name = "memfd"
+-version = "0.4.1"
++version = "0.6.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f6627dc657574b49d6ad27105ed671822be56e0d2547d413bfbf3e8d8fa92e7a"
++checksum = "480b5a5de855d11ff13195950bdc8b98b5e942ef47afc447f6615cdcc4e15d80"
+ dependencies = [
+- "libc",
++ "rustix",
+ ]
+
+ [[package]]
+@@ -166,6 +199,20 @@ dependencies = [
+ "proc-macro2",
+ ]
+
++[[package]]
++name = "rustix"
++version = "0.35.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "727a1a6d65f786ec22df8a81ca3121107f235970dc1705ed681d3e6e8b9cd5f9"
++dependencies = [
++ "bitflags",
++ "errno",
++ "io-lifetimes",
++ "libc",
++ "linux-raw-sys",
++ "windows-sys",
++]
++
+ [[package]]
+ name = "syn"
+ version = "1.0.103"
+@@ -223,3 +270,60 @@ name = "winapi-x86_64-pc-windows-gnu"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++
++[[package]]
++name = "windows-sys"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
++dependencies = [
++ "windows_aarch64_gnullvm",
++ "windows_aarch64_msvc",
++ "windows_i686_gnu",
++ "windows_i686_msvc",
++ "windows_x86_64_gnu",
++ "windows_x86_64_gnullvm",
++ "windows_x86_64_msvc",
++]
++
++[[package]]
++name = "windows_aarch64_gnullvm"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
++
++[[package]]
++name = "windows_aarch64_msvc"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
++
++[[package]]
++name = "windows_i686_gnu"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
++
++[[package]]
++name = "windows_i686_msvc"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
++
++[[package]]
++name = "windows_x86_64_gnu"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
++
++[[package]]
++name = "windows_x86_64_gnullvm"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
++
++[[package]]
++name = "windows_x86_64_msvc"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
+diff --git a/virtio-driver/Cargo.toml b/virtio-driver/Cargo.toml
+index d66aba1..2e754eb 100644
+--- a/virtio-driver/Cargo.toml
++++ b/virtio-driver/Cargo.toml
+@@ -19,7 +19,7 @@ _unsafe-op-in-unsafe-fn = []
+ bitflags = "1.3"
+ libc = "0.2.87"
+ nix = "0.24.1"
+-memfd = { version = "0.4.1", optional = true }
++memfd = { version = "0.6.1", optional = true }
+ memmap = { version = "0.7.0", optional = true }
+ pci-driver = { version = "0.1.2", default-features = false, optional = true }
+ virtio-bindings = { version = "0.1", features = ["virtio-v5_0_0"], optional = true }
+--
+2.37.0.rc2
+
Summary: Block device I/O library
Name: libblkio
-Release: 4%{?dist}
+Release: 5%{?dist}
URL: %{forgeurl}
Source0: %{forgesource}
License: ASL 2.0 or MIT
Patch: 0001-Use-io-uring-0.5.8.patch
-
-# Bundled missing dependencies.
-#
-# These were created by running "cargo vendor" in the source tree
-# and then making a tarball of just the following directories:
-# vendor/memfd
-Source1: vendor.tar.gz
-
-# Bundled dependencies
-Provides: bundled(crate(memfd/default)) = 0.4.1
+Patch: 0002-virtio-driver-upgrade-to-memfd-0.6.1.patch
# Basic build requirements.
BuildRequires: gcc, gcc-c++
BuildRequires: crate(io-uring/default)
BuildRequires: crate(lazy_static/default)
BuildRequires: crate(libc/default)
-# BuildRequires: crate(memfd...)
+BuildRequires: crate(memfd/default)
BuildRequires: crate(memmap/default)
BuildRequires: crate(memoffset/default)
BuildRequires: crate(nix/default)
%prep
%forgeautosetup -p1
-tar zxf %{SOURCE1}
-cat >> Cargo.toml <<EOF
-[patch.crates-io]
-memfd = { path = 'vendor/memfd' }
-EOF
%cargo_prep
sed -e 's/--locked/--offline/' -i src/cargo-build.sh
%changelog
-* Mon Oct 31 2022 Richard W.M. Jones <rjones@redhat.com> - 1.1.0-4
+* Mon Oct 31 2022 Richard W.M. Jones <rjones@redhat.com> - 1.1.0-5
- Initial package