X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=clamav.spec;h=41b66899751a05e30e1eba9aac8f977bcefbd6b5;hb=bc125db8dbff73f895ba7811a8f80a1584605751;hp=3c29762bc7fcc9bc2e09178b2d8c8c92f4ecd1c0;hpb=2d82c59bbc67109e11dbd7991a90f4fc541916e5;p=packages%2Fclamav.git diff --git a/clamav.spec b/clamav.spec index 3c29762..41b6689 100644 --- a/clamav.spec +++ b/clamav.spec @@ -3,22 +3,29 @@ # - restart amavis in triggers if group membership was modified? # # Conditional build: -%bcond_without milter # build without milter subpackage +%bcond_without milter # milter interface subpackage %if "%{pld_release}" == "ac" -%bcond_with llvm # build without llvm support +%bcond_with llvm # LLVM support %else -%bcond_without llvm # build without 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.97.3 -Release: 1 +Version: 0.103.3 +Release: 2 License: GPL v2+ Group: Daemons -Source0: http://downloads.sourceforge.net/clamav/%{name}-%{version}.tar.gz -# Source0-md5: 5cf25ed7778fa0cb6b140ad8f009befb +#Source0Download: http://www.clamav.net/download +Source0: http://www.clamav.net/downloads/production/%{name}-%{version}.tar.gz +# Source0-md5: f8dcf678953f6af056ddd5917bcc50c3 Source1: %{name}.init Source2: %{name}.sysconfig Source3: %{name}-milter.init @@ -26,25 +33,44 @@ Source4: %{name}-cron-updatedb Source5: %{name}.logrotate 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 -Patch3: %{name}-link.patch +%endif +Patch3: ac2.68.patch +Patch4: x32.patch +Patch5: %{name}-add-support-for-system-tomsfastmath.patch +Patch6: %{name}-headers.patch URL: http://www.clamav.net/ -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: bzip2-devel +BuildRequires: autoconf >= 2.59 +BuildRequires: automake >= 1:1.11.1 +BuildRequires: bzip2-devel >= 1.0.5 +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 +BuildRequires: libtool >= 2:2 %{?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 >= 0.9.8 +BuildRequires: pcre2-8-devel >= 10.30 +BuildRequires: pkgconfig >= 1:0.16 BuildRequires: rpm >= 4.4.9-56 -BuildRequires: rpmbuild(macros) >= 1.514 -BuildRequires: zlib-devel +BuildRequires: rpmbuild(macros) >= 1.647 +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 Requires(postun): /usr/sbin/userdel @@ -53,11 +79,14 @@ Requires(pre): /bin/id Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd -Requires(triggerpostun): sed >= 4.0 +Requires(post,preun,postun): systemd-units >= 38 +Requires: systemd-units >= 38 +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: cronjobs Provides: group(clamav) Provides: user(clamav) Conflicts: logrotate < 3.7-4 @@ -69,7 +98,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 @@ -78,7 +107,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, @@ -91,16 +120,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. @@ -128,9 +183,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: bzip2-devel >= 1.0.5 +Requires: curl-devel >= 7.40 Requires: gmp-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 @@ -156,10 +214,19 @@ Biblioteki statyczne clamav. %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 +export CFLAGS="%{rpmcflags} -Wall -W -Wmissing-prototypes -Wmissing-declarations -std=gnu99" +export CXXFLAGS="%{rpmcxxflags} -std=gnu++98" %{__libtoolize} %{__aclocal} -I m4 %{__autoconf} @@ -167,22 +234,29 @@ Biblioteki statyczne clamav. %{__automake} %configure \ --disable-clamav \ + --enable-clamonacc \ + --enable-clamdtop \ + %{?with_llvm:--enable-llvm %{!?with_system_llvm:--with-system-llvm=no}} \ %{?with_milter:--enable-milter} \ + --disable-silent-rules \ + %{?with_static_libs:--enable-static} \ + --disable-zlib-vcheck \ --with-dbdir=/var/lib/%{name} \ + --with-ltdl-include=%{_includedir} \ + --with-ltdl-lib=%{_libdir} \ --with-no-cache \ - --with-ltdl-include=/usr/include \ - --with-ltdl-lib=%{_libdir} + %{?with_system_libmspack:--with-system-libmspack} -%{__make} \ - LIBTOOL=/usr/bin/libtool +%{__make} %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT/etc/{cron.d,logrotate.d,rc.d/init.d,sysconfig} \ - $RPM_BUILD_ROOT%{_var}/{log,spool/clamav} + $RPM_BUILD_ROOT%{_var}/{log,spool/clamav,lib/clamav} \ + $RPM_BUILD_ROOT%{systemdtmpfilesdir} \ + $RPM_BUILD_ROOT%{systemdunitdir} %{__make} install \ - LIBTOOL=/usr/bin/libtool \ DESTDIR=$RPM_BUILD_ROOT %{!?with_milter:rm -f $RPM_BUILD_ROOT%{_mandir}/man8/clamav-milter.8*} @@ -197,11 +271,19 @@ cp -p %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/clamav-milter %endif cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/clamd install -p %{SOURCE4} $RPM_BUILD_ROOT%{_sbindir}/clamav-cron-updatedb -cp -p etc/*.conf $RPM_BUILD_ROOT%{_sysconfdir} +for i in $RPM_BUILD_ROOT%{_sysconfdir}/*.conf.sample; do + mv $i ${i%%.sample} +done cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/logrotate.d/%{name} 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 # If it is fixed use of dir will be unecesary @@ -231,20 +313,23 @@ 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 cronjob-clamav.timer %preun if [ "$1" = "0" ]; then %service clamd stop /sbin/chkconfig --del clamd fi +%systemd_preun clamd.service cronjob-clamav.timer %postun if [ "$1" = "0" ]; then %userremove clamav %groupremove clamav 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 @@ -253,7 +338,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, @@ -275,6 +359,10 @@ EOF touch /var/lock/subsys/clamd %service -q clamd restart +%systemd_trigger clamd.service + +%systemd_service_enable cronjob-clamav.timer + %post milter /sbin/chkconfig --add clamav-milter %service clamav-milter restart "Clam Antivirus daemon" @@ -290,19 +378,28 @@ 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 %attr(755,root,root) %{_bindir}/clamscan +%attr(755,root,root) %{_bindir}/clamsubmit %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 +%{systemdunitdir}/clamd.service +%{systemdunitdir}/cronjob-clamav.service +%{systemdunitdir}/cronjob-clamav.timer %attr(755,clamav,root) %dir /var/lib/%{name} -%attr(644,clamav,root) %ghost %verify(not md5 mtime size) /var/lib/clamav/*.cvd %attr(640,clamav,root) %ghost /var/log/freshclam.log %attr(750,clamav,clamav) %dir /var/run/%{name} @@ -313,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 @@ -323,28 +430,57 @@ 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 %files libs %defattr(644,root,root,755) -%attr(755,root,root) %{_libdir}/lib*.so.*.* -%attr(755,root,root) %ghost %{_libdir}/libclamav.so.6 -%attr(755,root,root) %ghost %{_libdir}/libclamunrar.so.6 -%attr(755,root,root) %ghost %{_libdir}/libclamunrar_iface.so.6 +%attr(755,root,root) %{_libdir}/libclamav.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libclamav.so.9 +%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) %{_libdir}/libclamunrar_iface.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libclamunrar_iface.so.9 +%attr(755,root,root) %{_libdir}/libfreshclam.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libfreshclam.so.2 %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/clamav-config -%attr(755,root,root) %{_libdir}/lib*.so -%{_libdir}/lib*.la -%{_includedir}/*.h -%{_pkgconfigdir}/*.pc +%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 +%if %{without system_libmspack} +%{_libdir}/libclammspack.la +%endif +%{_libdir}/libclamunrar.la +%{_libdir}/libfreshclam.la +%{_libdir}/libclamunrar_iface.la +%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}/*.a +%{_libdir}/libclamav.a +%if %{without system_libmspack} +%{_libdir}/libclammspack.a +%endif +%{_libdir}/libclamunrar.a +%{_libdir}/libfreshclam.a +%{_libdir}/libclamunrar_iface.a