diff --git a/app-antivirus/clamav/clamav-0.103.0.ebuild b/app-antivirus/clamav/clamav-0.103.0.ebuild index 9a1d28f892037..f5e3d508cf548 100644 --- a/app-antivirus/clamav/clamav-0.103.0.ebuild +++ b/app-antivirus/clamav/clamav-0.103.0.ebuild @@ -133,7 +133,10 @@ src_install() { fi insinto /etc/logrotate.d - newins "${FILESDIR}"/clamav.logrotate clamav + newins "${FILESDIR}/clamd.logrotate" clamd + newins "${FILESDIR}/freshclam.logrotate" freshclam + use milter && \ + newins "${FILESDIR}/clamav-milter.logrotate" clamav-milter # Modify /etc/{clamd,freshclam}.conf to be usable out of the box sed -i -e "s:^\(Example\):\# \1:" \ diff --git a/app-antivirus/clamav/files/clamav-milter.logrotate b/app-antivirus/clamav/files/clamav-milter.logrotate new file mode 100644 index 0000000000000..24782df604b60 --- /dev/null +++ b/app-antivirus/clamav/files/clamav-milter.logrotate @@ -0,0 +1,25 @@ +# This script is intended to rotate the logs for clamav-milter in its +# default configuration on Gentoo, where clamav-milter writes to its +# own log file but does not rotate that file itself. The clamav-milter +# daemon is capable of rotating its own logs; if you have "LogRotate +# yes" in clamav-milter.conf then you do not need this script (and +# should disable it). Likewise, if you are logging to syslog +# (LogSyslog yes), this is redundant. +# +# This is more complicated than the clamd/freshclam scripts because +# the milter doesn't yet reopen its log files when it receives a +# SIGHUP. See https://bugzilla.clamav.net/show_bug.cgi?id=12615 +# for that. Instead we have to attempt OpenRC/systemd service +# restarts on (only) the machines that support them. +/var/log/clamav/clamav-milter.log { + su clamav clamav + missingok + postrotate + if command -v rc-service 2>/dev/null; then + rc-service clamav-milter status 2>/dev/null 1>&2 && rc-service clamav-milter restart 1>/dev/null + fi + if command -v systemctl 2>/dev/null; then + systemctl try-restart clamav-milter + fi + endscript +} diff --git a/app-antivirus/clamav/files/clamd.logrotate b/app-antivirus/clamav/files/clamd.logrotate new file mode 100644 index 0000000000000..68ee9b361668e --- /dev/null +++ b/app-antivirus/clamav/files/clamd.logrotate @@ -0,0 +1,17 @@ +# This script is intended to rotate the logs for clamd in its default +# configuration on Gentoo, where clamd writes to its own log file but +# does not rotate that file itself. The clamd daemon is capable of +# rotating its own logs; if you have "LogRotate yes" in clamd.conf +# then you do not need this script (and should disable it). Likewise, +# if you are logging to syslog (LogSyslog yes), this is redundant. +/var/log/clamav/clamd.log { + su clamav clamav + missingok + postrotate + if test -f /run/clamd.pid; then + /bin/kill -HUP $(cat /run/clamd.pid) + else + true + fi + endscript +} diff --git a/app-antivirus/clamav/files/freshclam.logrotate b/app-antivirus/clamav/files/freshclam.logrotate new file mode 100644 index 0000000000000..ba6b5de3ba1c1 --- /dev/null +++ b/app-antivirus/clamav/files/freshclam.logrotate @@ -0,0 +1,17 @@ +# This script is intended to rotate the logs for freshclam in its default +# configuration on Gentoo, where freshclam writes to its own log file but +# does not rotate that file itself. The freshclam daemon is capable of +# rotating its own logs; if you have "LogRotate yes" in freshclam.conf +# then you do not need this script (and should disable it). Likewise, +# if you are logging to syslog (LogSyslog yes), this is redundant. +/var/log/clamav/freshclam.log { + su clamav clamav + missingok + postrotate + if test -f /run/freshclam.pid; then + /bin/kill -HUP $(cat /run/freshclam.pid) + else + true + fi + endscript +}