X-Git-Url: http://git.pld-linux.org/?p=packages%2Fclamav.git;a=blobdiff_plain;f=clamav.spec;h=6b10e95c3703d3ac11d353de24832742f4a6dddc;hp=4413ef03d58ee952abcd44800a8711f124f28346;hb=HEAD;hpb=00f337bd39d23b13b0451cb731e24ab09bbed9ed diff --git a/clamav.spec b/clamav.spec index 4413ef0..a7b739f 100644 --- a/clamav.spec +++ b/clamav.spec @@ -1,28 +1,35 @@ # 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 +%bcond_without milter # milter interface subpackage %if "%{pld_release}" == "ac" -%bcond_with llvm # LLVM support +%bcond_with llvm # LLVM support %else -%bcond_without llvm # LLVM support +%bcond_without llvm # LLVM support %endif +%bcond_without system_libmspack # system libmspack library +%bcond_with system_llvm # system LLVM (< 3.7) +%bcond_without static_libs # static libraries %ifarch x32 %undefine with_llvm %endif - Summary: An anti-virus utility for Unix Summary(pl.UTF-8): Narzędzie antywirusowe dla Uniksów Name: clamav -Version: 0.98.7 -Release: 2 +Version: 1.3.0 +Release: 1 License: GPL v2+ Group: Daemons -Source0: http://downloads.sourceforge.net/clamav/%{name}-%{version}.tar.gz -# Source0-md5: 157c601161da1c2d5a0e48ea1b49e067 +#Source0Download: http://www.clamav.net/download +Source0: http://www.clamav.net/downloads/production/%{name}-%{version}.tar.gz +# Source0-md5: c70168adc7c88506e079ac86a0c57031 Source1: %{name}.init Source2: %{name}.sysconfig Source3: %{name}-milter.init @@ -32,32 +39,33 @@ Source8: %{name}-post-updatedb Source9: %{name}-milter.sysconfig Source10: %{name}.tmpfiles Source11: clamd.service +Source12: cronjob-clamav.timer +Source13: cronjob-clamav.service.in Patch0: %{name}-pld_config.patch -Patch1: %{name}-nolibs.patch -%if "%{pld_release}" == "ac" -Patch2: am-nosilentrules.patch -%endif -Patch3: ac2.68.patch -Patch4: %{name}-openssl.patch -Patch5: %{name}-major.patch -Patch6: x32.patch URL: http://www.clamav.net/ -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: bzip2-devel -BuildRequires: curl-devel +BuildRequires: bzip2-devel >= 1.0.5 +BuildRequires: cargo +BuildRequires: cmake >= 3.14 +BuildRequires: check-devel +BuildRequires: curl-devel >= 7.40 BuildRequires: gmp-devel +BuildRequires: json-c-devel BuildRequires: libltdl-devel %{?with_milter:BuildRequires: libmilter-devel} -BuildRequires: libstdc++-devel -BuildRequires: libtool +%{?with_system_libmspack:BuildRequires: libmspack-devel} +BuildRequires: libstdc++-devel >= 5:3.4 %{?with_milter:BuildRequires: libwrap-devel} -%{?with_llvm:BuildRequires: llvm-devel} +BuildRequires: libxml2-devel >= 2 +%{?with_llvm:%{?with_system_llvm:BuildRequires: llvm-devel < 3.7}} BuildRequires: ncurses-devel -BuildRequires: openssl-devel -BuildRequires: rpm >= 4.4.9-56 -BuildRequires: rpmbuild(macros) >= 1.647 -BuildRequires: zlib-devel +BuildRequires: openssl-devel >= 0.9.8 +BuildRequires: pcre2-8-devel >= 10.30 +BuildRequires: pkgconfig >= 1:0.16 +BuildRequires: rpm-build >= 4.6 +BuildRequires: rpmbuild(macros) >= 1.742 +BuildRequires: rust >= 1.56 +BuildRequires: systemd-devel +BuildRequires: zlib-devel >= 1.2.2 Requires(post,preun): /sbin/chkconfig Requires(postun): /usr/sbin/groupdel Requires(postun): /usr/sbin/userdel @@ -68,12 +76,12 @@ Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd Requires(post,preun,postun): systemd-units >= 38 Requires: systemd-units >= 38 -Requires(triggerpostun): sed >= 4.0 +Requires(postun): sed >= 4.0 Requires: %{name}-libs = %{epoch}:%{version}-%{release} Requires: /usr/sbin/usermod Requires: rc-scripts >= 0.4.1.23 Suggests: clamav-database -Suggests: crondaemon +Suggests: cronjobs Provides: group(clamav) Provides: user(clamav) Conflicts: logrotate < 3.7-4 @@ -85,7 +93,7 @@ especially for e-mail scanning on mail gateways. It provides a number of utilities including a flexible and scalable multi-threaded daemon, a command line scanner and advanced tool for automatic database updates. The core of the package is an anti-virus engine available in -a form of shared library. +a form of shared library (available in clamav-libs). Here is a list of the main features: - command-line scanner @@ -94,7 +102,7 @@ Here is a list of the main features: - advanced database updater with support for scripted updates and digital signatures - virus scanner C library -- on-access scanning (Linux® and FreeBSD®) +- on-access scanning (Linux and FreeBSD) - virus database updated multiple times per day (see home page for total number of signatures) - built-in support for various archive formats, including Zip, RAR, @@ -107,16 +115,42 @@ Here is a list of the main features: and MacOffice files, HTML, RTF and PDF %description -l pl.UTF-8 -Clam Antivirus jest potężnym skanerem antywirusowym dla systemów -uniksowych. Wspiera on AMaViSa, skompresowane pliki, skanowanie -"on-access" i posiada system bezpiecznej, automatycznej aktualizacji. -Baza wirusów zawiera ponad 90000 sygnatur. Skaner jest wielowątkowy, -napisany w C i zgodny z POSIXem. +Clam AntiVirus to mające otwarte źródła narzędzie antywirusowe dla +systemów uniksowych, zaprojektowane szczególnie pod kątem skanowania +poczty elektronicznej na bramkach pocztowych. Udostępnia wiele +narzędzi, w tym elastycznego i skalowalnego, multiwątkowego demona, +skaner działający z linii poleceń oraz zaawansowane narzędzie do +automatycznej aktualizacji bazy danych. Główna część pakietu to +silnik antywirusowy dostępny w postaci biblioteki współdzielonej +(dostępnej w pakiecie clamav-libs). + +Lista podstawowych możliwości: +- skaner działający z linii poleceń +- szybki, wielowątkowy demon z obsługą skanowania przy odczycie +- interfejs milter dla sendmaila +- zaawansowane narzędzie do aktualizacji bazy danych z obsługą + aktualizacji oskryptowanych oraz podpisów cyfrowych +- biblioteka C skanera antywirusowego +- skanowanie przy odczycie (dla Linuksa i FreeBSD) +- baza danych wirusów aktualizowana wiele razy dziennie (liczba + sygnatur dostępna na stronie projektu) +- wbudowana obsługa różnych formatów archiwów, w tym Zip, RAR, Tar, + Gzip, Bzip2, OLE2, Cabinet, CHM, BinHex, SIS i inne +- wbudowana obsługa prawie wszystkich formatów plików pocztowych +- wbudowana obsługa plików wykonywalnych ELF i PE skompresowanych + programami UPX, FSG, Petite, NsPack, wwpack32, MEW, Upack oraz + zaciemnionych przy użyciu programów SUE, Y0da Cryptor i innych +- wbudowana obsługa popularnych formatów dokumentów, w tym plików MS + Office, MacOffice, HTML, RTF i PDF %package libs Summary: Shared libraries for clamav Summary(pl.UTF-8): Biblioteki dzielone clamav Group: Libraries +Requires: bzip2-libs >= 1.0.5 +Requires: curl-libs >= 7.40 +Requires: pcre2-8 >= 10.30 +Requires: zlib >= 1.2.2 %description libs Shared libraries for clamav. @@ -144,11 +178,12 @@ Summary: clamav - Development header files and libraries Summary(pl.UTF-8): clamav - Pliki nagłówkowe i biblioteki dla programistów Group: Development/Libraries Requires: %{name}-libs = %{epoch}:%{version}-%{release} -Requires: bzip2-devel -Requires: curl-devel +Requires: bzip2-devel >= 1.0.5 +Requires: curl-devel >= 7.40 Requires: gmp-devel -Requires: openssl-devel -Requires: zlib-devel +Requires: openssl-devel >= 0.9.8 +Requires: pcre2-8-devel >= 10.30 +Requires: zlib-devel >= 1.2.2 %description devel This package contains the development header files and libraries @@ -170,39 +205,38 @@ clamav static libraries. %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 -%patch1 -p1 -%if "%{pld_release}" == "ac" -%patch2 -p1 -%endif -%if "%{pld_release}" != "ac" -%patch3 -p1 -%endif -#%patch4 -p1 -%patch5 -p1 -%patch6 -p1 %build -%{__libtoolize} -%{__aclocal} -I m4 -%{__autoconf} -%{__autoheader} -%{__automake} -%configure \ - --disable-silent-rules \ - --disable-clamav \ - --enable-clamdtop \ - %{?with_llvm:--enable-llvm --with-system-llvm} \ - %{?with_milter:--enable-milter} \ - --with-dbdir=/var/lib/%{name} \ - --with-no-cache \ - --with-ltdl-include=%{_includedir} \ - --with-ltdl-lib=%{_libdir} - -%{__make} \ - LIBTOOL=%{_bindir}/libtool +install -d build +cd build +%{cmake} \ + %{cmake_on_off system_libmspack ENABLE_EXTERNAL_MSPACK} \ + %{cmake_on_off milter ENABLE_MILTER} \ + %{cmake_on_off static_libs ENABLE_STATIC_LIB} \ + -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} %install rm -rf $RPM_BUILD_ROOT @@ -211,10 +245,19 @@ install -d $RPM_BUILD_ROOT/etc/{cron.d,logrotate.d,rc.d/init.d,sysconfig} \ $RPM_BUILD_ROOT%{systemdtmpfilesdir} \ $RPM_BUILD_ROOT%{systemdunitdir} -%{__make} install \ - LIBTOOL=%{_bindir}/libtool \ +%{__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}/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} 5 * * * * root %{_sbindir}/clamav-cron-updatedb @@ -237,6 +280,8 @@ install -p %{SOURCE8} $RPM_BUILD_ROOT%{_sbindir} cp -p %{SOURCE10} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf cp -p %{SOURCE11} $RPM_BUILD_ROOT%{systemdunitdir} +cp -p %{SOURCE12} $RPM_BUILD_ROOT%{systemdunitdir}/cronjob-%{name}.timer +sed -e's#@sbindir@#%{_sbindir}#' < %{SOURCE13} > $RPM_BUILD_ROOT%{systemdunitdir}/cronjob-%{name}.service # NOTE: clamd uses sane rights to it's clamd.pid file # So better keep it dir @@ -267,14 +312,14 @@ rm -rf $RPM_BUILD_ROOT touch /var/log/freshclam.log chown clamav:root /var/log/freshclam.log chmod 640 /var/log/freshclam.log -%systemd_post clamd.service +%systemd_post clamd.service cronjob-clamav.timer %preun if [ "$1" = "0" ]; then %service clamd stop /sbin/chkconfig --del clamd fi -%systemd_preun clamd.service +%systemd_preun clamd.service cronjob-clamav.timer %postun if [ "$1" = "0" ]; then @@ -283,7 +328,7 @@ if [ "$1" = "0" ]; then fi %systemd_reload -%triggerpostun -- %{name} < 0.80 +%triggerpostun -- %{name} < 0.99.2-2 if [ -f /etc/clamav.conf.rpmsave ]; then echo "Renaming config to new name /etc/clamd.conf" mv -f /etc/clamd.conf /etc/clamd.conf.rpmnew @@ -292,7 +337,6 @@ if [ -f /etc/clamav.conf.rpmsave ]; then %{__sed} -i -e 's/clamav.conf/clamd.conf/' /etc/freshclam.conf fi -%triggerpostun -- %{name} < 0.90-0.rc2.0.10 %{__cp} -f /etc/clamd.conf{,.rpmsave} %{__sed} -i -e ' s,^LogSyslog$,& yes, @@ -314,8 +358,7 @@ EOF touch /var/lock/subsys/clamd %service -q clamd restart -%triggerpostun -- %{name} < 0.97.7-4 -%systemd_trigger clamd.service +%systemd_trigger clamd.service cronjob-clamav.timer %post milter /sbin/chkconfig --add clamav-milter @@ -332,7 +375,7 @@ fi %files %defattr(644,root,root,755) -%doc AUTHORS ChangeLog FAQ NEWS README docs/*.pdf +%doc ChangeLog.md NEWS.md README.md %attr(755,root,root) %{_bindir}/clambc %attr(755,root,root) %{_bindir}/clamdscan %attr(755,root,root) %{_bindir}/clamdtop @@ -341,11 +384,21 @@ fi %attr(755,root,root) %{_bindir}/freshclam %attr(755,root,root) %{_bindir}/sigtool %attr(755,root,root) %{_bindir}/clamconf -%attr(755,root,root) %{_sbindir}/clamd %attr(755,root,root) %{_sbindir}/clamav-cron-updatedb %attr(755,root,root) %{_sbindir}/clamav-post-updatedb +%attr(755,root,root) %{_sbindir}/clamd +%attr(755,root,root) %{_sbindir}/clamonacc %{systemdtmpfilesdir}/%{name}.conf +%{systemdunitdir}/clamav-clamonacc.service +%{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 %attr(755,clamav,root) %dir /var/lib/%{name} %attr(640,clamav,root) %ghost /var/log/freshclam.log %attr(750,clamav,clamav) %dir /var/run/%{name} @@ -357,8 +410,18 @@ fi %attr(754,root,root) /etc/rc.d/init.d/clamd %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/clamd %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/clamav -%{_mandir}/man[15]/* -%{_mandir}/man8/clamd* +%{_mandir}/man1/clambc.1* +%{_mandir}/man1/clamconf.1* +%{_mandir}/man1/clamdscan.1* +%{_mandir}/man1/clamdtop.1* +%{_mandir}/man1/clamscan.1* +%{_mandir}/man1/clamsubmit.1* +%{_mandir}/man1/freshclam.1* +%{_mandir}/man1/sigtool.1* +%{_mandir}/man5/clamd.conf.5* +%{_mandir}/man5/freshclam.conf.5* +%{_mandir}/man8/clamd.8* +%{_mandir}/man8/clamonacc.8* %if %{with milter} %files milter @@ -367,9 +430,8 @@ fi %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/clamav-milter.conf %attr(754,root,root) /etc/rc.d/init.d/clamav-milter #%attr(755,root,root) %{_sysconfdir}/cron.daily/clamav-milter -#%attr(755,root,root) %{_sysconfdir}/log.d/scripts/services/clamav-milter -#%{_sysconfdir}/log.d/conf/services/clamav-milter.conf %attr(755,root,root) %{_sbindir}/clamav-milter +%{_mandir}/man5/clamav-milter.conf.5* %{_mandir}/man8/clamav-milter.8* %attr(700,clamav,clamav) /var/spool/clamav %endif @@ -377,26 +439,46 @@ fi %files libs %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libclamav.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libclamav.so.6 +%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.6 +%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.6 +%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.3 %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/clamav-config %attr(755,root,root) %{_libdir}/libclamav.so +%if %{without system_libmspack} +%attr(755,root,root) %{_libdir}/libclammspack.so +%endif %attr(755,root,root) %{_libdir}/libclamunrar.so +%attr(755,root,root) %{_libdir}/libfreshclam.so %attr(755,root,root) %{_libdir}/libclamunrar_iface.so -%{_libdir}/libclamav.la -%{_libdir}/libclamunrar.la -%{_libdir}/libclamunrar_iface.la -%{_includedir}/clamav.h +%dir %{_includedir}/clamav +%{_includedir}/clamav/clamav.h +%{_includedir}/clamav/clamav-types.h +%{_includedir}/clamav/clamav-version.h +%{_includedir}/clamav/libfreshclam.h %{_pkgconfigdir}/libclamav.pc %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/*