freebsd-ports/security/tripwire/Makefile
Stefan Eßer b7f05445c0 Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.

Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.

There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.

This commit implements such a proposal and moves one of the WWW: entries
of each pkg-descr file into the respective port's Makefile. A heuristic
attempts to identify the most relevant URL in case there is more than
one WWW: entry in some pkg-descr file. URLs that are not moved into the
Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr
files in order to preserve them.

There are 1256 ports that had no WWW: entries in pkg-descr files. These
ports will not be touched in this commit.

The portlint port has been adjusted to expect a WWW entry in each port
Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as
deprecated.

Approved by:		portmgr (tcberner)
2022-09-07 23:10:59 +02:00

184 lines
6.8 KiB
Makefile

PORTNAME= tripwire
PORTVERSION= 2.4.3.7
PORTREVISION= 1
CATEGORIES= security
MAINTAINER= cy@FreeBSD.org
COMMENT= File system security and verification program
WWW= https://sourceforge.net/projects/tripwire/
LICENSE= GPLv2
USE_GITHUB= yes
GH_ACCOUNT= Tripwire
GH_PROJECT= tripwire-open-source
NO_LICENSES_INSTALL= yes
MAKE_JOBS_UNSAFE= yes
USES= cpe gmake ssl
GNU_CONFIGURE= yes
MAKE_ARGS= SYSPRE=${ARCH}-unknown-freebsd \
DESTDIR=${STAGEDIR}
M4= /usr/bin/m4
# Tripwire database files are stored in TWDB.
TWDB?= /var/db/tripwire
# If TW_CLOBBER is set to true, the install script clobbers
# previously installed config files.
#
# If TW_PROMPT is set to true, the install script is interactive.
OPTIONS_SINGLE= TWCFG
OPTIONS_SINGLE_TWCFG= TWCFG_ETC TWCFG_TWDB
OPTIONS_DEFINE= TW_CLOBBER TW_PROMPT SW_ONLY DB_BUILD
OPTIONS_DEFAULT= TWCFG_ETC TW_PROMPT DB_BUILD
TWCFG_ETC_DESC= Put config files in ${ETCDIR}
TWCFG_TWDB_DESC= Put config files in ${TWDB}/etc
TW_CLOBBER_DESC= Clobber existing database files at install
TW_PROMPT_DESC= Interactive install (ignored when PACKAGE_BUILDING)
SW_ONLY_DESC= Install software only, do not post-configure (ignored when PACKAGE_BUILDING)
DB_BUILD_DESC= Build database during post-install (ignored when PACKAGE_BUILDING)
PACKAGE_BUILDING= yes
.ifndef PACKAGE_BUILDING
BROKEN= for testing only
.endif
.include <bsd.port.pre.mk>
# Tripwire config files are stored in TWCFG
.if ${PORT_OPTIONS:MTWCFG_ETC}
TWCFG?= ${ETCDIR}
.endif
.if ${PORT_OPTIONS:MTWCFG_TWDB}
TWCFG?= ${TWDB}/etc
.endif
.if ${PORT_OPTIONS:MTW_CLOBBER}
TW_CLOBBER= true
.else
TW_CLOBBER= false
.endif
.if ${PORT_OPTIONS:MTW_PROMPT}
TW_PROMPT= true
.else
TW_PROMPT= false
# TW_SITE_PASS?= FreeBSD
.ifndef TW_SITE_PASS
BROKEN= No site passphrase specified or turn PROMPT on
.endif
# TW_LOCAL_PASS?= FreeBSD
.ifndef TW_LOCAL_PASS
BROKEN= No local passphrase specified or turn PROMPT on
.endif
.endif
# Tripwire policy files are stored in TWPOLICY.
TWPOLICY?= ${TWCFG}
# The Tripwire site key files are stored in TWSITEKEYDIR.
TWSITEKEYDIR?= ${TWPOLICY}
# The Tripwire local key files are stored in TWLOCALKEYDIR.
TWLOCALKEYDIR?= ${TWPOLICY}
# Tripwire report files are stored in TWREPORT.
TWREPORT?= ${TWDB}/report
# This sets the default text editor for Tripwire.
TWEDITOR?= /usr/bin/vi
# This sets the location of the twpol.txt file that is to be installed
TWPOL_TXT?= ${FILESDIR}/twpol.m4
CONFIGURE_ARGS= --prefix=${PREFIX} --program-transform-name='' --sysconfdir=${TWCFG}
PLIST_SUB+= TWCFG=${TWCFG} TWDB=${TWDB}
PKGPOSTINSTALL= ${WRKDIR}/pkg-postinstall
PKGPOSTDEINSTALL= ${WRKDIR}/pkg-deinstall
SUB_FILES= pkg-deinstall
SUB_LIST= TWCFG=${TWCFG} TWDB=${TWDB}
pre-configure:
@ ${M4} -DFREEBSD_VERSION=`${ECHO_CMD} ${OSREL} | ${CUT} -d. -f1` < ${TWPOL_TXT} > ${WRKSRC}/policy/twpol-FreeBSD.txt
@ ${MV} ${WRKSRC}/src/core/stdcore.h ${WRKSRC}/src/core/stdcore.h.orig
@ ${SED} 's%^# define CONFIG_FILE_ROOT "${TWCFG}"%# define CONFIG_FILE_ROOT "${TWCFG}"%' ${WRKSRC}/src/core/stdcore.h.orig > ${WRKSRC}/src/core/stdcore.h
@ ${MV} ${WRKSRC}/man/man4/twconfig.4 ${WRKSRC}/man/man5/twconfig.5
@ ${MV} ${WRKSRC}/man/man4/twpolicy.4 ${WRKSRC}/man/man5/twpolicy.5
@ ${LN} -s ${WRKSRC}/contrib ${WRKSRC}/install
install-config-files:
@ ${ECHO_CMD} TWPOLICY=${TWPOLICY} >> ${WRKSRC}/installer/install.cfg
@ ${ECHO_CMD} TWSITEKEYDIR=${TWSITEKEYDIR} >> ${WRKSRC}/installer/install.cfg
@ ${ECHO_CMD} TWLOCALKEYDIR=${TWLOCALKEYDIR} >> ${WRKSRC}/installer/install.cfg
@ ${ECHO_CMD} TWDB=${TWDB} >> ${WRKSRC}/installer/install.cfg
@ ${ECHO_CMD} TWREPORT=${TWREPORT} >> ${WRKSRC}/installer/install.cfg
@ ${ECHO_CMD} TWEDITOR=${TWEDITOR} >> ${WRKSRC}/installer/install.cfg
.ifdef TW_SITE_PASS
@ ${ECHO_CMD} TW_SITE_PASS=${TW_SITE_PASS} >> ${WRKSRC}/installer/install.cfg
.endif
.ifdef TW_LOCAL_PASS
@ ${ECHO_CMD} TW_LOCAL_PASS=${TW_LOCAL_PASS} >> ${WRKSRC}/installer/install.cfg
.endif
@ cd ${WRKSRC} && ${LN} -sf installer/install.cfg installer/install.sh .
.ifdef PACKAGE_BUILDING
@ cd ${WRKSRC} && DESTDIR=${STAGEDIR} PREFIX=${PREFIX} TW_CLOBBER=${TW_CLOBBER} DO_NOT_CONFIG="yes" TW_PROMPT="false" ${MAKE_CMD} install-data-hook
.else
.if ${PORT_OPTIONS:MSW_ONLY}
@ cd ${WRKSRC} && DESTDIR=${STAGEDIR} PREFIX=${PREFIX} TW_CLOBBER=${TW_CLOBBER} DO_NOT_CONFIG="yes" TW_PROMPT="false" ${MAKE_CMD} install-data-hook
.else
@ cd ${WRKSRC} && DESTDIR=${STAGEDIR} PREFIX=${PREFIX} TW_CLOBBER=${TW_CLOBBER} TW_PROMPT=${TW_PROMPT} ${MAKE_CMD} install-data-hook
.endif
.endif
make-pkg-install:
@ ${ECHO_CMD} '#!/bin/sh -' > ${PKGPOSTINSTALL}
@ ${ECHO_CMD} '#' >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} "# Generated by make-${PKGPOSTINSTALL} on `date`" >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} '#' >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} 'case $$2 in' >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} 'POST-INSTALL) ;;' >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} '*) exit 0;;' >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} 'esac' >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} PACKAGE_INSTALLER=yes >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} POLICYSRC=/tmp/$$$$.tmp >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} PREFIX="${PREFIX}" >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} DO_NOT_CONFIG=yes >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} TW_CLOBBER="false" >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} TW_PROMPT="false" >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} prefix=${PREFIX} >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} sysconfdir=${TWCFG} >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} path_to_vi="/usr/bin/vi" >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} path_to_sendmail="/usr/sbin/sendmail" >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} BASE_DIR=${PREFIX}/ >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} BIN_DIR=${PREFIX}/sbin >> ${PKGPOSTINSTALL}
.ifdef TW_SITE_PASS
@ ${ECHO_CMD} TW_SITE_PASS=${TW_SITE_PASS} >> ${PKGPOSTINSTALL}
.endif
.ifdef TW_LOCAL_PASS
@ ${ECHO_CMD} TW_LOCAL_PASS=${TW_LOCAL_PASS} >> ${PKGPOSTINSTALL}
.endif
@ ${CAT} ${WRKSRC}/installer/install.cfg >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} ${CAT} "> /tmp/$$$$.tmp <<'EOF'" >> ${PKGPOSTINSTALL}
@ ${M4} -DFREEBSD_VERSION=`${ECHO_CMD} ${OSREL} | ${CUT} -d. -f1` < ${TWPOL_TXT} >> ${PKGPOSTINSTALL}
@ ${ECHO_CMD} EOF >> ${PKGPOSTINSTALL}
@ ${SED} "/^\. /s/^/: /;/^BASE_DIR=/d;s/BIN_DIR=/: BIN_DIR=/;/^POLICYSRC/d" ${WRKSRC}/installer/install.sh >> ${PKGPOSTINSTALL}
create-database:
.ifndef PACKAGE_BUILDING
.if ${PORT_OPTIONS:MDB_BUILD}
.if ${PORT_OPTIONS:MSW_ONLY}
@ ${ECHO} SW_ONLY has been specified, database will not be built.
.else
@ ${MKDIR} ${TWCFG} ${TWPOLICY} ${TWSITEKEYDIR} ${TWLOCALKEYDIR} \
${TWDB} ${TWREPORT}
@ ${ECHO} Creating tripwire database
@ cd ${TWCFG} && ${PREFIX}/sbin/tripwire --init
@ ${ECHO_CMD}
@ ${ECHO} The tripwire database, configuration file and
@ ${ECHO} policy file are signed using the local and site keys,
@ ${ECHO} therefore the authors suggest creating a floppy is not necessary.
.endif
.endif
.endif
post-install: install-config-files create-database make-pkg-install
${INSTALL_DATA} ${WRKSRC}/COPYING ${STAGEDIR}${DOCSDIR}
.include <bsd.port.post.mk>