diff --git a/python-rtslib.spec b/python-rtslib.spec new file mode 100644 index 0000000000000000000000000000000000000000..76c0caff34aa8d5b11e3d1ad922ca0733c2a9e3a --- /dev/null +++ b/python-rtslib.spec @@ -0,0 +1,166 @@ +%bcond_without python2 +%bcond_with python3 + +%global oname rtslib-fb + +Name: python-rtslib +Version: 2.1.70 +Release: 2 +Summary: Python object API for Linux kernel LIO SCSI target + +License: ASL 2.0 +URL: https://github.com/open-iscsi/%{oname} +Source0: %{url}/archive/v%{version}/%{oname}-%{version}.tar.gz +Source1: target.service + +BuildArch: noarch +BuildRequires: epydoc, systemd-units +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd + +Provides: python-rtslib-doc +Obsoletes: python-rtslib-doc + +%description +%{name} is a python object API for generic Linux SCSI kernel target +which includes the 'target' service and targetctl tool for restoring +configuration. + +%if %{with python2} +%package -n python2-rtslib +Summary: Python2 object API for Linux kernel LIO SCSI target +BuildRequires: python2-devel, python2-setuptools +Requires: python2-kmod, python2-six, python2-pyudev +%{?python_provide:%python_provide python2-rtslib} + +%description -n python2-rtslib +python2-rtslib is a python object API for generic Linux SCSI kernel +target which includes the 'target' service and targetctl tool for +restoring configuration. +%endif + +%if %{with python3} +%package -n python3-rtslib +Summary: Python3 object API for Linux kernel LIO SCSI target +BuildRequires: python3-devel, python3-setuptools +Requires: python3-kmod, python3-six, python3-pyudev +%{?python_provide:%python_provide python3-rtslib} + +%description -n python3-rtslib +python3-rtslib is a python object API for generic Linux SCSI kernel +target which includes the 'target' service and targetctl tool for +restoring configuration. +%endif + +%package -n target-restore +Summary: Systemd service for targetcli/rtslib +%if %{with python3} +Requires: python3-rtslib = %{version}-%{release} +%else +Requires: python2-rtslib = %{version}-%{release} +%endif + +%description -n target-restore +Systemd service to restore the LIO kernel target settings on system +restart. + +%package_help + +%prep +%autosetup -n %{oname}-%{version} -p1 + +%if %{with python3} +rm -rf %{py3dir} +cp -a . %{py3dir} +%endif + +%build +%if %{with python2} +%py2_build +mkdir -p doc/html +epydoc --no-sourcecode --html -n rtslib -o doc/html rtslib/*.py +%endif + +gzip --stdout doc/targetctl.8 > doc/targetctl.8.gz +gzip --stdout doc/saveconfig.json.5 > doc/saveconfig.json.5.gz + +%if 0%{?with_python3} +pushd %{py3dir} +%py3_build +popd +%endif + +%install +%if %{with python3} +pushd %{py3dir} +%py3_install +popd +%if %{with python2} +%{__python2} setup.py install --skip-build --root %{buildroot} --install-scripts py2scripts +rm -rf %{buildroot}/py2scripts +%endif +%else +%if %{with python2} +%py2_install +%endif +%endif + +mkdir -p %{buildroot}%{_mandir}/man8/ +mkdir -p %{buildroot}%{_mandir}/man5/ +mkdir -p %{buildroot}%{_unitdir} +mkdir -p %{buildroot}%{_sysconfdir}/target/backup +mkdir -p %{buildroot}%{_localstatedir}/target/pr +mkdir -p %{buildroot}%{_localstatedir}/target/alua +install -m 644 %{SOURCE1} %{buildroot}%{_unitdir}/target.service +install -m 644 doc/targetctl.8.gz %{buildroot}%{_mandir}/man8/ +install -m 644 doc/saveconfig.json.5.gz %{buildroot}%{_mandir}/man5/ + +%post -n target-restore +%systemd_post target.service + +%preun -n target-restore +%systemd_preun target.service + +%postun -n target-restore +%systemd_postun_with_restart target.service + +%if %{with python2} +%files -n python2-rtslib +%defattr(-,root,root) +%license COPYING +%{python2_sitelib}/* +%endif + +%if %{with python3} +%files -n python3-rtslib +%defattr(-,root,root) +%license COPYING +%{python3_sitelib}/* +%endif + +%files -n target-restore +%defattr(-,root,root) +%{_bindir}/targetctl +%{_unitdir}/target.service +%dir %{_sysconfdir}/target +%dir %{_sysconfdir}/target/backup +%dir %{_localstatedir}/target +%dir %{_localstatedir}/target/pr +%dir %{_localstatedir}/target/alua + +%files help +%defattr(-,root,root) +%if %{with python2} +%doc doc/html +%endif +%doc README.md doc/getting_started.md +%{_mandir}/man8/targetctl.8.gz +%{_mandir}/man5/saveconfig.json.5.gz + +%changelog +* Wed 1 1 2020 openEuler Buildteam - 2.1.70-2 +- Strenthen spec + +* Wed Sep 18 2019 openEuler Buildteam - 2.1.70-1 +- Package init diff --git a/rtslib-fb-2.1.70.tar.gz b/rtslib-fb-2.1.70.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b49f91a2082e09b530ec54a144a428b99f3dbcb2 Binary files /dev/null and b/rtslib-fb-2.1.70.tar.gz differ diff --git a/target.service b/target.service new file mode 100644 index 0000000000000000000000000000000000000000..aa0a51b67442f560ba92fc5a19d5ff5d4ff9dc71 --- /dev/null +++ b/target.service @@ -0,0 +1,15 @@ +[Unit] +Description=Restore LIO kernel target configuration +Requires=sys-kernel-config.mount +After=sys-kernel-config.mount network.target local-fs.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/targetctl restore +ExecStop=/usr/bin/targetctl clear +SyslogIdentifier=target + +[Install] +WantedBy=multi-user.target +