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