]> git.pld-linux.org Git - packages/libstoragemgmt.git/commitdiff
- initial, based on Fedora
authorJakub Bogusz <qboosh@pld-linux.org>
Fri, 29 Apr 2022 08:58:01 +0000 (10:58 +0200)
committerJakub Bogusz <qboosh@pld-linux.org>
Fri, 29 Apr 2022 08:58:01 +0000 (10:58 +0200)
libstoragemgmt.spec [new file with mode: 0644]

diff --git a/libstoragemgmt.spec b/libstoragemgmt.spec
new file mode 100644 (file)
index 0000000..e1baf3b
--- /dev/null
@@ -0,0 +1,539 @@
+#
+# Conditional build:
+%bcond_without python2 # CPython 2.x support
+%bcond_without python3 # CPython 3.x support
+%bcond_with    tests
+
+Summary:       Storage array management library
+Summary(pl.UTF-8):     Biblioteka do zarządzania macierzami dyskowymi
+Name:          libstoragemgmt
+Version:       1.9.4
+Release:       1
+License:       LGPL v2+
+Group:         Libraries
+#Source0Download: https://github.com/libstorage/libstoragemgmt/releases
+Source0:       https://github.com/libstorage/libstoragemgmt/releases/download/%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: 8fa7d545905d0e9d872d6611ab9cd5ec
+URL:           https://github.com/libstorage/libstoragemgmt
+BuildRequires: autoconf >= 2.50
+BuildRequires: automake
+BuildRequires: check-devel >= 0.9.8
+BuildRequires: glib2-devel >= 1:2.22.5
+BuildRequires: libconfig-devel >= 1.3.2
+BuildRequires: libstdc++-devel
+BuildRequires: libtool
+BuildRequires: libxml2-devel >= 1:2.5.0
+BuildRequires: perl-base
+BuildRequires: openssl-devel
+BuildRequires: rpm-build >= 4.6
+BuildRequires: systemd-devel
+BuildRequires: systemd-units
+BuildRequires: pkgconfig
+BuildRequires: procps
+%if %{with python2}
+BuildRequires: python-devel >= 1:2.6
+BuildRequires: python-six
+BuildRequires: python-pywbem
+%endif
+BuildRequires: python3-devel >= 1:3.2
+BuildRequires: python3-pywbem
+BuildRequires: python3-six
+BuildRequires: rpm-build >= 4.6
+BuildRequires: rpmbuild(macros) >= 1.673
+BuildRequires: sqlite3-devel >= 3
+BuildRequires: systemd-devel
+BuildRequires: udev-devel
+BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%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).
+
+%description -l pl.UTF-8
+Biblioteka libStorageMgmt ma na celu udostępnienie niezależnego od
+producenta, mającego otwarte źródła API, pozwalającego na operowanie
+na macierzach dyskowych. Biblioteka zawiera interfejs linii poleceń
+do użycia interaktywnego i w skryptach (polecenie lsmcli). Ma także
+demona, używanego przy uruchamianiu wtyczek w osobnym procesie (lsmd).
+
+%package -n bash-completion-libstoragemgmt
+Summary:       Bash completion for lsmcli command
+Summary(pl.UTF-8):     Bashowe uzupełnianie składni polecenia lsmcli
+Group:         Applications/Shells
+Requires:      %{name} = %{version}-%{release}
+Requires:      bash-completion >= 2.0
+
+%description -n bash-completion-libstoragemgmt
+Bash completion for lsmcli command.
+
+%description -n bash-completion-libstoragemgmt -l pl.UTF-8
+Bashowe uzupełnianie składni polecenia lsmcli.
+
+%package daemon
+Summary:       libStorageMgmt daemon
+Summary(pl.UTF-8):     Demon libStorageMgmt
+Group:         Daemons
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Requires(postun):      /usr/sbin/groupdel
+Requires(postun):      /usr/sbin/userdel
+Requires:      %{name} = %{version}-%{release}
+Requires:      python3-%{name} = %{version}-%{release}
+Requires:      systemd-units
+Provides:      group(libstoragemgmt)
+Provides:      user(libstoragemgmt)
+Obsoletes:     libstoragemgmt-netapp-plugin < 1.9.4
+Obsoletes:     libstoragemgmt-nstor-plugin < 1.9.4
+Obsoletes:     libstoragemgmt-udev < 1.9.4
+
+%description daemon
+libStorageMgmt daemon.
+
+%description daemon -l pl.UTF-8
+Demon libStorageMgmt.
+
+%package devel
+Summary:       Development files for libStorageMgmt
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki libStorageMgmt
+Group:         Libraries
+Requires:      %{name} = %{version}-%{release}
+
+%description devel
+This package contains header files for developing applications that
+use libStorageMgmt.
+
+%description devel -l pl.UTF-8
+Ten pakiet zawiera pliki nagłówkowe do tworzenia aplikacji
+wykorzystujących libStorageMgmt.
+
+%package -n python-%{name}
+Summary:       Python 2 client libraries and plug-in support for libStorageMgmt
+Summary(pl.UTF-8):     Biblioteki klienckie Pythona 2 oraz obsługa wtyczek libStorageMgmt
+Group:         Libraries/Python
+Requires:      %{name} = %{version}-%{release}
+Obsoletes:     python-libstoragemgmt-clibs < 1.9.4
+Obsoletes:     libstoragemgmt-python-clibs < 1.9
+
+%description -n python-%{name}
+This package contains Python client libraries as well as Python
+framework support and open source plug-ins written in Python.
+
+%description -n python-%{name} -l pl.UTF-8
+Ten pakiet zawiera biblioteki klienckie Pythona oraz obsługę
+szkieletu wraz z wtyczkami napisanymi w Pythonie.
+
+%package -n python3-%{name}
+Summary:       Python 3 client libraries and plug-in support for libStorageMgmt
+Summary(pl.UTF-8):     Biblioteki klienckie Pythona 3 oraz obsługa wtyczek libStorageMgmt
+Group:         Libraries/Python
+Requires:      %{name} = %{version}-%{release}
+Obsoletes:     python3-libstoragemgmt-clibs < 1.9.4
+
+%description -n python3-%{name}
+This package contains Python client libraries as well as Python
+framework support and open source plug-ins written in Python.
+
+%description -n python3-%{name} -l pl.UTF-8
+Ten pakiet zawiera biblioteki klienckie Pythona oraz obsługę
+szkieletu wraz z wtyczkami napisanymi w Pythonie.
+
+%package plugin-arcconf
+Summary:       Files for Microsemi Adaptec and Smart Family support for libStorageMgmt
+Summary(pl.UTF-8):     Pliki obsługi macierzy rodziny Microsemi Adaptec i Smart dla libStorageMgmt
+Group:         Libraries
+Requires:      %{name}-daemon = %{version}-%{release}
+Obsoletes:     libstoragemgmt-arcconf-plugin < 1.9.4
+BuildArch:     noarch
+
+%description plugin-arcconf
+This package contains the plugin for Microsemi Adaptec RAID and Smart
+Family Controller storage management.
+
+%description plugin-arcconf -l pl.UTF-8
+Ten pakiet zawiera wtyczkę do zarządzania macierzami rodziny Microsemi
+Adaptec RAID i Smart.
+
+%package plugin-hpsa
+Summary:       Files for HP SmartArray array support for libStorageMgmt
+Summary(pl.UTF-8):     Pliki obsługi macierzy HP SmartArray dla libStorageMgmt
+Group:         Libraries
+Requires:      %{name}-daemon = %{version}-%{release}
+Obsoletes:     libstoragemgmt-hpsa-plugin < 1.9.4
+BuildArch:     noarch
+
+%description plugin-hpsa
+This package contains the plugin for HP SmartArray storage management
+via hpssacli.
+
+%description plugin-hpsa -l pl.UTF-8
+Ten pakiet zawiera wtyczkę do zarządzania macierzami HP SmartArray
+poprzez hpssacli.
+
+%package plugin-local
+Summary:       Files for local pseudo plugin of libStorageMgmt
+Summary(pl.UTF-8):     Pliki lokalnej pseudo wtyczki dla libStorageMgmt
+Group:         Libraries
+Requires:      %{name}-daemon = %{version}-%{release}
+Obsoletes:     libstoragemgmt-local-plugin < 1.9.4
+BuildArch:     noarch
+
+%description plugin-local
+This is a plugin that provides auto plugin selection for locally
+managed storage.
+
+%description plugin-local -l pl.UTF-8
+Ten pakiet zawiera wtyczkę zapewniającą automatyczny wybór wtyczki dla
+lokalnie zarządzanej przestrzeni dyskowej.
+
+%package plugin-megaraid
+Summary:       Files for LSI MegaRAID array support for libStorageMgmt
+Summary(pl.UTF-8):     Pliki obsługi macierzy LSI MegaRAID dla libStorageMgmt
+Group:         Libraries
+Requires:      %{name}-daemon = %{version}-%{release}
+Obsoletes:     libstoragemgmt-megaraid-plugin < 1.9.4
+BuildArch:     noarch
+
+%description plugin-megaraid
+This package contains the plugin for LSI MegaRAID storage management
+via storcli.
+
+%description plugin-megaraid -l pl.UTF-8
+Ten pakiet zawiera wtyczkę do zarządzania macierzami LSI MegaRAID
+poprzez storcli.
+
+%package plugin-nfs
+Summary:       Files for NFS local filesystem support for libStorageMgmt
+Summary(pl.UTF-8):     Pliki do lokalnej obsługi systemu plików NFS dla libStorageMgmt
+Group:         Libraries
+Requires:      %{name}-daemon = %{version}-%{release}
+Requires:      nfs-utils
+Obsoletes:     libstoragemgmt-nfs-plugin < 1.9.4
+Obsoletes:     libstoragemgmt-nfs-plugin-clibs < 1.9.4
+
+%description plugin-nfs
+This package contains plug-in for local NFS exports support.
+
+%description plugin-nfs -l pl.UTF-8
+Ten pakiet zawiera wtyczkę do obsługi lokalnego eksportowania NFS-a.
+
+%package plugin-smis
+Summary:       Files for SMI-S generic array support for libStorageMgmt
+Summary(pl.UTF-8):     Pliki ogólnej obsługi macierzy SMI-S dla libStorageMgmt
+Group:         Libraries
+Requires:      %{name}-daemon = %{version}-%{release}
+Requires:      python3-pywbem
+Obsoletes:     libstoragemgmt-smis-plugin < 1.9.4
+BuildArch:     noarch
+
+%description plugin-smis
+This package contains plug-in for generic SMI-S array support.
+
+%description plugin-smis -l pl.UTF-8
+Ten pakiet zawiera wtyczkę do ogólnej obsługi macierzy SMI-S.
+
+%package plugin-targetd
+Summary:       Files for targetd array support for libStorageMgmt
+Summary(pl.UTF-8):     Pliki obsługi macierzy targetd dla libStorageMgmt
+Group:         Libraries
+Requires:      %{name}-daemon = %{version}-%{release}
+Obsoletes:     libstoragemgmt-targetd-plugin < 1.9.4
+BuildArch:     noarch
+
+%description plugin-targetd
+This package contains plug-in for targetd array support.
+
+%description plugin-targetd -l pl.UTF-8
+Ten pakiet zawiera wtyczkę do obsługi macierzy targetd.
+
+%prep
+%setup -q
+
+%{__sed} -i -e '1s,/usr/bin/env python@PY_VERSION@,%{__python3},' \
+       tools/basic_check/local_check.py.in \
+       tools/lsmcli/lsmcli.in \
+       tools/use_cases/find_unused_lun.py.in \
+       plugin/*_plugin/*_lsmplugin.in
+
+%build
+install -d build
+cd build
+../%configure \
+       --with-bash-completion-dir=%{bash_compdir} \
+       --with-python3 \
+       --disable-silent-rules \
+       --disable-static \
+
+%{__make}
+cd ..
+
+%if %{with python2}
+install -d build-py2
+cd build-py2
+../%configure \
+       --with-bash-completion-dir=%{bash_compdir} \
+       --with-python2 \
+       --disable-silent-rules \
+       --disable-static \
+
+%{__make}
+cd ..
+%endif
+
+%if %{with tests}
+if ! make -C build check
+then
+       cat test-suite.log || true
+       exit 1
+fi
+
+%if %{with python2}
+if ! make -C build-py2 check
+then
+       cat test-suite.log || true
+       exit 1
+fi
+%endif
+%endif
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%if %{with python2}
+%{__make} -C build-py2 install \
+       DESTDIR=$RPM_BUILD_ROOT
+
+%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/{lsm,nfs_plugin}/*.la
+%{__rm} -r $RPM_BUILD_ROOT%{py_sitedir}/*_plugin
+
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/lsmcli
+%endif
+
+%{__make} -C build install \
+       DESTDIR=$RPM_BUILD_ROOT
+
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libstoragemgmt.la
+%{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/{lsm,nfs_plugin}/*.la
+
+# Files for udev handling
+install -d $RPM_BUILD_ROOT/lib/udev/rules.d
+cp -p tools/udev/90-scsi-ua.rules $RPM_BUILD_ROOT/lib/udev/rules.d/90-scsi-ua.rules
+install build/tools/udev/scan-scsi-target $RPM_BUILD_ROOT/lib/udev/scan-scsi-target
+
+install -d $RPM_BUILD_ROOT/var/run/lsm/ipc
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post  -p /sbin/ldconfig
+%postun        -p /sbin/ldconfig
+
+%pre daemon
+%groupadd -g 345 libstoragemgmt
+%useradd -u 345 -d /var/run/lsm -s /bin/false -c "libstoragemgmt daemon" -g libstoragemgmt libstoragemgmt
+
+%post daemon
+%systemd_post %{name}.service
+
+%preun daemon
+%systemd_preun %{name}.service
+
+%postun daemon
+%systemd_postun %{name}.service
+if [ "$1" = "0" ]; then
+       %userremove libstoragemgmt
+       %groupremove libstoragemgmt
+fi
+
+# Need to restart lsmd if plugin is new installed or removed.
+%post plugin-arcconf
+if [ $1 -eq 1 ]; then
+       %systemd_service_restart %{name}.service
+fi
+
+%postun plugin-arcconf
+if [ $1 -eq 0 ]; then
+       %systemd_service_restart %{name}.service
+fi
+
+# Need to restart lsmd if plugin is new installed or removed.
+%post plugin-hpsa
+if [ $1 -eq 1 ]; then
+       %systemd_service_restart %{name}.service
+fi
+
+%postun plugin-hpsa
+if [ $1 -eq 0 ]; then
+       %systemd_service_restart %{name}.service
+fi
+
+# Need to restart lsmd if plugin is new installed or removed.
+%post plugin-local
+if [ $1 -eq 1 ]; then
+       %systemd_service_restart %{name}.service
+fi
+
+%postun plugin-local
+if [ $1 -eq 0 ]; then
+       %systemd_service_restart %{name}.service
+fi
+
+# Need to restart lsmd if plugin is new installed or removed.
+%post plugin-megaraid
+if [ $1 -eq 1 ]; then
+       %systemd_service_restart %{name}.service
+fi
+
+%postun plugin-megaraid
+if [ $1 -eq 0 ]; then
+       %systemd_service_restart %{name}.service
+fi
+
+# Need to restart lsmd if plugin is new installed or removed.
+%post plugin-nfs
+if [ $1 -eq 1 ]; then
+       %systemd_service_restart %{name}.service
+fi
+
+%postun plugin-nfs
+if [ $1 -eq 0 ]; then
+       %systemd_service_restart %{name}.service
+fi
+
+# Need to restart lsmd if plugin is new installed or removed.
+%post plugin-smis
+if [ $1 -eq 1 ]; then
+       %systemd_service_restart %{name}.service
+fi
+
+%postun plugin-smis
+if [ $1 -eq 0 ]; then
+       %systemd_service_restart %{name}.service
+fi
+
+# Need to restart lsmd if plugin is new installed or removed.
+%post plugin-targetd
+if [ $1 -eq 1 ]; then
+       %systemd_service_restart %{name}.service
+fi
+
+%postun plugin-targetd
+if [ $1 -eq 0 ]; then
+       %systemd_service_restart %{name}.service
+fi
+
+%files
+%defattr(644,root,root,755)
+%doc AUTHORS NEWS README
+%attr(755,root,root) %{_bindir}/lsmcli
+%attr(755,root,root) %{_libdir}/libstoragemgmt.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libstoragemgmt.so.1
+%{_mandir}/man1/lsmcli.1*
+
+%files -n bash-completion-libstoragemgmt
+%defattr(644,root,root,755)
+%{bash_compdir}/lsmcli
+
+%files daemon
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/lsmd
+%attr(755,root,root) %{_bindir}/simc_lsmplugin
+%attr(755,root,root) /lib/udev/scan-scsi-target
+/lib/udev/rules.d/90-scsi-ua.rules
+%dir %{_sysconfdir}/lsm
+%dir %{_sysconfdir}/lsm/pluginconf.d
+%config(noreplace) %{_sysconfdir}/lsm/lsmd.conf
+%{_mandir}/man1/lsmd.1*
+%{_mandir}/man1/simc_lsmplugin.1*
+%{_mandir}/man5/lsmd.conf.5*
+%{systemdunitdir}/%{name}.service
+%{systemdtmpfilesdir}/%{name}.conf
+%attr(775,root,libstoragemgmt) %dir /var/run/lsm
+%attr(775,root,libstoragemgmt) %dir /var/run/lsm/ipc
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libstoragemgmt.so
+%{_includedir}/libstoragemgmt
+%{_pkgconfigdir}/libstoragemgmt.pc
+%{_mandir}/man3/lsm_*.3*
+%{_mandir}/man3/libstoragemgmt.h.3*
+
+%if %{with python2}
+%files -n python-%{name}
+%defattr(644,root,root,755)
+%dir %{py_sitedir}/lsm
+%attr(755,root,root) %{py_sitedir}/lsm/_clib.so
+%{py_sitedir}/lsm/*.py[co]
+%{py_sitedir}/lsm/lsmcli
+%endif
+
+%files -n python3-%{name}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/sim_lsmplugin
+%dir %{py3_sitedir}/lsm
+%attr(755,root,root) %{py3_sitedir}/lsm/_clib.so
+%{py3_sitedir}/lsm/*.py
+%{py3_sitedir}/lsm/__pycache__
+%{py3_sitedir}/lsm/lsmcli
+%{py3_sitedir}/sim_plugin
+%dir %{_libexecdir}/lsm.d
+%{_libexecdir}/lsm.d/find_unused_lun.py*
+%{_libexecdir}/lsm.d/local_check.py*
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lsm/pluginconf.d/sim.conf
+%{_mandir}/man1/sim_lsmplugin.1*
+
+%files plugin-arcconf
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/arcconf_lsmplugin
+%{py3_sitedir}/arcconf_plugin
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lsm/pluginconf.d/arcconf.conf
+%{_mandir}/man1/arcconf_lsmplugin.1*
+
+%files plugin-hpsa
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/hpsa_lsmplugin
+%{py3_sitedir}/hpsa_plugin
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lsm/pluginconf.d/hpsa.conf
+%{_mandir}/man1/hpsa_lsmplugin.1*
+
+%files plugin-local
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/local_lsmplugin
+%{py3_sitedir}/local_plugin
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lsm/pluginconf.d/local.conf
+%{_mandir}/man1/local_lsmplugin.1*
+
+%files plugin-megaraid
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/megaraid_lsmplugin
+%{py3_sitedir}/megaraid_plugin
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lsm/pluginconf.d/megaraid.conf
+%{_mandir}/man1/megaraid_lsmplugin.1*
+
+%files plugin-nfs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/nfs_lsmplugin
+%dir %{py3_sitedir}/nfs_plugin
+%attr(755,root,root) %{py3_sitedir}/nfs_plugin/nfs_clib.so
+%{py3_sitedir}/nfs_plugin/*.py
+%{py3_sitedir}/nfs_plugin/__pycache__
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lsm/pluginconf.d/nfs.conf
+%{_mandir}/man1/nfs_lsmplugin.1*
+
+%files plugin-smis
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/smispy_lsmplugin
+%{py3_sitedir}/smispy_plugin
+%{_mandir}/man1/smispy_lsmplugin.1*
+
+%files plugin-targetd
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/targetd_lsmplugin
+%{py3_sitedir}/targetd_plugin
+%{_mandir}/man1/targetd_lsmplugin.1*
This page took 0.191864 seconds and 4 git commands to generate.