commit 1b253e1a6c8fd1af8ec68de5e37179c47cdac426 Author: dogsheng <960055655@qq.com> Date: Tue Nov 19 11:50:19 2019 +0800 Package init diff --git a/0001-change-run-dir.patch b/0001-change-run-dir.patch new file mode 100644 index 0000000..a8616c0 --- /dev/null +++ b/0001-change-run-dir.patch @@ -0,0 +1,9 @@ +diff --git a/packaging/daemon/libstoragemgmt.conf b/packaging/daemon/libstoragemgmt.conf +index 1c118a9..cdb43c2 100644 +--- a/packaging/daemon/libstoragemgmt.conf ++++ b/packaging/daemon/libstoragemgmt.conf +@@ -1,2 +1,2 @@ +-D /var/run/lsm 0775 root libstoragemgmt - +-D /var/run/lsm/ipc 0775 root libstoragemgmt - ++D /run/lsm 0775 root libstoragemgmt - ++D /run/lsm/ipc 0775 root libstoragemgmt - diff --git a/libstoragemgmt-1.8.0.tar.gz b/libstoragemgmt-1.8.0.tar.gz new file mode 100644 index 0000000..dc3dbf0 Binary files /dev/null and b/libstoragemgmt-1.8.0.tar.gz differ diff --git a/libstoragemgmt.spec b/libstoragemgmt.spec new file mode 100644 index 0000000..e879176 --- /dev/null +++ b/libstoragemgmt.spec @@ -0,0 +1,372 @@ +%global py2_build_dir %{_builddir}/%{name}-%{version}-%{release}-python2 +Name: libstoragemgmt +Version: 1.8.0 +Release: 1 +Summary: Storage array management library +License: LGPLv2+ +URL: https://github.com/libstorage/libstoragemgmt +Source0: https://github.com/libstorage/libstoragemgmt/archive/%{name}-%{version}.tar.gz + +Patch1: 0001-change-run-dir.patch + +BuildRequires: gcc gcc-c++ autoconf automake libtool libxml2-devel check-devel perl-interpreter +BuildRequires: openssl-devel glib2-devel systemd bash-completion libconfig-devel systemd-devel +BuildRequires: procps sqlite-devel python3-six python3-devel systemd systemd-devel chrpath valgrind +%{?systemd_requires} + +%if %{with python2} +BuildRequires: python2-six python2-devel +%endif + +Requires: python3-libstoragemgmt + +%description +The libStorageMgmt library will provide a vendor agnostic open source storage +application programming interface (API) that will allow management of storage +arrays. The library includes a command line interface for interactive use and +scripting (command lsmcli). The library also has a daemon that is used for +executing plug-ins in a separate process (lsmd). + +%package devel +Summary: Header files for libstoragemgmt +Requires: %{name} = %{version}-%{release} + +%description devel +Header files for libstoragemgmt + +%if %{with python2} +%package -n python2-%{name} +Summary: python2 for libstoragemgmt +Requires: %{name} = %{version}-%{release} python2-libstoragemgmt-clibs +BuildArch: noarch +Provides: libstoragemgmt-python = %{version}-%{release} +Obsoletes: libstoragemgmt-python < %{version}-%{release} +%{?python_provide:%python_provide python2-%{name}} + +%description -n python2-libstoragemgmt +python2 for libstoragemgmt + +%package -n python2-libstoragemgmt-clibs +Summary: Python2 for libstoragemgmt-clibs +Requires: %{name} = %{version}-%{release} +Provides: %{name}-python-clibs = %{version}-%{release} +Provides: %{name}-python-clibs%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-python-clibs < %{version}-%{release} + +%{?python_provide:%python_provide python2-%{name}-clibs} + +%description -n python2-libstoragemgmt-clibs +Python2 for libstoragemgmt-clibs. + +%endif + +%package -n python3-libstoragemgmt +Summary: python3 for libstoragemgmt +Requires: %{name} = %{version}-%{release} python3-libstoragemgmt-clibs +BuildArch: noarch + +%{?python_provide:%python_provide python3-%{name}} + +%description -n python3-libstoragemgmt +python3 for libstoragemgmt + +%package -n python3-libstoragemgmt-clibs +Summary: python3 for libstoragemgmt-clibs +Requires: %{name} = %{version}-%{release} + +%{?python_provide:%python_provide python3-%{name}-clibs} + +%description -n python3-libstoragemgmt-clibs +python3 for libstoragemgmt-clibs + +%package smis-plugin +Summary: smis generic aaray for libstoragemgmt +BuildArch: noarch +BuildRequires: python3-pywbem +%if %{with python2} +BuildRequires: python2-pywbem +%endif +Requires: python3-pywbem python3-%{name} = %{version}-%{release} +Requires(post): python3-%{name} = %{version} +Requires(postun): python3-%{name} = %{version} +Provides: %{name}-ibm-v7k-plugin = 2:%{version}-%{release} +Obsoletes: %{name}-ibm-v7k-plugin <= 2:0.1.0-3 + +%description smis-plugin +smis generic aaray for libstoragemgmt. + +%package netapp-plugin +Summary: netapp files for libstoragemgmt +BuildArch: noarch +Requires: python3-%{name} = %{version} +Requires(post): python3-%{name} = %{version} +Requires(postun): python3-%{name} = %{version} +Provides: %{name}-targetd-plugin = %{version}-%{release} +Obsoletes: %{name}-targetd-plugin < %{version}-%{release} +Provides: %{name}-nstor-plugin = %{version}-%{release} +Obsoletes: %{name}-nstor-plugin < %{version}-%{release} +Provides: %{name}-egaraid-plugin = %{version}-%{release} +Obsoletes: %{name}-egaraid-plugin < %{version}-%{release} +Provides: %{name}-hpsa-plugin = %{version}-%{release} +Obsoletes: %{name}-hpsa-plugin < %{version}-%{release} +Provides: %{name}-arcconf-plugin = %{version}-%{release} +Obsoletes: %{name}-arcconf-plugin < %{version}-%{release} +Provides: %{name}-local-plugin = %{version}-%{release} +Obsoletes: %{name}-local-plugin < %{version}-%{release} +Provides: %{name}-megaraid-plugin = %{version}-%{release} +Obsoletes: %{name}-megaraid-plugin < %{version}-%{release} + +%description netapp-plugin +netapp files for libstoragemgmt + +%package udev +Summary: Udev files for %{name} + +%description udev +Udev files for %{name}. + +%package nfs-plugin +Summary: Files for NFS local filesystem support for %{name} +BuildArch: noarch +Requires: python3-%{name} = %{version} nfs-utils +Requires(post): python3-%{name} = %{version} +Requires(postun): python3-%{name} = %{version} + +%description nfs-plugin +Files for NFS local filesystem support for %{name} + + +%package nfs-plugin-clibs +Summary: clibs package for nfs-plugin +Requires: %{name} = %{version}-%{release} + +%description nfs-plugin-clibs +clibs package for nfs-plugi + +%package_help + +%prep +%autosetup -n %{name}-%{version} -p1 + +%build +./autogen.sh +%if %{with python2} +rm -fr %{py2_build_dir} +cp -a . %{py2_build_dir} +%endif + +%configure --with-python3 +%make_build + +%if %{with python2} +pushd %{py2_build_dir} +%configure +%make_build +popd +%endif + +%install +%if %{with python2} +pushd %{py2_build_dir} +%make_install +rm -rf %{buildroot}/%{python_sitelib}/lsm/plugin +rm -rf %{buildroot}/%{_bindir}/lsmcli +popd +%endif + +%make_install +%delete_la + +install -m 0755 -d %{buildroot}/%{_udevrulesdir} +install -m 0644 tools/udev/90-scsi-ua.rules %{buildroot}/%{_udevrulesdir}/90-scsi-ua.rules +install -m 0755 tools/udev/scan-scsi-target %{buildroot}/%{_udevrulesdir}/../scan-scsi-target + +%if 0%{with test} +%check +if ! make check +then + cat test-suite.log || true + exit 1 +fi + +%if %{with python2} +pushd %{py2_build_dir} +if ! make check +then + cat test-suite.log || true + exit 1 +fi +popd +%endif +%endif + +%pre +getent group libstoragemgmt >/dev/null || groupadd -r libstoragemgmt + +getent passwd libstoragemgmt >/dev/null || \ + useradd -r -g libstoragemgmt -d /var/run/lsm -s /sbin/nologin \ + -c "daemon account for libstoragemgmt" libstoragemgmt + +%post +/sbin/ldconfig +%tmpfiles_create %{_tmpfilesdir}/%{name}.conf +%systemd_post %{name}.service + + +%preun +%systemd_preun %{name}.service + +%postun +/sbin/ldconfig +%systemd_postun %{name}.service + +%post smis-plugin +if [ $1 -eq 1 ]; then + # New install. + /usr/bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || : +fi + +%postun smis-plugin +if [ $1 -eq 0 ]; then + # Remove + /usr/bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || : +fi + +%post netapp-plugin +if [ $1 -eq 1 ]; then + # New install. + /usr/bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || : +fi + +%postun netapp-plugin +if [ $1 -eq 0 ]; then + # Remove + /usr/bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || : +fi + +%post nfs-plugin +if [ $1 -eq 1 ]; then + # New install. + /usr/bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || : +fi +%postun nfs-plugin +if [ $1 -eq 0 ]; then + # Remove + /usr/bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || : +fi + + +%files +%defattr(-,root,root) +%license COPYING.LIB +%dir %{_sysconfdir}/lsm/pluginconf.d +%config(noreplace) %{_sysconfdir}/lsm/lsmd.conf +%attr(0644, root, root) %{_tmpfilesdir}/%{name}.conf +%{_bindir}/lsmd +%{_bindir}/lsmcli +%{_bindir}/simc_lsmplugin +%{_libdir}/*.so.* +%{_unitdir}/%{name}.service +%{_datadir}/bash-completion/completions/lsmcli +%ghost %dir %attr(0775, root, libstoragemgmt) /run/lsm/ +%ghost %dir %attr(0775, root, libstoragemgmt) /run/lsm/ipc + +%files devel +%defattr(-,root,root) +%{_includedir}/* +%{_libdir}/*.a +%{_libdir}/*.so +%{_libdir}/pkgconfig/%{name}.pc + +%if %{with python2} +%files -n python2-%{name} +%defattr(-,root,root) +%dir %{python_sitelib}/lsm +%{python2_sitelib}/lsm/*.py* +%{python_sitelib}/lsm/external/* +%{python_sitelib}/lsm/lsmcli/* + +%files -n python2-%{name}-clibs +%defattr(-,root,root) +%{python2_sitelib}/lsm/_clib.* + +%endif + +%files -n python3-%{name} +%defattr(-,root,root) +%dir %{_libexecdir}/lsm.d +%{_libexecdir}/lsm.d/*.py* +%config(noreplace) %{_sysconfdir}/lsm/pluginconf.d/sim.conf +%{_bindir}/sim_lsmplugin +%dir %{python3_sitelib}/lsm +%{python3_sitelib}/lsm/*.py +%{python3_sitelib}/lsm/__pycache__/ +%{python3_sitelib}/lsm/external/* +%{python3_sitelib}/lsm/lsmcli/* +%{python3_sitelib}/lsm/plugin/sim/* +%{python3_sitelib}/lsm/plugin/__init__.py +%{python3_sitelib}/lsm/plugin/__pycache__/ + +%files -n python3-%{name}-clibs +%defattr(-,root,root) +%{python3_sitelib}/lsm/_clib.* + +%files smis-plugin +%defattr(-,root,root) +%dir %{python3_sitelib}/lsm/plugin/smispy +%{_bindir}/smispy_lsmplugin +%{python3_sitelib}/lsm/plugin/smispy/* + +%files netapp-plugin +%defattr(-,root,root) +%config(noreplace) %{_sysconfdir}/lsm/pluginconf.d/megaraid.conf +%config(noreplace) %{_sysconfdir}/lsm/pluginconf.d/hpsa.conf +%config(noreplace) %{_sysconfdir}/lsm/pluginconf.d/arcconf.conf +%config(noreplace) %{_sysconfdir}/lsm/pluginconf.d/local.conf +%{_bindir}/ontap_lsmplugin +%{_bindir}/targetd_lsmplugin +%{_bindir}/nstor_lsmplugin +%{_bindir}/megaraid_lsmplugin +%{_bindir}/hpsa_lsmplugin +%{_bindir}/arcconf_lsmplugin +%{_bindir}/local_lsmplugin +%dir %{python3_sitelib}/lsm/plugin/ontap +%{python3_sitelib}/lsm/plugin/ontap/* +%dir %{python3_sitelib}/lsm/plugin/targetd +%{python3_sitelib}/lsm/plugin/targetd/* +%dir %{python3_sitelib}/lsm/plugin/nstor +%{python3_sitelib}/lsm/plugin/nstor/* +%dir %{python3_sitelib}/lsm/plugin/megaraid +%{python3_sitelib}/lsm/plugin/megaraid/* +%dir %{python3_sitelib}/lsm/plugin/hpsa +%{python3_sitelib}/lsm/plugin/hpsa/* +%dir %{python3_sitelib}/lsm/plugin/arcconf +%{python3_sitelib}/lsm/plugin/arcconf/* +%dir %{python3_sitelib}/lsm/plugin/local +%{python3_sitelib}/lsm/plugin/local/* + +%files udev +%defattr(-,root,root) +%{_udevrulesdir}/90-scsi-ua.rules +%{_udevrulesdir}/../scan-scsi-target + +%files nfs-plugin +%defattr(-,root,root) +%config(noreplace) %{_sysconfdir}/lsm/pluginconf.d/nfs.conf +%{_bindir}/nfs_lsmplugin +%dir %{python3_sitelib}/lsm/plugin/nfs +%{python3_sitelib}/lsm/plugin/nfs/__pycache__/* +%{python3_sitelib}/lsm/plugin/nfs/__init__.* +%{python3_sitelib}/lsm/plugin/nfs/nfs.* + +%files nfs-plugin-clibs +%{python3_sitelib}/lsm/plugin/nfs/nfs_clib.* + +%files help +%defattr(-,root,root) +%doc README NEWS +%{_mandir}/man*/* + +%changelog +* Sat Nov 9 2019 openEuler Buildteam - 1.8.0-1 +- Package init