505 lines
15 KiB
RPMSpec
505 lines
15 KiB
RPMSpec
%bcond_without rest_api
|
|
%bcond_without ibm_v7k
|
|
|
|
%if 0%{?rhel} <= 6
|
|
%global with_rest_api 0
|
|
# RHEL 6 does not have libmicrohttpd in main repo, but in EPEL repo
|
|
# Hence we disable REST API daemon compiling.
|
|
# If EPEL6 is enabled, please use:
|
|
# rpmbuild -ba libstoragemgmt.spec --with rest_api
|
|
%endif
|
|
|
|
%if 0%{?rhel} >= 7
|
|
%global with_ibm_v7k 0
|
|
%endif
|
|
|
|
%{?_with_rest_api:
|
|
%global with_rest_api 1
|
|
}
|
|
%{?_without_rest_api:
|
|
%global with_rest_api 0
|
|
}
|
|
%{?_with_ibm_v7k:
|
|
%global with_ibm_v7k 1
|
|
}
|
|
%{?_without_ibm_v7k:
|
|
%global with_ibm_v7k 0
|
|
}
|
|
|
|
Name: libstoragemgmt
|
|
Version: 0.1.0
|
|
Release: 2%{?dist}
|
|
Summary: Storage array management library
|
|
Group: System Environment/Libraries
|
|
License: LGPLv2+
|
|
URL: http://sourceforge.net/projects/libstoragemgmt/
|
|
Source0: http://sourceforge.net/projects/libstoragemgmt/files/libstoragemgmt-%{version}.tar.gz
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|
Requires: %{name}-python
|
|
BuildRequires: autoconf automake libtool yajl-devel libxml2-devel check-devel openssl-devel
|
|
BuildRequires: glib2-devel
|
|
# Explicitly require gcc-c++
|
|
BuildRequires: gcc-c++
|
|
Requires: %{name}-python
|
|
|
|
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
|
|
BuildRequires: systemd-units
|
|
Requires: initscripts
|
|
Requires(post): systemd-units
|
|
Requires(preun): systemd-units
|
|
Requires(postun): systemd-units
|
|
%endif
|
|
|
|
%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: Development files for %{name}
|
|
Group: Development/Libraries
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
%description devel
|
|
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}
|
|
Group: System Environment/Libraries
|
|
Requires: %{name} = %{version}-%{release}
|
|
BuildArch: noarch
|
|
|
|
%description python
|
|
The %{name}-python package contains python client libraries as
|
|
well as python framework support and open source plug-ins written in python.
|
|
|
|
|
|
%package smis-plugin
|
|
Summary: Files for SMI-S generic array support for %{name}
|
|
Group: System Environment/Libraries
|
|
BuildRequires: pywbem
|
|
Requires: pywbem %{name}-python
|
|
Requires: libstoragemgmt-python = %{version}-%{release}
|
|
BuildArch: noarch
|
|
|
|
%description smis-plugin
|
|
The %{name}-smis-plugin package contains plug-in for generic SMI-S array
|
|
support.
|
|
|
|
|
|
%package netapp-plugin
|
|
Summary: Files for NetApp array support for %{name}
|
|
Group: System Environment/Libraries
|
|
BuildRequires: m2crypto
|
|
Requires: m2crypto %{name}-python
|
|
Requires: libstoragemgmt-python = %{version}-%{release}
|
|
BuildArch: noarch
|
|
|
|
%description netapp-plugin
|
|
The %{name}-netapp-plugin package contains plug-in for NetApp array
|
|
support.
|
|
|
|
|
|
%package targetd-plugin
|
|
Summary: Files for targetd array support for %{name}
|
|
Group: System Environment/Libraries
|
|
Requires: %{name}-python
|
|
Requires: libstoragemgmt-python = %{version}-%{release}
|
|
BuildArch: noarch
|
|
|
|
%description targetd-plugin
|
|
The %{name}-targetd-plugin package contains plug-in for targetd array
|
|
support.
|
|
|
|
|
|
%if 0%{?with_ibm_v7k}
|
|
%package ibm-v7k-plugin
|
|
Summary: Files for IBM v7k array support for %{name}
|
|
Group: System Environment/Libraries
|
|
Requires: python-paramiko %{name}-python
|
|
Requires: libstoragemgmt-python = %{version}-%{release}
|
|
BuildRequires: python-paramiko
|
|
BuildArch: noarch
|
|
|
|
%description ibm-v7k-plugin
|
|
The %{name}-ibm-v7k-plugin package contains plug-in for IBM v7k array
|
|
support.
|
|
%endif
|
|
|
|
|
|
%package nstor-plugin
|
|
Summary: Files for NexentaStor array support for %{name}
|
|
Group: System Environment/Libraries
|
|
Requires: %{name}-python
|
|
Requires: libstoragemgmt-python = %{version}-%{release}
|
|
BuildArch: noarch
|
|
|
|
%description nstor-plugin
|
|
The %{name}-nstor-plugin package contains plug-in for NexentaStor array
|
|
support.
|
|
|
|
%package udev
|
|
Summary: udev files for %{name}
|
|
Group: System Environment/Base
|
|
|
|
%description udev
|
|
The %{name}-udev package contains udev rules and helper utilities for
|
|
uevents generated by the kernel.
|
|
|
|
%if 0%{?with_rest_api}
|
|
%package rest
|
|
Summary: REST API daemon for %{name}
|
|
Group: System Environment/Daemons
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
Requires: libmicrohttpd json-c
|
|
BuildRequires: libmicrohttpd-devel json-c-devel
|
|
|
|
%description rest
|
|
the %{name}-rest package contains the http daemon for %{name} rest api.
|
|
%endif
|
|
|
|
%prep
|
|
%setup -q
|
|
|
|
%build
|
|
./autogen.sh
|
|
|
|
#Tell the install program to preserve file date/timestamps
|
|
%configure \
|
|
%if 0%{?with_ibm_v7k} != 1
|
|
--without-paramiko \
|
|
%endif
|
|
%if 0%{?with_rest_api} != 1
|
|
--without-rest-api \
|
|
%endif
|
|
--disable-static
|
|
|
|
V=1 make %{?_smp_mflags}
|
|
|
|
%install
|
|
rm -rf %{buildroot}
|
|
make install DESTDIR=%{buildroot}
|
|
find %{buildroot} -name '*.la' -exec rm -f {} ';'
|
|
|
|
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
|
|
install -d -m755 %{buildroot}/%{_unitdir}
|
|
install -m644 packaging/daemon/libstoragemgmt.service \
|
|
%{buildroot}/%{_unitdir}/libstoragemgmt.service
|
|
|
|
#tempfiles.d configuration for /var/run
|
|
mkdir -p %{buildroot}%{_sysconfdir}/tmpfiles.d
|
|
install -m 0644 packaging/daemon/lsm-tmpfiles.conf \
|
|
%{buildroot}%{_sysconfdir}/tmpfiles.d/%{name}.conf
|
|
%else
|
|
#Need these to exist at install so we can start the daemon
|
|
mkdir -p %{buildroot}/etc/rc.d/init.d
|
|
install packaging/daemon/libstoragemgmtd \
|
|
%{buildroot}/etc/rc.d/init.d/libstoragemgmtd
|
|
%endif
|
|
|
|
#Need these to exist at install so we can start the daemon
|
|
mkdir -p %{buildroot}%{_localstatedir}/run/lsm/ipc
|
|
|
|
mkdir -p %{buildroot}/lib/udev/rules.d
|
|
install -m 644 tools/udev/90-scsi-ua.rules \
|
|
%{buildroot}/lib/udev/rules.d/90-scsi-ua.rules
|
|
install -m 755 tools/udev/scan-scsi-target \
|
|
%{buildroot}/lib/udev/scan-scsi-target
|
|
|
|
%clean
|
|
rm -rf %{buildroot}
|
|
|
|
%check
|
|
make check
|
|
|
|
%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
|
|
if [ $1 -eq 1 ]; then
|
|
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
|
|
/bin/systemctl enable libstoragemgmt.service >/dev/null 2>&1 || :
|
|
%else
|
|
/sbin/chkconfig --add libstoragemgmtd
|
|
%endif
|
|
fi
|
|
|
|
%if 0%{?with_rest_api}
|
|
%preun rest
|
|
if [ $1 -eq 0 ]; then
|
|
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
|
|
# On uninstall (not upgrade), disable and stop the units
|
|
/bin/systemctl --no-reload disable \
|
|
libstoragemgmt-rest.service >/dev/null 2>&1 || :
|
|
/bin/systemctl stop libstoragemgmt-rest.service >/dev/null 2>&1 || :
|
|
%endif
|
|
fi
|
|
|
|
%postun rest
|
|
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
|
|
if [ $1 -ge 1 ] ; then
|
|
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
|
|
# On upgrade (not uninstall), optionally, restart the daemon
|
|
/bin/systemctl try-restart libstoragemgmt-rest.service >/dev/null 2>&1 || :
|
|
%endif
|
|
fi
|
|
%endif
|
|
|
|
%preun
|
|
if [ $1 -eq 0 ]; then
|
|
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
|
|
# On uninstall (not upgrade), disable and stop the units
|
|
/bin/systemctl --no-reload disable libstoragemgmt.service >/dev/null 2>&1 || :
|
|
/bin/systemctl stop libstoragemgmt.service >/dev/null 2>&1 || :
|
|
%else
|
|
/etc/rc.d/init.d/libstoragemgmtd stop > /dev/null 2>&1 || :
|
|
/sbin/chkconfig --del libstoragemgmtd
|
|
%endif
|
|
fi
|
|
|
|
%postun
|
|
/sbin/ldconfig
|
|
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
|
|
if [ $1 -ge 1 ] ; then
|
|
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
|
|
# On upgrade (not uninstall), optionally, restart the daemon
|
|
/bin/systemctl try-restart libstoragemgmt.service >/dev/null 2>&1 || :
|
|
%else
|
|
#Restart the daemond
|
|
/etc/rc.d/init.d/libstoragemgmtd restart >/dev/null 2>&1 || :
|
|
%endif
|
|
fi
|
|
|
|
%files
|
|
%defattr(-,root,root,-)
|
|
%doc README COPYING.LIB
|
|
%{_mandir}/man1/lsmcli.1*
|
|
%{_mandir}/man1/lsmd.1*
|
|
%{_libdir}/*.so.*
|
|
%{_bindir}/lsmcli
|
|
%{_bindir}/lsmd
|
|
%{_bindir}/simc_lsmplugin
|
|
%{python_sitelib}/lsm/lsmcli/__init__.*
|
|
%{python_sitelib}/lsm/lsmcli/data_display.*
|
|
%{python_sitelib}/lsm/lsmcli/cmdline.*
|
|
|
|
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
|
|
%{_unitdir}/*
|
|
%endif
|
|
|
|
%dir %attr(0755, libstoragemgmt, libstoragemgmt) %{_localstatedir}/run/lsm/
|
|
%dir %attr(0755, libstoragemgmt, libstoragemgmt) %{_localstatedir}/run/lsm/ipc
|
|
|
|
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
|
|
%attr(0644, root, root) %{_sysconfdir}/tmpfiles.d/%{name}.conf
|
|
%else
|
|
%attr(0755, root, root) /etc/rc.d/init.d/libstoragemgmtd
|
|
%endif
|
|
|
|
%files devel
|
|
%defattr(-,root,root,-)
|
|
%{_includedir}/*
|
|
%{_libdir}/*.so
|
|
%{_libdir}/pkgconfig/libstoragemgmt.pc
|
|
|
|
%files python
|
|
%defattr(-,root,root,-)
|
|
#Python library files
|
|
%{python_sitelib}/lsm/__init__.*
|
|
%{python_sitelib}/lsm/external/*
|
|
%{python_sitelib}/lsm/_client.*
|
|
%{python_sitelib}/lsm/_common.*
|
|
%{python_sitelib}/lsm/_data.*
|
|
%{python_sitelib}/lsm/_iplugin.*
|
|
%{python_sitelib}/lsm/_pluginrunner.*
|
|
%{python_sitelib}/lsm/_transport.*
|
|
%{python_sitelib}/lsm/version.*
|
|
%{python_sitelib}/lsm/plugin/__init__.*
|
|
%{python_sitelib}/lsm/plugin/sim/__init__.*
|
|
%{python_sitelib}/lsm/plugin/sim/simulator.*
|
|
%{python_sitelib}/lsm/plugin/sim/simarray.*
|
|
%{_bindir}/sim_lsmplugin
|
|
|
|
%files smis-plugin
|
|
%defattr(-,root,root,-)
|
|
%{python_sitelib}/lsm/plugin/smispy/__init__.*
|
|
%{python_sitelib}/lsm/plugin/smispy/eseries.*
|
|
%{python_sitelib}/lsm/plugin/smispy/smis.*
|
|
%{python_sitelib}/lsm/plugin/smispy/smisproxy.*
|
|
%{_bindir}/smispy_lsmplugin
|
|
|
|
%files netapp-plugin
|
|
%defattr(-,root,root,-)
|
|
%{python_sitelib}/lsm/plugin/ontap/__init__.*
|
|
%{python_sitelib}/lsm/plugin/ontap/na.*
|
|
%{python_sitelib}/lsm/plugin/ontap/ontap.*
|
|
%{_bindir}/ontap_lsmplugin
|
|
|
|
%files targetd-plugin
|
|
%defattr(-,root,root,-)
|
|
%{python_sitelib}/lsm/plugin/targetd/__init__.*
|
|
%{python_sitelib}/lsm/plugin/targetd/targetd.*
|
|
%{_bindir}/targetd_lsmplugin
|
|
|
|
|
|
%if 0%{?with_ibm_v7k}
|
|
%files ibm-v7k-plugin
|
|
%defattr(-,root,root,-)
|
|
%{python_sitelib}/lsm/plugin/v7k/__init__.*
|
|
%{python_sitelib}/lsm/plugin/v7k/ibmv7k.*
|
|
%{_bindir}/v7k_lsmplugin
|
|
%endif
|
|
|
|
%files nstor-plugin
|
|
%defattr(-,root,root,-)
|
|
%{python_sitelib}/lsm/plugin/nstor/__init__.*
|
|
%{python_sitelib}/lsm/plugin/nstor/nstor.*
|
|
%{_bindir}/nstor_lsmplugin
|
|
|
|
%files udev
|
|
%defattr(-,root,root,-)
|
|
/lib/udev/scan-scsi-target
|
|
/lib/udev/rules.d/90-scsi-ua.rules
|
|
|
|
%if 0%{?with_rest_api}
|
|
%files rest
|
|
%defattr(-,root,root,-)
|
|
%{_bindir}/lsm_restd
|
|
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
|
|
%{_unitdir}/libstoragemgmt-rest.service
|
|
%endif
|
|
%endif
|
|
|
|
%changelog
|
|
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.0-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
|
|
|
* Thu Jul 3 2014 Tony Asleson <tasleson@redhat.com> - 0.1.0-1
|
|
- New upstream release
|
|
|
|
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.0.24-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
|
|
|
* Thu Jan 30 2014 Tony Asleson <tasleson@redhat.com> 0.0.24-1
|
|
- New upstream release
|
|
|
|
* Wed Nov 27 2013 Tony Asleson <tasleson@redhat.com> 0.0.23-1
|
|
- New upstream release
|
|
|
|
* Mon Aug 12 2013 Tony Asleson <tasleson@redhat.com> 0.0.22-1
|
|
- New upstream release
|
|
|
|
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.0.21-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
|
|
|
* Tue Jul 16 2013 Tony Asleson <tasleson@redhat.com> 0.0.21-1
|
|
- New upstream release
|
|
- Put plug-ins in separate sub packages
|
|
- Don't include IBM plug-in on RHEL > 6, missing paramiko
|
|
|
|
* Tue May 28 2013 Tony Asleson <tasleson@redhat.com> - 0.0.20-1
|
|
- New upstream release
|
|
- Separate package for python libraries
|
|
- Make timestamps match on version.py in library
|
|
- Add python-paramiko requirement for IBM plug-in
|
|
|
|
* Mon Apr 22 2013 Tony Asleson <tasleson@redhat.com> - 0.0.19-1
|
|
- New upstream release
|
|
|
|
* Fri Mar 8 2013 Tony Asleson <tasleson@redhat.com> - 0.0.18-1
|
|
- New upstream release
|
|
|
|
* Thu Jan 31 2013 Tony Asleson <tasleson@redhat.com> - 0.0.17-1
|
|
- New upstream release
|
|
|
|
* Wed Jan 2 2013 Tony Asleson <tasleson@redhat.com> - 0.0.16-1
|
|
- New upstream release
|
|
|
|
* Tue Nov 27 2012 Tony Asleson <tasleson@redhat.com> - 0.0.15-1
|
|
- New upstream release
|
|
|
|
* Wed Oct 3 2012 Tony Asleson <tasleson@redhat.com> - 0.0.13-1
|
|
- New upstream release
|
|
|
|
* Tue Sep 18 2012 Tony Asleson <tasleson@redhat.com> - 0.0.12-1
|
|
- New upstream release
|
|
|
|
* Mon Aug 13 2012 Tony Asleson <tasleson@redhat.com> 0.0.11-1
|
|
- New upstream release
|
|
|
|
* Fri Jul 27 2012 Dan Horák <dan[at]danny.cz> - 0.0.9-3
|
|
- detect also non-x86 arches in Pegasus check
|
|
|
|
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.0.9-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
|
|
|
* Tue Jun 12 2012 Tony Asleson <tasleson@redhat.com> 0.0.9-1
|
|
- Initial checkin of lio plug-in
|
|
- System filtering via URI (smispy)
|
|
- Error code mapping (ontap)
|
|
- Fixed build so same build tarball is used for all binaries
|
|
|
|
* Mon Jun 4 2012 Tony Asleson <tasleson@redhat.com> 0.0.8-1
|
|
- Make building of SMI-S CPP plugin optional
|
|
- Add pkg-config file
|
|
- SMIS: Fix exception while retrieving Volumes
|
|
- SMIS: Fix exception while retrieving Volumes
|
|
- lsm: Add package imports
|
|
- Make Smis class available in lsm python package
|
|
- Add option to disable building C unit test
|
|
- Make simulator classes available in lsm python package
|
|
- Make ontap class available in lsm python package
|
|
- Changes to support building on Fedora 17 (v2)
|
|
- Spec. file updates from feedback from T. Callaway (spot)
|
|
- F17 linker symbol visibility correction
|
|
- Remove unneeded build dependencies and cleaned up some warnings
|
|
- C Updates, client C library feature parity with python
|
|
|
|
* Fri May 11 2012 Tony Asleson <tasleson@redhat.com> 0.0.7-1
|
|
- Bug fix for smi-s constants
|
|
- Display formatting improvements
|
|
- Added header option for lsmcli
|
|
- Improved version handling for builds
|
|
- Made terminology consistent
|
|
- Ability to list visibility for access groups and volumes
|
|
- Simulator plug-in fully supports all block operations
|
|
- Added support for multiple systems with a single plug-in instance
|
|
|
|
* Fri Apr 20 2012 Tony Asleson <tasleson@redhat.com> 0.0.6-1
|
|
- Documentation improvements (man & source code)
|
|
- Support for access groups
|
|
- Unified spec files Fedora/RHEL
|
|
- Package version auto generate
|
|
- Rpm target added to make
|
|
- Bug fix for missing optional property on volume retrieval (smispy plug-in)
|
|
|
|
* Fri Apr 6 2012 Tony Asleson <tasleson@redhat.com> 0.0.5-1
|
|
- Spec file clean-up improvements
|
|
- Async. operation added to lsmcli and ability to check on job status
|
|
- Sub volume replication support
|
|
- Ability to check for child dependencies on VOLUMES, FS and files
|
|
- SMI-S Bug fixes and improvements
|
|
|
|
* Mon Mar 26 2012 Tony Asleson <tasleson@redhat.com> 0.0.4-1
|
|
- Restore from snapshot
|
|
- Job identifiers string instead of integer
|
|
- Updated license address
|
|
|
|
* Wed Mar 14 2012 Tony Asleson <tasleson@redhat.com> 0.0.3-1
|
|
- Changes to installer, daemon uid, gid, /var/run/lsm/*
|
|
- NFS improvements and bug fixes
|
|
- Python library clean up (rpmlint errors)
|
|
|
|
* Sun Mar 11 2012 Tony Asleson <tasleson@redhat.com> 0.0.2-1
|
|
- Added NetApp native plugin
|
|
|
|
* Mon Feb 6 2012 Tony Asleson <tasleson@redhat.com> 0.0.1alpha-1
|
|
- Initial version of package
|