annotate Makefile @ 437:59622f32279d

Add two examples of how to use ftjail and friends to (freebsd-)update a thin jail. 1. Update the thin jail template 2. Update the thin jails These scripts are not yet polished. They are added as used for some times when managing jails.
author Franz Glasner <fzglas.hg@dom66.de>
date Wed, 01 May 2024 20:58:54 +0200
parents 4da3377f4139
children b5e45ecd4032
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
1 # Created by: Franz Glasner <freebsd-dev@dom66.de>
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
2
13
f5f04faa9acf Renamed the package to the more generic local-bsdtools
Franz Glasner <hg@dom66.de>
parents: 2
diff changeset
3 PORTNAME= local-bsdtools
434
4da3377f4139 +++++ v0.25
Franz Glasner <fzglas.hg@dom66.de>
parents: 415
diff changeset
4 PORTVERSION= 0.25
13
f5f04faa9acf Renamed the package to the more generic local-bsdtools
Franz Glasner <hg@dom66.de>
parents: 2
diff changeset
5 CATEGORIES= sysutils
2
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
6 MASTER_SITES= # none
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
7 DISTFILES= # none
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
8
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
9 MAINTAINER= freebsd-dev@dom66.de
13
f5f04faa9acf Renamed the package to the more generic local-bsdtools
Franz Glasner <hg@dom66.de>
parents: 2
diff changeset
10 COMMENT= Collection of private system management tools
2
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
11
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
12 LICENSE= BSD3CLAUSE
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
13
275
5bb4c4044e48 FIX: Mercurial is a dependency for EXTRACT and not for build
Franz Glasner <fzglas.hg@dom66.de>
parents: 271
diff changeset
14 EXTRACT_DEPENDS= hg:devel/mercurial
5bb4c4044e48 FIX: Mercurial is a dependency for EXTRACT and not for build
Franz Glasner <fzglas.hg@dom66.de>
parents: 271
diff changeset
15 RUN_DEPENDS= pkg:ports-mgmt/pkg
28
735044a0a8c0 Build depends on Mercurial now
Franz Glasner <hg@dom66.de>
parents: 27
diff changeset
16
2
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
17 NO_ARCH= yes
13
f5f04faa9acf Renamed the package to the more generic local-bsdtools
Franz Glasner <hg@dom66.de>
parents: 2
diff changeset
18 WRKSRC= ${WRKDIR}/local-bsdtools
2
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
19
281
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
20 OPTIONS_DEFINE= DOCS
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
21 OPTIONS_SUB= yes
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
22
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
23 DOCS_BUILD_DEPENDS= sphinx-build:textproc/py-sphinx
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
24 DOCS_VARS_OFF= NO_BUILD=yes
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
25
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
26 .include <bsd.port.options.mk>
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
27
2
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
28 SRC= ${.CURDIR}
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
29
404
6c0c9159744d Move the manual pages for the periodic scripts into man secition 5
Franz Glasner <fzglas.hg@dom66.de>
parents: 396
diff changeset
30 MANPAGES5= ${:!${LS} -1 "${.CURDIR}/docs/man/man5"!}
294
c2e2fed957ed - Compute a dynmic list of manual pages
Franz Glasner <fzglas.hg@dom66.de>
parents: 293
diff changeset
31 MANPAGES8= ${:!${LS} -1 "${.CURDIR}/docs/man/man8"!}
c2e2fed957ed - Compute a dynmic list of manual pages
Franz Glasner <fzglas.hg@dom66.de>
parents: 293
diff changeset
32
43
22b7c9e08b13 Make the name of the canonical Mercurial path configurable.
Franz Glasner <hg@dom66.de>
parents: 41
diff changeset
33 HGCANONICALPATH?= default
27
a105a7fc801f Remove early evaluation of Mercurial data because clean should work w/o Mercurial
Franz Glasner <hg@dom66.de>
parents: 26
diff changeset
34 HGREVISION= ${:!hg id -R "${SRC}" -q!}
a105a7fc801f Remove early evaluation of Mercurial data because clean should work w/o Mercurial
Franz Glasner <hg@dom66.de>
parents: 26
diff changeset
35 HGDATE= ${:!hg log -R "${SRC}" -r "${HGREVISION:S/+//}" --template '{date|isodatesec}'!}
40
bc2df2421435 Make the $Author$ keyword a single word by replacing space characters with '+' characters.
Franz Glasner <hg@dom66.de>
parents: 38
diff changeset
36 HGAUTHOR= ${:!hg log -R "${SRC}" -r "${HGREVISION:S/+//}" --template '{author|person}' | ${TR} ' ' '+'!}
44
094324510aa2 Got the shell $(<cmd>) syntax to work within make ${:!...!} variables.
Franz Glasner <hg@dom66.de>
parents: 43
diff changeset
37 HGPATH= ${:!hg --config ui.paginate=never path -R "${SRC}" ${HGCANONICALPATH} || echo "file://\$$\(hg root)"!}
67
259e2a4b4ca6 Enhance keyword expansion: HGid and Header are now provided.
Franz Glasner <hg@dom66.de>
parents: 66
diff changeset
38 HGPHASE= ${:!hg phase!:[2]}
386
84d2735fe7f6 Simplified version tagging a lot: it is also faster now.
Franz Glasner <fzglas.hg@dom66.de>
parents: 385
diff changeset
39 SIMPLEVERSIONSTR= v${PKGVERSION} (rv:${HGREVISION})
84d2735fe7f6 Simplified version tagging a lot: it is also faster now.
Franz Glasner <fzglas.hg@dom66.de>
parents: 385
diff changeset
40 SIMPLEVERSIONTAG= ${PKGORIGIN} v${PKGVERSION} (rv:${HGREVISION})
84d2735fe7f6 Simplified version tagging a lot: it is also faster now.
Franz Glasner <fzglas.hg@dom66.de>
parents: 385
diff changeset
41 VERSIONTAG= ${PKGORIGIN} v${PKGVERSION} (rv:${HGREVISION} with repo at ${HGPATH})
16
08fc189baf67 Put some keyword expansion into the port.
Franz Glasner <hg@dom66.de>
parents: 13
diff changeset
42
2
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
43 do-extract:
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
44 ${MKDIR} ${WRKSRC}/bin
124
47c7223bea76 Move bsmtp2dma to sbin.
Franz Glasner <fzglas.hg@dom66.de>
parents: 115
diff changeset
45 ${MKDIR} ${WRKSRC}/sbin
291
f2b4edf5f6a3 Docs: read the version from the Makefile
Franz Glasner <fzglas.hg@dom66.de>
parents: 290
diff changeset
46 ${CP} Makefile ${WRKSRC}/Makefile
276
3c24b07240f2 Move the implementation of "mount" and "umount" into the new tool fzfs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 275
diff changeset
47 .for _rp in sbin/check-ports sbin/fjail sbin/ftjail sbin/fzfs sbin/fpkg sbin/bsmtp2dma
25
bba3470217c4 Refactor: loops with relative paths instead of the basenames
Franz Glasner <hg@dom66.de>
parents: 21
diff changeset
48 ${CP} -v ${SRC}/${_rp} ${WRKSRC}/${_rp}
bba3470217c4 Refactor: loops with relative paths instead of the basenames
Franz Glasner <hg@dom66.de>
parents: 21
diff changeset
49 ${SED} -i "" -e "s|@@VERSION@@|${PORTVERSION}|" ${WRKSRC}/${_rp}
66
1f3a64254c9c Replace @@ETCDIR@@ and @@INDEXFILE@@ dynamically at package build time
Franz Glasner <hg@dom66.de>
parents: 65
diff changeset
50 ${SED} -i "" -e "s|@@ETCDIR@@|${ETCDIR}|" ${WRKSRC}/${_rp}
386
84d2735fe7f6 Simplified version tagging a lot: it is also faster now.
Franz Glasner <fzglas.hg@dom66.de>
parents: 385
diff changeset
51 ${SED} -i "" -e "s|@@VERSIONTAG@@|${VERSIONTAG}|" ${WRKSRC}/${_rp}
84d2735fe7f6 Simplified version tagging a lot: it is also faster now.
Franz Glasner <fzglas.hg@dom66.de>
parents: 385
diff changeset
52 ${SED} -i "" -e "s|@@SIMPLEVERSIONTAG@@|${SIMPLEVERSIONTAG}|" ${WRKSRC}/${_rp}
84d2735fe7f6 Simplified version tagging a lot: it is also faster now.
Franz Glasner <fzglas.hg@dom66.de>
parents: 385
diff changeset
53 ${SED} -i "" -e "s|@@SIMPLEVERSIONSTR@@|${SIMPLEVERSIONSTR}|" ${WRKSRC}/${_rp}
16
08fc189baf67 Put some keyword expansion into the port.
Franz Glasner <hg@dom66.de>
parents: 13
diff changeset
54 .endfor
186
39e5b947a28e Create a periodic script to keep the IPv6 routing working.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
55 ${MKDIR} ${WRKSRC}/etc/periodic/daily
391
8b1740deedbb Refactor: Renamed the weekly 800.local-certbot-post-deploy to a daily 720.local-triggered-action.
Franz Glasner <fzglas.hg@dom66.de>
parents: 388
diff changeset
56 .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
65
29ede570c816 Adjusted the package's Makefile for new configuration file
Franz Glasner <hg@dom66.de>
parents: 57
diff changeset
57 ${CP} -v ${SRC}/${_ef} ${WRKSRC}/${_ef}
386
84d2735fe7f6 Simplified version tagging a lot: it is also faster now.
Franz Glasner <fzglas.hg@dom66.de>
parents: 385
diff changeset
58 ${SED} -i "" -e "s|@@SIMPLEVERSIONTAG@@|${SIMPLEVERSIONTAG}|" ${WRKSRC}/${_ef}
65
29ede570c816 Adjusted the package's Makefile for new configuration file
Franz Glasner <hg@dom66.de>
parents: 57
diff changeset
59 .endfor
2
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
60
281
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
61 post-extract-DOCS-on:
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
62 ${MKDIR} ${WRKSRC}/docs
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
63 (${TAR} -C ${.CURDIR}/docs -c --exclude ./_build -f - . | ${TAR} -C ${WRKSRC}/docs -x -f - )
385
d058f55fffea Expand some keyword in the mail manual page also
Franz Glasner <fzglas.hg@dom66.de>
parents: 382
diff changeset
64 .for _mp in man/man8/local-bsdtools.rst
386
84d2735fe7f6 Simplified version tagging a lot: it is also faster now.
Franz Glasner <fzglas.hg@dom66.de>
parents: 385
diff changeset
65 ${SED} -i "" -e "s|@@SIMPLEVERSIONTAG@@|${SIMPLEVERSIONTAG}|" ${WRKSRC}/docs/${_mp}
385
d058f55fffea Expand some keyword in the mail manual page also
Franz Glasner <fzglas.hg@dom66.de>
parents: 382
diff changeset
66 ${SED} -i "" -e "s|\\\$$HGid\\\$$|\$$HGid: ${HGPATH}/docs/${_mp} ${HGREVISION} ${HGDATE} ${HGAUTHOR} ${HGPHASE} \$$|" ${WRKSRC}/docs/${_mp}
d058f55fffea Expand some keyword in the mail manual page also
Franz Glasner <fzglas.hg@dom66.de>
parents: 382
diff changeset
67 .endfor
281
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
68
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
69 .if ${PORT_OPTIONS:MDOCS}
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
70 do-build:
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
71 (cd ${WRKSRC}/docs && sphinx-build -M man . _build)
289
e6ccee6a7144 Also build the HTML documentation.
Franz Glasner <fzglas.hg@dom66.de>
parents: 284
diff changeset
72 (cd ${WRKSRC}/docs && sphinx-build -M html . _build)
281
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
73 .endif
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
74
2
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
75 do-install:
276
3c24b07240f2 Move the implementation of "mount" and "umount" into the new tool fzfs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 275
diff changeset
76 .for _rp in sbin/check-ports sbin/fjail sbin/ftjail sbin/fzfs sbin/fpkg sbin/bsmtp2dma
25
bba3470217c4 Refactor: loops with relative paths instead of the basenames
Franz Glasner <hg@dom66.de>
parents: 21
diff changeset
77 ${INSTALL_SCRIPT} ${WRKSRC}/${_rp} ${STAGEDIR}${PREFIX}/${_rp}
bba3470217c4 Refactor: loops with relative paths instead of the basenames
Franz Glasner <hg@dom66.de>
parents: 21
diff changeset
78 .endfor
65
29ede570c816 Adjusted the package's Makefile for new configuration file
Franz Glasner <hg@dom66.de>
parents: 57
diff changeset
79 ${MKDIR} ${STAGEDIR}${ETCDIR}
131
993fecdf2a70 Rename etc/tools.conf to etc/pkgtools.conf.
Franz Glasner <fzglas.hg@dom66.de>
parents: 128
diff changeset
80 .for _ef in package-mapping.conf.sample pkgtools.conf.sample bsmtp2dma.conf.sample
65
29ede570c816 Adjusted the package's Makefile for new configuration file
Franz Glasner <hg@dom66.de>
parents: 57
diff changeset
81 ${INSTALL_DATA} ${WRKSRC}/etc/${_ef} ${STAGEDIR}${ETCDIR}/${_ef}
29ede570c816 Adjusted the package's Makefile for new configuration file
Franz Glasner <hg@dom66.de>
parents: 57
diff changeset
82 .endfor
186
39e5b947a28e Create a periodic script to keep the IPv6 routing working.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
83 ${MKDIR} ${STAGEDIR}${PREFIX}/etc/periodic/daily
391
8b1740deedbb Refactor: Renamed the weekly 800.local-certbot-post-deploy to a daily 720.local-triggered-action.
Franz Glasner <fzglas.hg@dom66.de>
parents: 388
diff changeset
84 .for _ps in 800.local-ipv6-refresh 750.local-trim-zfs 720.local-triggered-action
186
39e5b947a28e Create a periodic script to keep the IPv6 routing working.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
85 ${INSTALL_SCRIPT} ${WRKSRC}/etc/periodic/daily/${_ps} ${STAGEDIR}${PREFIX}/etc/periodic/daily
39e5b947a28e Create a periodic script to keep the IPv6 routing working.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
86 .endfor
39e5b947a28e Create a periodic script to keep the IPv6 routing working.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
87
281
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
88 post-install-DOCS-on:
404
6c0c9159744d Move the manual pages for the periodic scripts into man secition 5
Franz Glasner <fzglas.hg@dom66.de>
parents: 396
diff changeset
89 .for _mp in ${MANPAGES5:R}
6c0c9159744d Move the manual pages for the periodic scripts into man secition 5
Franz Glasner <fzglas.hg@dom66.de>
parents: 396
diff changeset
90 ${INSTALL_DATA} ${WRKSRC}/docs/_build/man/${_mp}.5 ${STAGEDIR}${PREFIX}/man/man5/${_mp}.5
6c0c9159744d Move the manual pages for the periodic scripts into man secition 5
Franz Glasner <fzglas.hg@dom66.de>
parents: 396
diff changeset
91 .endfor
294
c2e2fed957ed - Compute a dynmic list of manual pages
Franz Glasner <fzglas.hg@dom66.de>
parents: 293
diff changeset
92 .for _mp in ${MANPAGES8:R}
312
9167ea8a264d FIX: Do not use LOCALBASE to install files into but use PREFIX.
Franz Glasner <fzglas.hg@dom66.de>
parents: 309
diff changeset
93 ${INSTALL_DATA} ${WRKSRC}/docs/_build/man/${_mp}.8 ${STAGEDIR}${PREFIX}/man/man8/${_mp}.8
283
1fc3b04b39fa Build and package manual pages for fzfs, fzfs-mount and fzfs-umount.
Franz Glasner <fzglas.hg@dom66.de>
parents: 281
diff changeset
94 .endfor
281
490aed463971 Implement a DOCS make option to build manual pages.
Franz Glasner <fzglas.hg@dom66.de>
parents: 276
diff changeset
95
2
8781814174df Files to make a FreeBSD binary package for the tool
Franz Glasner <hg@dom66.de>
parents:
diff changeset
96 .include <bsd.port.mk>