We have moved to Git. This repository is only provided for compatibility with old installations. Learn how to migrate your installation here.

changeset 95:ae751affb613

reworked init and config scripts for emby server as well as location of program files
author gsnerf <gsnerf@gsnerf.de>
date Sun, 12 Apr 2015 18:27:31 +0200
parents c822d78a4b9e
children 425573eab5cd
files media-tv/emby-server/Manifest media-tv/emby-server/emby-server-3.0.5572.0-r2.ebuild media-tv/emby-server/files/emby-server.conf media-tv/emby-server/files/emby-server.init_2
diffstat 4 files changed, 155 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/media-tv/emby-server/Manifest	Sun Apr 12 14:37:29 2015 +0200
+++ b/media-tv/emby-server/Manifest	Sun Apr 12 18:27:31 2015 +0200
@@ -1,5 +1,8 @@
+AUX emby-server.conf 322 SHA256 e830272092f843f91c370bb6a929247af92b211f735a831d20adaad611738612 SHA512 d260f1f6de4af9110e94831b84d756f042ac140fc96640fff06cdaebf4974685f712380afd0cb819f60bcc02bb38c664afcbd6989b65e487494f99bb9a225ac8 WHIRLPOOL eeb0819813a346d67899271f7ff8aa5401d14528d4866025b0cf030c3e67da73609c655e6cd52823098aeb8474896aff6cb43335925e3c6206ffaaf951c81de1
+AUX emby-server.init_2 1033 SHA256 4bb0fe86afa09e1ed65b47f23b8b001f4ecb9da6e0a2c26b64fd492b1fa0f722 SHA512 52ec07f40109e574818f2417e5e9593c5e8890a94aab5e88c4cb8d0c599d4825d167cc5adb57a6dfe657050dffee2e8f329c7cbef1aa653d84bfbada8080be16 WHIRLPOOL 0981b7a6c1a0cf2d0e4cad6253975a8e77b1b70e773fe54fee93525d8e8f14e8c8f8c4a26f212a836c69e19fb077b20f43ea391bd6de520ff52fc4165afbbd35
 AUX initd_1 1085 SHA256 bb18bb92069d149d817b1253617c42e820dcbfdb6f9bf6cbbe5428b89904e2d7 SHA512 d842dfb42c926b0be11d950b71ba91fd56906cfda018d4be401da4aed509e1c3fa9fb0c8516d053a3de29f50651e81420341fd3e032131ae4deb5b0f735aa5ec WHIRLPOOL 8c3a3b4a2ba8ac1db26afed4a936712ff45704be0bac7ee1a4ca67d32b2b5f370ff0b059686e92b0ff3a76895a48510819d7bb35270bfdb1c79b95bcf125a7aa
 DIST 3.0.5572.0.tar.gz 55425944 SHA256 2c9a58469092e6d46168b9c882867644966345ef30e8cc198ea4f0e9a6728662 SHA512 77b038e2d6a0c71891fb79c5b0d5246d8ac13c619c5338e059f015625fcf08b6f87be055c95932abb8be55ee16ace8582ec881289e15219858a92ae0c9b10c43 WHIRLPOOL a16f7bd9d1f1267944a3ca2f5d19337301a3523cfc1099acccd15ba9777b477f65c9e417e4c6d025310291eb2a0b16fca912e2afda87049b16b49f8a4c9c70ac
 EBUILD emby-server-3.0.5572.0-r1.ebuild 3248 SHA256 ce1e4839154a5f3d28ac195ff057b28e41167960dff400f8e64c94f5f59e0b76 SHA512 66c71f47f4ea3a6d0ae5ed6ef51186e87ea5ec245f027006701bb862cd2b634e135b6de09fa98f9143b2ed8535bf169b8ebd82793f450247a5c2cac2253e6fb5 WHIRLPOOL 5e667fe917dc2e05c6d4b3acaeff2eebc20459a32f78597d4b59cb9403306d206ca1a7dfbf9c6279c412acfdba81be4efbc08dee263f6e2493df836e143b917e
+EBUILD emby-server-3.0.5572.0-r2.ebuild 3962 SHA256 454b4d0807ad75f3507c424eedc6fe3accfcaa91b0ae640fb8151add5857699a SHA512 7000759f30a80e6947c8e985e44803d99eddd54a719a1a6928039ffd03258997108014fda4314192b54282bac8efb13e99d34404db420e42ff2e97fc8c54acc3 WHIRLPOOL a1ea56ab84b26320af5880f1ea2058a158ea37371bd57aee6349c74c636acdf71f6441c3c1440e8012c3728071296b483d67598dc6a5123f2b14ca366487df4e
 EBUILD emby-server-3.0.5572.0.ebuild 2909 SHA256 72a45277fbbca7c20813af53f5ac72225e592952cd4fb0bfb128946cc87e2d2b SHA512 1393f63d757e1be38e3a88a28da9785e858518dc830743f5d5d946f0cf84126dff225c2c01cd0ed0f6706ba0ae98c17ce41b484a8e3d5fc7c40dbe610ffff53d WHIRLPOOL d3e09ff060f5239725f2efb35243d112a220056e4cf0e09c912f3af02a3503e9fc141e11e2b2b3b6a6569348d1767d5e7cc6b6812ac333340b8bca063320d900
 EBUILD emby-server-9999.ebuild 3090 SHA256 2d3a651257b4a7eb4135457f14e1387feadf3cb16bff5fbd3d6cc731fc24cc02 SHA512 a495e053c3b70b16d9dceac055cbfa239a416e371bd0c0c35c04b4de297bb859b0cb27c81f623a47a731b09d946407b7f51fecc705ebfca122b98576dbbb082f WHIRLPOOL 7ad1354506bf16f00be73e3ed577c483070cc10c301be1ce29d7a98769246feb3b54d52242d9effadc5fc56024aac5f508d4790497036b195592c59cd4a18aa9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/media-tv/emby-server/emby-server-3.0.5572.0-r2.ebuild	Sun Apr 12 18:27:31 2015 +0200
@@ -0,0 +1,114 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="5"
+
+inherit eutils user git-r3
+
+DESCRIPTION="Emby Server (formerly known as MediaBrowser Server) is a software that indexes a lot of different kinds of media and allows for them to be retrieved and played through the DLNA protocol on any device capable of processing them."
+HOMEPAGE="http://emby.media/"
+KEYWORDS="-* ~arm ~amd64 ~x86"
+SRC_URI="https://github.com/MediaBrowser/MediaBrowser/archive/${PV}.tar.gz"
+SLOT="0"
+LICENSE="GPL-2"
+IUSE=""
+RESTRICT="mirror test"
+
+RDEPEND=">=dev-lang/mono-3.2.7
+	>=media-video/ffmpeg-2[vpx]
+	>=media-libs/libmediainfo-0.7
+	media-gfx/imagemagick[jpeg,jpeg2k,webp,png]
+	!media-tv/mediabrowser-server"
+DEPEND="app-arch/unzip ${RDEPEND}"
+
+INSTALL_DIR="/opt/emby-server"
+DATA_DIR="/var/lib/emby-server"
+STARTUP_LOG="/var/log/emby-server_start.log"
+INIT_SCRIPT="${ROOT}/etc/init.d/emby-server"
+
+# INSTALL
+# #######################################################################################################
+
+pkg_setup() {
+	einfo "creating user for Emby"
+	enewgroup emby
+	enewuser emby -1 /bin/bash ${INSTALL_DIR} "emby" --system
+}
+
+# gentoo expects a specific subfolder in the working directory for the extracted source, so simply extracting won't work here
+src_unpack() {
+        unpack ${A}
+        mv MediaBrowser-${PV} emby-server-${PV}
+}
+
+src_prepare() {
+	MAGICKWAND=$(ldconfig -p | grep MagickWand.*.so$ | cut -d" " -f4)
+	MAGICKWAND=${MAGICKWAND##*/}
+	einfo "adapting to imagemagick library to: ${MAGICKWAND}"
+	sed -i -e "s/\"libMagickWand-6.Q8.so\"/\"${MAGICKWAND}\"/" MediaBrowser.Server.Mono/ImageMagickSharp.dll.config || die "could not update libMagickWand reference!"
+}
+
+
+src_compile() {
+	einfo "updating root certificates for mono certificate store"
+	mozroots --import --sync
+	einfo "now actually compile"
+	xbuild /p:Configuration="Release Mono" /p:Platform="Any CPU" MediaBrowser.Mono.sln || die "building failed"
+}
+
+src_install() {
+	einfo "preparing startup scripts"
+	newinitd "${FILESDIR}"/emby-server.init_2  ${PN}
+	newconfd "${FILESDIR}"/emby-server.conf ${PN}
+
+	einfo "preparing startup log file"
+	dodir /var/log/
+	touch ${D}${STARTUP_LOG}
+	chown emby:emby ${D}${STARTUP_LOG}
+
+	einfo "installing compiled files"
+	diropts -oemby -gemby
+	dodir ${INSTALL_DIR}
+	cp -R ${S}/MediaBrowser.Server.Mono/bin/Release\ Mono/* ${D}${INSTALL_DIR}/ || die "install failed, possibly compile did not succeed earlier?"
+	chown emby:emby -R ${D}${INSTALL_DIR}
+
+	# as we use the system libraries, we delete the local ones now as we couldn't do it before
+	rm -R ${D}${INSTALL_DIR}/MediaInfo
+
+	einfo "prepare data directory"
+	dodir ${DATA_DIR}
+}
+
+pkg_postinst() {
+	einfo "emby-server was installed to ${INSTALL_DIR}, to start please use the init script provided."
+	einfo "All data generated and used by Emby can be found at ${DATA_DIR} after the first start."
+	einfo ""
+
+	if [[ -d "/usr/lib/mediabrowser-server" || -h "/usr/lib/mediabrowser-server" ]]; then
+		ewarn "ATTENTION: You seem to have moved from the former mediabrowser-server package:"
+		ewarn "don't forget to migrate your original data directory before the first start!"
+		ewarn "To do that move"
+		ewarn "     /usr/lib/mediabrowser-server"
+		ewarn "to"
+		ewarn "     ${DATA_DIR}"
+		ewarn "and change owner status from mediabrowser:mediabrowser to emby:emby!"
+		ewarn "     chown -R emby:emby ${DATA_DIR}"
+	fi
+
+	if [[ -d "/usr/lib/emby-server" || -h "/usr/lib/emby-server"  ]]; then
+		ewarn "ATTENTION: You seem to have existing program data at /usr/lib/emby-server!"
+		ewarn "Please move that folder to ${DATA_DIR} before the first start and make sure the folder is owned by emby:emby"
+	fi
+}
+
+# UNINSTALL
+# #######################################################################################################
+
+pkg_prerm() {
+	einfo "Stopping running instances of Emby Server"
+	if [ -e "${INIT_SCRIPT}" ]; then
+		${INIT_SCRIPT} stop
+	fi
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/media-tv/emby-server/files/emby-server.conf	Sun Apr 12 18:27:31 2015 +0200
@@ -0,0 +1,8 @@
+# this is the place where emby stores it's files
+PROGRAMDATA="/var/lib/emby-server"
+
+# the user emby-server should be started as, be aware:
+# - this is username and groupname as well
+# - the folder defined in PROGRAMDATA needs to be owned by that user
+# - /opt/emby-server needs be readable by this user!
+EXEC_USER="emby"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/media-tv/emby-server/files/emby-server.init_2	Sun Apr 12 18:27:31 2015 +0200
@@ -0,0 +1,30 @@
+#!/sbin/runscript
+
+PIDFILE="/tmp/emby-server.pid"
+#EXEC="mono-service2 -d /opt/emby-server/ -m emby-server -n emby-server /opt/emby-server/MediaBrowser.Server.Mono.exe -programdata ${PROGRAMDATA}"
+#EXEC="/opt/emby-server/start.sh"
+EXEC="./MediaBrowser.Server.Mono.exe -programdata ${PROGRAMDATA} -ffmpeg /usr/bin/ffmpeg -ffprobe /usr/bin/ffprobe"
+EXEC_DIR="/opt/emby-server/"
+LOG_FILE="/var/log/emby-server_start.log"
+
+start() {
+        ebegin "Starting Emby-Server"
+        # we are starting the service (-x):
+        # - in background with the given pid file (-m -p -b)
+        # - as a specific user (-u)
+        #start-stop-daemon -S -m -p $PIDFILE -b -u ${EXEC_USER} -d ${EXEC_DIR} -x ${EXEC} -1 ${LOG_FILE} -2 ${LOG_FILE}
+	start-stop-daemon -S -m -p $PIDFILE -b -u ${EXEC_USER} -d ${EXEC_DIR} -1 ${LOG_FILE} -2 ${LOG_FILE} -x mono -- ${EXEC}
+        eend $?
+}
+
+stop() {
+        ebegin "Stopping Emby-Server"
+        start-stop-daemon -K -p ${PIDFILE}
+        eend $?
+}
+
+restart() {
+        stop
+        sleep 3
+        start
+}