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