# TODO:
# - Make freshclam package (script and daemon)
# - restart amavis in triggers if group membership was modified?
+# NOTE:
+# ClamAV requires non-default build options for TomsFastMath to support bigger
+# floating point numbers. Without this change, database and Windows EXE/DLL
+# authenticode certificate validation may fail. Don't use system one.
#
# Conditional build:
%bcond_without milter # milter interface subpackage
Summary: An anti-virus utility for Unix
Summary(pl.UTF-8): Narzędzie antywirusowe dla Uniksów
Name: clamav
-Version: 0.104.0
+Version: 1.3.0
Release: 1
License: GPL v2+
Group: Daemons
#Source0Download: http://www.clamav.net/download
Source0: http://www.clamav.net/downloads/production/%{name}-%{version}.tar.gz
-# Source0-md5: 3f4789c09f5a35e9ea580edd5c3e54b6
+# Source0-md5: c70168adc7c88506e079ac86a0c57031
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}-milter.init
Source12: cronjob-clamav.timer
Source13: cronjob-clamav.service.in
Patch0: %{name}-pld_config.patch
-
-Patch4: x32.patch
-Patch5: %{name}-add-support-for-system-tomsfastmath.patch
URL: http://www.clamav.net/
-BuildRequires: cmake
+BuildRequires: bzip2-devel >= 1.0.5
+BuildRequires: cargo
+BuildRequires: cmake >= 3.14
BuildRequires: check-devel
BuildRequires: curl-devel >= 7.40
BuildRequires: gmp-devel
BuildRequires: openssl-devel >= 0.9.8
BuildRequires: pcre2-8-devel >= 10.30
BuildRequires: pkgconfig >= 1:0.16
-BuildRequires: rpm >= 4.4.9-56
-BuildRequires: rpmbuild(macros) >= 1.647
+BuildRequires: rpm-build >= 4.6
+BuildRequires: rpmbuild(macros) >= 1.742
+BuildRequires: rust >= 1.56
BuildRequires: systemd-devel
-BuildRequires: tomsfastmath-devel >= 0.13.1-2
BuildRequires: zlib-devel >= 1.2.2
Requires(post,preun): /sbin/chkconfig
Requires(postun): /usr/sbin/groupdel
%description static -l pl.UTF-8
Biblioteki statyczne clamav.
+%package doc
+Summary: ClamAV documentation
+Summary(pl.UTF-8): Dokumentacja do ClamAVa
+Group: Documentation
+BuildArch: noarch
+
+%description doc
+ClamAV documentation.
+
+%description doc -l pl.UTF-8
+Dokumentacja do ClamAVa.
+
%prep
%setup -q
%patch0 -p1
-%patch4 -p1
-%patch5 -p1
-
%build
install -d build
cd build
-DENABLE_APP=ON \
-DENABLE_CLAMONACC=ON \
-DENABLE_FRESHCLAM_NO_CACHE=ON \
+ -DRUST_COMPILER_TARGET=%{rust_target} \
-DCMAKE_INSTALL_INCLUDEDIR=%{_includedir}/%{name} \
-DAPP_CONFIG_DIRECTORY=%{_sysconfdir} \
+ -DDATABASE_DIRECTORY="/var/lib/%{name}" \
..
%{__make}
%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
+
%{!?with_milter:rm -f $RPM_BUILD_ROOT%{_mandir}/man8/clamav-milter.8*}
+# packged as %doc
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/html
%if %{with static_libs}
-mv $RPM_BUILD_ROOT%{_libdir}/libclamav{_static,}.a
-mv $RPM_BUILD_ROOT%{_libdir}/libfreshclam{_static,}.a
+%{__mv} $RPM_BUILD_ROOT%{_libdir}/libclamav{_static,}.a
+%{__mv} $RPM_BUILD_ROOT%{_libdir}/libclamunrar{_static,}.a
+%{__mv} $RPM_BUILD_ROOT%{_libdir}/libclamunrar_iface{_static,}.a
+%{__mv} $RPM_BUILD_ROOT%{_libdir}/libfreshclam{_static,}.a
%endif
cat <<'EOF' >$RPM_BUILD_ROOT/etc/cron.d/%{name}
touch /var/lock/subsys/clamd
%service -q clamd restart
-%systemd_trigger clamd.service
-
-%systemd_service_enable cronjob-clamav.timer
+%systemd_trigger clamd.service cronjob-clamav.timer
%post milter
/sbin/chkconfig --add clamav-milter
%{systemdunitdir}/clamav-daemon.service
%{systemdunitdir}/clamav-daemon.socket
%{systemdunitdir}/clamav-freshclam.service
+# instead of cron?
+#%{systemdunitdir}/clamav-freshclam-once.service
+#%{systemdunitdir}/clamav-freshclam-once.timer
%{systemdunitdir}/clamd.service
%{systemdunitdir}/cronjob-clamav.service
%{systemdunitdir}/cronjob-clamav.timer
%files libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libclamav.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libclamav.so.9
+%attr(755,root,root) %ghost %{_libdir}/libclamav.so.12
%if %{without system_libmspack}
%attr(755,root,root) %{_libdir}/libclammspack.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libclammspack.so.0
%endif
%attr(755,root,root) %{_libdir}/libclamunrar.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libclamunrar.so.9
+%attr(755,root,root) %ghost %{_libdir}/libclamunrar.so.12
%attr(755,root,root) %{_libdir}/libclamunrar_iface.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libclamunrar_iface.so.9
+%attr(755,root,root) %ghost %{_libdir}/libclamunrar_iface.so.12
%attr(755,root,root) %{_libdir}/libfreshclam.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libfreshclam.so.2
+%attr(755,root,root) %ghost %{_libdir}/libfreshclam.so.3
%files devel
%defattr(644,root,root,755)
%files static
%defattr(644,root,root,755)
%{_libdir}/libclamav.a
+%{_libdir}/libclamav_rust.a
%if %{without system_libmspack}
%{_libdir}/libclammspack.a
%endif
+%{_libdir}/libclamunrar.a
+%{_libdir}/libclamunrar_iface.a
%{_libdir}/libfreshclam.a
+
+%files doc
+%defattr(644,root,root,755)
+%doc docs/html/*