+Version: 1.1.0
%global forgeurl https://gitlab.com/libblkio/libblkio
-%global commit c8f5ed9a1460d90a522bda55da09f013fa7da61c
-# Upstream has not tagged any versions so far.
-Version: 0.1
+%global tag v%{version}
%forgemeta
Summary: Block device I/O library
Name: libblkio
-Release: 1%{?dist}
+Release: 2%{?dist}
URL: %{forgeurl}
-Source: %{forgesource}
+Source0: %{forgesource}
License: ASL 2.0 or MIT
+# 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/concat-idents
+# vendor/io-uring
+# vendor/memfd
+# vendor/pci-driver
+# vendor/winapi*
+Source1: vendor.tar.gz
+
+# Bundled dependencies
+Provides: bundled(crate(concat-idents/default)) = 1.1.3
+Provides: bundled(crate(io-uring/default)) = 0.5.6
+Provides: bundled(crate(memfd/default)) = 0.4.1
+Provides: bundled(crate(pci-driver/default)) = 0.1.2
+
# Basic build requirements.
BuildRequires: gcc, gcc-c++
BuildRequires: make
BuildRequires: meson
-BuildRequires: rust
+BuildRequires: rust-packaging >= 21
BuildRequires: rustfmt
BuildRequires: cargo
BuildRequires: python3-docutils
-BuildRequires: liburing-devel
BuildRequires: pkgconf
+BuildRequires: crate(autocfg/default)
+BuildRequires: crate(bitflags/default)
+BuildRequires: crate(cc/default)
+BuildRequires: crate(cfg-if/default)
+# BuildRequires: crate(concat-idents...)
+BuildRequires: crate(const-cstr/default)
+# BuildRequires: crate(io-uring...)
+BuildRequires: crate(lazy_static/default)
+BuildRequires: crate(libc/default)
+# BuildRequires: crate(memfd...)
+BuildRequires: crate(memmap/default)
+BuildRequires: crate(memoffset/default)
+BuildRequires: crate(nix/default)
+BuildRequires: crate(num-traits/default)
+# BuildRequires: crate(pci-driver/default)
+BuildRequires: crate(proc-macro2/default)
+BuildRequires: crate(quote/default)
+BuildRequires: crate(syn/default)
+BuildRequires: crate(unicode-xid/default)
+BuildRequires: crate(virtio-bindings/default)
%description
%prep
%forgesetup
-
+tar zxf %{SOURCE1}
+
+cat >> Cargo.toml <<EOF
+[patch.crates-io]
+concat-idents = { path = 'vendor/concat-idents' }
+io-uring = { path = 'vendor/io-uring' }
+memfd = { path = 'vendor/memfd' }
+pci-driver = { path = 'vendor/pci-driver' }
+winapi = { path = 'vendor/winapi' }
+winapi-i686-pc-windows-gnu = { path = 'vendor/winapi-i686-pc-windows-gnu' }
+winapi-x86_64-pc-windows-gnu = { path = 'vendor/winapi-x86_64-pc-windows-gnu' }
+EOF
+%cargo_prep
+sed -e 's/--locked/--offline/' -i src/cargo-build.sh
%build
%{meson}
%install
%{meson_install}
-pushd %{buildroot}%{_libdir}
-ln -s libblkio.so libblkio.so.0
-ln -s libblkio.so.0 libblkio.so.0.0
-popd
-
%files
%license LICENSE-APACHE LICENSE-MIT LICENSE.crosvm
%doc README.rst
-%{_libdir}/libblkio.so.0*
+%{_libdir}/libblkio.so.1*
%files devel
%changelog
-* Tue Sep 06 2022 Richard W.M. Jones <rjones@redhat.com> - 0.1-1
+* Fri Oct 28 2022 Richard W.M. Jones <rjones@redhat.com> - 1.1.0-2
- Initial package