libblkio: Add %build_rustflags
[fedora-reviews.git] / libblkio / libblkio.spec
index 9e3d6ff..ad68dd0 100644 (file)
@@ -1,27 +1,22 @@
-Version:       1.1.0
+Version:       1.1.1
 %global forgeurl https://gitlab.com/libblkio/libblkio
 %global tag    v%{version}
 %forgemeta
 
 Summary:       Block device I/O library
 Name:          libblkio
-Release:       2%{?dist}
+Release:       10%{?dist}
 URL:           %{forgeurl}
 Source0:       %{forgesource}
-License:       ASL 2.0 or MIT
+License:       Apache-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
+# Fix for meson 0.64
+# (https://gitlab.com/libblkio/libblkio/-/merge_requests/149)
+Patch:         149.patch
 
-# Bundled dependencies
-Provides:      bundled(crate(memfd/default)) = 0.4.1
-Provides:      bundled(crate(pci-driver/default)) = 0.1.2
+# Upstream commit to use $RUSTFLAGS
+# https://bugzilla.redhat.com/show_bug.cgi?id=2124697#c70
+Patch:         44652d6c7fe9c61ac417db9dd05ec27e3c6e20f9.patch
 
 # Basic build requirements.
 BuildRequires: gcc, gcc-c++
@@ -32,26 +27,34 @@ BuildRequires: rustfmt
 BuildRequires: cargo
 BuildRequires: python3-docutils
 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)
+
+# XXX Eventually use %%generate_buildrequires but it does not support
+# workspaces yet.  See
+# https://bugzilla.redhat.com/show_bug.cgi?id=2124697#c57
+#
+# For major version >= 1, we are requiring that the major version does
+# not change.
+#
+# For major version >= 0, we are requiring that the minor version does
+# not change.
+BuildRequires: (crate(autocfg/default) >= 1.0.0 with crate(autocfg/default) < 2.0.0~)
+BuildRequires: (crate(bitflags/default) >= 1.0.0 with crate(bitflags/default) < 2.0.0~)
+BuildRequires: (crate(cc/default) >= 1.0.0 with crate(cc/default) < 2.0.0~)
+BuildRequires: (crate(cfg-if/default) >= 1.0.0 with crate(cfg-if/default) < 2.0.0~)
+BuildRequires: (crate(concat-idents/default) >= 1.0.0 with crate(concat-idents/default) < 2.0.0~)
+BuildRequires: (crate(const-cstr/default) >= 0.3.0 with crate(const-cstr/default) < 0.4.0~)
+BuildRequires: (crate(io-uring/default) >= 0.5.8 with crate(io-uring/default) < 0.6.0~)
+BuildRequires: (crate(lazy_static/default) >= 1.0.0 with crate(lazy_static/default) < 2.0.0~)
+BuildRequires: (crate(libc/default) >= 0.2.134 with crate(libc/default) < 0.3.0~)
+BuildRequires: (crate(memmap2/default) >= 0.5.7 with crate(memmap2/default) < 0.6.0~)
+BuildRequires: (crate(nix/default) >= 0.24.2 with crate(nix/default) < 0.25.0~)
+BuildRequires: (crate(num-traits/default) >= 0.2.15 with crate(num-traits/default) < 0.3.0~)
+BuildRequires: (crate(pci-driver/default) >= 0.1.2 with crate(pci-driver/default) < 0.2.0~)
+BuildRequires: (crate(proc-macro2/default) >= 1.0.0 with crate(proc-macro2/default) < 2.0.0~)
+BuildRequires: (crate(quote/default) >= 1.0.0 with crate(quote/default) < 2.0.0~)
+BuildRequires: (crate(syn/default) >= 1.0.0 with crate(syn/default) < 2.0.0~)
+BuildRequires: (crate(unicode-ident/default) >= 1.0.0 with crate(unicode-ident/default) < 2.0.0~)
+BuildRequires: (crate(virtio-bindings/default) >= 0.1.0 with crate(virtio-bindings/default) < 0.2.0~)
 
 
 %description
@@ -70,21 +73,13 @@ 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
+%forgeautosetup -p1
+
 %cargo_prep
 sed -e 's/--locked/--offline/' -i src/cargo-build.sh
 
 %build
+export RUSTFLAGS="%build_rustflags"
 %{meson}
 %{meson_build}
 
@@ -109,5 +104,5 @@ sed -e 's/--locked/--offline/' -i src/cargo-build.sh
 
 
 %changelog
-* Fri Oct 28 2022 Richard W.M. Jones <rjones@redhat.com> - 1.1.0-2
+* Tue Dec 13 2022 Richard W.M. Jones <rjones@redhat.com> - 1.1.1-10
 - Initial package