Dan Langille 4d161fff03 security/logcheck: Add patch to change crontab entry
When the host is heavily loaded, the log files can grow incredibly and
one logcheck invocation may not complete before it is invoked next
time.

This commit add patch to change crontab entries so it uses lockf(1) to
avoid multiple invocation of logcheck under such situation as above.

PR:		276023
2024-02-11 13:06:24 +09:00

107 lines
3.5 KiB
Makefile

PORTNAME= logcheck
DISTVERSION= 1.4.3
PORTREVISION= 2
CATEGORIES= security
MASTER_SITES= DEBIAN_POOL
DISTNAME= ${PORTNAME}_${PORTVERSION}
MAINTAINER= yasu@FreeBSD.org
COMMENT= Auditing tool for system logs on Unix boxes
WWW= https://salsa.debian.org/debian/logcheck
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= docbook-to-man>0:textproc/docbook-to-man
RUN_DEPENDS= bash:shells/bash \
lockfile-create:sysutils/lockfile-progs \
mime-construct:mail/mime-construct
# Enable Perl dependency for logtail script
USES= perl5 shebangfix tar:xz
SHEBANG_FILES= src/detectrotate/*.dtr src/logcheck src/logtail src/logtail2
BINMODE= 755
SUB_FILES= pkg-deinstall pkg-install pkg-message
SUB_LIST+= CRON=${PORT_OPTIONS:MCRON} \
DBDIR=${DBDIR} \
LOGCHECK_GROUP=${LOGCHECK_GROUP} \
LOGCHECK_USER=${LOGCHECK_USER}
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
USERS= ${LOGCHECK_USER}
GROUPS= ${LOGCHECK_GROUP}
PLIST_SUB+= CHGRP=${CHGRP} \
CHMOD=${CHMOD} \
DBDIR=${DBDIR} \
FIND=${FIND} \
LOGCHECK_GROUP=${LOGCHECK_GROUP} \
LOGCHECK_USER=${LOGCHECK_USER} \
RUNDIR=${RUNDIR}
PORTDOCS= ${DOCS:T}
OPTIONS_DEFINE= CRON DOCS EXAMPLES
OPTIONS_DEFAULT= CRON
CRON_DESC= Install cron script automatically
# None. portlint compliance
BASEDIR?=
CONFIG_DIRS= cracking.d ignore.d.paranoid ignore.d.server \
ignore.d.workstation violations.d violations.ignore.d
DBDIR= ${BASEDIR}/var/db/${PORTNAME}
DOCS= AUTHORS CHANGES CREDITS TODO docs/README*
LOGCHECK_GROUP= ${LOGCHECK_USER}
LOGCHECK_USER= logcheck
MAN1_FILES= logcheck-test.1
MAN8_FILES= logcheck.8 logtail.8 logtail2.8
REINPLACE_FILES= debian/logcheck.cron.d docs/logcheck.sgml \
docs/logtail2.8 docs/README.logcheck \
docs/README.logcheck-database docs/README.logtail \
etc/logcheck.conf etc/logcheck.logfiles src/logcheck \
src/logtail2
RUNDIR= ${BASEDIR}/var/run/${PORTNAME}
.include <bsd.port.pre.mk>
do-build:
.for file in ${REINPLACE_FILES}
${REINPLACE_CMD} ${_SUB_LIST_TEMP} ${WRKSRC}/${file}
.endfor
docbook-to-man ${WRKSRC}/docs/logcheck.sgml > ${WRKSRC}/docs/logcheck.8
${FIND} ${WRKSRC} -type f \( -name \*.orig -o -name \*.bak \) -delete
do-install:
@${MKDIR} ${STAGEDIR}${DATADIR}/detectrotate \
${STAGEDIR}${DBDIR} \
${STAGEDIR}${DOCSDIR} \
${STAGEDIR}${ETCDIR} \
${STAGEDIR}${ETCDIR}/logcheck.logfiles.d \
${STAGEDIR}${EXAMPLESDIR} \
${STAGEDIR}${RUNDIR}
${INSTALL_SCRIPT} ${WRKSRC}/src/logcheck-test ${STAGEDIR}${PREFIX}/bin
${INSTALL_SCRIPT} ${WRKSRC}/src/logcheck ${STAGEDIR}${PREFIX}/sbin
${INSTALL_SCRIPT} ${WRKSRC}/src/logtail ${STAGEDIR}${PREFIX}/sbin
${INSTALL_SCRIPT} ${WRKSRC}/src/logtail2 ${STAGEDIR}${PREFIX}/sbin
${INSTALL_DATA} ${WRKSRC}/etc/logcheck.conf \
${STAGEDIR}${ETCDIR}/logcheck.conf.sample
${INSTALL_DATA} ${WRKSRC}/etc/logcheck.logfiles \
${STAGEDIR}${ETCDIR}/
${INSTALL_DATA} ${WRKSRC}/etc/logcheck.logfiles.d/syslog.logfiles \
${STAGEDIR}${ETCDIR}/logcheck.logfiles.d/syslog.logfiles.sample
.for i in ${CONFIG_DIRS}
@${MKDIR} ${STAGEDIR}${ETCDIR}/${i}
${INSTALL_DATA} ${WRKSRC}/rulefiles/linux/${i}/* \
${STAGEDIR}${ETCDIR}/${i}
.endfor
${INSTALL_DATA} ${WRKSRC}/src/detectrotate/*.dtr \
${STAGEDIR}${DATADIR}/detectrotate
${INSTALL_DATA} ${WRKSRC}/debian/logcheck.cron.d \
${STAGEDIR}${EXAMPLESDIR}/crontab.in
.for i in ${MAN1_FILES}
${INSTALL_MAN} ${WRKSRC}/docs/$i ${STAGEDIR}${PREFIX}/share/man/man1
.endfor
.for i in ${MAN8_FILES}
${INSTALL_MAN} ${WRKSRC}/docs/$i ${STAGEDIR}${PREFIX}/share/man/man8
.endfor
cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR}
.include <bsd.port.post.mk>