view Makefile @ 649:4ee9a8042f4a

common.subr: _get_jail_from_path() now just returns when the jail is dying. But it prints the name of the jail if it is yet dying. Real error reporting must not consistently be done in the caller.
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 27 Sep 2024 21:21:34 +0200
parents 330ebeb57515
children 83e6237350e4
line wrap: on
line source

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

PORTNAME=	local-bsdtools
PORTVERSION=	0.27
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

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/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/common.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/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 common.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>