Unbundle concat-idents
[fedora-reviews.git] / libblkio / libblkio.spec
index bbc631a..9e3d6ff 100644 (file)
@@ -1,26 +1,57 @@
+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/memfd
+# vendor/pci-driver
+# vendor/winapi*
+Source1:       vendor.tar.gz
+
+# Bundled dependencies
+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/default)
+BuildRequires: crate(const-cstr/default)
+BuildRequires: crate(io-uring/default)
+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
@@ -40,7 +71,18 @@ This package contains development tools for %{name}.
 
 %prep
 %forgesetup
-
+tar zxf %{SOURCE1}
+
+cat >> Cargo.toml <<EOF
+[patch.crates-io]
+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}
@@ -50,16 +92,11 @@ This package contains development tools for %{name}.
 %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
@@ -72,5 +109,5 @@ popd
 
 
 %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