freebsd-dev/etc/Makefile
Tobias C. Berner 62a149bf62 Add new rc: machine_id to generate /etc/machine-id
This new default-enabled rc will generate a /etc/machine-id file if it
does not exist, and pre-fill it with a newly generated UUID of version 4
[2].

The file is generated in /var/db/machine-id and symlinked to
/etc/machine-id to allow for read-only root partitions.

This file is amongst other things used by libraries like GLib.

Bump FreeBSD version 1400076 to be able to easily add support for older
version of FreeBSD via a package.

[1] Linux machine-id(5): https://www.man7.org/linux/man-pages/man5/machine-id.5.html
[2] f176fe8e7f

Approved by:		bapt
MFC after:		1 week
Differential Revision:	https://reviews.freebsd.org/D37722
2022-12-23 17:33:19 +01:00

182 lines
5.1 KiB
Makefile

# from: @(#)Makefile 5.11 (Berkeley) 5/21/91
# $FreeBSD$
.include <src.opts.mk>
.include <src.tools.mk>
FILESGROUPS= FILES
NLS_ALIASES= POSIX C \
en_US.US_ASCII C
# No need as it is empty and just causes rebuilds since this file does so much.
UPDATE_DEPENDFILE= no
SUBDIR+=termcap
.if ${MK_SENDMAIL} != "no"
SUBDIR+=sendmail
.endif
# NB: keep these sorted by MK_* knobs
ETCMAIL=aliases
.if ${MK_SENDMAIL} != "no"
ETCMAIL+=Makefile README access.sample virtusertable.sample \
mailertable.sample
.endif
# Special top level files for FreeBSD
FREEBSD=COPYRIGHT
# Sanitize DESTDIR
DESTDIR:= ${DESTDIR:C://*:/:g}
afterinstall:
.if ${MK_MAN} != "no"
${_+_}cd ${SRCTOP}/share/man; ${MAKE} makedb
.endif
distribute:
# Avoid installing tests here; "make distribution" will do this and
# correctly place them in the right location.
${_+_}cd ${.CURDIR} ; ${MAKE} MK_TESTS=no install \
DESTDIR=${DISTDIR}/${DISTRIBUTION}
${_+_}cd ${.CURDIR} ; ${MAKE} distribution DESTDIR=${DISTDIR}/${DISTRIBUTION}
.include <bsd.endian.mk>
.if defined(NO_ROOT)
METALOG.add?= cat -l >> ${METALOG}
.endif
distribution:
.if !defined(DESTDIR)
@echo "set DESTDIR before running \"make ${.TARGET}\""
@false
.endif
${_+_}cd ${.CURDIR}/gss; ${MAKE} install
${_+_}cd ${.CURDIR}/mtree; ${MAKE} install
${_+_}cd ${SRCTOP}/share/termcap; ${MAKE} etc-termcap
${_+_}cd ${SRCTOP}/usr.sbin/rmt; ${MAKE} etc-rmt
${INSTALL_SYMLINK} -T "package=runtime" ../var/run/os-release \
${DESTDIR}/etc/os-release
${INSTALL_SYMLINK} -T "package=runtime" ../var/db/machine-id \
${DESTDIR}/etc/machine-id
.if ${MK_UNBOUND} != "no"
if [ ! -e ${DESTDIR}/etc/unbound ]; then \
${INSTALL_SYMLINK} -T "package=unbound" \
../var/unbound ${DESTDIR}/etc/unbound; \
fi
.endif
.if ${MK_SENDMAIL} != "no"
${_+_}cd ${.CURDIR}/sendmail; ${MAKE} distribution
.endif
.if ${MK_KERBEROS} != "no"
cd ${.CURDIR}/root; \
${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
-T "package=runtime" \
dot.k5login ${DESTDIR}/root/.k5login;
.endif
.if ${MK_MAIL} != "no"
cd ${.CURDIR}/mail; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
-T "package=sendmail" ${ETCMAIL} ${DESTDIR}/etc/mail
if [ -d ${DESTDIR}/etc/mail -a -f ${DESTDIR}/etc/mail/aliases -a \
! -f ${DESTDIR}/etc/aliases ]; then \
${INSTALL_SYMLINK} -T "package=sendmail" \
mail/aliases ${DESTDIR}/etc/aliases; \
fi
.endif
.if ${MK_LOCATE} != "no"
${INSTALL} -o nobody -g ${BINGRP} -m 644 -T "package=runtime"\
/dev/null ${DESTDIR}/var/db/locate.database
.endif
cd ${.CURDIR}/..; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
-T "package=runtime" ${FREEBSD} ${DESTDIR}/
.if ${MK_BOOT} != "no"
.if exists(${SRCTOP}/sys/${MACHINE}/conf/GENERIC.hints)
${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
-T "package=bootloader,config" \
${SRCTOP}/sys/${MACHINE}/conf/GENERIC.hints \
${DESTDIR}/boot/device.hints
.endif
.endif
MTREES= mtree/BSD.root.dist / \
mtree/BSD.var.dist /var \
mtree/BSD.usr.dist /usr \
mtree/BSD.include.dist /usr/include \
mtree/BSD.debug.dist /usr/lib
.if ${MK_LIB32} != "no"
MTREES+= mtree/BSD.lib32.dist /usr
MTREES+= mtree/BSD.lib32.dist /usr/lib/debug/usr
.endif
.if ${MK_TESTS} != "no"
MTREES+= mtree/BSD.tests.dist ${TESTSBASE}
MTREES+= mtree/BSD.tests.dist /usr/lib/debug/${TESTSBASE}
.endif
.if ${MK_SENDMAIL} != "no"
MTREES+= mtree/BSD.sendmail.dist /
.endif
.for mtree in ${LOCAL_MTREE}
MTREES+= ../${mtree} /
.endfor
# Clean up some directories that where mistakenly created as files that
# should not have been as part of the nvi update in r281994.
# This should be removed after 11.0-RELEASE.
DISTRIB_CLEANUP_SHARE_FILES= ${SHAREDIR}/doc/usd/10.exref ${SHAREDIR}/doc/usd/11.edit
DISTRIB_CLEANUP_SHARE_FILES+= ${SHAREDIR}/doc/usd/12.vi ${SHAREDIR}/doc/usd/13.viref
distrib-cleanup: .PHONY
for file in ${DISTRIB_CLEANUP_SHARE_FILES}; do \
if [ -f ${DESTDIR}/$${file} ]; then \
rm -f ${DESTDIR}/$${file}; \
fi; \
done
distrib-dirs: ${MTREES:N/*} distrib-cleanup .PHONY
.for _m _d in ${MTREES}
@m=${.CURDIR}/${_m}; \
d=${DESTDIR}${_d}; \
test -d $$d || mkdir -p $$d; \
${ECHO} ${MTREE_CMD} -deU ${MTREE_FSCHG} \
${MTREE_FOLLOWS_SYMLINKS} -f $$m -p $$d; \
${MTREE_FILTER} $$m | \
${MTREE_CMD} -deU ${MTREE_FSCHG} ${MTREE_FOLLOWS_SYMLINKS} \
-p $$d
.endfor
.if defined(NO_ROOT)
.for _m _d in ${MTREES}
@m=${.CURDIR}/${_m}; \
d=${_d}; \
test "$$d" = "/" && d=""; \
d=${DISTBASE}$$d; \
test -d ${DESTDIR}/$$d || mkdir -p ${DESTDIR}/$$d; \
${ECHO} "${MTREE_CMD:N-W} -C -f $$m -K all | " \
"sed s#^\.#.$$d# | ${METALOG.add}" ; \
${MTREE_FILTER} $$m | \
${MTREE_CMD:N-W} -C -K all | sed s#^\.#.$$d# | \
${METALOG.add}
.endfor
.endif
.if ${MK_NLS} != "no"
.for alias nls in ${NLS_ALIASES}
${INSTALL_SYMLINK} -T "package=utilities" \
"${nls}" "${DESTDIR}${SHAREDIR}/nls/${alias}"
.endfor
.endif
.include <bsd.prog.mk>
.if ${MK_INSTALL_AS_USER} == "yes" && ${_uid} != 0
MTREE_FILTER= sed -e 's,\([gu]\)name=,\1id=,g' \
-e 's,\(uid=\)[^ ]* ,\1${_uid} ,' \
-e 's,\(gid=\)[^ ]* ,\1${_gid} ,' \
-e 's,\(uid=\)[^ ]*$$,\1${_uid},' \
-e 's,\(gid=\)[^ ]*$$,\1${_gid},'
.else
MTREE_FILTER= cat
.if !defined(NO_FSCHG)
MTREE_FSCHG= -i
.endif
.endif