3 %bcond_without apidocs # API documentation
5 Summary: Block device I/O library
6 Summary(pl.UTF-8): Bibliotek we/wy urządzeń blokowych
10 License: MIT or Apache v2.0 (+crates: Apache v2.0 or BSD, MIT, BSD, Unicode DFS 2016)
12 #Source0Download: https://gitlab.com/libblkio/libblkio/tags
13 Source0: https://gitlab.com/libblkio/libblkio/-/archive/v%{version}/%{name}-%{version}.tar.bz2
14 # Source0-md5: 34397d6a333eb05b82d3388194d237be
15 Source1: %{name}-%{version}-vendor.tar.xz
16 # Source1-md5: 6b44c3d7fc4fd5a2d411da95e89f28b3
17 URL: https://gitlab.com/libblkio/libblkio
20 BuildRequires: docutils
22 BuildRequires: ninja >= 1.5
23 BuildRequires: python3
24 BuildRequires: rpm-build >= 4.6
25 BuildRequires: rpmbuild(macros) >= 1.736
26 BuildRequires: rust >= 1.56
27 %{?with_apidocs:BuildRequires: sphinx-pdg-3}
28 BuildRequires: tar >= 1:1.22
30 ExclusiveArch: %{x8664} %{ix86} x32 aarch64 armv6hl armv7hl armv7hnl
31 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
34 libblkio is a library for high-performance block device I/O with
35 support for multi-queue devices. A C API is provided so that
36 applications can use the library from most programming languages.
38 %description -l pl.UTF-8
39 libblkio to biblioteka do wysoko wydajnego we/wy urządzeń blokowych z
40 obsługą urządzeń wielokolejkowych. Udostępnia API C, dzięki czemu
41 aplikacje mogą używać biblioteki z większości języków.
44 Summary: Header files for libblkio library
45 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libblkio
46 Group: Development/Libraries
47 Requires: %{name} = %{version}-%{release}
50 Header files for libblkio library.
52 %description devel -l pl.UTF-8
53 Pliki nagłówkowe biblioteki libblkio.
56 Summary: API documentation for libblkio library
57 Summary(pl.UTF-8): Dokumentacja API biblioteki libblkio
62 API documentation for libblkio library.
64 %description apidocs -l pl.UTF-8
65 Dokumentacja API biblioteki libblkio.
68 %setup -q -n %{name}-v%{version}-f64bb10aa28ba2d30d1803eeb54179ef0ee0ba80 -b1
70 %{__sed} -i -e '/^args=/ a args+=( --offline -v )' src/cargo-build.sh
71 %{__sed} -i -e 's/ -C debuginfo=. / %{rpmrustflags} /' src/cargo-build.sh
73 %{__sed} -i -e '/^args=/ a args+=( --target x86_64-unknown-linux-gnux32 )' src/cargo-build.sh
74 %{__sed} -i -e 's,/\${profile}/,/x86_64-unknown-linux-gnux32/\${profile}/,' src/cargo-build.sh
77 # use offline registry
78 export CARGO_HOME="$(pwd)/.cargo"
79 mkdir -p "$CARGO_HOME"
80 cat >.cargo/config <<EOF
82 registry = 'https://github.com/rust-lang/crates.io-index'
83 replace-with = 'vendored-sources'
85 [source.vendored-sources]
86 directory = '$PWD/vendor'
90 export CARGO_HOME="$(pwd)/.cargo"
97 sphinx-build-3 -b html docs docs/_build/html
101 rm -rf $RPM_BUILD_ROOT
102 export CARGO_HOME="$(pwd)/.cargo"
104 %ninja_install -C build
106 install -d $RPM_BUILD_ROOT%{_examplesdir}
107 cp -pr examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
110 rm -rf $RPM_BUILD_ROOT
112 %post -p /sbin/ldconfig
113 %postun -p /sbin/ldconfig
116 %defattr(644,root,root,755)
117 %doc LICENSE-MIT LICENSE.crosvm README.rst
118 %attr(755,root,root) %{_libdir}/libblkio.so.*.*.*
119 %attr(755,root,root) %ghost %{_libdir}/libblkio.so.1
122 %defattr(644,root,root,755)
123 %attr(755,root,root) %{_libdir}/libblkio.so
124 %{_includedir}/blkio.h
125 %{_pkgconfigdir}/blkio.pc
126 %{_mandir}/man3/blkio.3*
127 %{_examplesdir}/%{name}-%{version}
131 %defattr(644,root,root,755)
132 %doc docs/_build/html/{_static,*.html,*.js}