%define base_name  targetd
Name:           %{base_name}-bunsen
License:        GPLv3
Summary:        Service to make storage remotely configurable

# Version with a fourth component to handle VDO-team specific versioning based on where we started
Version:        0.8.11.1
Release:        3%{?dist}
URL:            https://github.com/open-iscsi/targetd

# Using an alternative source due to the fact that it has been modified and not submitted upstream yet.
Source0:        https://github.com/dm-vdo/targetd/archive/refs/heads/main.tar.gz
BuildArch:      noarch
BuildRequires:  systemd-rpm-macros
BuildRequires:  python3-devel
Requires:       python3-PyYAML python3-setproctitle python3-rtslib target-restore
Requires:       nfs-utils, python3-blockdev, libblockdev-lvm
# Omitted dependency: btrfs-progs

%description
targetd turns the machine into a remotely-configurable storage appliance.
It supports an HTTP/jsonrpc-2.0 interface to let a remote
administrator allocate volumes from an LVM volume group, and export
those volumes over iSCSI.

%package utils
Summary: Utilities for managing targetd environment.

%description utils
User Utilies for targetd.

%prep
%setup -q -n %{base_name}-main

%build
%py3_build

%install
mkdir -p %{buildroot}%{_mandir}/man8/
mkdir -p %{buildroot}%{_mandir}/man5/
mkdir -p %{buildroot}%{_unitdir}
mkdir -p %{buildroot}%{_presetdir}
mkdir -p %{buildroot}%{_sysconfdir}/target/
install -m 644 targetd.service %{buildroot}%{_unitdir}/targetd.service
install -m 644 targetd.preset %{buildroot}%{_presetdir}/50-targetd.preset
install -m 644 targetd.yaml %{buildroot}%{_sysconfdir}/target/targetd.yaml
install -m 644 targetd.8 %{buildroot}%{_mandir}/man8/
install -m 644 targetd.yaml.5 %{buildroot}%{_mandir}/man5/
%py3_install

# This is not included via setup.py because there's not an easy way to install
# the .py files without the .py extension.  Suggestions for improvement are
# welcome!
%{__install} -m 0755 utils/createLun.py             $RPM_BUILD_ROOT%{_bindir}/createLun
%{__install} -m 0755 utils/destroyLun.py            $RPM_BUILD_ROOT%{_bindir}/destroyLun
%{__install} -m 0755 utils/export_list.py           $RPM_BUILD_ROOT%{_bindir}/export_list
%{__install} -m 0755 utils/filesys_create.py        $RPM_BUILD_ROOT%{_bindir}/filesys_create
%{__install} -m 0755 utils/filesys_destroy.py       $RPM_BUILD_ROOT%{_bindir}/filesys_destroy
%{__install} -m 0755 utils/filesys_export_add.py    $RPM_BUILD_ROOT%{_bindir}/filesys_export_add
%{__install} -m 0755 utils/filesys_export_list.py   $RPM_BUILD_ROOT%{_bindir}/filesys_export_list
%{__install} -m 0755 utils/filesys_export_remove.py $RPM_BUILD_ROOT%{_bindir}/filesys_export_remove
%{__install} -m 0755 utils/filesys_list.py          $RPM_BUILD_ROOT%{_bindir}/filesys_list
%{__install} -m 0755 utils/initiator_list.py        $RPM_BUILD_ROOT%{_bindir}/initiator_list
%{__install} -m 0755 utils/pool_list.py             $RPM_BUILD_ROOT%{_bindir}/pool_list

%post
%systemd_post targetd.service

%preun
%systemd_preun targetd.service

%postun
%systemd_postun_with_restart targetd.service

%files utils
%{_bindir}/createLun
%{_bindir}/destroyLun
%{_bindir}/export_list
%{_bindir}/filesys_create
%{_bindir}/filesys_destroy
%{_bindir}/filesys_export_add
%{_bindir}/filesys_export_list
%{_bindir}/filesys_export_remove
%{_bindir}/filesys_list
%{_bindir}/initiator_list
%{_bindir}/pool_list

%files
%{_bindir}/targetd
%{_unitdir}/targetd.service
%{_presetdir}/50-targetd.preset
%{python3_sitelib}/targetd/
%{python3_sitelib}/*.egg-info
%license LICENSE
%doc README.md API.md client
%{_mandir}/man8/targetd.8*
%{_mandir}/man5/targetd.yaml.5*
%config(noreplace) %{_sysconfdir}/target/targetd.yaml

%changelog
* Mon Jun 06 2022 Andy Walsh <awalsh@redhat.com> - 0.8.11.1-4
- Fixed source name

* Fri Dec 17 2021 Andy Walsh <awalsh@redhat.com> - 0.8.11.1-3
- Renamed to 'targetd-bunsen'

* Tue Dec 14 2021 Andy Walsh <awalsh@redhat.com> - 0.8.11.1-2
- Added utility scripts to manage targetd environment.

* Tue Dec 14 2021 Andy Walsh <awalsh@redhat.com> - 0.8.11.1-1
- Rebuilt for VDO

* Tue Feb 25 2020 Tony Asleson <tasleson@redhat.com> - 0.8.11-1
- New upstream release
- Add man page for targetd.yaml.8

* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Mon Nov 25 2019 Tony Asleson <tasleson@redhat.com> - 0.8.9-1
* Revive package and update to latest upstream release.

* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 0.8.6-5
- Rebuilt for Python 3.7

* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.6-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Wed May 3 2017 Tony Asleson <tasleson@redhat.com> 0.8.6-2
- Add and correct dependencies

* Thu Apr 27 2017 Tony Asleson <tasleson@redhat.com> 0.8.6-1
- New upstream version, bug fixes

* Thu Feb 16 2017 Tony Asleson <tasleson@redhat.com> 0.8.5-1
- New upstream version which has python3 support

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8.3-3
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages

* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Wed Aug 12 2015 Andy Grover <agrover@redhat.com> 0.8.3-1
- New upstream version

* Tue Jun 23 2015 Andy Grover <agrover@redhat.com> 0.8.2-1
- New upstream version

* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Wed Feb 11 2015 Andy Grover <agrover@redhat.com> 0.8.1-1
- New upstream version

* Tue Feb 10 2015 Andy Grover <agrover@redhat.com> 0.8-1
- New upstream version

* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Fri Mar 14 2014 Andy Grover <agrover@redhat.com> 0.7.2-1
- New upstream version

* Mon Feb 10 2014 Andy Grover <agrover@redhat.com> 0.7.1-1
- New upstream version

* Mon Nov 25 2013 Andy Grover <agrover@redhat.com> 0.7-2
- Fix service file for new ktarget service name
- Add python-rtslib to requires

* Fri Nov 8 2013 Andy Grover <agrover@redhat.com> 0.7-1
- New upstream version
- Use systemd spec macros

* Thu Aug 8 2013 Andy Grover <agrover@redhat.com> 0.6.1-1
- Update to latest version, make needed changes
- Drop patches:
  * require-password.patch
  * use-std-ssl.patch
- Change requires from python-lvm to lvm2-python-libs

* Mon Aug  5 2013 Peter Robinson <pbrobinson@fedoraproject.org> 0.3.1-7
- Add systemd to BuildReq to fix FTBFS

* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Tue Apr 16 2013 Andy Grover <agrover@redhat.com> - 0.3.1-5
- Update require-password.patch
- Change target.yaml to not include a commented-out default password

* Tue Apr 16 2013 Andy Grover <agrover@redhat.com> - 0.3.1-4
- Remove dependency on python-tlslite

* Mon Apr 15 2013 Andy Grover <agrover@redhat.com> - 0.3.1-3
- Add patch
  * use-std-ssl.patch
  * require-password.patch

* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Wed Oct 17 2012 Andy Grover <agrover@redhat.com> - 0.3.1-1
- New upstream version

* Mon Sep 24 2012 Andy Grover <agrover@redhat.com> - 0.3-1
- New upstream version

* Fri Sep 7 2012 Andy Grover <agrover@redhat.com> - 0.2.4-1
- New upstream version

* Tue Aug 28 2012 Andy Grover <agrover@redhat.com> - 0.2.3-1
- New upstream version
- Add new dependency python-tlslite

* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Mon Jun 25 2012 Andy Grover <agrover@redhat.com> - 0.2.2-2
- Add proper pkg requires

* Mon Jun 25 2012 Andy Grover <agrover@redhat.com> - 0.2.2-1
- Initial packaging