-%define rspamd_user _rspamd
-%define rspamd_group %{rspamd_user}
-%define rspamd_home %{_localstatedir}/lib/rspamd
-%define rspamd_logdir %{_localstatedir}/log/rspamd
-%define rspamd_confdir %{_sysconfdir}/rspamd
-%define rspamd_pluginsdir %{_datadir}/rspamd
-%define rspamd_rulesdir %{_datadir}/rspamd/rules
-%define rspamd_wwwdir %{_datadir}/rspamd/www
-
-Name: rspamd
-Version: 2.4
-Release: 1
-Summary: Rapid spam filtering system
-Group: System Environment/Daemons
-License: ASL 2.0
-URL: https://rspamd.com
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
-BuildRequires: glib2-devel,libevent-devel,openssl-devel,pcre-devel
-BuildRequires: cmake,gmime-devel,file-devel,ragel,libunwind-devel
-%if 0%{?el6}
-BuildRequires: perl
+Name: rspamd
+Version: 3.2
+Release: 1
+Summary: Rapid spam filtering system
+Group: System Environment/Daemons
+License: Apache-2.0
+URL: https://rspamd.com
+Source0: https://github.com/rspamd/rspamd/archive/%{version}/%{name}-%{version}.tar.gz
+Source1: %{name}.logrotate
+Source2: 80-rspamd.preset
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
+%if 0%{?el7}
+BuildRequires: cmake3
+BuildRequires: devtoolset-8-gcc-c++
%else
-BuildRequires: perl-Digest-MD5
-%endif
-%if 0%{?suse_version} || 0%{?el7} || 0%{?fedora}
-BuildRequires: systemd
-Requires(pre): systemd
-Requires(post): systemd
-Requires(preun): systemd
+BuildRequires: cmake
+BuildRequires: gcc-c++
+%endif
+BuildRequires: file-devel
+BuildRequires: glib2-devel
+BuildRequires: hyperscan-devel
+BuildRequires: jemalloc-devel
+BuildRequires: lapack-devel
+BuildRequires: libevent-devel
+BuildRequires: libicu-devel
+BuildRequires: libsodium-devel
+BuildRequires: libunwind-devel
+BuildRequires: luajit-devel
+BuildRequires: openblas-devel
+BuildRequires: openssl-devel
+BuildRequires: pcre2-devel
+BuildRequires: ragel
+BuildRequires: sqlite-devel
+BuildRequires: systemd
+Requires(pre): shadow-utils
+Requires(post): systemd
+Requires(preun): systemd
Requires(postun): systemd
-%endif
-%if 0%{?suse_version}
-BuildRequires: sqlite3-devel
-Requires(pre): shadow
-%else
-BuildRequires: sqlite-devel
-Requires(pre): shadow-utils
-%endif
-%if 0%{?fedora_version} >= 22 || 0%{?suse_version} >= 1320
-BuildRequires: luajit-devel
-%else
-BuildRequires: lua-devel
-%endif
-Requires: logrotate
-%if 0%{?el6}
-Requires(post): chkconfig
-Requires(preun): chkconfig, initscripts
-Requires(postun): initscripts
-Source1: %{name}.init
-Source2: %{name}.logrotate
-%else
-Source2: %{name}.logrotate.systemd
-%endif
-
-Source0: https://rspamd.com/downloads/%{name}-%{version}.tar.xz
-Source3: 80-rspamd.preset
%description
Rspamd is a rapid, modular and lightweight spam filter. It is designed to work
%setup -q
%build
+%if 0%{?el7}
+%{__cmake3} \
+%else
%{__cmake} \
- -DCMAKE_C_OPT_FLAGS="%{optflags}" \
+%endif
+ -DCMAKE_BUILD_TYPE="Release" \
+ -DCMAKE_C_FLAGS_RELEASE="%{optflags}" \
+ -DCMAKE_CXX_FLAGS_RELEASE="%{optflags}" \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
-DCONFDIR=%{_sysconfdir}/rspamd \
-DMANDIR=%{_mandir} \
-DDBDIR=%{_localstatedir}/lib/rspamd \
-DRUNDIR=%{_localstatedir}/run/rspamd \
-%if 0%{?el6}
- -DWANT_SYSTEMD_UNITS=OFF \
- -DDISABLE_PTHREAD_MUTEX=1 \
-%else
- -DWANT_SYSTEMD_UNITS=ON \
- -DSYSTEMDDIR=%{_unitdir} \
-%endif
-%if 0%{?suse_version}
- -DCMAKE_SKIP_INSTALL_RPATH=ON \
-%endif
-%if 0%{?fedora_version} >= 22 || 0%{?suse_version} >= 1320
- -DENABLE_LUAJIT=ON \
-%else
- -DENABLE_LUAJIT=OFF \
-%endif
-DLOGDIR=%{_localstatedir}/log/rspamd \
-DEXAMPLESDIR=%{_datadir}/examples/rspamd \
-DSHAREDIR=%{_datadir}/rspamd \
-DLIBDIR=%{_libdir}/rspamd/ \
-DINCLUDEDIR=%{_includedir} \
+ -DRSPAMD_GROUP=_rspamd \
+ -DRSPAMD_USER=_rspamd \
+ -DSYSTEMDDIR=%{_unitdir} \
+ -DWANT_SYSTEMD_UNITS=ON \
-DNO_SHARED=ON \
-DDEBIAN_BUILD=1 \
- -DRSPAMD_GROUP=%{rspamd_group} \
- -DRSPAMD_USER=%{rspamd_user} \
- -DENABLE_LIBUNWIND=ON
+ -DENABLE_LIBUNWIND=ON \
+ -DENABLE_HYPERSCAN=ON \
+ -DENABLE_JEMALLOC=ON \
+ -DENABLE_LUAJIT=ON \
+ -DENABLE_BLAS=ON
%{__make} %{?jobs:-j%jobs}
%install
%{__make} install DESTDIR=%{buildroot} INSTALLDIRS=vendor
-%{__install} -p -D -m 0644 %{SOURCE3} %{buildroot}%{_presetdir}/80-rspamd.preset
-
-%if 0%{?el6}
-%{__install} -p -D -m 0755 %{SOURCE1} %{buildroot}%{_initrddir}/%{name}
-%{__install} -d -p -m 0755 %{buildroot}%{_localstatedir}/run/rspamd
-%{__install} -p -D -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
-%{__install} -d -p -m 0755 %{buildroot}%{rspamd_logdir}
-%else
-%{__install} -p -D -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
-%{__install} -d -p -m 0755 %{buildroot}%{rspamd_logdir}
-%endif
-
-%{__install} -d -p -m 0755 %{buildroot}%{rspamd_home}
+%{__install} -p -D -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
+%{__install} -p -D -m 0644 %{SOURCE2} %{buildroot}%{_presetdir}/80-rspamd.preset
+%{__install} -d -p -m 0755 %{buildroot}%{_localstatedir}/log/rspamd
+%{__install} -d -p -m 0755 %{buildroot}%{_localstatedir}/lib/rspamd
%{__install} -p -D -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/local.d/
%{__install} -p -D -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/override.d/
rm -rf %{buildroot}
%pre
-%{_sbindir}/groupadd -r %{rspamd_group} 2>/dev/null || :
-%{_sbindir}/useradd -g %{rspamd_group} -c "Rspamd user" -s /bin/false -r -d %{rspamd_home} %{rspamd_user} 2>/dev/null || :
-
-%if 0%{?suse_version}
-%service_add_pre %{name}.service
-%endif
+%{_sbindir}/groupadd -r _rspamd 2>/dev/null || :
+%{_sbindir}/useradd -g _rspamd -c "Rspamd user" -s /bin/false -r -d %{_localstatedir}/lib/rspamd _rspamd 2>/dev/null || :
%post
-#to allow easy upgrade from 0.8.1
-%{__chown} -R %{rspamd_user}:%{rspamd_group} %{rspamd_home}
-%if 0%{?suse_version}
-%service_add_post %{name}.service
-%endif
-%if 0%{?fedora} || 0%{?el7}
-#Macro is not used as we want to do this on upgrade
-#%systemd_post %{name}.service
+%{__chown} -R _rspamd:_rspamd %{_localstatedir}/lib/rspamd
+%{__chown} _rspamd:_rspamd %{_localstatedir}/log/rspamd
systemctl --no-reload preset %{name}.service >/dev/null 2>&1 || :
-%endif
-%if 0%{?el6}
-/sbin/chkconfig --add %{name}
-%else
-%{__chown} %{rspamd_user}:%{rspamd_group} %{rspamd_logdir}
-%endif
%preun
-%if 0%{?suse_version}
-%service_del_preun %{name}.service
-%endif
-%if 0%{?fedora} || 0%{?el7}
%systemd_preun %{name}.service
-%endif
-%if 0%{?el6}
-if [ $1 = 0 ]; then
- /sbin/service %{name} stop >/dev/null 2>&1
- /sbin/chkconfig --del %{name}
-fi
-%endif
%postun
-%if 0%{?suse_version}
-%service_del_postun %{name}.service
-%endif
-%if 0%{?fedora} || 0%{?el7}
%systemd_postun_with_restart %{name}.service
-%endif
-%if 0%{?el6}
-if [ $1 -ge 1 ]; then
- /sbin/service %{name} condrestart > /dev/null 2>&1 || :
-fi
-
-%endif
%files
%defattr(-,root,root,-)
-%if 0%{?suse_version} || 0%{?fedora} || 0%{?el7}
-%{_unitdir}/%{name}.service
-%{_presetdir}/80-rspamd.preset
-%endif
-%if 0%{?el6}
-%{_initrddir}/%{name}
-%dir %{_localstatedir}/run/rspamd
-%endif
-%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
-%dir %{rspamd_logdir}
-%{_mandir}/man8/%{name}.*
-%{_mandir}/man1/rspamc.*
-%{_mandir}/man1/rspamadm.*
+
+%dir %{_sysconfdir}/rspamd
+%config(noreplace) %{_sysconfdir}/rspamd/*
+
%{_bindir}/rspamd
%{_bindir}/rspamd_stats
%{_bindir}/rspamc
%{_bindir}/rspamadm
-%config(noreplace) %{rspamd_confdir}/%{name}.conf
-%config(noreplace) %{rspamd_confdir}/composites.conf
-%config(noreplace) %{rspamd_confdir}/metrics.conf
-%config(noreplace) %{rspamd_confdir}/maps.d/mime_types.inc
-%config(noreplace) %{rspamd_confdir}/modules.conf
-%config(noreplace) %{rspamd_confdir}/statistic.conf
-%config(noreplace) %{rspamd_confdir}/common.conf
-%config(noreplace) %{rspamd_confdir}/logging.inc
-%config(noreplace) %{rspamd_confdir}/options.inc
-%config(noreplace) %{rspamd_confdir}/maps.d/redirectors.inc
-%config(noreplace) %{rspamd_confdir}/worker-controller.inc
-%config(noreplace) %{rspamd_confdir}/worker-fuzzy.inc
-%config(noreplace) %{rspamd_confdir}/worker-normal.inc
-%config(noreplace) %{rspamd_confdir}/modules.d/*
-%attr(-, %{rspamd_user}, %{rspamd_group}) %dir %{rspamd_home}
-%dir %{rspamd_rulesdir}/regexp
-%dir %{rspamd_rulesdir}
-%dir %{rspamd_confdir}
-%dir %{rspamd_confdir}/modules.d
-%dir %{rspamd_confdir}/local.d
-%dir %{rspamd_confdir}/override.d
-%dir %{rspamd_pluginsdir}/lua
-%dir %{rspamd_pluginsdir}
-%dir %{rspamd_wwwdir}
-%dir %{_libdir}/rspamd
-%config(noreplace) %{rspamd_confdir}/maps.d/surbl-whitelist.inc
-%config(noreplace) %{rspamd_confdir}/maps.d/spf_dkim_whitelist.inc
-%config(noreplace) %{rspamd_confdir}/maps.d/dmarc_whitelist.inc
-%{rspamd_pluginsdir}/lib/*.lua
-%{rspamd_pluginsdir}/lua/*.lua
-%{rspamd_rulesdir}/regexp/*.lua
-%{rspamd_rulesdir}/*.lua
-%{rspamd_wwwdir}/*
-%{_libdir}/rspamd/*
-%{_datadir}/rspamd/effective_tld_names.dat
-
-%changelog
-* Thu Sep 17 2015 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 1.0.0-1
-- Update to 1.0.0
-
-* Fri May 29 2015 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.9.9-1
-- Update to 0.9.9
-
-* Thu May 21 2015 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.9.4-1
-- Update to 0.9.4
-
-* Tue May 19 2015 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.9.3-1
-- Update to 0.9.3
-
-* Tue May 19 2015 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.9.2-1
-- Update to 0.9.2
-
-* Sun May 17 2015 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.9.1-1
-- Update to 0.9.1
-
-* Wed May 13 2015 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.9.0-1
-- Update to 0.9.0
-
-* Fri Mar 13 2015 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.8.3-1
-- Update to 0.8.3
-
-* Tue Mar 10 2015 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.8.2-1
-- Update to 0.8.2
-* Fri Jan 23 2015 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.8.1-1
-- Update to 0.8.1
-
-* Fri Jan 02 2015 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.8.0-1
-- Update to 0.8.0
-
-* Mon Nov 24 2014 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.7.6-1
-- Update to 0.7.6
-
-* Mon Nov 17 2014 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.7.5-1
-- Update to 0.7.5
-
-* Sat Nov 08 2014 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.7.4-1
-- Update to 0.7.4
-
-* Mon Nov 03 2014 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.7.3-1
-- Update to 0.7.3
-
-* Wed Oct 15 2014 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.7.2-1
-- Update to 0.7.2
-
-* Tue Sep 30 2014 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.7.1-1
-- Update to 0.7.1
-
-* Mon Sep 1 2014 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.7.0-1
-- Update to 0.7.0
-
-* Fri Jan 10 2014 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.6.7-1
-- Update to 0.6.7.
-
-* Fri Dec 27 2013 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.6.6-1
-- Update to 0.6.6.
-
-* Fri Dec 20 2013 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.6.5-1
-- Update to 0.6.5.
-
-* Wed Dec 18 2013 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.6.4-1
-- Update to 0.6.4.
+%{_unitdir}/%{name}.service
+%{_presetdir}/80-rspamd.preset
-* Tue Dec 10 2013 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.6.3-1
-- Update to 0.6.3.
+%dir %{_libdir}/rspamd
+%{_libdir}/rspamd/*
-* Fri Dec 06 2013 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.6.2-1
-- Update to 0.6.2.
+%{_mandir}/man8/%{name}.*
+%{_mandir}/man1/rspamc.*
+%{_mandir}/man1/rspamadm.*
-* Tue Nov 19 2013 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.6.0-1
-- Update to 0.6.0.
+%dir %{_datadir}/rspamd
+%{_datadir}/rspamd/*
-* Mon Jun 10 2013 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.5.6-1
-- Update to 0.5.6.
+%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
-* Sat May 25 2013 Vsevolod Stakhov <vsevolod-at-highsecure.ru> 0.5.5-1
-- Initial spec version.
+%attr(-, _rspamd, _rspamd) %dir %{_localstatedir}/lib/rspamd
+%dir %{_localstatedir}/log/rspamd