libblkio: Add %build_rustflags
[fedora-reviews.git] / libblkio / libblkio.spec
1 Version:       1.1.1
2 %global forgeurl https://gitlab.com/libblkio/libblkio
3 %global tag    v%{version}
4 %forgemeta
5
6 Summary:       Block device I/O library
7 Name:          libblkio
8 Release:       10%{?dist}
9 URL:           %{forgeurl}
10 Source0:       %{forgesource}
11 License:       Apache-2.0 OR MIT
12
13 # Fix for meson 0.64
14 # (https://gitlab.com/libblkio/libblkio/-/merge_requests/149)
15 Patch:         149.patch
16
17 # Upstream commit to use $RUSTFLAGS
18 # https://bugzilla.redhat.com/show_bug.cgi?id=2124697#c70
19 Patch:         44652d6c7fe9c61ac417db9dd05ec27e3c6e20f9.patch
20
21 # Basic build requirements.
22 BuildRequires: gcc, gcc-c++
23 BuildRequires: make
24 BuildRequires: meson
25 BuildRequires: rust-packaging >= 21
26 BuildRequires: rustfmt
27 BuildRequires: cargo
28 BuildRequires: python3-docutils
29 BuildRequires: pkgconf
30
31 # XXX Eventually use %%generate_buildrequires but it does not support
32 # workspaces yet.  See
33 # https://bugzilla.redhat.com/show_bug.cgi?id=2124697#c57
34 #
35 # For major version >= 1, we are requiring that the major version does
36 # not change.
37 #
38 # For major version >= 0, we are requiring that the minor version does
39 # not change.
40 BuildRequires: (crate(autocfg/default) >= 1.0.0 with crate(autocfg/default) < 2.0.0~)
41 BuildRequires: (crate(bitflags/default) >= 1.0.0 with crate(bitflags/default) < 2.0.0~)
42 BuildRequires: (crate(cc/default) >= 1.0.0 with crate(cc/default) < 2.0.0~)
43 BuildRequires: (crate(cfg-if/default) >= 1.0.0 with crate(cfg-if/default) < 2.0.0~)
44 BuildRequires: (crate(concat-idents/default) >= 1.0.0 with crate(concat-idents/default) < 2.0.0~)
45 BuildRequires: (crate(const-cstr/default) >= 0.3.0 with crate(const-cstr/default) < 0.4.0~)
46 BuildRequires: (crate(io-uring/default) >= 0.5.8 with crate(io-uring/default) < 0.6.0~)
47 BuildRequires: (crate(lazy_static/default) >= 1.0.0 with crate(lazy_static/default) < 2.0.0~)
48 BuildRequires: (crate(libc/default) >= 0.2.134 with crate(libc/default) < 0.3.0~)
49 BuildRequires: (crate(memmap2/default) >= 0.5.7 with crate(memmap2/default) < 0.6.0~)
50 BuildRequires: (crate(nix/default) >= 0.24.2 with crate(nix/default) < 0.25.0~)
51 BuildRequires: (crate(num-traits/default) >= 0.2.15 with crate(num-traits/default) < 0.3.0~)
52 BuildRequires: (crate(pci-driver/default) >= 0.1.2 with crate(pci-driver/default) < 0.2.0~)
53 BuildRequires: (crate(proc-macro2/default) >= 1.0.0 with crate(proc-macro2/default) < 2.0.0~)
54 BuildRequires: (crate(quote/default) >= 1.0.0 with crate(quote/default) < 2.0.0~)
55 BuildRequires: (crate(syn/default) >= 1.0.0 with crate(syn/default) < 2.0.0~)
56 BuildRequires: (crate(unicode-ident/default) >= 1.0.0 with crate(unicode-ident/default) < 2.0.0~)
57 BuildRequires: (crate(virtio-bindings/default) >= 0.1.0 with crate(virtio-bindings/default) < 0.2.0~)
58
59
60 %description
61 libblkio is a library for high-performance block device I/O with
62 support for multi-queue devices. A C API is provided so that
63 applications can use the library from most programming languages.
64
65
66 %package devel
67 Summary:       Development tools for %{name}
68 Requires:      %{name}%{_isa} = %{version}-%{release}
69
70
71 %description devel
72 This package contains development tools for %{name}.
73
74
75 %prep
76 %forgeautosetup -p1
77
78 %cargo_prep
79 sed -e 's/--locked/--offline/' -i src/cargo-build.sh
80
81 %build
82 export RUSTFLAGS="%build_rustflags"
83 %{meson}
84 %{meson_build}
85
86
87 %install
88 %{meson_install}
89
90
91 %files
92 %license LICENSE-APACHE LICENSE-MIT LICENSE.crosvm
93 %doc README.rst
94 %{_libdir}/libblkio.so.1*
95
96
97 %files devel
98 %license LICENSE-APACHE LICENSE-MIT LICENSE.crosvm
99 %doc README.rst
100 %{_includedir}/blkio.h
101 %{_libdir}/libblkio.so
102 %{_libdir}/pkgconfig/blkio.pc
103 %{_mandir}/man3/blkio.3*
104
105
106 %changelog
107 * Tue Dec 13 2022 Richard W.M. Jones <rjones@redhat.com> - 1.1.1-10
108 - Initial package