summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net-irc/unrealircd/unrealircd-4.0.5.ebuild27
1 files changed, 23 insertions, 4 deletions
diff --git a/net-irc/unrealircd/unrealircd-4.0.5.ebuild b/net-irc/unrealircd/unrealircd-4.0.5.ebuild
index ef8330531ec3..b05a9840475b 100644
--- a/net-irc/unrealircd/unrealircd-4.0.5.ebuild
+++ b/net-irc/unrealircd/unrealircd-4.0.5.ebuild
@@ -63,7 +63,7 @@ src_configure() {
--with-tmpdir="${EPREFIX}"/var/lib/${PN}/tmp \
--with-nick-history=2000 \
--with-sendq=3000000 \
- --with-permissions=0600 \
+ --with-permissions=0640 \
--with-fd-setsize=1024 \
--with-system-cares \
--with-system-pcre2 \
@@ -213,10 +213,29 @@ s/"and another one";/"'"${keys[2]}"'";/
eend $?
fi
+ # Precreate ircd.tune and ircd.log with the correct ownership to
+ # protect people from themselves when they run unrealircd as root
+ # before trying the initscripts. #560790
+ local f
+ for f in "${EROOT}"var/{lib/${PN}/ircd.tune,log/${PN}/ircd.log}; do
+ [[ -e ${f} ]] && continue
+ ebegin "Precreating ${f} to set ownership"
+ (
+ umask 0037
+ # ircd.tune must be seeded with content instead of being empty.
+ if [[ ${f} == *ircd.tune ]]; then
+ echo 0 > "${f}"
+ echo 0 >> "${f}"
+ fi
+ touch "${f}"
+ )
+ chown unrealircd "${f}"
+ eend $?
+ done
+
elog "UnrealIRCd will not run until you've set up /etc/unrealircd/unrealircd.conf"
elog
elog "You can also configure ${PN} start at boot with rc-update(1)."
- elog "Note that it is recommended to run unrealircd as an"
- elog "unprivileged user (the provided init.d script does this"
- elog "for you). Running as root will break file permissions."
+ elog "It is recommended to run unrealircd as an unprivileged user."
+ elog "The provided init.d script does this for you."
}