101 lines
3.3 KiB
RPMSpec
101 lines
3.3 KiB
RPMSpec
Name: tang
|
|
Version: 7
|
|
Release: 2
|
|
Summary: Server for binding data to network presence
|
|
License: GPLv3+
|
|
URL: https://github.com/latchset/%{name}
|
|
Source0: https://github.com/latchset/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.bz2
|
|
|
|
BuildRequires: gcc jose libjose-devel libjose-zlib-devel libjose-openssl-devel
|
|
BuildRequires: http-parser-devel systemd-devel pkgconfig systemd curl
|
|
BuildRequires: asciidoc coreutils grep sed
|
|
|
|
Requires: coreutils jose grep sed
|
|
Requires(pre): shadow-utils
|
|
%{?systemd_requires}
|
|
|
|
%description
|
|
This package is a server for binding data to network presence.
|
|
First, the client gets a list of the Tang server's advertised asymmetric keys.
|
|
This can happen online by a simple HTTP GET. Alternatively, since the keys are
|
|
asymmetric, the public key list can be distributed out of band.
|
|
Second, the client uses one of these public keys to generate a unique,
|
|
cryptographically strong encryption key. The data is then encrypted using this
|
|
key. Once the data is encrypted, the key is discarded. Some small metadata is
|
|
produced as part of this operation which the client should store in a convenient
|
|
location. This process of encrypting data is the provisioning step.
|
|
Third, when the client is ready to access its data, it simply loads the metadata
|
|
produced in the provisioning step and performs an HTTP POST in order to recover
|
|
the encryption key. This process is the recovery step.
|
|
|
|
%package_help
|
|
|
|
%prep
|
|
%autosetup -n %{name}-%{version}
|
|
|
|
%build
|
|
%configure
|
|
%make_build
|
|
|
|
%install
|
|
%make_install
|
|
|
|
%{__sed} -i 's|DirectoryMode=0700||' %{buildroot}/%{_unitdir}/%{name}d-update.path
|
|
%{__sed} -i 's|MakeDirectory=true||' %{buildroot}/%{_unitdir}/%{name}d-update.path
|
|
echo "User=%{name}" >> %{buildroot}/%{_unitdir}/%{name}d-update.service
|
|
echo "User=%{name}" >> %{buildroot}/%{_unitdir}/%{name}d@.service
|
|
install -d %{buildroot}/%{_localstatedir}/cache/%{name}
|
|
install -d %{buildroot}/%{_localstatedir}/db/%{name}
|
|
|
|
%check
|
|
if ! make %{?_smp_mflags} check; then
|
|
cat test-suite.log
|
|
false
|
|
fi
|
|
|
|
%pre
|
|
getent group %{name} >/dev/null || groupadd -r %{name}
|
|
getent passwd %{name} >/dev/null || \
|
|
useradd -r -g %{name} -d %{_localstatedir}/cache/%{name} -s /sbin/nologin \
|
|
-c "Tang Network Presence Daemon user" %{name}
|
|
exit 0
|
|
|
|
%post
|
|
%systemd_post %{name}d.socket
|
|
%systemd_post %{name}d-update.path
|
|
%systemd_post %{name}d-update.service
|
|
%systemd_post %{name}d-keygen.service
|
|
|
|
%preun
|
|
%systemd_preun %{name}d.socket
|
|
%systemd_preun %{name}d-update.path
|
|
%systemd_preun %{name}d-update.service
|
|
%systemd_preun %{name}d-keygen.service
|
|
|
|
%postun
|
|
%systemd_postun_with_restart %{name}d.socket
|
|
%systemd_postun_with_restart %{name}d-update.path
|
|
%systemd_postun_with_restart %{name}d-update.service
|
|
%systemd_postun_with_restart %{name}d-keygen.service
|
|
|
|
%files
|
|
%license COPYING
|
|
%attr(0750, %{name}, %{name}) %{_localstatedir}/cache/%{name}
|
|
%attr(2570, %{name}, %{name}) %{_localstatedir}/db/%{name}
|
|
%{_unitdir}/%{name}d-keygen.service
|
|
%{_unitdir}/%{name}d-update.service
|
|
%{_unitdir}/%{name}d-update.path
|
|
%{_unitdir}/%{name}d@.service
|
|
%{_unitdir}/%{name}d.socket
|
|
%{_libexecdir}/%{name}d-keygen
|
|
%{_libexecdir}/%{name}d-update
|
|
%{_libexecdir}/%{name}d
|
|
%{_bindir}/%{name}-show-keys
|
|
|
|
%files help
|
|
%{_mandir}/man8/tang.8*
|
|
%{_mandir}/man1/tang-show-keys.1*
|
|
|
|
%changelog
|
|
* Thu Dec 5 2019 openEuler Buildteam <buildteam@openeuler.org> - 7-2
|
|
- Package init |