diff --git a/media-sound/teamspeak-server-bin/files/teamspeak-tsdns-server.rc b/media-sound/teamspeak-server-bin/files/teamspeak-tsdns-server.rc index 9d18503..2a450d7 100644 --- a/media-sound/teamspeak-server-bin/files/teamspeak-tsdns-server.rc +++ b/media-sound/teamspeak-server-bin/files/teamspeak-tsdns-server.rc @@ -13,7 +13,7 @@ start() { start-stop-daemon --start --quiet --background \ --pidfile "/var/run/teamspeak3-server/tsdns.pid" --make-pidfile \ --user "teamspeak3" --chdir "/opt/teamspeak3-server/tsdns" \ - --exec "/opt/teamspeak3-server/tsdns/tsdnsserver_linux" + --exec "/usr/sbin/tsdnsserver" eend $? } diff --git a/media-sound/teamspeak-server-bin/files/tsdnsserver b/media-sound/teamspeak-server-bin/files/tsdnsserver new file mode 100644 index 0000000..03cfdde --- /dev/null +++ b/media-sound/teamspeak-server-bin/files/tsdnsserver @@ -0,0 +1,10 @@ +#! /bin/bash + +BASEDIR="/opt/teamspeak3-server" + +export LD_LIBRARY_PATH="${BASEDIR}${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}" + +# work around DT_RPATH (.) security issue by chdir'ing into expected $LD_LIBRARY_PATH +cd "${BASEDIR}" + +exec "${BASEDIR}/sbin/tsdnsserver" $* diff --git a/media-sound/teamspeak-server-bin/teamspeak-server-bin-3.0.8.ebuild b/media-sound/teamspeak-server-bin/teamspeak-server-bin-3.0.8.ebuild index ee61db6..32f71c7 100644 --- a/media-sound/teamspeak-server-bin/teamspeak-server-bin-3.0.8.ebuild +++ b/media-sound/teamspeak-server-bin/teamspeak-server-bin-3.0.8.ebuild @@ -46,6 +46,7 @@ src_install() { exeinto /usr/sbin doexe "${FILESDIR}"/ts3server + use tsdns && doexe "${FILESDIR}"/tsdnsserver exeinto ${opt_dir} doexe *.sh @@ -75,7 +76,7 @@ src_install() { # Install the init script and systemd unit. newinitd "${FILESDIR}"/${PN}.rc teamspeak3-server - newinitd "${FILESDIR}/teamspeak-tsdns-server.rc" teamspeak3-tsdns-server + use tsdns && newinitd "${FILESDIR}/teamspeak-tsdns-server.rc" teamspeak3-tsdns-server systemd_dounit "${FILESDIR}"/systemd/teamspeak3.service systemd_dotmpfilesd "${FILESDIR}"/systemd/teamspeak3.conf