Backport libblockdev-smart plugin

Resolves: RHEL-49675
This commit is contained in:
Vojtech Trefny 2024-07-24 14:29:42 +02:00
parent 762751ddd7
commit 90e61b5a38
4 changed files with 10610 additions and 2 deletions

1
.gitignore vendored
View File

@ -55,3 +55,4 @@
/libblockdev-3.0.3.tar.gz
/libblockdev-3.0.4.tar.gz
/libblockdev-3.1.0.tar.gz
/smart-tests.tar.gz

10506
0006-smart-plugin.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -16,6 +16,8 @@
%define with_escrow 1
%define with_tools 1
%define with_nvme 1
%define with_smart 1
%define with_smartmontools 1
# btrfs is not available on RHEL > 7
%if 0%{?rhel} > 7 || %{with_btrfs} == 0
@ -73,22 +75,30 @@
%if %{with_nvme} != 1
%define nvme_copts --without-nvme
%endif
%if %{with_smart} != 1
%define smart_copts --without-smart
%endif
%if %{with_smartmontools} != 1
%define smartmontools_copts --without-smartmontools
%endif
%define configure_opts %{?python3_copts} %{?lvm_dbus_copts} %{?btrfs_copts} %{?crypto_copts} %{?dm_copts} %{?loop_copts} %{?lvm_copts} %{?lvm_dbus_copts} %{?mdraid_copts} %{?mpath_copts} %{?swap_copts} %{?part_copts} %{?fs_copts} %{?nvdimm_copts} %{?tools_copts} %{?gi_copts} %{?nvme_copts}
%define configure_opts %{?python3_copts} %{?lvm_dbus_copts} %{?btrfs_copts} %{?crypto_copts} %{?dm_copts} %{?loop_copts} %{?lvm_copts} %{?lvm_dbus_copts} %{?mdraid_copts} %{?mpath_copts} %{?swap_copts} %{?part_copts} %{?fs_copts} %{?nvdimm_copts} %{?tools_copts} %{?gi_copts} %{?nvme_copts} %{?smart_copts} %{?smartmontools_copts}
Name: libblockdev
Version: 3.1.0
Release: 6%{?dist}
Release: 7%{?dist}
Summary: A library for low-level manipulation with block devices
License: LGPL-2.1-or-later
URL: https://github.com/storaged-project/libblockdev
Source0: https://github.com/storaged-project/libblockdev/releases/download/%{version}-%{release}/%{name}-%{version}.tar.gz
Source1: smart-tests.tar.gz
Patch0: 0001-misc-RHEL-10-beta-backport.patch
Patch1: 0002-Check-also-for-aliases-in-bd_utils_have_kernel_module.patch
Patch2: 0003-Fix-passing-size-for-pvresize-over-DBus.patch
Patch3: 0004-Upstream-kernel-VDO-support.patch
Patch4: 0005-libext2fs-unused-parameters-fix.patch
Patch5: 0006-smart-plugin.patch
BuildRequires: make
BuildRequires: glib2-devel
@ -455,6 +465,53 @@ with the libblockdev-part plugin/library.
%endif
%if %{with_smart}
%package smart
BuildRequires: libatasmart-devel >= 0.17
Summary: The smart plugin for the libblockdev library
Requires: %{name}-utils%{?_isa} = %{version}-%{release}
%description smart
The libblockdev library plugin (and in the same time a standalone library)
providing S.M.A.R.T. monitoring and testing functionality, based
on libatasmart.
%package smart-devel
Summary: Development files for the libblockdev-smart plugin/library
Requires: %{name}-smart%{?_isa} = %{version}-%{release}
Requires: %{name}-utils-devel%{?_isa} = %{version}-%{release}
Requires: glib2-devel
%description smart-devel
This package contains header files and pkg-config files needed for development
with the libblockdev-smart plugin/library.
%endif
%if %{with_smartmontools}
%package smartmontools
BuildRequires: json-glib-devel
Summary: The smartmontools plugin for the libblockdev library
Requires: %{name}-utils%{?_isa} = %{version}-%{release}
Requires: smartmontools >= 7.0
%description smartmontools
The libblockdev library plugin (and in the same time a standalone library)
providing S.M.A.R.T. monitoring and testing functionality, based
on smartmontools.
%package smartmontools-devel
Summary: Development files for the libblockdev-smart plugin/library
Requires: %{name}-smartmontools%{?_isa} = %{version}-%{release}
Requires: %{name}-utils-devel%{?_isa} = %{version}-%{release}
Requires: glib2-devel
%description smartmontools-devel
This package contains header files and pkg-config files needed for development
with the libblockdev-smart plugin/library.
%endif
%if %{with_swap}
%package swap
BuildRequires: libblkid-devel
@ -562,6 +619,14 @@ Requires: %{name}-nvme%{?_isa} = %{version}-%{release}
Requires: %{name}-part%{?_isa} = %{version}-%{release}
%endif
%if %{with_smart}
Requires: %{name}-smart%{?_isa} = %{version}-%{release}
%endif
%if %{with_smartmontools}
Requires: %{name}-smartmontools%{?_isa} = %{version}-%{release}
%endif
%if %{with_swap}
Requires: %{name}-swap%{?_isa} = %{version}-%{release}
%endif
@ -575,6 +640,7 @@ A meta-package that pulls all the libblockdev plugins as dependencies.
%prep
%autosetup -n %{name}-%{version} -N -b1
%autosetup -n %{name}-%{version} -p1
%build
@ -638,6 +704,14 @@ find %{buildroot} -type f -name "*.la" | xargs %{__rm}
%ldconfig_scriptlets part
%endif
%if %{with_smart}
%ldconfig_scriptlets smart
%endif
%if %{with_smartmontools}
%ldconfig_scriptlets smartmontools
%endif
%if %{with_swap}
%ldconfig_scriptlets swap
%endif
@ -829,6 +903,28 @@ find %{buildroot} -type f -name "*.la" | xargs %{__rm}
%endif
%if %{with_smart}
%files smart
%{_libdir}/libbd_smart.so.*
%files smart-devel
%{_libdir}/libbd_smart.so
%dir %{_includedir}/blockdev
%{_includedir}/blockdev/smart.h
%endif
%if %{with_smartmontools}
%files smartmontools
%{_libdir}/libbd_smartmontools.so.*
%files smartmontools-devel
%{_libdir}/libbd_smartmontools.so
%dir %{_includedir}/blockdev
%{_includedir}/blockdev/smart.h
%endif
%if %{with_swap}
%files swap
%{_libdir}/libbd_swap.so.*
@ -859,6 +955,10 @@ find %{buildroot} -type f -name "*.la" | xargs %{__rm}
%files plugins-all
%changelog
* Wed Jul 24 2024 Vojtech Trefny <vtrefny@redhat.com> - 3.1.0-7
- Backport libblockdev-smart plugin
Resolves: RHEL-49675
* Fri Jul 19 2024 Vojtech Trefny <vtrefny@redhat.com> - 3.1.0-6
- Fix passing size for pvresize over DBus
Resolves: RHEL-45872

View File

@ -1 +1,2 @@
SHA512 (libblockdev-3.1.0.tar.gz) = 1e5f8155ceaf1b1f02607d0e2075bfe3b1a2c8d6845de5c90201e6b7aefde3bab7af8e9abf137763e6e9ca42fefe5218697ea63731b3b4952eb004b01cf3719a
SHA512 (smart-tests.tar.gz) = 6ece82eef09c3b22c8f1473653d791bcac7316c3f267368170cea5b152d55603d2a1014c729c4ed190e39660a8734a51989eb53c4a427b843e074f750b1f9a9b