diff --git a/.gitignore b/.gitignore index 4880cc2..9f7c5a1 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ /libstoragemgmt-1.3.1.tar.gz /libstoragemgmt-1.3.2.tar.gz /libstoragemgmt-1.3.5.tar.gz +/libstoragemgmt-1.4.0.tar.gz diff --git a/0001-udev-Fix-gcc-warning-on-non-x86-platform.patch b/0001-udev-Fix-gcc-warning-on-non-x86-platform.patch new file mode 100644 index 0000000..5c4717a --- /dev/null +++ b/0001-udev-Fix-gcc-warning-on-non-x86-platform.patch @@ -0,0 +1,45 @@ +From 2a2d9a8200f987b42966ab4e96b7769b8f9a159f Mon Sep 17 00:00:00 2001 +From: Gris Ge +Date: Wed, 22 Feb 2017 16:18:20 +0800 +Subject: [PATCH] udev: Fix gcc warning on non-x86 platform. + +Issue: + Got failure on s390x: + + scan-scsi-target.c:90:2: error: comparison is always true due to limited + range of data type [-Werror=type-limits] + +Root cause: + The error is on these lines: + + char c; + ... + while ((c = getopt_long(argc, argv, "rh", longopts, NULL)) != -1) { + + On non-x86 platform, char is unsigned. Which makes the (c != -1) + always true. + +Fix: + Take return of getopt_long() as int. + +Signed-off-by: Gris Ge +--- + tools/udev/scan-scsi-target.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/udev/scan-scsi-target.c b/tools/udev/scan-scsi-target.c +index bb83c65..00126b9 100644 +--- a/tools/udev/scan-scsi-target.c ++++ b/tools/udev/scan-scsi-target.c +@@ -54,7 +54,7 @@ static void __attribute__ ((__noreturn__)) invalid(char **argv, char *devpath) + + int main(int argc, char **argv) + { +- char c; ++ int c; + char *devpath; + + char *sysfs_path; +-- +1.8.3.1 + diff --git a/0002-C-library-Bug-fix-for-incorrect-use-of-sizeof.patch b/0002-C-library-Bug-fix-for-incorrect-use-of-sizeof.patch new file mode 100644 index 0000000..a88614f --- /dev/null +++ b/0002-C-library-Bug-fix-for-incorrect-use-of-sizeof.patch @@ -0,0 +1,31 @@ +From c446179b11608a25989dea1209fe3341fe17b76d Mon Sep 17 00:00:00 2001 +From: Gris Ge +Date: Thu, 23 Feb 2017 21:41:46 +0800 +Subject: [PATCH] C library: Bug fix for incorrect use of sizeof. + + * Should use strlen() instead of sizeof() for calculate string length. + +Signed-off-by: Gris Ge +--- + c_binding/libses.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/c_binding/libses.c b/c_binding/libses.c +index a5ebb2d..3c1e8d9 100644 +--- a/c_binding/libses.c ++++ b/c_binding/libses.c +@@ -341,9 +341,9 @@ static int _ses_sg_paths_get(char *err_msg, char ***sg_paths, + (strncmp(sg_name, "sg", strlen("sg")) != 0)) + continue; + sysfs_sg_type_path = (char *) +- malloc(sizeof(char) * (sizeof(_SYSFS_SG_ROOT_PATH) + ++ malloc(sizeof(char) * (strlen(_SYSFS_SG_ROOT_PATH) + + strlen("/") + +- sizeof(sg_name) + ++ strlen(sg_name) + + strlen("/device/type") + + 1 /* trailing \0 */)); + _alloc_null_check(err_msg, sysfs_sg_type_path, rc, out); +-- +1.8.3.1 + diff --git a/0003-Simc-plugin-Fix-gcc-warning-on-fallthrough-switch.patch b/0003-Simc-plugin-Fix-gcc-warning-on-fallthrough-switch.patch new file mode 100644 index 0000000..a844b3f --- /dev/null +++ b/0003-Simc-plugin-Fix-gcc-warning-on-fallthrough-switch.patch @@ -0,0 +1,83 @@ +From fa8e9e94c6d06ac135d4363293b00b1a42ebf5c4 Mon Sep 17 00:00:00 2001 +From: Gris Ge +Date: Thu, 23 Feb 2017 22:06:26 +0800 +Subject: [PATCH] Simc plugin: Fix gcc warning on fallthrough switch. + +Issue: + + GCC(gcc-7.0.1-0.9.fc26.x86_64) is warning on fallthrough switch. + +Fix: + Use if and else if check instead. + +Misc: + Don't want to mess with GCC and CLANG on this trivial issue by + using GCC extention: `__attribute__((fallthrough))`. + +Signed-off-by: Gris Ge +--- + plugin/simc/ops_v1_2.c | 38 ++++++++++++++++++-------------------- + 1 file changed, 18 insertions(+), 20 deletions(-) + +diff --git a/plugin/simc/ops_v1_2.c b/plugin/simc/ops_v1_2.c +index 3703161..3bdc2ba 100644 +--- a/plugin/simc/ops_v1_2.c ++++ b/plugin/simc/ops_v1_2.c +@@ -63,36 +63,34 @@ int volume_raid_info(lsm_plugin_ptr c, lsm_volume *volume, + _good(_str_to_int(err_msg, lsm_hash_string_get(sim_p, "member_type"), + (int *) &member_type), rc, out); + +- switch(member_type) { +- case LSM_POOL_MEMBER_TYPE_POOL: ++ if (member_type == LSM_POOL_MEMBER_TYPE_POOL) { + _good(_str_to_uint64(err_msg, lsm_hash_string_get(sim_p, + "parent_pool_id"), + &sim_p_id), rc, out); + _good(_db_sim_pool_of_sim_id(err_msg, db, sim_p_id, &sim_p), rc, out); +- case LSM_POOL_MEMBER_TYPE_DISK: +- _good(_str_to_int(err_msg, lsm_hash_string_get(sim_p, "raid_type"), +- (int *) raid_type), rc, out); +- _good(_str_to_uint32(err_msg, lsm_hash_string_get(sim_p, "strip_size"), +- strip_size), rc, out); +- *min_io_size = *strip_size; +- _good(_str_to_uint32(err_msg, lsm_hash_string_get(sim_p, "disk_count"), +- disk_count), rc, out); +- _good(_str_to_uint32(err_msg, lsm_hash_string_get(sim_p, +- "data_disk_count"), +- &data_disk_count), rc, out); +- if ((*raid_type == LSM_VOLUME_RAID_TYPE_RAID1) || +- (*raid_type == LSM_VOLUME_RAID_TYPE_JBOD)) +- *opt_io_size = _BLOCK_SIZE; +- else +- *opt_io_size = *strip_size * data_disk_count; +- break; +- default: ++ } else if (member_type != LSM_POOL_MEMBER_TYPE_DISK) { + rc = LSM_ERR_PLUGIN_BUG; + _lsm_err_msg_set(err_msg, "BUG: Got unknown pool member type %d", + member_type); + goto out; + } + ++ _good(_str_to_int(err_msg, lsm_hash_string_get(sim_p, "raid_type"), ++ (int *) raid_type), rc, out); ++ _good(_str_to_uint32(err_msg, lsm_hash_string_get(sim_p, "strip_size"), ++ strip_size), rc, out); ++ *min_io_size = *strip_size; ++ _good(_str_to_uint32(err_msg, lsm_hash_string_get(sim_p, "disk_count"), ++ disk_count), rc, out); ++ _good(_str_to_uint32(err_msg, lsm_hash_string_get(sim_p, ++ "data_disk_count"), ++ &data_disk_count), rc, out); ++ if ((*raid_type == LSM_VOLUME_RAID_TYPE_RAID1) || ++ (*raid_type == LSM_VOLUME_RAID_TYPE_JBOD)) ++ *opt_io_size = _BLOCK_SIZE; ++ else ++ *opt_io_size = *strip_size * data_disk_count; ++ + out: + _db_sql_trans_rollback(db); + if (sim_vol != NULL) +-- +1.8.3.1 + diff --git a/libstoragemgmt.spec b/libstoragemgmt.spec index cae24dc..de369b8 100644 --- a/libstoragemgmt.spec +++ b/libstoragemgmt.spec @@ -1,15 +1,19 @@ %bcond_with test +%global py3_build_dir %{_builddir}/%{name}-%{version}-%{release}-python3 Name: libstoragemgmt -Version: 1.3.5 -Release: 2%{?dist} +Version: 1.4.0 +Release: 1%{?dist} Summary: Storage array management library Group: System Environment/Libraries License: LGPLv2+ URL: https://github.com/libstorage/libstoragemgmt Source0: https://github.com/libstorage/libstoragemgmt/releases/download/%{version}/%{name}-%{version}.tar.gz +Patch0: 0001-udev-Fix-gcc-warning-on-non-x86-platform.patch +Patch1: 0002-C-library-Bug-fix-for-incorrect-use-of-sizeof.patch +Patch2: 0003-Simc-plugin-Fix-gcc-warning-on-fallthrough-switch.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -Requires: %{name}-python +Requires: python3-%{name} BuildRequires: autoconf automake libtool yajl-devel libxml2-devel check-devel perl BuildRequires: openssl-devel BuildRequires: glib2-devel @@ -17,9 +21,12 @@ BuildRequires: systemd BuildRequires: bash-completion BuildRequires: libconfig-devel BuildRequires: systemd-devel +BuildRequires: python-six BuildRequires: python-devel BuildRequires: procps BuildRequires: sqlite-devel +BuildRequires: python3-six +BuildRequires: python3-devel Requires: initscripts Requires(post): systemd @@ -47,7 +54,7 @@ The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package python -Summary: Python client libraries and plug-in support for %{name} +Summary: Python2 client libraries and plug-in support for %{name} Group: System Environment/Libraries Requires: %{name} = %{version}-%{release} Requires: %{name}-python-clibs @@ -58,25 +65,47 @@ The %{name}-python package contains python client libraries as well as python framework support and open source plug-ins written in python. %package python-clibs -Summary: Python C extension module for %{name} +Summary: Python2 C extension module for %{name} Group: System Environment/Libraries Requires: %{name} = %{version}-%{release} %description python-clibs -The %{name}-python-clibs package contains python client C extension +The %{name}-python-clibs package contains python2 client C extension +libraries. + + +%package -n python3-%{name} +Summary: Python 3 client libraries and plug-in support for %{name} +Group: System Environment/Libraries +Requires: %{name} = %{version}-%{release} +BuildArch: noarch +Requires: python3-%{name}-clibs + +%description -n python3-%{name} +The python3-%{name} package contains python 3 client libraries as +well as python framework support and open source plug-ins written in python 3. + +%package -n python3-%{name}-clibs +Summary: Python 3 C extension module for %{name} +Group: System Environment/Libraries +Requires: %{name} = %{version}-%{release} + +%description -n python3-%{name}-clibs +The python3-%{name}-clibs package contains python 3 client C extension libraries. %package smis-plugin Summary: Files for SMI-S generic array support for %{name} Group: System Environment/Libraries BuildRequires: pywbem -Requires: pywbem +BuildRequires: python3-pywbem +Requires: python3-pywbem BuildArch: noarch Provides: %{name}-ibm-v7k-plugin = 2:%{version}-%{release} Obsoletes: %{name}-ibm-v7k-plugin <= 2:0.1.0-3 -Requires: %{name}-python = %{version} -Requires(post): %{name}-python = %{version} -Requires(postun): %{name}-python = %{version} +Requires: python3-%{name} = %{version} +Requires(post): python3-%{name} = %{version} +Requires(postun): python3-%{name} = %{version} %description smis-plugin @@ -89,10 +118,10 @@ Summary: Files for NetApp array support for %{name} Group: System Environment/Libraries BuildRequires: m2crypto Requires: m2crypto -Requires: %{name}-python = %{version} -Requires(post): %{name}-python = %{version} -Requires(postun): %{name}-python = %{version} -Requires: %{name}-python = %{version}-%{release} +Requires: python3-%{name} = %{version} +Requires(post): python3-%{name} = %{version} +Requires(postun): python3-%{name} = %{version} +Requires: python3-%{name} = %{version}-%{release} BuildArch: noarch %description netapp-plugin @@ -103,9 +132,9 @@ support. %package targetd-plugin Summary: Files for targetd array support for %{name} Group: System Environment/Libraries -Requires: %{name}-python = %{version} -Requires(post): %{name}-python = %{version} -Requires(postun): %{name}-python = %{version} +Requires: python3-%{name} = %{version} +Requires(post): python3-%{name} = %{version} +Requires(postun): python3-%{name} = %{version} BuildArch: noarch %description targetd-plugin @@ -116,9 +145,9 @@ support. %package nstor-plugin Summary: Files for NexentaStor array support for %{name} Group: System Environment/Libraries -Requires: %{name}-python = %{version} -Requires(post): %{name}-python = %{version} -Requires(postun): %{name}-python = %{version} +Requires: python3-%{name} = %{version} +Requires(post): python3-%{name} = %{version} +Requires(postun): python3-%{name} = %{version} BuildArch: noarch %description nstor-plugin @@ -136,9 +165,9 @@ uevents generated by the kernel. %package megaraid-plugin Summary: Files for LSI MegaRAID support for %{name} Group: System Environment/Libraries -Requires: %{name}-python = %{version} -Requires(post): %{name}-python = %{version} -Requires(postun): %{name}-python = %{version} +Requires: python3-%{name} = %{version} +Requires(post): python3-%{name} = %{version} +Requires(postun): python3-%{name} = %{version} BuildArch: noarch %description megaraid-plugin @@ -148,10 +177,11 @@ MegaRAID storage management via storcli. %package hpsa-plugin Summary: Files for HP SmartArray support for %{name} Group: System Environment/Libraries -Requires: %{name}-python = %{version} -Requires: python-pyudev -Requires(post): %{name}-python = %{version} -Requires(postun): %{name}-python = %{version} +Requires: python3-%{name} = %{version} +Requires: python3-pyudev +BuildRequires: python3-pyudev +Requires(post): python3-%{name} = %{version} +Requires(postun): python3-%{name} = %{version} BuildArch: noarch %description hpsa-plugin @@ -160,15 +190,42 @@ SmartArray storage management via hpssacli. %prep %setup -q +%patch0 -p1 -b non_x86_fix +%patch1 -p1 -b bug_fix_strlen +%patch2 -p1 -b fix_switch_fallthrough %build +# Copy the whole directory to Python3 build +rm -fr %{py3_build_dir} +cp -a . %{py3_build_dir} %configure --disable-static +pushd %{py3_build_dir} +%configure --with-python3 --disable-static +popd + V=1 make %{?_smp_mflags} +pushd %{py3_build_dir} +V=1 make %{?_smp_mflags} +popd %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} + +# If python3 enabled, all plugins and CLI tools will be use python3 as +# 'Fedora Packaging Guidelines for Python' suggested. +# https://fedoraproject.org/wiki/Packaging:Python#Executables_in_.2Fusr.2Fbin +# Quote: +# If the executables provide the same functionality independent of whether +# they are run on top of Python 2 or Python 3, then only the Python 3 version +# of the executable should be packaged. + +rm -rf %{buildroot}/%{python_sitelib}/lsm/plugin +rm -rf %{buildroot}/%{_bindir}/lsmcli +pushd %{py3_build_dir} +make install DESTDIR=%{buildroot} +popd find %{buildroot} -name '*.la' -exec rm -f {} ';' install -d -m755 %{buildroot}/%{_unitdir} @@ -197,6 +254,14 @@ then cat test-suite.log || true exit 1 fi + +pushd %{py3_build_dir} +if ! make check +then + cat test-suite.log || true + exit 1 +fi +popd %endif %pre @@ -338,63 +403,98 @@ fi %{python_sitelib}/lsm/_pluginrunner.* %{python_sitelib}/lsm/_transport.* %{python_sitelib}/lsm/version.* -%dir %{python_sitelib}/lsm/plugin -%{python_sitelib}/lsm/plugin/__init__.* -%dir %{python_sitelib}/lsm/plugin/sim -%{python_sitelib}/lsm/plugin/sim/__init__.* -%{python_sitelib}/lsm/plugin/sim/simulator.* -%{python_sitelib}/lsm/plugin/sim/simarray.* %dir %{python_sitelib}/lsm/lsmcli %{python_sitelib}/lsm/lsmcli/__init__.* %{python_sitelib}/lsm/lsmcli/data_display.* %{python_sitelib}/lsm/lsmcli/cmdline.* -%{_bindir}/sim_lsmplugin -%config(noreplace) %{_sysconfdir}/lsm/pluginconf.d/sim.conf -%{_mandir}/man1/sim_lsmplugin.1* # Compiled C files for python library %files python-clibs %{python_sitelib}/lsm/_clib.* +%files -n python3-%{name} +%dir %{python3_sitelib}/lsm +%{python3_sitelib}/lsm/__init__.* +%dir %{python3_sitelib}/lsm/external +%{python3_sitelib}/lsm/external/* +%{python3_sitelib}/lsm/_client.* +%{python3_sitelib}/lsm/_common.* +%{python3_sitelib}/lsm/_local_disk.* +%{python3_sitelib}/lsm/_data.* +%{python3_sitelib}/lsm/_iplugin.* +%{python3_sitelib}/lsm/_pluginrunner.* +%{python3_sitelib}/lsm/_transport.* +%{python3_sitelib}/lsm/__pycache__/* +%{python3_sitelib}/lsm/version.* +%dir %{python3_sitelib}/lsm/plugin +%{python3_sitelib}/lsm/plugin/__init__.* +%{python3_sitelib}/lsm/plugin/__pycache__/* +%dir %{python3_sitelib}/lsm/plugin/sim +%{python3_sitelib}/lsm/plugin/sim/__pycache__/* +%{python3_sitelib}/lsm/plugin/sim/__init__.* +%{python3_sitelib}/lsm/plugin/sim/simulator.* +%{python3_sitelib}/lsm/plugin/sim/simarray.* +%dir %{python3_sitelib}/lsm/lsmcli +%{python3_sitelib}/lsm/lsmcli/__init__.* +%{python3_sitelib}/lsm/lsmcli/__pycache__/* +%{python3_sitelib}/lsm/lsmcli/data_display.* +%{python3_sitelib}/lsm/lsmcli/cmdline.* +%{_bindir}/sim_lsmplugin +%{_sysconfdir}/lsm/pluginconf.d/sim.conf +%{_mandir}/man1/sim_lsmplugin.1* + +%files -n python3-%{name}-clibs +%{python3_sitelib}/lsm/_clib.* + %files smis-plugin %defattr(-,root,root,-) -%dir %{python_sitelib}/lsm/plugin/smispy -%{python_sitelib}/lsm/plugin/smispy/__init__.* -%{python_sitelib}/lsm/plugin/smispy/smis.* -%{python_sitelib}/lsm/plugin/smispy/dmtf.* -%{python_sitelib}/lsm/plugin/smispy/utils.* -%{python_sitelib}/lsm/plugin/smispy/smis_common.* -%{python_sitelib}/lsm/plugin/smispy/smis_cap.* -%{python_sitelib}/lsm/plugin/smispy/smis_sys.* -%{python_sitelib}/lsm/plugin/smispy/smis_pool.* -%{python_sitelib}/lsm/plugin/smispy/smis_disk.* -%{python_sitelib}/lsm/plugin/smispy/smis_vol.* -%{python_sitelib}/lsm/plugin/smispy/smis_ag.* +%dir %{python3_sitelib}/lsm/plugin/smispy +%dir %{python3_sitelib}/lsm/plugin/smispy/__pycache__ +%{python3_sitelib}/lsm/plugin/smispy/__pycache__/* +%{python3_sitelib}/lsm/plugin/smispy/__init__.* +%{python3_sitelib}/lsm/plugin/smispy/smis.* +%{python3_sitelib}/lsm/plugin/smispy/dmtf.* +%{python3_sitelib}/lsm/plugin/smispy/utils.* +%{python3_sitelib}/lsm/plugin/smispy/WBEM.* +%{python3_sitelib}/lsm/plugin/smispy/lmiwbem_wrap.* +%{python3_sitelib}/lsm/plugin/smispy/smis_common.* +%{python3_sitelib}/lsm/plugin/smispy/smis_cap.* +%{python3_sitelib}/lsm/plugin/smispy/smis_sys.* +%{python3_sitelib}/lsm/plugin/smispy/smis_pool.* +%{python3_sitelib}/lsm/plugin/smispy/smis_disk.* +%{python3_sitelib}/lsm/plugin/smispy/smis_vol.* +%{python3_sitelib}/lsm/plugin/smispy/smis_ag.* %{_bindir}/smispy_lsmplugin %{_mandir}/man1/smispy_lsmplugin.1* %files netapp-plugin %defattr(-,root,root,-) -%dir %{python_sitelib}/lsm/plugin/ontap -%{python_sitelib}/lsm/plugin/ontap/__init__.* -%{python_sitelib}/lsm/plugin/ontap/na.* -%{python_sitelib}/lsm/plugin/ontap/ontap.* +%dir %{python3_sitelib}/lsm/plugin/ontap +%dir %{python3_sitelib}/lsm/plugin/ontap/__pycache__ +%{python3_sitelib}/lsm/plugin/ontap/__pycache__/* +%{python3_sitelib}/lsm/plugin/ontap/__init__.* +%{python3_sitelib}/lsm/plugin/ontap/na.* +%{python3_sitelib}/lsm/plugin/ontap/ontap.* %{_bindir}/ontap_lsmplugin %{_mandir}/man1/ontap_lsmplugin.1* %files targetd-plugin %defattr(-,root,root,-) -%dir %{python_sitelib}/lsm/plugin/targetd -%{python_sitelib}/lsm/plugin/targetd/__init__.* -%{python_sitelib}/lsm/plugin/targetd/targetd.* +%dir %{python3_sitelib}/lsm/plugin/targetd +%dir %{python3_sitelib}/lsm/plugin/targetd/__pycache__ +%{python3_sitelib}/lsm/plugin/targetd/__pycache__/* +%{python3_sitelib}/lsm/plugin/targetd/__init__.* +%{python3_sitelib}/lsm/plugin/targetd/targetd.* %{_bindir}/targetd_lsmplugin %{_mandir}/man1/targetd_lsmplugin.1* %files nstor-plugin %defattr(-,root,root,-) -%dir %{python_sitelib}/lsm/plugin/nstor -%{python_sitelib}/lsm/plugin/nstor/__init__.* -%{python_sitelib}/lsm/plugin/nstor/nstor.* +%dir %{python3_sitelib}/lsm/plugin/nstor +%dir %{python3_sitelib}/lsm/plugin/nstor/__pycache__ +%{python3_sitelib}/lsm/plugin/nstor/__pycache__/* +%{python3_sitelib}/lsm/plugin/nstor/__init__.* +%{python3_sitelib}/lsm/plugin/nstor/nstor.* %{_bindir}/nstor_lsmplugin %{_mandir}/man1/nstor_lsmplugin.1* @@ -405,25 +505,49 @@ fi %files megaraid-plugin %defattr(-,root,root,-) -%dir %{python_sitelib}/lsm/plugin/megaraid -%{python_sitelib}/lsm/plugin/megaraid/__init__.* -%{python_sitelib}/lsm/plugin/megaraid/megaraid.* -%{python_sitelib}/lsm/plugin/megaraid/utils.* +%dir %{python3_sitelib}/lsm/plugin/megaraid +%dir %{python3_sitelib}/lsm/plugin/megaraid/__pycache__ +%{python3_sitelib}/lsm/plugin/megaraid/__pycache__/* +%{python3_sitelib}/lsm/plugin/megaraid/__init__.* +%{python3_sitelib}/lsm/plugin/megaraid/megaraid.* +%{python3_sitelib}/lsm/plugin/megaraid/utils.* %{_bindir}/megaraid_lsmplugin %config(noreplace) %{_sysconfdir}/lsm/pluginconf.d/megaraid.conf %{_mandir}/man1/megaraid_lsmplugin.1* %files hpsa-plugin %defattr(-,root,root,-) -%dir %{python_sitelib}/lsm/plugin/hpsa -%{python_sitelib}/lsm/plugin/hpsa/__init__.* -%{python_sitelib}/lsm/plugin/hpsa/hpsa.* -%{python_sitelib}/lsm/plugin/hpsa/utils.* +%dir %{python3_sitelib}/lsm/plugin/hpsa +%dir %{python3_sitelib}/lsm/plugin/hpsa/__pycache__ +%{python3_sitelib}/lsm/plugin/hpsa/__pycache__/* +%{python3_sitelib}/lsm/plugin/hpsa/__init__.* +%{python3_sitelib}/lsm/plugin/hpsa/hpsa.* +%{python3_sitelib}/lsm/plugin/hpsa/utils.* %{_bindir}/hpsa_lsmplugin %config(noreplace) %{_sysconfdir}/lsm/pluginconf.d/hpsa.conf %{_mandir}/man1/hpsa_lsmplugin.1* %changelog + +* Tue Feb 21 2017 Gris Ge 1.4.0-1 +- Add Python3 support. +- New sub rpm package python3-libstoragemgmt. +- Add support of lmiwbem(this rpm use pywbem instead). +- Allow plugin test to be run concurrently. +- Bug fixes: + * Fix megaraid plugin for dell PERC. + * Fix local disk rotation speed query on NVMe disk. + * Fix lsmcli incorrect try-expect on local disk query. + * Fix all the gcc compile warnings. + * Fix the obsolete usage of AC_OUTPUT in configure.ac. +- Library adds: + * Query serial of local disk: + lsm_local_disk_serial_num_get()/lsm.LocalDisk.serial_num_get() + * Query LED status of local disk: + lsm_local_disk_led_status_get()/lsm.LocalDisk.led_status_get() + * Query link speed of local disk: + lsm_local_disk_link_speed_get()/lsm.LocalDisk.link_speed_get() + * Fri Feb 10 2017 Fedora Release Engineering - 1.3.5-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild diff --git a/sources b/sources index 4c3bdfc..297acb8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -c146153746addf17b2b271eb24fc2bd5 libstoragemgmt-1.3.5.tar.gz +SHA512 (libstoragemgmt-1.4.0.tar.gz) = be799145dd03439f77bc5f11a6d667e93645be4648722428037fb11b23149d351cc3239d7b895011d395f0e39c6a0d507d6925b3e6c21804658d35e30afce752