7f2d3a236bdda08c6d8dfd4df2d12a3093ec8e54
[fedora-reviews.git] / libblkio / libblkio.spec
1 Version:       1.1.0
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:       1%{?dist}
9 URL:           %{forgeurl}
10 Source0:       %{forgesource}
11 License:       ASL 2.0 or MIT
12
13 # Bundled missing dependencies.
14 #
15 # These were created by running "cargo vendor" in the source tree
16 # and then making a tarball of just the following directories:
17 # vendor/concat-idents
18 # vendor/io-uring
19 # vendor/memfd
20 # vendor/num-traits
21 # vendor/pci-driver
22 # vendor/winapi*
23 Source1:       vendor.tar.gz
24
25 # Bundled dependencies
26 Provides:      bundled(rust-concat-idents)
27 Provides:      bundled(rust-io-uring)
28 Provides:      bundled(rust-memfd)
29 Provides:      bundled(rust-num-traits)
30 Provides:      bundled(rust-pci-driver)
31
32 # Basic build requirements.
33 BuildRequires: gcc, gcc-c++
34 BuildRequires: make
35 BuildRequires: meson
36 BuildRequires: rust-packaging >= 21
37 BuildRequires: rustfmt
38 BuildRequires: cargo
39 BuildRequires: python3-docutils
40 BuildRequires: pkgconf
41 BuildRequires: crate(autocfg/default)
42 BuildRequires: crate(bitflags/default)
43 BuildRequires: crate(cc/default)
44 BuildRequires: crate(cfg-if/default)
45 # BuildRequires: crate(concat-idents...)
46 BuildRequires: crate(const-cstr/default)
47 # BuildRequires: crate(io-uring...)
48 BuildRequires: crate(lazy_static/default)
49 BuildRequires: crate(libc/default)
50 # BuildRequires: crate(memfd...)
51 BuildRequires: crate(memmap/default)
52 BuildRequires: crate(memoffset/default)
53 BuildRequires: crate(nix/default)
54 # BuildRequires: crate(num-traits/default)
55 # BuildRequires: crate(pci-driver/default)
56 BuildRequires: crate(proc-macro2/default)
57 BuildRequires: crate(quote/default)
58 BuildRequires: crate(syn/default)
59 BuildRequires: crate(unicode-xid/default)
60 BuildRequires: crate(virtio-bindings/default)
61
62
63 %description
64 libblkio is a library for high-performance block device I/O with
65 support for multi-queue devices. A C API is provided so that
66 applications can use the library from most programming languages.
67
68
69 %package devel
70 Summary:       Development tools for %{name}
71 Requires:      %{name}%{_isa} = %{version}-%{release}
72
73
74 %description devel
75 This package contains development tools for %{name}.
76
77
78 %prep
79 %forgesetup
80 tar zxf %{SOURCE1}
81
82 cat >> Cargo.toml <<EOF
83 [patch.crates-io]
84 concat-idents = { path = 'vendor/concat-idents' }
85 io-uring = { path = 'vendor/io-uring' }
86 memfd = { path = 'vendor/memfd' }
87 num-traits = { path = 'vendor/num-traits' }
88 pci-driver = { path = 'vendor/pci-driver' }
89 winapi = { path = 'vendor/winapi' }
90 winapi-i686-pc-windows-gnu = { path = 'vendor/winapi-i686-pc-windows-gnu' }
91 winapi-x86_64-pc-windows-gnu = { path = 'vendor/winapi-x86_64-pc-windows-gnu' }
92 EOF
93 %cargo_prep
94 sed -e 's/--locked/--offline/' -i src/cargo-build.sh
95
96 %build
97 %{meson}
98 %{meson_build}
99
100
101 %install
102 %{meson_install}
103
104
105 %files
106 %license LICENSE-APACHE LICENSE-MIT LICENSE.crosvm
107 %doc README.rst
108 %{_libdir}/libblkio.so.1*
109
110
111 %files devel
112 %license LICENSE-APACHE LICENSE-MIT LICENSE.crosvm
113 %doc README.rst
114 %{_includedir}/blkio.h
115 %{_libdir}/libblkio.so
116 %{_libdir}/pkgconfig/blkio.pc
117 %{_mandir}/man3/blkio.3*
118
119
120 %changelog
121 * Wed Oct 26 2022 Richard W.M. Jones <rjones@redhat.com> - 1.1.0-1
122 - Initial package