summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorLexi Winter <ivy@FreeBSD.org>2025-10-02 02:10:28 +0100
committerLexi Winter <ivy@FreeBSD.org>2025-10-02 02:37:35 +0100
commit09cd3decf0fae4b769b04c1e900ed5935c40957e (patch)
tree9f4069cb5973cf0e6aae16aa49106a13d51dda76 /etc
parent213170eb956fa7eec93c2ab4159d6ed68e8e1b1d (diff)
etc, ypserv: Fix symlink creation for pkgbase
The Makefile logic for /etc/aliases, /var/yp/Makefile and /etc/unbound tries to avoid creating the symlink if it already exists in the target, but this breaks with pkgbase since the symlink won't be installed (and therefore won't be added to METALOG) if building with an existing worldstage, meaning it's missing from the generated package. Change the logic to forcibly install the symlink if NO_ROOT is defined, but keep the existing logic for non-package builds to avoid trashing the user's custom symlinks on non-pkgbase installworld. MFC after: 3 seconds Reported by: cperciva Reviewed by: cperciva, emaste Sponsored by: https://www.patreon.com/bsdivy Differential Revision: https://reviews.freebsd.org/D52834
Diffstat (limited to 'etc')
-rw-r--r--etc/Makefile23
1 files changed, 15 insertions, 8 deletions
diff --git a/etc/Makefile b/etc/Makefile
index ab799b2f6c80..93d4b489ec7d 100644
--- a/etc/Makefile
+++ b/etc/Makefile
@@ -64,9 +64,12 @@ distribution:
${INSTALL_SYMLINK} -T "package=runtime" ../var/run/os-release \
${DESTDIR}/etc/os-release
.if ${MK_UNBOUND} != "no"
- if [ ! -e ${DESTDIR}/etc/unbound ]; then \
- ${INSTALL_SYMLINK} -T "package=unbound" \
- ../var/unbound ${DESTDIR}/etc/unbound; \
+# If NO_ROOT is defined, we are doing a stage install and always need to
+# install the /etc/unbound symlink, otherwise, don't overwrite the user's
+# existing symlink.
+ if [ "${NO_ROOT:Dtrue}" = true -o ! -e ${DESTDIR}/etc/unbound ]; then \
+ ${INSTALL_SYMLINK} -Tpackage=unbound ../var/unbound \
+ ${DESTDIR}/etc/unbound; \
fi
.endif
.if ${MK_SENDMAIL} != "no"
@@ -82,12 +85,16 @@ distribution:
.if ${MK_MAIL} != "no"
cd ${.CURDIR}/mail; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
-T "package=runtime,config" ${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=runtime" \
- mail/aliases ${DESTDIR}/etc/aliases; \
+# If NO_ROOT is defined, we are doing a stage install and always need to
+# install the /etc/aliases symlink, otherwise, don't overwrite the user's
+# existing symlink.
+ if [ "${NO_ROOT:Dtrue}" = true -o \( -f ${DESTDIR}/etc/mail/aliases -a \
+ ! -f ${DESTDIR}/etc/aliases \) ]; then \
+ ${INSTALL_SYMLINK} -Tpackage=runtime mail/aliases \
+ ${DESTDIR}/etc/aliases; \
fi
-.endif
+.endif # ${MK_MAIL} != "no"
+
.if ${MK_SENDMAIL} != "no"
cd ${.CURDIR}/mail; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
-T "package=sendmail" ${ETCMAIL_SENDMAIL} ${DESTDIR}/etc/mail