custodia/custodia.spec
2023-07-05 16:40:09 +08:00

145 lines
5.1 KiB
RPMSpec

Name: custodia
Version: 0.6.0
Release: 8
Summary: A tool for managing secrets other processes
License: GPLv3+
URL: https://github.com/latchset/%{name}
Source0: https://github.com/latchset/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz
Source2: custodia.conf
Source3: custodia@.service
Source4: custodia@.socket
Source5: custodia.tmpfiles.conf
BuildArch: noarch
Patch0: 0001-fix-build-for-pytest.patch
BuildRequires: systemd python3-devel python3-jwcrypto >= 0.4.2
BuildRequires: python3-requests python3-setuptools > 18 python3-coverage
BuildRequires: python3-pytest python3-docutils python3-systemd
Requires: python3-custodia = %{version}-%{release}
Requires(preun): systemd-units
Requires(postun): systemd-units
Requires(post): systemd-units
%description
A tool for managing secrets other processes
Custodia is a project that aims to define an API for modern cloud applications
that allows to easily store and share password,tokens,certificates and any
other secret in a way that keeps data secure, manageable and auditable.
Custodia is modular, the configuration file controls how authentication,
authorization, storage and API plugins are combined and exposed.
%package -n python3-custodia
Summary: Sub-package with python3 custodia modules
%{?python_provide:%python_provide python3-%{name}}
Requires: python3-jwcrypto >= 0.4.2 python3-requests python3-setuptools python3-systemd
Conflicts: python3-custodia-extra < %{version}
%description -n python3-custodia
Sub-package with python custodia modules
Custodia is a project that aims to define an API for modern cloud applications
that allows to easily store and share password,tokens,certificates and any
other secret in a way that keeps data secure, manageable and auditable.
Custodia is modular, the configuration file controls how authentication,
authorization, storage and API plugins are combined and exposed.
%prep
%autosetup -n %{name}-%{version} -p1
%build
%py3_build
%check
export PYTHONPATH="%{buildroot}/%{python3_sitelib}"
py.test --skip-servertests --ignore=tests/test_ipa.py --ignore=tests/test_cli.py
%install
install -d %{buildroot}/%{_sbindir}
install -d %{buildroot}/%{_mandir}/man7
install -d %{buildroot}/%{_defaultdocdir}/custodia
install -d %{buildroot}/%{_defaultdocdir}/custodia/examples
install -d %{buildroot}/%{_sysconfdir}/custodia
install -d %{buildroot}/%{_unitdir}
install -d %{buildroot}/%{_tmpfilesdir}
install -d %{buildroot}/%{_localstatedir}/lib/custodia
install -d %{buildroot}/%{_localstatedir}/log/custodia
install -d %{buildroot}/%{_localstatedir}/run/custodia
%py3_install
mv %{buildroot}/%{_bindir}/custodia %{buildroot}/%{_sbindir}/custodia
cp %{buildroot}/%{_sbindir}/custodia %{buildroot}/%{_sbindir}/custodia-3
cp %{buildroot}/%{_bindir}/custodia-cli %{buildroot}/%{_bindir}/custodia-cli-3
install -m 644 -t "%{buildroot}/%{_mandir}/man7" man/custodia.7
install -m 644 -t "%{buildroot}/%{_defaultdocdir}/custodia" README API.md
install -m 644 -t "%{buildroot}/%{_defaultdocdir}/custodia/examples" custodia.conf
install -m 600 %{SOURCE2} %{buildroot}%{_sysconfdir}/custodia
install -m 644 %{SOURCE3} %{SOURCE4} %{buildroot}%{_unitdir}
install -m 644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/custodia.conf
%pre
getent group custodia >/dev/null || groupadd -r custodia
getent passwd custodia >/dev/null || \
useradd -r -g custodia -d / -s /sbin/nologin \
-c "User for custodia" custodia
exit 0
%post
for srv in `systemctl | awk '/custodia@.*\.service/{print $1} /custodia@.*\.socket/{print $1}'`;
do
%systemd_post $srv
done
%preun
for srv in `systemctl | awk '/custodia@.*\.service/{print $1} /custodia@.*\.socket/{print $1}'`;
do
%systemd_preun $srv
done
%postun
for srv in `systemctl | awk '/custodia@.*\.service/{print $1} /custodia@.*\.socket/{print $1}'`;
do
%systemd_postun_with_restart $srv
done
%files
%doc README API.md LICENSE
%doc %{_defaultdocdir}/custodia/examples/custodia.conf
%{_mandir}/man7/custodia*
%{_sbindir}/custodia
%{_bindir}/custodia-cli
%dir %attr(0700,custodia,custodia) %{_sysconfdir}/custodia
%dir %attr(0700,custodia,custodia) %{_localstatedir}/lib/custodia
%dir %attr(0700,custodia,custodia) %{_localstatedir}/log/custodia
%dir %attr(0755,custodia,custodia) %{_localstatedir}/run/custodia
%config(noreplace) %attr(600,custodia,custodia) %{_sysconfdir}/custodia/custodia.conf
%attr(644,root,root) %{_unitdir}/custodia@.socket
%attr(644,root,root) %{_unitdir}/custodia@.service
%{_tmpfilesdir}/custodia.conf
%files -n python3-custodia
%doc LICENSE
%{_sbindir}/custodia-3
%{_bindir}/custodia-cli-3
%{python3_sitelib}/%{name}
%{python3_sitelib}/%{name}-%{version}-py%{python3_version}.egg-info
%{python3_sitelib}/%{name}-%{version}-py%{python3_version}-nspkg.pth
%changelog
* Wed Jul 05 2023 chenchen <chen_aka_jan@163.com> - 0.6.0-8
- modify %check for fix build error
* Tue Mar 01 2022 xuping <xuping33@huawei.com> 0.6.0-7
- Fix systemd related scriptlet error
* Fri Jan 8 2021 baizhonggui <baizhonggui> 0.6.0-6
- Fix building for pytest
* Fri May 15 2020 Captain Wei <captain.a.wei@gmail.com> 0.6.0-5
- Package init