commit d38940a6249da734a3afabf7bead4a61152709da8c8de792fbcd0c9a7a3f2193 Author: Adrian Schröter Date: Fri May 3 14:36:08 2024 +0200 Sync from SUSE:SLFO:Main libblockdev revision 915bb65c1f3212fc390b28c5955df073 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/libblockdev-2.28.tar.gz b/libblockdev-2.28.tar.gz new file mode 100644 index 0000000..8f096a8 --- /dev/null +++ b/libblockdev-2.28.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82c9c841e28a74fecadedebfae6a772df623cecdf652e5376650fa26da5b7df4 +size 925698 diff --git a/libblockdev-fix-libkmod-include.patch b/libblockdev-fix-libkmod-include.patch new file mode 100644 index 0000000..b18a6a5 --- /dev/null +++ b/libblockdev-fix-libkmod-include.patch @@ -0,0 +1,14 @@ +Index: src/plugins/kbd.c +--- a/src/plugins/kbd.c ++++ b/src/plugins/kbd.c +@@ -17,07 +17,07 @@ + * Author: Vratislav Podzimek + */ + +-#include ++#include + #include + #include + #include + +-- diff --git a/libblockdev.changes b/libblockdev.changes new file mode 100644 index 0000000..a264c57 --- /dev/null +++ b/libblockdev.changes @@ -0,0 +1,267 @@ +------------------------------------------------------------------- +Fri Oct 7 12:08:15 UTC 2022 - Dirk Müller + +- update to 2.28: + * lvm: Fix bd_lvm_get_supported_pe_sizes in Python on 32bit + * tests: Create bigger devices for XFS tests + * tests: Use ext instead of xfs in MountTestCase.test_mount_ro_device + * mpath: Memory leak fix + * spec: Require the same version utils from plugins + * mdraid: Try harder to get container UUID in bd_md_detail + * Add a test case for DDF arrays/containers + * mdraid: Do not ignore errors from bd_md_canonicalize_uuid in bd_md_examine + * mdraid: Try harder to get container UUID in bd_md_examine + * mdraid: Fix copy-paste error when checking return value + * tests: Wait for raid and mirrored LVs to be synced before removing + * tests: Make smaller images for test_lvcreate_type + * dm: Fix comparing DM RAID member devices UUID + * mdraid: Fix use after free + * ci: Add .lgtm.yaml config for LGTM + * ci: Add GitHub actions for running rpmbuilds and csmock + * mpath: Fix potential NULL pointer dereference + +------------------------------------------------------------------- +Wed Jul 27 18:01:59 UTC 2022 - Sarah Kriesch + +- Update to version 2.27: + + Fix for s390x: Remove double fclose in bd_s390_dasd_online + + fs: Return BD_FS_ERROR_UNKNOWN_FS on mounting unknown + filesystem + + overrides: Fix translating exceptions in ErrorProxy + + vdo_stats: Default to 100 % savings for invalid savings values + + lvm-dbus: Add support for changing compression and + deduplication + + lvm: + - Fix reading statistics for VDO pools with VDO 8 + - Do not set global config to and empty string + - Do not include duplicate entries in bd_lvm_lvs output + - Use correct integer type in for comparison + + crypto: Remove useless comparison in progress report in + luks_format + +------------------------------------------------------------------- +Thu Jan 27 17:26:35 UTC 2022 - Bjørn Lie + +- Stop packaging deprecated libbd_vdo2 and libbd_vdo-devel, via + passing without-vdo to configure. Also add Obsoletes for both + packages aswell as the 2 alternative package names they provided. + Standalone vdo modules are deprecated in udisks2 since version + 2.9.0, and we have stopped building them there, and udisks2 was + the only known consumer of libblockdevs vdo support, stop + building them here also. + +------------------------------------------------------------------- +Tue Jan 18 13:06:33 UTC 2022 - Fabian Vogt + +- Remove unnecessary dependency of libbd_part2 on multipath-tools + (bsc#1194771) + +------------------------------------------------------------------- +Thu Nov 18 23:58:04 UTC 2021 - Luciano Santos + +- Fix lack of dependency on libblockdev-lvm needed by libblockdev + package. The lvm-cache-stats binary needs the logical volume + plugin to work (boo#1183948). + +------------------------------------------------------------------- +Sun Nov 14 16:20:46 UTC 2021 - Luciano Santos + +- Update to version 2.26: + + Fixes: + - Deprecated glib function call; + - Build with LLVM/clang; + - Many memory leaks; + - Many tests. +- Fix dbus.h being wrongly packaged in libbd_lvm-dbus-devl instead + of libbd_utils-devel (boo#1189787). + +------------------------------------------------------------------- +Fri Mar 26 08:34:04 UTC 2021 - Dominique Leuenberger + +- Add -Wno-deprecated-declarations to cflags: dealing with + deprecations is upstreams business and should not hinder + downstream packages from building. + +------------------------------------------------------------------- +Wed Jan 20 08:14:59 UTC 2021 - Dirk Müller + +- update to 2.25: + * exec: Fix polling for stdout and stderr + * exec: Use non-blocking read and process the buffer manually + * exec: Clarify the BDUtilsProgExtract callback documentation + * tests: Add bufferbloat exec tests + * tests: Add null-byte exec tests + * lvm: Fix bd_lvm_vdopooldata_* symbols + * exec: Fix setting locale for util calls + * fs: Do not report error when errors were fixed by e2fsck + * README: Use CI status image for 2.x-branch on 2.x + * fs: Fix compile error in ext_repair caused by cherry pick from + master + * Mark all GIR file constants as guint64 + * lvm: Set thin metadata limits to match limits LVM uses in + lvcreate + * lvm: Do not use thin_metadata_size to recommend thin metadata + size + * lvm: Use the UNUSED macro instead of __attribute__((unused)) + * Fix max size limit for LVM thinpool metadata + * loop: Retry LOOP_SET_STATUS64 on EAGAIN + +------------------------------------------------------------------- +Thu Aug 20 22:11:53 UTC 2020 - Dirk Mueller + +- udpate to 2.24: + * VDO plugin has been deprecated in this release (functionality + replaced by LVM VDO) + * support for creating and managing LVM VDO volumes added + * support for unlocking of BitLocker-compatible format BITLK + added + * new functions for (un)freezing filesystems added + * test suite can now be run against installed version of + libblockdev + +------------------------------------------------------------------- +Tue Feb 4 09:35:28 UTC 2020 - Thomas Blume + +- fix files directive for s390 in specfile + +------------------------------------------------------------------- +Thu Sep 17 10:48:00 UTC 2019 - Heming Zhao + +- lvm2-clvm doesn't exist in lvm2-2.03, so change SPEC file + libbd_lvm-dbus requires from lvm2-clvm to lvm2 + +------------------------------------------------------------------- +Thu Jun 13 18:10:22 UTC 2019 - Bjørn Lie + +- Update to version 2.22: + + New minor release of the libblockdev library with multiple + fixes. + + nvdimm: New function for getting list of supported sector sizes + for namespaces fixes. + + Multiple memory leaks fixed. +- Changes from version 2.21: + + crypto: Default key size for LUKS was changed to 512bit. + + tools: + - New simple cli tools that use libblockdev. + - First tool is lvm-cache-stats for displaying stats for LVM + cache devices. + - Use configure option --without-tools to disable building + these. +- Package new cli tool in main package, should possibly be moved + into own sub-package in the future. + +------------------------------------------------------------------- +Wed Feb 13 17:52:44 UTC 2019 - Jan Engelhardt + +- Explain VDO. Fix grammar mishaps. + +------------------------------------------------------------------- +Thu Jan 24 22:51:52 UTC 2019 - bjorn.lie@gmail.com + +- Add pkgconfig(yaml-0.1) BuildRequires and pass with-vdo instead + of without-vdo to configure, build vdo support. +- Following the above, add new sub-packages libbd_vdo2 and + libbd_vdo-devel, aswell as handle the new library in post(un). + +------------------------------------------------------------------- +Fri Jan 11 20:28:13 UTC 2019 - bjorn.lie@gmail.com + +- Add pkgconfig(dbus-1) BuildRequires: Add missing BuildRequires, + libblockdev needs dbus headerfiles during build, but configure + does not check for it. + +------------------------------------------------------------------- +Mon Nov 19 15:23:30 UTC 2018 - luc14n0@linuxmail.org + +- Update to version 2.20: + + Fixes: + - Fix parsing extra arguments for LVM methods calls in the LVM + DBus plugin; + - Multiple fixes for running tests on Debian testing. + + Development: Vagrantfile template was added for easy + development machine setup. +- Changes from version 2.19: + + Features: + - vdo: new functions to get statistical data for existing VDO + volumes (bd_vdo_get_stats); + - crypto: support for passing extra arguments for key + derivation function when creating LUKS2 format. + +------------------------------------------------------------------- +Thu Jun 28 03:22:34 UTC 2018 - luc14n0@linuxmail.org + +- Update to version 2.18: + + New plugin: vdo, support for creating and managing VDO volumes. + +------------------------------------------------------------------- +Fri May 4 02:53:53 UTC 2018 - luc14n0@linuxmail.org + +- Update to version 2.17: + + New plugin: nvdimm, support for NVDIMM namespaces management; + + LUKS2 support for creating LUKS2 format including authenticated + disk encryption. Multiple new functions for working with LUKS + devices (suspend/resume, header backup, metadata size...); + + Extended support for opening TrueCrypt/VeraCrypt volumes. +- Drop pkgconfig(nss) and libvolume_key-devel BuildRequires now + that they are optional and pass without-escrow to configure: + libvolume_key's code is ancient and nearly dead upstream. + +------------------------------------------------------------------- +Wed Mar 28 03:13:10 UTC 2018 - luc14n0@linuxmail.org + +- Resplit plugins to avoid pulling clusterlvm support by default + into the dependency chain (bsc#1086447). + +------------------------------------------------------------------- +Mon Mar 5 23:28:39 UTC 2018 - luc14n0@linuxmail.org + +- Move all plugins into the shared library subpackage and their + respective development files into the devel one. +- Add '-only' to LGPL License tag to comply with SPDX 3.0. + +------------------------------------------------------------------- +Wed Feb 21 23:40:34 UTC 2018 - luc14n0@linuxmail.org + +- Update to version 2.16: + * Features: + - LUKS 2 support for luks_open/close and + luks_add/remove/change_key. + - Progress report support for ext filesystem checks. +- Changes from version 2.15: + * Features: + - The file system plugin is now split into multiple source + files making it easier to add support for more file systems + and technologies. + * Fixes: + - How GPT patition flags are set; + - Check the btrfs module availability as part of checking the + btrfs plugin's dependencies; + - Memory leaks in bd_fs_vfat_get_info(); + - The file system plugin's dependency checking mechanisms. +- Add libblockdev-fix-libkmod-include.patch as openSUSE doesn't use + /usr/include/ but /usr/include/kmod to place libkmod.h. +- Conditionalize the use of Python 2's bindings and turn it off + defaulting Python 3. +- Drop s390's plugin due to the lack of a file still not present + in s390-tools package. +- Drop BuildRoot tag since RPM already handles this itself. + +------------------------------------------------------------------- +Thu Jan 18 23:26:58 UTC 2018 - jengelh@inai.de + +- Remove excess Provides, BuildRequires and %ifs. +- Fix %description line mismatch for s390x parts. + +------------------------------------------------------------------- +Tue Nov 28 22:38:39 UTC 2017 - luc14n0@linuxmail.org + +- Initial package, version 2.14: + * Features: + - Added function to get DM device subsystem. + - Support for the NTFS file system. + - pkg-config definitions improvements. + * Fixes: + - Fix BSSize memory leaks. + - Fixes for issues discovered by coverity. + - Support for the 'Legacy boot' GPT flag. + diff --git a/libblockdev.spec b/libblockdev.spec new file mode 100644 index 0000000..4310b29 --- /dev/null +++ b/libblockdev.spec @@ -0,0 +1,661 @@ +# +# spec file for package libblockdev +# +# Copyright (c) 2022 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define bcachetools_version 1.0.8 +%define somajor 2 +%define libname %{name}%{somajor} +%bcond_with python2 + +Name: libblockdev +Version: 2.28 +Release: 0 +Summary: A library for low-level manipulation with block devices +License: LGPL-2.1-only +Group: Development/Libraries/C and C++ +URL: https://github.com/storaged-project/libblockdev +Source0: https://github.com/storaged-project/libblockdev/releases/download/%{version}-1/libblockdev-%{version}.tar.gz +# PATCH-FIX-OPENSUSE libblockdev-fix-libkmod-include.patch luc14n0@linuxmail.org -- openSUSE's libkmod.h file location is not under the expected /usr/include directory but /usr/include/kmod. +Patch0: libblockdev-fix-libkmod-include.patch + +BuildRequires: dmraid-devel +BuildRequires: gobject-introspection-devel >= 1.3.0 +BuildRequires: gtk-doc +BuildRequires: pkgconfig +%{?with_python2:BuildRequires: python-devel} +BuildRequires: python3-devel +# There is a s390x plugin that, until vtoc.h is provided, can't be added. +#BuildRequires: s390-tools-devel +BuildRequires: pkgconfig(blkid) >= 2.23.0 +BuildRequires: pkgconfig(bytesize) >= 0.1 +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(devmapper) >= 1.02.93 +BuildRequires: pkgconfig(gio-2.0) >= 2.42.2 +BuildRequires: pkgconfig(glib-2.0) >= 2.42.2 +BuildRequires: pkgconfig(gobject-2.0) >= 2.42.2 +BuildRequires: pkgconfig(libcryptsetup) >= 1.6.7 +BuildRequires: pkgconfig(libkmod) >= 19 +BuildRequires: pkgconfig(libparted) >= 3.1 +BuildRequires: pkgconfig(libudev) >= 216 +BuildRequires: pkgconfig(mount) >= 2.23.0 +BuildRequires: pkgconfig(yaml-0.1) +Requires: %{libname} >= %{version} +### lvm-cache-stats binary needs LVM's plugin to work (boo#1183948) ### +Requires: libblockdev-lvm >= %{version} + +%description +The LibBlockDev is a C library with GObject introspection support that can be +used for doing low-level operations with block devices, like setting up LVM, +BTRFS, LUKS or MD RAID. The library uses plugins (LVM, BTRFS,...) and serves as +a wrapper around its plugins' functionality. All the plugins, however, can +be used as standalone libraries. One of the core principles of LibBlockDev is +that it is stateless from the storage configuration's perspective (e.g. it has +no information about VGs when creating an LV). + +%package -n %{libname} +Summary: A library for low-level manipulation with block devices +Group: System/Libraries +Obsoletes: libbd_vdo2 <= 2.26 +Obsoletes: libblockdev-vdo <= 2.26 + +%description -n %{libname} +The LibBlockDev is a C library with GObject introspection support that can be +used for doing low-level operations with block devices like setting up LVM, +BTRFS, LUKS or MD RAID. The library uses plugins (LVM, BTRFS,...) and serves as +a wrapper around its plugins' functionality. All the plugins, however, can +be used as standalone libraries. One of the core principles of LibBlockDev is +that it is stateless from the storage configuration's perspective (e.g. it has +no information about VGs when creating an LV). + +%package -n typelib-1_0-BlockDev-2_0 +Summary: Introspection bindings for the LibBlockDev library +Group: System/Libraries + +%description -n typelib-1_0-BlockDev-2_0 +This package provides the GObject Introspection bindings for LibBlockDev, which +provides low-level manipulation of block devices. + +%package devel +Summary: Development files for the LibBlockDev library +Group: Development/Libraries/C and C++ +Requires: %{libname} >= %{version} +Requires: glib2-devel +Obsoletes: libbd_vdo-devel <= 2.26 +Obsoletes: libblockdev-vdo-devel <= 2.26 + +%description devel +This package provides header files, pkg-config modules and API documentation needed for +development with the LibBlockDev library. + +%package -n python2-%{name} +Summary: Python2 gobject-introspection bindings for the LibBlockDev library +Group: Development/Libraries/Python +Requires: %{libname} >= %{version} +Requires: python2-gobject + +%description -n python2-%{name} +This package contains enhancements to the gobject-introspection bindings for +LibBlockDev in Python2. + +%package -n python3-%{name} +Summary: Python3 gobject-introspection bindings for the LibBlockDev library +Group: Development/Libraries/Python +Requires: %{libname} >= %{version} +Requires: python3-gobject + +%description -n python3-%{name} +This package contains enhancements to the gobject-introspection bindings for +LibBlockDev in Python3. + +%package -n libbd_btrfs%{somajor} +Summary: The BTRFS plugin for the LibBlockDev library +Group: System/Libraries +Requires: libbd_utils%{somajor} >= %{version} +Provides: libblockdev-btrfs = %{version} + +%description -n libbd_btrfs%{somajor} +This LibBlockDev library plugin (and, at the same time, a standalone library) +provides BTRFS-related functionality. + +%package -n libbd_btrfs-devel +Summary: Development files for the libbd_btrfs plugin/library +Group: Development/Libraries/C and C++ +Requires: glib2-devel +Requires: libbd_btrfs%{somajor} >= %{version} +Requires: libbd_utils-devel +Provides: libblockdev-btrfs-devel = %{version} + +%description -n libbd_btrfs-devel +This package contains header files and pkg-config files needed for development +with the libbd_btrfs plugin/library. + +%package -n libbd_crypto%{somajor} +Summary: The crypto plugin for the LibBlockDev library +Group: System/Libraries +Provides: libblockdev-crypto = %{version} + +%description -n libbd_crypto%{somajor} +This LibBlockDev library plugin (and, at the same time, a standalone library) +provides functionality related to LUKS-style encrypted devices. + +%package -n libbd_crypto-devel +Summary: Development files for the libbd_crypto plugin/library +Group: Development/Libraries/C and C++ +Requires: glib2-devel +Requires: libbd_crypto%{somajor} >= %{version} +Provides: libblockdev-crypto-devel = %{version} + +%description -n libbd_crypto-devel +This package contains header files and pkg-config files needed for development +with the libbd_crypto plugin/library.. + +%package -n libbd_dm%{somajor} +Summary: The Device Mapper plugin for the LibBlockDev library +Group: System/Libraries +Requires: device-mapper +Requires: dmraid +Requires: libbd_utils%{somajor} >= %{version} +Provides: libblockdev-dm = %{version} + +%description -n libbd_dm%{somajor} +This LibBlockDev library plugin (and, at the same time, a standalone library) +provides functionality related to Device Mapper. + +%package -n libbd_dm-devel +Summary: Development files for the libbd_dm plugin/library +Group: Development/Libraries/C and C++ +Requires: device-mapper-devel +Requires: dmraid-devel +Requires: glib2-devel +Requires: libbd_dm%{somajor} >= %{version} +Requires: libbd_utils-devel +Requires: systemd-devel +Provides: libblockdev-dm-devel = %{version} + +%description -n libbd_dm-devel +This package contains header files and pkg-config files needed for development +with the libbd_dm plugin/library.. + +%package -n libbd_fs%{somajor} +Summary: The FS plugin for the LibBlockDev library +Group: System/Libraries +Requires: device-mapper +Requires: libbd_utils%{somajor} >= %{version} +Provides: libblockdev-fs = %{version} + +%description -n libbd_fs%{somajor} +This LibBlockDev library plugin (and, at the same time, a standalone library) +provides functionality related to operations with file systems. + +%package -n libbd_fs-devel +Summary: Development files for the libbd_fs plugin/library +Group: Development/Libraries/C and C++ +Requires: dosfstools +Requires: glib2-devel +Requires: libbd_fs%{somajor} >= %{version} +Requires: libbd_utils-devel +Requires: xfsprogs +Provides: libblockdev-fs-devel = %{version} + +%description -n libbd_fs-devel +This package contains header files and pkg-config files needed for development +with the libbd_fs plugin/library.. + +%package -n libbd_kbd%{somajor} +Summary: The KBD plugin for the LibBlockDev library +Group: System/Libraries +Requires: bcache-tools >= %{bcachetools_version} +Requires: libbd_utils%{somajor} >= %{version} +Provides: libblockdev-kbd = %{version} + +%description -n libbd_kbd%{somajor} +This LibBlockDev library plugin (and, at the same time, a standalone library) +provides functionality related to kernel block devices, namely zRAM and +Bcache. + +%package -n libbd_kbd-devel +Summary: Development files for the libbd_kbd plugin/library +Group: Development/Libraries/C and C++ +Requires: glib2-devel +Requires: libbd_kbd%{somajor} >= %{version} +Requires: libbd_utils-devel >= %{version} +Provides: libblockdev-kbd-devel = %{version} + +%description -n libbd_kbd-devel +This package contains header files and pkg-config files needed for development +with the libbd_kbd plugin/library.. + +%package -n libbd_loop%{somajor} +Summary: The loop plugin for the LibBlockDev library +Group: System/Libraries +Requires: libbd_utils%{somajor} >= %{version} +Provides: libblockdev-loop = %{version} + +%description -n libbd_loop%{somajor} +This LibBlockDev library plugin (and, at the same time, a standalone library) +provides functionality related to loop devices. + +%package -n libbd_loop-devel +Summary: Development files for the libblockdev-loop plugin/library +Group: Development/Libraries/C and C++ +Requires: glib2-devel +Requires: libbd_loop%{somajor} = %{version} +Requires: libbd_utils-devel >= %{version} +Provides: libblockdev-loop-devel = %{version} + +%description -n libbd_loop-devel +This package contains header files and pkg-config files needed for development +with the libbd_loop plugin/library. + +%package -n libbd_lvm%{somajor} +Summary: The LVM plugin for the LibBlockDev library +Group: System/Libraries +Requires: libbd_utils%{somajor} >= %{version} +Requires: lvm2 +# For thin_metadata_size. +Requires: thin-provisioning-tools +Provides: libblockdev-lvm = %{version} + +%description -n libbd_lvm%{somajor} +This LibBlockDev library plugin (and, at the same time, a standalone library) +provides LVM-related functionality. + +%package -n libbd_lvm-devel +Summary: Development files for the libblockdev-lvm plugin/library +Group: Development/Libraries/C and C++ +Requires: glib2-devel +Requires: libbd_lvm%{somajor} = %{version} +Requires: libbd_utils-devel >= %{version} +Provides: libblockdev-lvm-devel = %{version} + +%description -n libbd_lvm-devel +This package contains header files and pkg-config files needed for development +with the libbd_lvm plugin/library. + +%package -n libbd_lvm-dbus%{somajor} +Summary: The LVM plugin for the LibBlockDev library +Group: System/Libraries +Requires: libbd_utils%{somajor} >= %{version} +Requires: lvm2 +# For thin_metadata_size. +Requires: thin-provisioning-tools +Provides: libblockdev-lvm-dbus = %{version} + +%description -n libbd_lvm-dbus%{somajor} +This LibBlockDev library plugin (and, at the same time, a standalone library) +provides LVM-related functionality utilizing the LVM DBus API. + +%package -n libbd_lvm-dbus-devel +Summary: Development files for the libblockdev-lvm-dbus plugin/library +Group: Development/Libraries/C and C++ +Requires: glib2-devel +Requires: libbd_lvm-dbus%{somajor} = %{version} +Requires: libbd_lvm-devel >= %{version} +Requires: libbd_utils-devel >= %{version} +Provides: libblockdev-lvm-dbus-devel = %{version} + +%description -n libbd_lvm-dbus-devel +This package contains header files and pkg-config files needed for development +with the libbd_lvm-dbus plugin/library. + +%package -n libbd_mdraid%{somajor} +Summary: The MD RAID plugin for the LibBlockDev library +Group: System/Libraries +Requires: libbd_utils%{somajor} >= %{version} +Requires: mdadm +Provides: libblockdev-mdraid = %{version} + +%description -n libbd_mdraid%{somajor} +This LibBlockDev library plugin (and, at the same time, a standalone library) +provides functionality related to MD RAID. + +%package -n libbd_mdraid-devel +Summary: Development files for the libblockdev-mdraid plugin/library +Group: Development/Libraries/C and C++ +Requires: glib2-devel +Requires: libbd_mdraid%{somajor} = %{version} +Requires: libbd_utils-devel >= %{version} +Provides: libblockdev-mdraid-devel = %{version} + +%description -n libbd_mdraid-devel +This package contains header files and pkg-config files needed for development +with the libbd_mdraid plugin/library. + +%package -n libbd_mpath%{somajor} +Summary: The multipath plugin for the LibBlockDev library +Group: System/Libraries +Requires: libbd_utils%{somajor} >= %{version} +Requires: multipath-tools +Provides: libblockdev-mpath = %{version} + +%description -n libbd_mpath%{somajor} +This LibBlockDev library plugin (and, at the same time, a standalone library) +provides functionality related to multipath devices. + +%package -n libbd_mpath-devel +Summary: Development files for the libblockdev-mpath plugin/library +Group: Development/Libraries/C and C++ +Requires: glib2-devel +Requires: libbd_mpath%{somajor} = %{version} +Requires: libbd_utils-devel >= %{version} +Provides: libblockdev-mpath-devel = %{version} + +%description -n libbd_mpath-devel +This package contains header files and pkg-config files needed for development +with the libbd_mpath plugin/library. + +%package -n libbd_part%{somajor} +Summary: The partitioning plugin for the LibBlockDev library +Group: System/Libraries +Requires: gptfdisk +Requires: libbd_utils%{somajor} >= %{version} +Requires: util-linux +Provides: libblockdev-part = %{version} + +%description -n libbd_part%{somajor} +This LibBlockDev library plugin (and, at the same time, a standalone library) +provides functionality related to partitioning. + +%package -n libbd_part-devel +Summary: Development files for the libblockdev-part plugin/library +Group: Development/Libraries/C and C++ +Requires: glib2-devel +Requires: libbd_part%{somajor} = %{version} +Requires: libbd_utils-devel >= %{version} +Provides: libblockdev-part-devel = %{version} + +%description -n libbd_part-devel +This package contains header files and pkg-config files needed for development +with the libbd_part plugin/library. + +%package -n libbd_swap%{somajor} +Summary: The swap plugin for the LibBlockDev library +Group: System/Libraries +Requires: libbd_utils%{somajor} >= %{version} +Requires: util-linux +Provides: libblockdev-swap = %{version} + +%description -n libbd_swap%{somajor} +This LibBlockDev library plugin (and, at the same time, a standalone library) +provides functionality related to swap devices. + +%package -n libbd_swap-devel +Summary: Development files for the libblockdev-swap plugin/library +Group: Development/Libraries/C and C++ +Requires: glib2-devel +Requires: libbd_swap%{somajor} = %{version} +Requires: libbd_utils-devel >= %{version} +Provides: libblockdev-swap-devel = %{version} + +%description -n libbd_swap-devel +This package contains header files and pkg-config files needed for development +with the libbd_swap plugin/library. + +%package -n libbd_utils%{somajor} +Summary: Utility functions library for the LibBlockDev library +Group: System/Libraries + +%description -n libbd_utils%{somajor} +libbd_utils is a library providing utility functions used by the +LibBlockDev library and its plugins. + +%package -n libbd_utils-devel +Summary: Development files for libbd_utils +Group: Development/Libraries/C and C++ +Requires: glib2-devel +Requires: libbd_utils%{somajor} >= %{version} + +%description -n libbd_utils-devel +This package contains header files and pkg-config files needed for development +with the libbd_utils library. + +%prep +%autosetup -p1 + +%build +export CFLAGS="%{optflags} -Wno-deprecated-declarations" +%configure \ + --disable-static \ + --enable-introspection \ + --with-bcache \ + --with-btrfs \ + --with-crypto \ + --with-dm \ + --with-dmraid \ + --with-fs \ + --with-gtk-doc \ + --with-kbd \ + --with-loop \ + --with-lvm \ + --with-lvm_dbus \ + --with-mdraid \ + --with-mpath \ + --with-part \ + --with-swap \ + --without-vdo \ + --without-escrow \ + --without-nvdimm \ + %{nil} +%make_build + +%install +%make_install +find %{buildroot} -name "*.la" -print -type f -delete + +%post -n %{libname} -p /sbin/ldconfig +%postun -n %{libname} -p /sbin/ldconfig + +%post -n libbd_btrfs%{somajor} -p /sbin/ldconfig +%postun -n libbd_btrfs%{somajor} -p /sbin/ldconfig + +%post -n libbd_crypto%{somajor} -p /sbin/ldconfig +%postun -n libbd_crypto%{somajor} -p /sbin/ldconfig + +%post -n libbd_dm%{somajor} -p /sbin/ldconfig +%postun -n libbd_dm%{somajor} -p /sbin/ldconfig + +%post -n libbd_fs%{somajor} -p /sbin/ldconfig +%postun -n libbd_fs%{somajor} -p /sbin/ldconfig + +%post -n libbd_kbd%{somajor} -p /sbin/ldconfig +%postun -n libbd_kbd%{somajor} -p /sbin/ldconfig + +%post -n libbd_loop%{somajor} -p /sbin/ldconfig +%postun -n libbd_loop%{somajor} -p /sbin/ldconfig + +%post -n libbd_lvm%{somajor} -p /sbin/ldconfig +%postun -n libbd_lvm%{somajor} -p /sbin/ldconfig + +%post -n libbd_lvm-dbus%{somajor} -p /sbin/ldconfig +%postun -n libbd_lvm-dbus%{somajor} -p /sbin/ldconfig + +%post -n libbd_mdraid%{somajor} -p /sbin/ldconfig +%postun -n libbd_mdraid%{somajor} -p /sbin/ldconfig + +%post -n libbd_mpath%{somajor} -p /sbin/ldconfig +%postun -n libbd_mpath%{somajor} -p /sbin/ldconfig + +%post -n libbd_part%{somajor} -p /sbin/ldconfig +%postun -n libbd_part%{somajor} -p /sbin/ldconfig + +%post -n libbd_swap%{somajor} -p /sbin/ldconfig +%postun -n libbd_swap%{somajor} -p /sbin/ldconfig + +%post -n libbd_utils%{somajor} -p /sbin/ldconfig +%postun -n libbd_utils%{somajor} -p /sbin/ldconfig + +%files +%dir %{_sysconfdir}/libblockdev +%dir %{_sysconfdir}/libblockdev/conf.d +%config %{_sysconfdir}/libblockdev/conf.d/00-default.cfg +%{_bindir}/lvm-cache-stats + +%files -n %{libname} +%license LICENSE +%{_libdir}/libblockdev.so.%{somajor}* +%ifarch s390x +%{_libdir}/libbd_s390.so* +%endif + +%files -n typelib-1_0-BlockDev-2_0 +%{_libdir}/girepository-1.0/BlockDev-2.0.typelib + +%files devel +%doc features.rst specs.rst +%doc %{_datadir}/gtk-doc/html/libblockdev +%{_libdir}/libblockdev.so +%{_libdir}/pkgconfig/blockdev.pc +%{_datadir}/gir-1.0/BlockDev-2.0.gir +%dir %{_includedir}/blockdev +%{_includedir}/blockdev/blockdev.h +%{_includedir}/blockdev/plugins.h +%ifarch s390x +%{_includedir}/blockdev/s390.h +%endif + +%if %{with python2} +%files -n python2-%{name} +%dir %{python2_sitearch}/gi +%dir %{python2_sitearch}/gi/overrides +%{python2_sitearch}/gi/overrides/BlockDev.py +%endif + +%files -n python3-%{name} +%dir %{python3_sitearch}/gi +%dir %{python3_sitearch}/gi/overrides +%{python3_sitearch}/gi/overrides/BlockDev.py + +%files -n libbd_btrfs%{somajor} +%{_libdir}/libbd_btrfs.so.%{somajor}* + +%files -n libbd_btrfs-devel +%{_libdir}/libbd_btrfs.so +%dir %{_includedir}/blockdev +%{_includedir}/blockdev/btrfs.h + +%files -n libbd_crypto%{somajor} +%{_libdir}/libbd_crypto.so.%{somajor}* + +%files -n libbd_crypto-devel +%{_libdir}/libbd_crypto.so +%dir %{_includedir}/blockdev +%{_includedir}/blockdev/crypto.h + +%files -n libbd_dm%{somajor} +%{_libdir}/libbd_dm.so.%{somajor}* + +%files -n libbd_dm-devel +%{_libdir}/libbd_dm.so +%dir %{_includedir}/blockdev +%{_includedir}/blockdev/dm.h + +%files -n libbd_fs%{somajor} +%{_libdir}/libbd_fs.so.%{somajor}* + +%files -n libbd_fs-devel +%{_libdir}/libbd_fs.so +%dir %{_includedir}/blockdev +%dir %{_includedir}/blockdev/fs +%{_includedir}/blockdev/fs.h +%{_includedir}/blockdev/fs/ext.h +%{_includedir}/blockdev/fs/generic.h +%{_includedir}/blockdev/fs/mount.h +%{_includedir}/blockdev/fs/ntfs.h +%{_includedir}/blockdev/fs/vfat.h +%{_includedir}/blockdev/fs/xfs.h + +%files -n libbd_kbd%{somajor} +%{_libdir}/libbd_kbd.so.%{somajor}* + +%files -n libbd_kbd-devel +%{_libdir}/libbd_kbd.so +%dir %{_includedir}/blockdev +%{_includedir}/blockdev/kbd.h + +%files -n libbd_loop%{somajor} +%{_libdir}/libbd_loop.so.%{somajor}* + +%files -n libbd_loop-devel +%{_libdir}/libbd_loop.so +%dir %{_includedir}/blockdev +%{_includedir}/blockdev/loop.h + +%files -n libbd_lvm%{somajor} +%{_libdir}/libbd_lvm.so.%{somajor}* + +%files -n libbd_lvm-devel +%{_libdir}/libbd_lvm.so +%dir %{_includedir}/blockdev +%{_includedir}/blockdev/lvm.h + +%files -n libbd_lvm-dbus%{somajor} +%{_libdir}/libbd_lvm-dbus.so.%{somajor}* +%config %{_sysconfdir}/libblockdev/conf.d/10-lvm-dbus.cfg + +%files -n libbd_lvm-dbus-devel +%{_libdir}/libbd_lvm-dbus.so + +%files -n libbd_mdraid%{somajor} +%{_libdir}/libbd_mdraid.so.%{somajor}* + +%files -n libbd_mdraid-devel +%{_libdir}/libbd_mdraid.so +%dir %{_includedir}/blockdev +%{_includedir}/blockdev/mdraid.h + +%files -n libbd_mpath%{somajor} +%{_libdir}/libbd_mpath.so.%{somajor}* + +%files -n libbd_mpath-devel +%{_libdir}/libbd_mpath.so +%dir %{_includedir}/blockdev +%{_includedir}/blockdev/mpath.h + +%files -n libbd_part%{somajor} +%{_libdir}/libbd_part.so.%{somajor}* + +%files -n libbd_part-devel +%{_libdir}/libbd_part.so +%dir %{_includedir}/blockdev +%{_includedir}/blockdev/part.h + +%files -n libbd_swap%{somajor} +%{_libdir}/libbd_swap.so.%{somajor}* + +%files -n libbd_swap-devel +%{_libdir}/libbd_swap.so +%dir %{_includedir}/blockdev +%{_includedir}/blockdev/swap.h + +%files -n libbd_utils%{somajor} +%{_libdir}/libbd_part_err.so.%{somajor}* +%{_libdir}/libbd_utils.so.%{somajor}* + +%files -n libbd_utils-devel +%{_libdir}/libbd_utils.so +%{_libdir}/libbd_part_err.so +%{_libdir}/pkgconfig/blockdev-utils.pc +%dir %{_includedir}/blockdev +%{_includedir}/blockdev/dbus.h +%{_includedir}/blockdev/dev_utils.h +%{_includedir}/blockdev/exec.h +%{_includedir}/blockdev/extra_arg.h +%{_includedir}/blockdev/module.h +%{_includedir}/blockdev/sizes.h +%{_includedir}/blockdev/utils.h + +%changelog