2 %bcond_without apidocs # do not build and package API docs
4 Summary: A library for low-level manipulation with block devices
10 Source0: https://github.com/storaged-project/libblockdev/releases/download/%{version}-1/%{name}-%{version}.tar.gz
11 # Source0-md5: 974bc075e696d54b0a6d2905231185d1
12 URL: https://github.com/storaged-project/libblockdev
13 BuildRequires: autoconf
14 BuildRequires: automake
15 BuildRequires: cryptsetup-devel >= 1.6.7
16 BuildRequires: device-mapper-devel >= 1.02.93
17 BuildRequires: dmraid-devel
18 BuildRequires: glib2-devel >= 1:2.42.2
19 BuildRequires: gobject-introspection-devel >= 1.3.0
20 BuildRequires: gtk-doc
21 BuildRequires: kmod-devel >= 19
22 BuildRequires: libblkid-devel >= 2.23.0
23 BuildRequires: libbytesize-devel >= 0.1
24 BuildRequires: libmount-devel >= 2.23.0
25 BuildRequires: libtool
26 BuildRequires: nss-devel >= 3.18.0
27 BuildRequires: parted-devel >= 3.1
28 BuildRequires: pkgconfig
29 BuildRequires: python-devel
30 BuildRequires: python3-devel
31 BuildRequires: udev-devel >= 216
32 BuildRequires: volume_key-devel
33 Requires: glib2 >= 1:2.42.2
34 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
37 The libblockdev is a C library with GObject introspection support that
38 can be used for doing low-level operations with block devices like
39 setting up LVM, BTRFS, LUKS or MD RAID. The library uses plugins (LVM,
40 BTRFS,...) and serves as a thin wrapper around its plugins'
41 functionality. All the plugins, however, can be used as standalone
42 libraries. One of the core principles of libblockdev is that it is
43 stateless from the storage configuration's perspective (e.g. it has no
44 information about VGs when creating an LV).
47 Summary: Header files for libblockdev library
48 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libblockdec
49 Group: Development/Libraries
50 Requires: %{name} = %{version}-%{release}
51 Requires: %{name}-btrfs = %{version}-%{release}
52 Requires: %{name}-crypto = %{version}-%{release}
53 Requires: %{name}-dm = %{version}-%{release}
54 Requires: %{name}-fs = %{version}-%{release}
55 Requires: %{name}-kbd = %{version}-%{release}
56 Requires: %{name}-loop = %{version}-%{release}
57 Requires: %{name}-lvm = %{version}-%{release}
58 Requires: %{name}-lvm-dbus = %{version}-%{release}
59 Requires: %{name}-mdraid = %{version}-%{release}
60 Requires: %{name}-mpath = %{version}-%{release}
61 Requires: %{name}-part = %{version}-%{release}
62 Requires: %{name}-swap = %{version}-%{release}
63 Requires: glib2-devel >= 1:2.42.2
66 Header files for libblockdev library.
68 %description devel -l pl.UTF-8
69 Pliki nagłówkowe biblioteki libblockdev.
72 Summary: libblockdev API documentation
73 Summary(pl.UTF-8): Dokumentacja API biblioteki libblockdev
75 Requires: gtk-doc-common
78 API documentation for libblockdev library.
80 %description apidocs -l pl.UTF-8
81 Dokumentacja API biblioteki libblockdev.
84 Summary: The BTRFS plugin for the libblockdev library
86 Requires: %{name} = %{version}-%{release}
90 The libblockdev library plugin providing the BTRFS-related
94 Summary: The crypto plugin for the libblockdev library
96 Requires: %{name} = %{version}-%{release}
99 The libblockdev library plugin providing the functionality related to
100 encrypted devices (LUKS).
103 Summary: The Device Mapper plugin for the libblockdev library
105 Requires: %{name} = %{version}-%{release}
106 Requires: device-mapper
110 The libblockdev library plugin providing the functionality related to
114 Summary: The FS plugin for the libblockdev library
116 Requires: %{name} = %{version}-%{release}
119 The libblockdev library plugin providing the functionality related to
120 operations with file systems.
123 Summary: The KBD plugin for the libblockdev library
125 Requires: %{name} = %{version}-%{release}
126 Requires: bcache-tools >= 1.0.8
129 The libblockdev library plugin providing the functionality related to
130 kernel block devices (namely zRAM and Bcache).
133 Summary: The loop plugin for the libblockdev library
135 Requires: %{name} = %{version}-%{release}
138 The libblockdev library plugin providing the functionality related to
142 Summary: The LVM plugin for the libblockdev library
144 Requires: %{name} = %{version}-%{release}
146 Requires: thin-provisioning-tools
149 The libblockdev library plugin providing the LVM-related
153 Summary: The LVM plugin for the libblockdev library
155 Requires: %{name} = %{version}-%{release}
156 Requires: lvm2-dbusd >= 2.02.156
157 Requires: thin-provisioning-tools
159 %description lvm-dbus
160 The libblockdev library plugin providing the LVM-related functionality
161 utilizing the LVM DBus API.
164 Summary: The MD RAID plugin for the libblockdev library
166 Requires: %{name} = %{version}-%{release}
170 The libblockdev library plugin providing the functionality related to
174 Summary: The multipath plugin for the libblockdev library
176 Requires: %{name} = %{version}-%{release}
177 Requires: multipath-tools
180 The libblockdev library plugin providing the functionality related to
184 Summary: The partitioning plugin for the libblockdev library
186 Requires: %{name} = %{version}-%{release}
188 Requires: multipath-tools
192 The libblockdev library plugin providing the functionality related to
196 Summary: The swap plugin for the libblockdev library
198 Requires: %{name} = %{version}-%{release}
202 The libblockdev library plugin providing the functionality related to
206 Summary: Meta-package that pulls all the libblockdev plugins as dependencies
208 Requires: %{name}-btrfs = %{version}-%{release}
209 Requires: %{name}-crypto = %{version}-%{release}
210 Requires: %{name}-dm = %{version}-%{release}
211 Requires: %{name}-fs = %{version}-%{release}
212 Requires: %{name}-kbd = %{version}-%{release}
213 Requires: %{name}-loop = %{version}-%{release}
214 Requires: %{name}-lvm = %{version}-%{release}
215 Requires: %{name}-lvm-dbus = %{version}-%{release}
216 Requires: %{name}-mdraid = %{version}-%{release}
217 Requires: %{name}-mpath = %{version}-%{release}
218 Requires: %{name}-part = %{version}-%{release}
219 Requires: %{name}-swap = %{version}-%{release}
222 A meta-package that pulls all the libblockdev plugins as dependencies.
224 %package -n python-blockdev
225 Summary: Python bindings for libblockdev
226 Group: Libraries/Python
227 Requires: %{name} = %{version}-%{release}
228 Requires: python-pygobject3
230 %description -n python-blockdev
231 This package contains Python bindings for libblockdev.
233 %package -n python3-blockdev
234 Summary: Python 3 bindings for libblockdev
235 Group: Libraries/Python
236 Requires: %{name} = %{version}-%{release}
237 Requires: python3-pygobject3
239 %description -n python3-blockdev
240 This package contains Python 3 bindings for libblockdev.
251 %{__with_without apidocs gtk-doc}
255 rm -rf $RPM_BUILD_ROOT
256 install -d $RPM_BUILD_ROOT%{_gtkdocdir}
259 DESTDIR=$RPM_BUILD_ROOT
262 %{__mv} -f $RPM_BUILD_ROOT{%{_datadir}/gtk-doc/html/libblockdev,%{_gtkdocdir}}
265 %{__rm} -f $RPM_BUILD_ROOT%{_libdir}/*.la
267 %py_comp $RPM_BUILD_ROOT%{py_sitedir}
268 %py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
272 rm -rf $RPM_BUILD_ROOT
274 %post -p /sbin/ldconfig
275 %postun -p /sbin/ldconfig
277 %post btrfs -p /sbin/ldconfig
278 %postun btrfs -p /sbin/ldconfig
280 %post crypto -p /sbin/ldconfig
281 %postun crypto -p /sbin/ldconfig
283 %post dm -p /sbin/ldconfig
284 %postun dm -p /sbin/ldconfig
286 %post fs -p /sbin/ldconfig
287 %postun fs -p /sbin/ldconfig
289 %post kbd -p /sbin/ldconfig
290 %postun kbd -p /sbin/ldconfig
292 %post loop -p /sbin/ldconfig
293 %postun loop -p /sbin/ldconfig
295 %post lvm -p /sbin/ldconfig
296 %postun lvm -p /sbin/ldconfig
298 %post lvm-dbus -p /sbin/ldconfig
299 %postun lvm-dbus -p /sbin/ldconfig
301 %post mdraid -p /sbin/ldconfig
302 %postun mdraid -p /sbin/ldconfig
304 %post mpath -p /sbin/ldconfig
305 %postun mpath -p /sbin/ldconfig
307 %post part -p /sbin/ldconfig
308 %postun part -p /sbin/ldconfig
310 %post swap -p /sbin/ldconfig
311 %postun swap -p /sbin/ldconfig
314 %defattr(644,root,root,755)
315 %doc features.rst specs.rst roadmap.rst
316 %attr(755,root,root) %{_libdir}/libbd_part_err.so.*.*.*
317 %attr(755,root,root) %ghost %{_libdir}/libbd_part_err.so.2
318 %attr(755,root,root) %{_libdir}/libbd_utils.so.*.*.*
319 %attr(755,root,root) %ghost %{_libdir}/libbd_utils.so.2
320 %attr(755,root,root) %{_libdir}/libblockdev.so.*.*.*
321 %attr(755,root,root) %ghost %{_libdir}/libblockdev.so.2
322 %dir %{_sysconfdir}/libblockdev
323 %dir %{_sysconfdir}/libblockdev/conf.d
324 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libblockdev/conf.d/00-default.cfg
325 %{_libdir}/girepository-1.0/BlockDev-2.0.typelib
328 %defattr(644,root,root,755)
329 %attr(755,root,root) %{_libdir}/libbd_btrfs.so
330 %attr(755,root,root) %{_libdir}/libbd_crypto.so
331 %attr(755,root,root) %{_libdir}/libbd_dm.so
332 %attr(755,root,root) %{_libdir}/libbd_fs.so
333 %attr(755,root,root) %{_libdir}/libbd_kbd.so
334 %attr(755,root,root) %{_libdir}/libbd_loop.so
335 %attr(755,root,root) %{_libdir}/libbd_lvm.so
336 %attr(755,root,root) %{_libdir}/libbd_lvm-dbus.so
337 %attr(755,root,root) %{_libdir}/libbd_mdraid.so
338 %attr(755,root,root) %{_libdir}/libbd_mpath.so
339 %attr(755,root,root) %{_libdir}/libbd_part.so
340 %attr(755,root,root) %{_libdir}/libbd_part_err.so
341 %attr(755,root,root) %{_libdir}/libbd_swap.so
342 %attr(755,root,root) %{_libdir}/libbd_utils.so
343 %attr(755,root,root) %{_libdir}/libblockdev.so
344 %{_includedir}/blockdev
345 %{_datadir}/gir-1.0/BlockDev-2.0.gir
346 %{_pkgconfigdir}/blockdev.pc
347 %{_pkgconfigdir}/blockdev-utils.pc
351 %defattr(644,root,root,755)
352 %{_gtkdocdir}/libblockdev
356 %defattr(644,root,root,755)
357 %attr(755,root,root) %{_libdir}/libbd_btrfs.so.*.*.*
358 %attr(755,root,root) %ghost %{_libdir}/libbd_btrfs.so.2
361 %defattr(644,root,root,755)
362 %attr(755,root,root) %{_libdir}/libbd_crypto.so.*.*.*
363 %attr(755,root,root) %ghost %{_libdir}/libbd_crypto.so.2
366 %defattr(644,root,root,755)
367 %attr(755,root,root) %{_libdir}/libbd_dm.so.*.*.*
368 %attr(755,root,root) %ghost %{_libdir}/libbd_dm.so.2
371 %defattr(644,root,root,755)
372 %attr(755,root,root) %{_libdir}/libbd_fs.so.*.*.*
373 %attr(755,root,root) %ghost %{_libdir}/libbd_fs.so.2
376 %defattr(644,root,root,755)
377 %attr(755,root,root) %{_libdir}/libbd_kbd.so.*.*.*
378 %attr(755,root,root) %ghost %{_libdir}/libbd_kbd.so.2
381 %defattr(644,root,root,755)
382 %attr(755,root,root) %{_libdir}/libbd_loop.so.*.*.*
383 %attr(755,root,root) %ghost %{_libdir}/libbd_loop.so.2
386 %defattr(644,root,root,755)
387 %attr(755,root,root) %{_libdir}/libbd_lvm.so.*.*.*
388 %attr(755,root,root) %ghost %{_libdir}/libbd_lvm.so.2
391 %defattr(644,root,root,755)
392 %attr(755,root,root) %{_libdir}/libbd_lvm-dbus.so.*.*.*
393 %attr(755,root,root) %ghost %{_libdir}/libbd_lvm-dbus.so.2
394 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libblockdev/conf.d/10-lvm-dbus.cfg
397 %defattr(644,root,root,755)
398 %attr(755,root,root) %{_libdir}/libbd_mdraid.so.*.*.*
399 %attr(755,root,root) %ghost %{_libdir}/libbd_mdraid.so.2
402 %defattr(644,root,root,755)
403 %attr(755,root,root) %{_libdir}/libbd_mpath.so.*.*.*
404 %attr(755,root,root) %ghost %{_libdir}/libbd_mpath.so.2
407 %defattr(644,root,root,755)
408 %attr(755,root,root) %{_libdir}/libbd_part.so.*.*.*
409 %attr(755,root,root) %ghost %{_libdir}/libbd_part.so.2
412 %defattr(644,root,root,755)
413 %attr(755,root,root) %{_libdir}/libbd_swap.so.*.*.*
414 %attr(755,root,root) %ghost %{_libdir}/libbd_swap.so.2
417 %defattr(644,root,root,755)
419 %files -n python-blockdev
420 %defattr(644,root,root,755)
421 %{py_sitedir}/gi/overrides/BlockDev.py[co]
423 %files -n python3-blockdev
424 %defattr(644,root,root,755)
425 %{py3_sitedir}/gi/overrides/BlockDev.py