view Makefile @ 810:a59cc4bea000

fports: Add option "-f" to "fports detail": do not print the status with regard to repositories that do not have the package available
author Franz Glasner <fzglas.hg@dom66.de>
date Wed, 06 Nov 2024 01:17:23 +0100
parents b5b19c62da24
children f95c64c4129f
line wrap: on
line source

# Created by: Franz Glasner <freebsd-dev@dom66.de>

PORTNAME=	local-bsdtools
PORTVERSION=	0.28.2
CATEGORIES=	sysutils
MASTER_SITES=	# none
DISTFILES=	# none

MAINTAINER=	freebsd-dev@dom66.de
COMMENT=	Collection of system management tools for FreeBSD

LICENSE=	BSD3CLAUSE

EXTRACT_DEPENDS=	hg:devel/mercurial
RUN_DEPENDS=		pkg:ports-mgmt/pkg
alldeps_RUN_DEPENDS=	jq>=1.5:textproc/jq \
			tmux>=3:sysutils/tmux

FLAVORS=	default alldeps
FLAVOR?=	${FLAVORS:[1]}

default_PKGNAMESUFFIX=
default_CONFLICTS_INSTALL=	local-bsdtools-alldeps

alldeps_PKGNAMESUFFIX=	-alldeps
.if ${FLAVOR} == alldeps
COMMENT=	Collection of system management tools for FreeBSD (all runtime dependencies)
.endif
alldeps_DESCR=		pkg-descr.alldeps
alldeps_CONFLICTS_INSTALL=	local-bsdtools

#
# We want noarch **and** noabi because we do not have compiled
# binaries and are independent of the major OS version.
#
#NO_ARCH=	yes
PKG_ENV+=	ABI="freebsd:*:*"

WRKSRC=		${WRKDIR}/local-bsdtools

OPTIONS_DEFINE=	DOCS
OPTIONS_SUB=	yes

DOCS_BUILD_DEPENDS=	sphinx-build:textproc/py-sphinx
DOCS_VARS_OFF=		NO_BUILD=yes

USE_RC_SUBR=	fbhyve fwireguard

SUB_LIST=	SIMPLEVERSIONTAG="${SIMPLEVERSIONTAG}" \
		FWIREGUARD_ETCDIR="${FWIREGUARD_ETCDIR}" \
		FBHYVE_ETCDIR="${FBHYVE_ETCDIR}" \
		FBHYVE_RUNDIR="${FBHYVE_RUNDIR}"

PLIST_SUB=	FWIREGUARD_ETCDIR="${FWIREGUARD_ETCDIR}" \
		FBHYVE_ETCDIR="${FBHYVE_ETCDIR}" \
	=	FBHYVE_RUNDIR="${FBHYVE_RUNDIR}"

.include <bsd.port.options.mk>

SRC=		${.CURDIR}

MANPAGES5=	${:!${LS} -1 "${.CURDIR}/docs/man/man5"!}
MANPAGES8=	${:!${LS} -1 "${.CURDIR}/docs/man/man8"!}

HGCANONICALPATH?=	default
HGREVISION=	${:!hg id -R "${SRC}" -i!}
HGDATE=		${:!hg log -R "${SRC}" -r "${HGREVISION:S/+//}" --template '{date|isodatesec}'!}
HGAUTHOR=	${:!hg log -R "${SRC}" -r "${HGREVISION:S/+//}" --template '{author|person}' | ${TR} ' ' '+'!}
HGPATH=		${:!hg --config ui.paginate=never path -R "${SRC}" ${HGCANONICALPATH} || echo "file://\$$\(hg root)"!}
HGPHASE=	${:!hg phase!:[2]}
SIMPLEVERSIONSTR=	v${PKGVERSION} (rv:${HGREVISION})
SIMPLEVERSIONTAG=	${PKGORIGIN} v${PKGVERSION} (rv:${HGREVISION})

FWIREGUARD_ETCDIR?=	"${PREFIX}/etc/fwireguard"

FBHYVE_ETCDIR?=	"${PREFIX}/etc/fbhyve"
FBHYVE_RUNDIR?=	/var/run/fbhyve

do-extract:
	${MKDIR} ${WRKSRC}/bin
	${MKDIR} ${WRKSRC}/sbin
	${CP} Makefile ${WRKSRC}/Makefile
.for _rp in sbin/check-ports sbin/fjail sbin/ftjail sbin/fzfs sbin/fpkg sbin/fports sbin/bsmtp2dma
	${CP} -v ${SRC}/${_rp} ${WRKSRC}/${_rp}
	${SED} -i "" -e "s|@@VERSION@@|${PORTVERSION}|" -e "s|@@ETCDIR@@|${ETCDIR}|" -e "s|@@DATADIR@@|${DATADIR}|" -e "s|@@SIMPLEVERSIONTAG@@|${SIMPLEVERSIONTAG}|" -e "s|@@SIMPLEVERSIONSTR@@|${SIMPLEVERSIONSTR}|" ${WRKSRC}/${_rp}
.endfor
	${MKDIR} ${WRKSRC}/etc/periodic/daily
.for _ef in etc/package-mapping.conf.sample etc/pkgtools.conf.sample etc/bsmtp2dma.conf.sample etc/periodic/daily/800.local-ipv6-refresh etc/periodic/daily/750.local-trim-zfs etc/periodic/daily/720.local-triggered-action
	${CP} -v ${SRC}/${_ef} ${WRKSRC}/${_ef}
	${SED} -i "" -e "s|@@SIMPLEVERSIONTAG@@|${SIMPLEVERSIONTAG}|" ${WRKSRC}/${_ef}
.endfor
	${MKDIR} ${WRKSRC}/share/${PORTNAME}
.for _df in share/local-bsdtools/farray.sh share/local-bsdtools/farray-ext.sh share/local-bsdtools/common.subr share/local-bsdtools/ports.subr
	${CP} -v ${SRC}/${_df} ${WRKSRC}/${_df}
	${SED} -i "" -e "s|@@SIMPLEVERSIONTAG@@|${SIMPLEVERSIONTAG}|" ${WRKSRC}/${_df}
.endfor
	${MKDIR} ${WRKSRC}/share/examples/${PORTNAME}
.for _sf in share/examples/local-bsdtools/freebsd-update-ftjail-template.sh share/examples/local-bsdtools/freebsd-update-ftjail.sh
	${CP} -v ${SRC}/${_sf} ${WRKSRC}/${_sf}
.endfor

post-extract-DOCS-on:
	${MKDIR} ${WRKSRC}/docs
	(${TAR} -C ${.CURDIR}/docs -c --exclude ./_build -f - . | ${TAR} -C ${WRKSRC}/docs -x -f - )
.for _mp in man/man8/local-bsdtools.rst
	${SED} -i "" -e "s|@@SIMPLEVERSIONTAG@@|${SIMPLEVERSIONTAG}|" ${WRKSRC}/docs/${_mp}
	${SED} -i "" -e "s|\\\$$HGid\\\$$|\$$HGid: ${HGPATH}/docs/${_mp} ${HGREVISION} ${HGDATE} ${HGAUTHOR} ${HGPHASE} \$$|" ${WRKSRC}/docs/${_mp}
.endfor

.if ${PORT_OPTIONS:MDOCS}
do-build:
	(cd ${WRKSRC}/docs && sphinx-build -M man . _build)
	(cd ${WRKSRC}/docs && sphinx-build -M html . _build)
.endif

do-install:
.for _rp in sbin/check-ports sbin/fjail sbin/ftjail sbin/fzfs sbin/fpkg sbin/fports sbin/bsmtp2dma
	${INSTALL_SCRIPT} ${WRKSRC}/${_rp} ${STAGEDIR}${PREFIX}/${_rp}
.endfor
	${MKDIR} ${STAGEDIR}${ETCDIR}
.for _ef in package-mapping.conf.sample pkgtools.conf.sample bsmtp2dma.conf.sample
	${INSTALL_DATA} ${WRKSRC}/etc/${_ef} ${STAGEDIR}${ETCDIR}/${_ef}
.endfor
	${MKDIR} ${STAGEDIR}${PREFIX}/etc/periodic/daily
.for _ps in 800.local-ipv6-refresh 750.local-trim-zfs 720.local-triggered-action
	${INSTALL_SCRIPT} ${WRKSRC}/etc/periodic/daily/${_ps} ${STAGEDIR}${PREFIX}/etc/periodic/daily
.endfor
	${MKDIR} ${STAGEDIR}${DATADIR}
.for _df in farray.sh farray-ext.sh common.subr ports.subr
	${INSTALL_DATA} ${WRKSRC}/share/${PORTNAME}/${_df} ${STAGEDIR}${DATADIR}
.endfor
	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
.for _exf in freebsd-update-ftjail-template.sh freebsd-update-ftjail.sh
	${INSTALL_DATA} ${WRKSRC}/share/examples/${PORTNAME}/${_exf} ${STAGEDIR}${EXAMPLESDIR}
.endfor
	${MKDIR} ${STAGEDIR}${FWIREGUARD_ETCDIR}
	${MKDIR} ${STAGEDIR}${FBHYVE_ETCDIR}
	${MKDIR} ${STAGEDIR}${FBHYVE_RUNDIR}

post-install-DOCS-on:
.for _mp in ${MANPAGES5:R}
	${INSTALL_MAN} ${WRKSRC}/docs/_build/man/${_mp}.5 ${STAGEDIR}${PREFIX}/share/man/man5
.endfor
.for _mp in ${MANPAGES8:R}
	${INSTALL_MAN} ${WRKSRC}/docs/_build/man/${_mp}.8 ${STAGEDIR}${PREFIX}/share/man/man8
.endfor

.include <bsd.port.mk>