File snac2.spec of Package snac2
Name: snac2
Summary: A simple, minimalistic ActivityPub instance written in portable C
URL: https://codeberg.org/grunfink/snac2
License: MIT
Version: 2.91
Release: 1%{?dist}
Source0: %{url}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source1: snac.service
Source2: snac.sysusers
BuildRequires: gcc
BuildRequires: httpd-devel
BuildRequires: openssl-devel
BuildRequires: libcurl-devel
BuildRequires: systemd-rpm-macros
%description
A simple, minimalistic ActivityPub instance written in portable C.
Runs as a daemon (proxied by a TLS-enabled real httpd server) and
provides the basic services for a Fediverse / ActivityPub instance
(sharing messages and stuff from/to other systems like Mastodon,
Pleroma, Friendica, etc.).
It is lightweight, with minimal dependencies, and no database is
needed. It has extensive support of ActivityPub operations, and is
tested for interoperability with similar software. It also features a
simple but effective web interface with an easily-accessed Mute
button.
%prep
%autosetup -p1 -n %{name}
%build
%make_build PREFIX=%{_prefix} PREFIX_MAN=%{_mandir} CFLAGS='%{build_cflags}'
%install
%make_install PREFIX=%{buildroot}%{_prefix} PREFIX_MAN=%{buildroot}%{_mandir}
install -D -m 644 %{SOURCE1} %{buildroot}%{_unitdir}/snac.service
install -p -D -m 0644 %{SOURCE2} %{buildroot}%{_sysusersdir}/snac.conf
%check
%make_build PREFIX=%{_prefix} PREFIX_MAN=%{_mandir} CFLAGS='%{build_cflags}' test
%pre
%sysusers_create_compat %{SOURCE2}
%post
%systemd_post snac.service
%preun
%systemd_preun snac.service
%postun
%systemd_postun_with_restart snac.service
%files
%doc README.md RELEASE_NOTES.md FEDERATION.md SECURITY.md CONTRIBUTING.md TODO.md
%license LICENSE
%{_bindir}/snac
%{_mandir}/man1/snac.1*
%{_mandir}/man5/snac.5*
%{_mandir}/man8/snac.8*
%{_unitdir}/snac.service
%{_sysusersdir}/snac.conf
%ghost %dir %attr(0700,snac,snac) %{_sharedstatedir}/snac