From a9a798f81a836e31a8b82eab19558d9b95e7a63f Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Sun, 9 Dec 2018 16:41:49 -0500 Subject: [PATCH 1/7] Rename numerous debian control elements Replace the name emby/emby-server with jellyfin everywhere. --- debian/bin/emby-server | 121 ------------------ debian/bin/jellyfin | 121 ++++++++++++++++++ debian/changelog | 6 + debian/control | 10 +- debian/copyright | 7 +- debian/emby | 37 ------ debian/emby-server.conf | 24 ---- debian/emby-server.emby-server.default | 37 ------ debian/install | 10 +- debian/jellyfin-sudoers | 37 ++++++ debian/jellyfin.conf | 24 ++++ debian/jellyfin.default | 37 ++++++ ...-server.emby-server.init => jellyfin.init} | 20 +-- ...r.emby-server.service => jellyfin.service} | 6 +- ...r.emby-server.upstart => jellyfin.upstart} | 6 +- debian/postinst | 48 +++---- debian/postrm | 28 ++-- debian/preinst | 26 ++-- debian/prerm | 28 ++-- debian/restart.sh | 2 +- debian/rules | 10 +- debian/source.lintian-overrides | 4 +- 22 files changed, 329 insertions(+), 320 deletions(-) delete mode 100644 debian/bin/emby-server create mode 100644 debian/bin/jellyfin delete mode 100644 debian/emby delete mode 100644 debian/emby-server.conf delete mode 100644 debian/emby-server.emby-server.default create mode 100644 debian/jellyfin-sudoers create mode 100644 debian/jellyfin.conf create mode 100644 debian/jellyfin.default rename debian/{emby-server.emby-server.init => jellyfin.init} (82%) rename debian/{emby-server.emby-server.service => jellyfin.service} (50%) rename debian/{emby-server.emby-server.upstart => jellyfin.upstart} (73%) diff --git a/debian/bin/emby-server b/debian/bin/emby-server deleted file mode 100644 index 704e371586..0000000000 --- a/debian/bin/emby-server +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/bash -# vim:set ft=sh sw=2 sts=2 st=2 et: -# Author: HurricaneHernandez -# Modified for CentOS/Fedora by: FC7 - -DESC=EmbyServer -PATH=/sbin:/usr/sbin:/bin:/usr/bin -NAME=emby-server -CONF_FILE=/etc/${NAME}.conf -DEFAULT_FILE=/etc/default/${NAME} -SCRIPTNAME=/usr/bin/emby-server - -# Source Emby server default configuration -. $DEFAULT_FILE - -# Source Emby server user configuration overrides -if [[ -f $CONF_FILE ]]; then - . $CONF_FILE -else - echo "${CONF_FILE} not found using default settings."; -fi - -# Ensure the runas user has restart privilege to restart the service if not try to add the user to emby group. WARN on failure -if [[ "$EMBY_USER" != "emby" ]]; then - groups $EMBY_USER | grep -q emby - if [[ $? -ne 0 ]]; then - if [[ $EUID -eq 0 ]]; then - usermod -a -G emby $EMBY_USER - else - echo "WARNING: The runas user is not part of emby group and you don't have enough privileges to add it. The restart button in the GUI will probably fail." - echo "To solve this start the emby-server service using the startup scripts (systemd/sysv) or" - echo "add the runas user ($EMBY_USER) to the emby group manually and restart Emby." - fi - fi -fi - -# Data directory where Emby database, cache and logs are stored -PROGRAMDATA=$EMBY_DATA -PROGRAMDATA_OPT="-programdata $PROGRAMDATA" - -# Path to store PID file -PIDFILE=$EMBY_PIDFILE - -# Full path of Emby binary -EMBY_EXEC=$EMBY_BIN - -# Path of emby program files -EMBY_PATH=$EMBY_DIR - -# path to mono bin -MONO_EXEC=$MONO_BIN - -# umask -UMASK=${UMASK:-002} - -# Mono environment variables -MAGICK_HOME_ENV="MAGICK_HOME=${EMBY_PATH}" -EMBY_LIBRARY_PATH=$(find /usr/lib/emby-server/ -maxdepth 1 -mindepth 1 -type d| grep -v bin | grep -v etc | grep -v -e "/\.") -MAGICK_CODER_FILTER_PATH_ENV="MAGICK_CODER_FILTER_PATH=$(find ${EMBY_LIBRARY_PATH} -type d -name "filters" | grep EmbyMagick)" -MAGICK_CODER_MODULE_PATH_ENV="MAGICK_CODER_MODULE_PATH=$(find ${EMBY_LIBRARY_PATH} -type d -name "coders" | grep EmbyMagick)" -MONO_EXEC_ENV="$MONO_ENV ${EMBY_LIBRARY_PATH:+"LD_LIBRARY_PATH=${EMBY_LIBRARY_PATH}${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"}" - -# Mono options -MONO_EXEC_OPTS=$MONO_OPTS - -# restart function -RESTART_OPTS="-restartpath ${EMBY_PATH}/restart.sh" - -# Emby options -EMBY_OPTS="$PROGRAMDATA_OPT $RESTART_OPTS $EMBY_ADD_OPTS" - -PID_PATH=$(dirname $PIDFILE) - -# Exit if the mono-sgen not installed -if [[ ! -x $MONO_EXEC ]]; then - if [[ -n "$(command -v mono-sgen)" ]]; then - MONO_EXEC=$(command -v mono-sgen) - else - MONO_EXEC=$(command -v mono) - fi -fi - -# Create programdata directory if not exist and ensure the emby user can write to it -if [[ ! -d $PROGRAMDATA ]]; then - if [[ $EUID -eq 0 ]]; then - mkdir -p $PROGRAMDATA - else - echo "WARNING: $EMBY_DATA directory does not exist." - echo "To solve this, if it is an upgrade verify that \"EMBY_DATA\" is set to the correct path in /etc/emby-server.conf." - echo "You may need to locate the path of your library files and set EMBY_DATA to that path." - echo "If this is an new installation please rerun last command with elevated permissions." - fi -fi - -# Set right permission for directories -DATA_CURRENT_USER=$(ls -lad $PROGRAMDATA | awk '{print $3}') - -if [[ "$DATA_CURRENT_USER" != "$EMBY_USER" ]]; then - if [[ $EUID -eq 0 ]]; then - chown -R $EMBY_USER.$EMBY_GROUP $PROGRAMDATA - else - echo "WARNING: $EMBY_DATA directory does not have the correct permissions." - echo "Please rerun this script with elevated permissions." - fi -fi - -case "$1" in - start) - echo $$ > $PIDFILE - exec su -s /bin/sh -c 'umask $0; exec "$1" "$@"' $EMBY_USER -- \ - $UMASK env $MAGICK_HOME_ENV $MAGICK_CODER_FILTER_PATH_ENV $MAGICK_CODER_MODULE_PATH_ENV \ - $MONO_EXEC_ENV $MONO_EXEC $MONO_EXEC_OPTS $EMBY_EXEC $EMBY_OPTS - ;; - clear) - [[ -e $PIDFILE ]] && rm -rf $PIDFILE - ;; - *) - echo "Usage: $SCRIPTNAME {start|clear}" >&2 - exit 3 - ;; -esac diff --git a/debian/bin/jellyfin b/debian/bin/jellyfin new file mode 100644 index 0000000000..b9e23d05f4 --- /dev/null +++ b/debian/bin/jellyfin @@ -0,0 +1,121 @@ +#!/bin/bash +# vim:set ft=sh sw=2 sts=2 st=2 et: +# Author: HurricaneHernandez +# Modified for CentOS/Fedora by: FC7 + +DESC=Jellyfin +PATH=/sbin:/usr/sbin:/bin:/usr/bin +NAME=jellyfin +CONF_FILE=/etc/${NAME}.conf +DEFAULT_FILE=/etc/default/${NAME} +SCRIPTNAME=/usr/bin/jellyfin + +# Source Jellyfin default configuration +. $DEFAULT_FILE + +# Source Jellyfin user configuration overrides +if [[ -f $CONF_FILE ]]; then + . $CONF_FILE +else + echo "${CONF_FILE} not found using default settings."; +fi + +# Ensure the runas user has restart privilege to restart the service if not try to add the user to jellyfin group. WARN on failure +if [[ "$JELLYFIN_USER" != "jellyfin" ]]; then + groups $JELLYFIN_USER | grep -q jellyfin + if [[ $? -ne 0 ]]; then + if [[ $EUID -eq 0 ]]; then + usermod -a -G jellyfin $JELLYFIN_USER + else + echo "WARNING: The runas user is not part of jellyfin group and you don't have enough privileges to add it. The restart button in the GUI will probably fail." + echo "To solve this start the jellyfin service using the startup scripts (systemd/sysv) or" + echo "add the runas user ($JELLYFIN_USER) to the jellyfin group manually and restart Emby." + fi + fi +fi + +# Data directory where Emby database, cache and logs are stored +PROGRAMDATA=$JELLYFIN_DATA +PROGRAMDATA_OPT="-programdata $PROGRAMDATA" + +# Path to store PID file +PIDFILE=$JELLYFIN_PIDFILE + +# Full path of Emby binary +JELLYFIN_EXEC=$JELLYFIN_BIN + +# Path of jellyfin program files +JELLYFIN_PATH=$JELLYFIN_DIR + +# path to mono bin +MONO_EXEC=$MONO_BIN + +# umask +UMASK=${UMASK:-002} + +# Mono environment variables +MAGICK_HOME_ENV="MAGICK_HOME=${JELLYFIN_PATH}" +JELLYFIN_LIBRARY_PATH=$(find /usr/lib/jellyfin/ -maxdepth 1 -mindepth 1 -type d| grep -v bin | grep -v etc | grep -v -e "/\.") +MAGICK_CODER_FILTER_PATH_ENV="MAGICK_CODER_FILTER_PATH=$(find ${JELLYFIN_LIBRARY_PATH} -type d -name "filters" | grep EmbyMagick)" +MAGICK_CODER_MODULE_PATH_ENV="MAGICK_CODER_MODULE_PATH=$(find ${JELLYFIN_LIBRARY_PATH} -type d -name "coders" | grep EmbyMagick)" +MONO_EXEC_ENV="$MONO_ENV ${JELLYFIN_LIBRARY_PATH:+"LD_LIBRARY_PATH=${JELLYFIN_LIBRARY_PATH}${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"}" + +# Mono options +MONO_EXEC_OPTS=$MONO_OPTS + +# restart function +RESTART_OPTS="-restartpath ${JELLYFIN_PATH}/restart.sh" + +# Emby options +JELLYFIN_OPTS="$PROGRAMDATA_OPT $RESTART_OPTS $JELLYFIN_ADD_OPTS" + +PID_PATH=$(dirname $PIDFILE) + +# Exit if the mono-sgen not installed +if [[ ! -x $MONO_EXEC ]]; then + if [[ -n "$(command -v mono-sgen)" ]]; then + MONO_EXEC=$(command -v mono-sgen) + else + MONO_EXEC=$(command -v mono) + fi +fi + +# Create programdata directory if not exist and ensure the jellyfin user can write to it +if [[ ! -d $PROGRAMDATA ]]; then + if [[ $EUID -eq 0 ]]; then + mkdir -p $PROGRAMDATA + else + echo "WARNING: $JELLYFIN_DATA directory does not exist." + echo "To solve this, if it is an upgrade verify that \"JELLYFIN_DATA\" is set to the correct path in /etc/jellyfin.conf." + echo "You may need to locate the path of your library files and set JELLYFIN_DATA to that path." + echo "If this is an new installation please rerun last command with elevated permissions." + fi +fi + +# Set right permission for directories +DATA_CURRENT_USER=$(ls -lad $PROGRAMDATA | awk '{print $3}') + +if [[ "$DATA_CURRENT_USER" != "$JELLYFIN_USER" ]]; then + if [[ $EUID -eq 0 ]]; then + chown -R $JELLYFIN_USER.$JELLYFIN_GROUP $PROGRAMDATA + else + echo "WARNING: $JELLYFIN_DATA directory does not have the correct permissions." + echo "Please rerun this script with elevated permissions." + fi +fi + +case "$1" in + start) + echo $$ > $PIDFILE + exec su -s /bin/sh -c 'umask $0; exec "$1" "$@"' $JELLYFIN_USER -- \ + $UMASK env $MAGICK_HOME_ENV $MAGICK_CODER_FILTER_PATH_ENV $MAGICK_CODER_MODULE_PATH_ENV \ + $MONO_EXEC_ENV $MONO_EXEC $MONO_EXEC_OPTS $JELLYFIN_EXEC $JELLYFIN_OPTS + ;; + clear) + [[ -e $PIDFILE ]] && rm -rf $PIDFILE + ;; + *) + echo "Usage: $SCRIPTNAME {start|clear}" >&2 + exit 3 + ;; +esac diff --git a/debian/changelog b/debian/changelog index 6ebb6a0cc1..9199f71fc2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +jellyfin (3.5.2) unstable; urgency=medium + + * Rename from emby-server on version 3.5.2 + + -- Joshua Boniface Sun, 9 Dec 2018 15:20:58 -0400 + emby-server (3.5.2-unlocked) unstable; urgency=medium * Taking changes from upstream 3.5.2, beautifying some JS files diff --git a/debian/control b/debian/control index f8f3ce4519..f2a0969759 100644 --- a/debian/control +++ b/debian/control @@ -1,4 +1,4 @@ -Source: emby-server +Source: jellyfin Section: misc Priority: optional Maintainer: Vasily @@ -7,10 +7,10 @@ Build-Depends: debhelper (>= 9), libc6-dev Standards-Version: 3.9.4 -Package: emby-server -Replaces: mediabrowser, emby, emby-server-beta, emby-server-dev -Breaks: mediabrowser, emby, emby-server-beta, emby-server-dev -Conflicts: mediabrowser, emby, emby-server-beta, emby-server-dev +Package: jellyfin +Replaces: mediabrowser, emby, emby-server-beta, jellyfin-dev, emby-server +Breaks: mediabrowser, emby, emby-server-beta, jellyfin-dev, emby-server +Conflicts: mediabrowser, emby, emby-server-beta, jellyfin-dev, emby-server Architecture: all Depends: ${shlibs:Depends}, ${misc:Depends}, at, libsqlite3-0, dotnet-runtime-2.1 Description: Emby Server is a home media server. diff --git a/debian/copyright b/debian/copyright index 3862c698cd..5ded90f2ce 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,12 +1,13 @@ Format: http://dep.debian.net/deps/dep5 -Upstream-Name: emby -Source: https://raw.githubusercontent.com/MediaBrowser/MediaBrowser/master/LICENSE.md +Upstream-Name: jellyfin +Source: https://github.com/jellyfin/jellyfin Files: * -Copyright: 2015 Luke Pulverenti +Copyright: 2018 JellyFin Team License: GPL-2.0+ Files: debian/* +Copyright: 2018 Joshua Boniface Copyright: 2014 Carlos Hernandez License: GPL-2.0+ diff --git a/debian/emby b/debian/emby deleted file mode 100644 index d942494756..0000000000 --- a/debian/emby +++ /dev/null @@ -1,37 +0,0 @@ -#Allow emby group to start, stop and restart itself -Cmnd_Alias RESTARTSERVER_SYSV = /sbin/service emby-server restart, /usr/sbin/service emby-server restart -Cmnd_Alias STARTSERVER_SYSV = /sbin/service emby-server start, /usr/sbin/service emby-server start -Cmnd_Alias STOPSERVER_SYSV = /sbin/service emby-server stop, /usr/sbin/service emby-server stop -Cmnd_Alias RESTARTSERVER_SYSTEMD = /usr/bin/systemctl restart emby-server, /bin/systemctl restart emby-server -Cmnd_Alias STARTSERVER_SYSTEMD = /usr/bin/systemctl start emby-server, /bin/systemctl start emby-server -Cmnd_Alias STOPSERVER_SYSTEMD = /usr/bin/systemctl stop emby-server, /bin/systemctl stop emby-server -Cmnd_Alias RESTARTSERVER_INITD = /etc/init.d/emby-server restart -Cmnd_Alias STARTSERVER_INITD = /etc/init.d/emby-server start -Cmnd_Alias STOPSERVER_INITD = /etc/init.d/emby-server stop - - -%emby ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSV -%emby ALL=(ALL) NOPASSWD: STARTSERVER_SYSV -%emby ALL=(ALL) NOPASSWD: STOPSERVER_SYSV -%emby ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSTEMD -%emby ALL=(ALL) NOPASSWD: STARTSERVER_SYSTEMD -%emby ALL=(ALL) NOPASSWD: STOPSERVER_SYSTEMD -%emby ALL=(ALL) NOPASSWD: RESTARTSERVER_INITD -%emby ALL=(ALL) NOPASSWD: STARTSERVER_INITD -%emby ALL=(ALL) NOPASSWD: STOPSERVER_INITD - -Defaults!RESTARTSERVER_SYSV !requiretty -Defaults!STARTSERVER_SYSV !requiretty -Defaults!STOPSERVER_SYSV !requiretty -Defaults!RESTARTSERVER_SYSTEMD !requiretty -Defaults!STARTSERVER_SYSTEMD !requiretty -Defaults!STOPSERVER_SYSTEMD !requiretty -Defaults!RESTARTSERVER_INITD !requiretty -Defaults!STARTSERVER_INITD !requiretty -Defaults!STOPSERVER_INITD !requiretty - -#Allow the server to mount iso images -%emby ALL=(ALL) NOPASSWD: /bin/mount -%emby ALL=(ALL) NOPASSWD: /bin/umount - -Defaults:%emby !requiretty diff --git a/debian/emby-server.conf b/debian/emby-server.conf deleted file mode 100644 index 8bd6fc25a5..0000000000 --- a/debian/emby-server.conf +++ /dev/null @@ -1,24 +0,0 @@ -# Override defaults for emby initscript -# sourced by /etc/init.d/emby-server and /usr/bin/emby-server -# installed at /etc/emby-server.conf by the maintainer scripts - -# -# This is a POSIX shell fragment -# - -## To change the defaults add any of the following settings below the comments -## -## EMBY_USER= #$EMBY_USER, username to run Emby under, the default is emby -## EMBY_GROUP= #$EMBY_GROUP, Emby server group where Emby user belongs -## EMBY_DIR= #$EMBY_DIR, the location of Emby program files the default is /usr/lib/emby-server -## EMBY_BIN= #$EMBY_BIN, full path of MediaBrowser.Server.Mono.exe the default is /usr/lib/emby-server/bin/MediaBrowser.Server.Mono.exe -## EMBY_DATA= #$EMBY_DATA, the location of Emby data, cache, logs, the default is /var/lib/emby-server -## EMBY_PIDFILE= #$EMBY_PIDFILE, the location of emby.pid, the default is /var/run/emby/emby-server.pid -## EMBY_ADD_OPTS= #$EMBY_ADD_OPTS, additional options to pass to the Emby server executable, beyond ffmpeg, ffprobe and restart -## MONO_BIN= #$MONO_BIN, full path of mono binary, the default is /usr/bin/mono-sgen -## MONO_OPTS= #$MONO_OPTS, list of additional options to pass to mono binary -## MONO_ENV= #$MONO_ENV, list of environment variables for running mono binary -## -## EXAMPLE if want to run as different user -## add EMBY_USER=username -## otherwise default emby is used diff --git a/debian/emby-server.emby-server.default b/debian/emby-server.emby-server.default deleted file mode 100644 index 33f5ebb5b2..0000000000 --- a/debian/emby-server.emby-server.default +++ /dev/null @@ -1,37 +0,0 @@ -# Defaults for emby initscript -# sourced by /etc/init.d/emby-server and /usr/lib/emby-server/emby-server.sh -# installed at /etc/default/emby-server by the maintainer scripts - -# -# This is a POSIX shell fragment -# - -## Don't edit this file -## Edit user configuration in /etc/emby-server.conf to change -## -## EMBY_USER= #$EMBY_USER, username to run Emby under, the default is emby -## EMBY_GROUP= #$EMBY_GROUP, Emby server group where Emby user belongs -## EMBY_DIR= #$EMBY_DIR, the location of Emby program files the default is /usr/lib/emby-server -## EMBY_BIN= #$EMBY_BIN, full path of MediaBrowser.Server.Mono.exe the default is /usr/lib/emby-server/bin/MediaBrowser.Server.Mono.exe -## EMBY_DATA= #$EMBY_DATA, the location of Emby data, cache, logs, the default is /var/lib/emby-server -## EMBY_PIDFILE= #$EMBY_PIDFILE, the location of emby.pid, the default is /var/run/emby/emby-server.pid -## EMBY_ADD_OPTS= #$EMBY_ADD_OPTS, additional options to pass to the Emby server executable, beyond ffmpeg, ffprobe and restart -## MONO_BIN= #$MONO_BIN, full path of mono binary, the default is /usr/bin/mono-sgen -## MONO_OPTS= #$MONO_OPTS, list of additional options to pass to mono binary -## MONO_ENV= #$MONO_ENV, list of environment variables for running mono binary -## -## EXAMPLE if want to run as different user -## add EMBY_USER=username to /etc/emby-server.conf -## otherwise default emby is used - -EMBY_USER="emby" -EMBY_GROUP="emby" -EMBY_DIR="/usr/lib/emby-server" -EMBY_BIN="/usr/lib/emby-server/bin/MediaBrowser.Server.Mono.exe" -EMBY_DATA="/var/lib/emby-server" -EMBY_PIDFILE="/var/run/emby-server.pid" -EMBY_ADD_OPTS="" -MONO_BIN="/usr/bin/mono-sgen" -MONO_OPTS="--optimize=all" -MONO_ENV="MONO_THREADS_PER_CPU=250 MONO_GC_PARAMS=nursery-size=128m" -UMASK="002" diff --git a/debian/install b/debian/install index 7051a2fcd7..c7f77b79c4 100644 --- a/debian/install +++ b/debian/install @@ -1,5 +1,5 @@ -usr/lib/emby-server usr/lib/ -debian/emby-server.conf etc/ -debian/emby etc/sudoers.d/ -debian/bin/emby-server usr/bin/ -debian/restart.sh usr/lib/emby-server +usr/lib/jellyfin usr/lib/ +debian/jellyfin.conf etc/ +debian/jellyfin-sudoers etc/sudoers.d/ +debian/bin/jellyfin usr/bin/ +debian/restart.sh usr/lib/jellyfin diff --git a/debian/jellyfin-sudoers b/debian/jellyfin-sudoers new file mode 100644 index 0000000000..4eb91366b4 --- /dev/null +++ b/debian/jellyfin-sudoers @@ -0,0 +1,37 @@ +#Allow jellyfin group to start, stop and restart itself +Cmnd_Alias RESTARTSERVER_SYSV = /sbin/service jellyfin restart, /usr/sbin/service jellyfin restart +Cmnd_Alias STARTSERVER_SYSV = /sbin/service jellyfin start, /usr/sbin/service jellyfin start +Cmnd_Alias STOPSERVER_SYSV = /sbin/service jellyfin stop, /usr/sbin/service jellyfin stop +Cmnd_Alias RESTARTSERVER_SYSTEMD = /usr/bin/systemctl restart jellyfin, /bin/systemctl restart jellyfin +Cmnd_Alias STARTSERVER_SYSTEMD = /usr/bin/systemctl start jellyfin, /bin/systemctl start jellyfin +Cmnd_Alias STOPSERVER_SYSTEMD = /usr/bin/systemctl stop jellyfin, /bin/systemctl stop jellyfin +Cmnd_Alias RESTARTSERVER_INITD = /etc/init.d/jellyfin restart +Cmnd_Alias STARTSERVER_INITD = /etc/init.d/jellyfin start +Cmnd_Alias STOPSERVER_INITD = /etc/init.d/jellyfin stop + + +%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSV +%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSV +%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSV +%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_SYSTEMD +%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_SYSTEMD +%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_SYSTEMD +%jellyfin ALL=(ALL) NOPASSWD: RESTARTSERVER_INITD +%jellyfin ALL=(ALL) NOPASSWD: STARTSERVER_INITD +%jellyfin ALL=(ALL) NOPASSWD: STOPSERVER_INITD + +Defaults!RESTARTSERVER_SYSV !requiretty +Defaults!STARTSERVER_SYSV !requiretty +Defaults!STOPSERVER_SYSV !requiretty +Defaults!RESTARTSERVER_SYSTEMD !requiretty +Defaults!STARTSERVER_SYSTEMD !requiretty +Defaults!STOPSERVER_SYSTEMD !requiretty +Defaults!RESTARTSERVER_INITD !requiretty +Defaults!STARTSERVER_INITD !requiretty +Defaults!STOPSERVER_INITD !requiretty + +#Allow the server to mount iso images +%jellyfin ALL=(ALL) NOPASSWD: /bin/mount +%jellyfin ALL=(ALL) NOPASSWD: /bin/umount + +Defaults:%jellyfin !requiretty diff --git a/debian/jellyfin.conf b/debian/jellyfin.conf new file mode 100644 index 0000000000..9772469e16 --- /dev/null +++ b/debian/jellyfin.conf @@ -0,0 +1,24 @@ +# Override defaults for jellyfin initscript +# sourced by /etc/init.d/jellyfin and /usr/bin/jellyfin +# installed at /etc/jellyfin.conf by the maintainer scripts + +# +# This is a POSIX shell fragment +# + +## To change the defaults add any of the following settings below the comments +## +## JELLYFIN_USER= #$JELLYFIN_USER, username to run Emby under, the default is jellyfin +## JELLYFIN_GROUP= #$JELLYFIN_GROUP, Jellyfin group where Emby user belongs +## JELLYFIN_DIR= #$JELLYFIN_DIR, the location of Emby program files the default is /usr/lib/jellyfin +## JELLYFIN_BIN= #$JELLYFIN_BIN, full path of MediaBrowser.Server.Mono.exe the default is /usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe +## JELLYFIN_DATA= #$JELLYFIN_DATA, the location of Emby data, cache, logs, the default is /var/lib/jellyfin +## JELLYFIN_PIDFILE= #$JELLYFIN_PIDFILE, the location of jellyfin.pid, the default is /var/run/jellyfin/jellyfin.pid +## JELLYFIN_ADD_OPTS= #$JELLYFIN_ADD_OPTS, additional options to pass to the Jellyfin executable, beyond ffmpeg, ffprobe and restart +## MONO_BIN= #$MONO_BIN, full path of mono binary, the default is /usr/bin/mono-sgen +## MONO_OPTS= #$MONO_OPTS, list of additional options to pass to mono binary +## MONO_ENV= #$MONO_ENV, list of environment variables for running mono binary +## +## EXAMPLE if want to run as different user +## add JELLYFIN_USER=username +## otherwise default jellyfin is used diff --git a/debian/jellyfin.default b/debian/jellyfin.default new file mode 100644 index 0000000000..4fa0d67245 --- /dev/null +++ b/debian/jellyfin.default @@ -0,0 +1,37 @@ +# Defaults for jellyfin initscript +# sourced by /etc/init.d/jellyfin and /usr/lib/jellyfin/jellyfin.sh +# installed at /etc/default/jellyfin by the maintainer scripts + +# +# This is a POSIX shell fragment +# + +## Don't edit this file +## Edit user configuration in /etc/jellyfin.conf to change +## +## JELLYFIN_USER= #$JELLYFIN_USER, username to run Emby under, the default is jellyfin +## JELLYFIN_GROUP= #$JELLYFIN_GROUP, Jellyfin group where Emby user belongs +## JELLYFIN_DIR= #$JELLYFIN_DIR, the location of Emby program files the default is /usr/lib/jellyfin +## JELLYFIN_BIN= #$JELLYFIN_BIN, full path of MediaBrowser.Server.Mono.exe the default is /usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe +## JELLYFIN_DATA= #$JELLYFIN_DATA, the location of Emby data, cache, logs, the default is /var/lib/jellyfin +## JELLYFIN_PIDFILE= #$JELLYFIN_PIDFILE, the location of jellyfin.pid, the default is /var/run/jellyfin/jellyfin.pid +## JELLYFIN_ADD_OPTS= #$JELLYFIN_ADD_OPTS, additional options to pass to the Jellyfin executable, beyond ffmpeg, ffprobe and restart +## MONO_BIN= #$MONO_BIN, full path of mono binary, the default is /usr/bin/mono-sgen +## MONO_OPTS= #$MONO_OPTS, list of additional options to pass to mono binary +## MONO_ENV= #$MONO_ENV, list of environment variables for running mono binary +## +## EXAMPLE if want to run as different user +## add JELLYFIN_USER=username to /etc/jellyfin.conf +## otherwise default jellyfin is used + +JELLYFIN_USER="jellyfin" +JELLYFIN_GROUP="jellyfin" +JELLYFIN_DIR="/usr/lib/jellyfin" +JELLYFIN_BIN="/usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe" +JELLYFIN_DATA="/var/lib/jellyfin" +JELLYFIN_PIDFILE="/var/run/jellyfin.pid" +JELLYFIN_ADD_OPTS="" +MONO_BIN="/usr/bin/mono-sgen" +MONO_OPTS="--optimize=all" +MONO_ENV="MONO_THREADS_PER_CPU=250 MONO_GC_PARAMS=nursery-size=128m" +UMASK="002" diff --git a/debian/emby-server.emby-server.init b/debian/jellyfin.init similarity index 82% rename from debian/emby-server.emby-server.init rename to debian/jellyfin.init index 81ce3376b5..e49662e63c 100644 --- a/debian/emby-server.emby-server.init +++ b/debian/jellyfin.init @@ -1,6 +1,6 @@ #!/bin/bash ### BEGIN INIT INFO -# Provides: emby-server +# Provides: jellyfin # Required-Start: $remote_fs $local_fs $network # Required-Stop: $remote_fs $local_fs $network # Default-Start: 2 3 4 5 @@ -19,23 +19,23 @@ # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions -NAME=emby-server +NAME=jellyfin CONF_FILE=/etc/${NAME}.conf DEFAULT_FILE=/etc/default/${NAME} -# Source Emby server default configuration +# Source Jellyfin default configuration . $DEFAULT_FILE -# Source Emby server user configuration overrides +# Source Jellyfin user configuration overrides if [[ -f $CONF_FILE ]]; then . $CONF_FILE else echo "${CONF_FILE} not found using default settings."; fi -# Path of emby binary -EMBYSERVER=/usr/bin/emby-server -PIDFILE=${EMBY_PIDFILE-/var/run/emby-server.pid} +# Path of jellyfin binary +JELLYFINSERVER=/usr/bin/jellyfin +PIDFILE=${JELLYFIN_PIDFILE-/var/run/jellyfin.pid} case "$1" in start) @@ -45,7 +45,7 @@ case "$1" in log_end_msg 0 exit 0 fi - exec $EMBYSERVER start & + exec $JELLYFINSERVER start & sleep 2 if [[ -s $PIDFILE ]] && [[ -n "$(ps -p $(cat $PIDFILE) -o pid=)" ]]; then log_end_msg 0 @@ -74,7 +74,7 @@ case "$1" in fi ;; status) - status_of_proc -p $PIDFILE "$EMBYSERVER" "$NAME" + status_of_proc -p $PIDFILE "$JELLYFINSERVER" "$NAME" exit $? # notreached due to set -e ;; restart|force-reload) @@ -82,7 +82,7 @@ case "$1" in $0 start || exit $? ;; *) - echo "Usage: /etc/init.d/emby-server {start|stop|status|restart|force-reload}" >&2 + echo "Usage: /etc/init.d/jellyfin {start|stop|status|restart|force-reload}" >&2 exit 3 ;; esac diff --git a/debian/emby-server.emby-server.service b/debian/jellyfin.service similarity index 50% rename from debian/emby-server.emby-server.service rename to debian/jellyfin.service index e5dbacb523..58d77b0051 100644 --- a/debian/emby-server.emby-server.service +++ b/debian/jellyfin.service @@ -1,12 +1,12 @@ [Unit] -Description=Emby Media Server +Description=Jellyfin Media Server After=network.target [Service] -ExecStart=/usr/bin/emby-server start +ExecStart=/usr/bin/jellyfin start Restart=on-abort TimeoutSec=20 -ExecStopPost=/usr/bin/emby-server clear +ExecStopPost=/usr/bin/jellyfin clear [Install] WantedBy=multi-user.target diff --git a/debian/emby-server.emby-server.upstart b/debian/jellyfin.upstart similarity index 73% rename from debian/emby-server.emby-server.upstart rename to debian/jellyfin.upstart index 4f089260ce..a192f61291 100644 --- a/debian/emby-server.emby-server.upstart +++ b/debian/jellyfin.upstart @@ -1,4 +1,4 @@ -description "emby-server daemon" +description "jellyfin daemon" start on (local-filesystems and net-device-up IFACE!=lo) stop on runlevel [!2345] @@ -15,9 +15,9 @@ script # Log file logger -t "$0" "DEBUG: `set`" - exec /usr/bin/emby-server start + exec /usr/bin/jellyfin start end script post-stop script - exec /usr/bin/emby-server clear + exec /usr/bin/jellyfin clear end script diff --git a/debian/postinst b/debian/postinst index f1469f1c1f..c2e46d4547 100644 --- a/debian/postinst +++ b/debian/postinst @@ -1,45 +1,45 @@ #!/bin/bash set -e -NAME=emby-server +NAME=jellyfin CONF_FILE=/etc/${NAME}.conf DEFAULT_FILE=/etc/default/${NAME} -# Source Emby server default configuration +# Source Jellyfin default configuration if [[ -f $DEFAULT_FILE ]]; then . $DEFAULT_FILE fi -# Source Emby server user configuration overrides +# Source Jellyfin user configuration overrides if [[ -f $CONF_FILE ]]; then . $CONF_FILE fi # Data directory where Emby database, cache and logs are stored -PROGRAMDATA=${EMBY_DATA-/var/lib/$NAME} +PROGRAMDATA=${JELLYFIN_DATA-/var/lib/$NAME} case "$1" in configure) - # create emby group if it does not exist - if [[ -z "$(getent group emby)" ]]; then - addgroup --quiet --system emby > /dev/null 2>&1 + # create jellyfin group if it does not exist + if [[ -z "$(getent group jellyfin)" ]]; then + addgroup --quiet --system jellyfin > /dev/null 2>&1 fi - # create emby user if it does not exist - if [[ -z "$(getent passwd emby)" ]]; then - adduser --system --ingroup emby --shell /bin/false emby --no-create-home --home ${PROGRAMDATA} \ - --gecos "Emby Server default user" > /dev/null 2>&1 + # create jellyfin user if it does not exist + if [[ -z "$(getent passwd jellyfin)" ]]; then + adduser --system --ingroup jellyfin --shell /bin/false jellyfin --no-create-home --home ${PROGRAMDATA} \ + --gecos "Jellyfin default user" > /dev/null 2>&1 fi # ensure $PROGRAMDATA has appropriate permissions if [[ ! -d $PROGRAMDATA ]]; then mkdir $PROGRAMDATA - chown -R emby:emby $PROGRAMDATA + chown -R jellyfin:jellyfin $PROGRAMDATA fi - # ensure emby-server binary has appropriate permissions - chmod 755 /usr/bin/emby-server + # ensure jellyfin binary has appropriate permissions + chmod 755 /usr/bin/jellyfin - /usr/bin/mono --aot=full -O=all $EMBY_BIN > /dev/null 2>&1 || true + /usr/bin/mono --aot=full -O=all $JELLYFIN_BIN > /dev/null 2>&1 || true - chmod +x ${EMBY_DIR}/restart.sh > /dev/null 2>&1 || true + chmod +x ${JELLYFIN_DIR}/restart.sh > /dev/null 2>&1 || true ;; abort-upgrade|abort-remove|abort-deconfigure) @@ -54,16 +54,16 @@ esac if [[ -x "/usr/bin/deb-systemd-helper" ]]; then # Manual init script handling - deb-systemd-helper unmask emby-server.service >/dev/null || true + deb-systemd-helper unmask jellyfin.service >/dev/null || true # was-enabled defaults to true, so new installations run enable. - if deb-systemd-helper --quiet was-enabled emby-server.service; then + if deb-systemd-helper --quiet was-enabled jellyfin.service; then # Enables the unit on first installation, creates new # symlinks on upgrades if the unit file has changed. - deb-systemd-helper enable emby-server.service >/dev/null || true + deb-systemd-helper enable jellyfin.service >/dev/null || true else # Update the statefile to add new symlinks (if any), which need to be # cleaned up on purge. Also remove old symlinks. - deb-systemd-helper update-state emby-server.service >/dev/null || true + deb-systemd-helper update-state jellyfin.service >/dev/null || true fi fi @@ -72,10 +72,10 @@ fi if [[ "$1" == "configure" ]] || [[ "$1" == "abort-upgrade" ]]; then if [[ -d "/run/systemd/systemd" ]]; then systemctl --system daemon-reload >/dev/null || true - deb-systemd-invoke start emby-server >/dev/null || true - elif [[ -x "/etc/init.d/emby-server" ]] || [[ -e "/etc/init/emby-server.conf" ]]; then - update-rc.d emby-server defaults >/dev/null - invoke-rc.d emby-server start || exit $? + deb-systemd-invoke start jellyfin >/dev/null || true + elif [[ -x "/etc/init.d/jellyfin" ]] || [[ -e "/etc/init/jellyfin.conf" ]]; then + update-rc.d jellyfin defaults >/dev/null + invoke-rc.d jellyfin start || exit $? fi fi exit 0 diff --git a/debian/postrm b/debian/postrm index 90823ec140..69f527b1f8 100644 --- a/debian/postrm +++ b/debian/postrm @@ -1,22 +1,22 @@ #!/bin/bash set -e -NAME=emby-server +NAME=jellyfin CONF_FILE=/etc/${NAME}.conf DEFAULT_FILE=/etc/default/${NAME} -# Source Emby server default configuration +# Source Jellyfin default configuration if [[ -f $DEFAULT_FILE ]]; then . $DEFAULT_FILE fi -# Source Emby server user configuration overrides +# Source Jellyfin user configuration overrides if [[ -f $CONF_FILE ]]; then . $CONF_FILE fi # Data directory where Emby database, cache and logs are stored -PROGRAMDATA=${EMBY_DATA-/var/lib/$NAME} +PROGRAMDATA=${JELLYFIN_DATA-/var/lib/$NAME} # In case this system is running systemd, we make systemd reload the unit files # to pick up changes. @@ -28,27 +28,27 @@ case "$1" in purge) echo PURGE | debconf-communicate $NAME > /dev/null 2>&1 || true - if [[ -x "/etc/init.d/emby-server" ]] || [[ -e "/etc/init/emby-server.connf" ]]; then - update-rc.d emby-server remove >/dev/null 2>&1 || true + if [[ -x "/etc/init.d/jellyfin" ]] || [[ -e "/etc/init/jellyfin.connf" ]]; then + update-rc.d jellyfin remove >/dev/null 2>&1 || true fi if [[ -x "/usr/bin/deb-systemd-helper" ]]; then - deb-systemd-helper purge emby-server.service >/dev/null - deb-systemd-helper unmask emby-server.service >/dev/null + deb-systemd-helper purge jellyfin.service >/dev/null + deb-systemd-helper unmask jellyfin.service >/dev/null fi - userdel emby > /dev/null 2>&1 || true - delgroup --quiet emby > /dev/null 2>&1 || true + userdel jellyfin > /dev/null 2>&1 || true + delgroup --quiet jellyfin > /dev/null 2>&1 || true if [[ -d $PROGRAMDATA ]]; then rm -rf $PROGRAMDATA fi - [[ -f /usr/bin/emby-server ]] && rm /usr/bin/emby-server - [[ -f /etc/sudoers.d/emby ]] && rm /etc/sudoers.d/emby - [[ -d /var/lib/emby-server ]] && rm -rf /var/lib/emby-server + [[ -f /usr/bin/jellyfin ]] && rm /usr/bin/jellyfin + [[ -f /etc/sudoers.d/jellyfin-sudoers ]] && rm /etc/sudoers.d/jellyfin-sudoers + [[ -d /var/lib/jellyfin ]] && rm -rf /var/lib/jellyfin ;; remove) if [[ -x "/usr/bin/deb-systemd-helper" ]]; then - deb-systemd-helper mask emby-server.service >/dev/null + deb-systemd-helper mask jellyfin.service >/dev/null fi ;; upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) diff --git a/debian/preinst b/debian/preinst index 6431277967..7e168877e5 100644 --- a/debian/preinst +++ b/debian/preinst @@ -1,22 +1,22 @@ #!/bin/bash set -e -NAME=emby-server +NAME=jellyfin CONF_FILE=/etc/${NAME}.conf DEFAULT_FILE=/etc/default/${NAME} -# Source Emby server default configuration +# Source Jellyfin default configuration if [[ -f $DEFAULT_FILE ]]; then . $DEFAULT_FILE fi -# Source Emby server user configuration overrides +# Source Jellyfin user configuration overrides if [[ -f $CONF_FILE ]]; then . $CONF_FILE fi # Data directory where Emby database, cache and logs are stored -PROGRAMDATA=${EMBY_DATA-/var/lib/$NAME} +PROGRAMDATA=${JELLYFIN_DATA-/var/lib/$NAME} # In case this system is running systemd, we make systemd reload the unit files # to pick up changes. @@ -32,21 +32,21 @@ case "$1" in elif [ -x "/etc/init.d/${NAME}" ] || [ -e "/etc/init/${NAME}.conf" ]; then invoke-rc.d ${NAME} stop > /dev/null 2>&1 || true fi - # try and figure out if emby is running - PIDFILE=$(find /var/run/ -maxdepth 1 -mindepth 1 -name "emby*.pid" -print -quit) - [[ -n "$PIDFILE" ]] && [[ -s "$PIDFILE" ]] && EMBY_PID=$(cat ${PIDFILE}) + # try and figure out if jellyfin is running + PIDFILE=$(find /var/run/ -maxdepth 1 -mindepth 1 -name "jellyfin*.pid" -print -quit) + [[ -n "$PIDFILE" ]] && [[ -s "$PIDFILE" ]] && JELLYFIN_PID=$(cat ${PIDFILE}) # if its running, let's stop it - if [[ -n "$EMBY_PID" ]]; then - echo "Stopping Emby Server!" - # if emby is still running, kill it - if [[ -n "$(ps -p $EMBY_PID -o pid=)" ]]; then - CPIDS=$(pgrep -P $EMBY_PID) + if [[ -n "$JELLYFIN_PID" ]]; then + echo "Stopping Jellyfin!" + # if jellyfin is still running, kill it + if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then + CPIDS=$(pgrep -P $JELLYFIN_PID) sleep 2 && kill -KILL $CPIDS kill -TERM $CPIDS > /dev/null 2>&1 fi sleep 1 # if it's still running, show error - if [[ -n "$(ps -p $EMBY_PID -o pid=)" ]]; then + if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then echo "Could not successfully stop EmbyServer, please do so before uninstalling." exit 1 else diff --git a/debian/prerm b/debian/prerm index 341df6cd08..af8fa1aa2e 100644 --- a/debian/prerm +++ b/debian/prerm @@ -1,26 +1,26 @@ #!/bin/bash set -e -NAME=emby-server +NAME=jellyfin CONF_FILE=/etc/${NAME}.conf DEFAULT_FILE=/etc/default/${NAME} -# Source Emby server default configuration +# Source Jellyfin default configuration if [[ -f $DEFAULT_FILE ]]; then . $DEFAULT_FILE fi -# Source Emby server user configuration overrides +# Source Jellyfin user configuration overrides if [[ -f $CONF_FILE ]]; then . $CONF_FILE fi # Data directory where Emby database, cache and logs are stored -PROGRAMDATA=${EMBY_DATA-/var/lib/$NAME} +PROGRAMDATA=${JELLYFIN_DATA-/var/lib/$NAME} case "$1" in remove|upgrade|deconfigure) - echo "Stopping Emby Server!" + echo "Stopping Jellyfin!" # try graceful termination; if [[ -d /run/systemd/system ]]; then deb-systemd-invoke stop ${NAME}.service > /dev/null 2>&1 || true @@ -28,27 +28,27 @@ case "$1" in invoke-rc.d ${NAME} stop > /dev/null 2>&1 || true fi # Ensure that it is shutdown - PIDFILE=$(find /var/run/ -maxdepth 1 -mindepth 1 -name "emby*.pid" -print -quit) - [[ -n "$PIDFILE" ]] && [[ -s "$PIDFILE" ]] && EMBY_PID=$(cat ${PIDFILE}) + PIDFILE=$(find /var/run/ -maxdepth 1 -mindepth 1 -name "jellyfin*.pid" -print -quit) + [[ -n "$PIDFILE" ]] && [[ -s "$PIDFILE" ]] && JELLYFIN_PID=$(cat ${PIDFILE}) # if its running, let's stop it - if [[ -n "$EMBY_PID" ]]; then - # if emby is still running, kill it - if [[ -n "$(ps -p $EMBY_PID -o pid=)" ]]; then - CPIDS=$(pgrep -P $EMBY_PID) + if [[ -n "$JELLYFIN_PID" ]]; then + # if jellyfin is still running, kill it + if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then + CPIDS=$(pgrep -P $JELLYFIN_PID) sleep 2 && kill -KILL $CPIDS kill -TERM $CPIDS > /dev/null 2>&1 fi sleep 1 # if it's still running, show error - if [[ -n "$(ps -p $EMBY_PID -o pid=)" ]]; then + if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then echo "Could not successfully stop EmbyServer, please do so before uninstalling." exit 1 else [[ -f $PIDFILE ]] && rm $PIDFILE fi fi - if [[ -f /usr/lib/emby-server/bin/MediaBrowser.Server.Mono.exe.so ]]; then - rm /usr/lib/emby-server/bin/MediaBrowser.Server.Mono.exe.so + if [[ -f /usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe.so ]]; then + rm /usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe.so fi ;; failed-upgrade) diff --git a/debian/restart.sh b/debian/restart.sh index 4d83624a02..a6f4632ba7 100644 --- a/debian/restart.sh +++ b/debian/restart.sh @@ -1,6 +1,6 @@ #!/bin/bash -NAME=emby-server +NAME=jellyfin restart_cmds=("s6-svc -t /var/run/s6/services/${NAME}" \ "systemctl restart ${NAME}" \ diff --git a/debian/rules b/debian/rules index 107394fbe1..3d596ddde8 100755 --- a/debian/rules +++ b/debian/rules @@ -14,9 +14,11 @@ override_dh_auto_test: override_dh_clistrip: override_dh_auto_build: -# dotnet build --configuration $(CONFIG) $(CURDIR)/MediaBrowser.sln --output='$(CURDIR)/usr/lib/emby-server/bin' - dotnet publish --configuration $(CONFIG) $(CURDIR)/MediaBrowser.sln --output='$(CURDIR)/usr/lib/emby-server/bin' + git submodule init + git submodule update + dotnet build --configuration $(CONFIG) $(CURDIR)/MediaBrowser.sln --output='$(CURDIR)/usr/lib/jellyfin/bin' + dotnet publish --configuration $(CONFIG) $(CURDIR)/MediaBrowser.sln --output='$(CURDIR)/usr/lib/jellyfin/bin' override_dh_auto_clean: - dotnet clean --configuration $(CONFIG) $(CURDIR)/MediaBrowser.sln - rm -rf '$(CURDIR)/usr/lib/emby-server' + dotnet clean --configuration $(CONFIG) $(CURDIR)/MediaBrowser.sln || true + rm -rf '$(CURDIR)/usr/lib/jellyfin' diff --git a/debian/source.lintian-overrides b/debian/source.lintian-overrides index 2f3412fe2f..aeb332f13a 100644 --- a/debian/source.lintian-overrides +++ b/debian/source.lintian-overrides @@ -1,3 +1,3 @@ # This is an override for the following lintian errors: -emby-server source: license-problem-md5sum-non-free-file Emby.Drawing/ImageMagick/fonts/webdings.ttf* -emby-server source: source-is-missing +jellyfin source: license-problem-md5sum-non-free-file Emby.Drawing/ImageMagick/fonts/webdings.ttf* +jellyfin source: source-is-missing From 5090eeb21532c8853e1bdf2f2e956dc29adea795 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Sun, 9 Dec 2018 17:33:40 -0500 Subject: [PATCH 2/7] Update services to work with dotnet --- debian/jellyfin.init | 102 ++++++++++++---------------------------- debian/jellyfin.service | 4 +- debian/jellyfin.upstart | 5 +- 3 files changed, 32 insertions(+), 79 deletions(-) diff --git a/debian/jellyfin.init b/debian/jellyfin.init index e49662e63c..da5cc4d6ad 100644 --- a/debian/jellyfin.init +++ b/debian/jellyfin.init @@ -1,88 +1,44 @@ -#!/bin/bash ### BEGIN INIT INFO -# Provides: jellyfin -# Required-Start: $remote_fs $local_fs $network -# Required-Stop: $remote_fs $local_fs $network +# Provides: Emby Server +# Required-Start: $local_fs $network +# Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 -# Short-Description: starts instance of Emby -# Description: starts instance of Emby +# Short-Description: Emby Server +# Description: Runs Emby Server ### END INIT INFO - -# chkconfig: 2345 20 80 -#The above indicates that the script should be started in levels 2, 3, 4, and 5, #that its start priority should be 20, and that its stop priority should be 80. -# Load the VERBOSE setting and other rcS variables -. /lib/init/vars.sh - -# Define LSB log_* functions. -# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. -. /lib/lsb/init-functions - -NAME=jellyfin -CONF_FILE=/etc/${NAME}.conf -DEFAULT_FILE=/etc/default/${NAME} - -# Source Jellyfin default configuration -. $DEFAULT_FILE - -# Source Jellyfin user configuration overrides -if [[ -f $CONF_FILE ]]; then - . $CONF_FILE -else - echo "${CONF_FILE} not found using default settings."; -fi - -# Path of jellyfin binary -JELLYFINSERVER=/usr/bin/jellyfin -PIDFILE=${JELLYFIN_PIDFILE-/var/run/jellyfin.pid} +# Carry out specific functions when asked to by the system +pid=`ps -fA|grep dotnet|grep EmbyServer|awk '{print $2}'| tr -d '\n'` case "$1" in start) - log_daemon_msg "Starting $NAME daemon" - if [[ -s $PIDFILE ]] && [[ -n "$(ps -p $(cat $PIDFILE) -o pid=)" ]]; then - log_daemon_msg "apparently already running" - log_end_msg 0 - exit 0 - fi - exec $JELLYFINSERVER start & - sleep 2 - if [[ -s $PIDFILE ]] && [[ -n "$(ps -p $(cat $PIDFILE) -o pid=)" ]]; then - log_end_msg 0 - else - log_end_msg 1 - fi + if [ "$pid" == "" ]; then + echo "Starting Emby..." + nohup dotnet /usr/lib/jellyfin/bin/EmbyServer.dll >/dev/null 2>&1 & + else + echo "Emby already running" + fi ;; stop) - log_daemon_msg "Stopping $NAME daemon" - if [[ ! -s $PIDFILE ]] || [[ -z "$(ps -p $(cat $PIDFILE) -o pid=)" ]]; then - [[ -e $PIDFILE ]] && rm -rf $PIDFILE - log_success_msg "apparently already stopped" - log_end_msg 0 - exit 0 - fi - PID=$(cat $PIDFILE) - CPIDS=$(pgrep -P $PID) - sleep 2 && kill -KILL $CPIDS - kill -TERM $CPIDS > /dev/null 2>&1 - sleep 2 - if [[ -z "$(ps -p $PID -o pid=)" ]]; then - rm -rf $PIDFILE - log_end_msg 0 - else - log_end_msg 1 - fi + if [ "$pid" != "" ]; then + echo "Stopping Emby..." + kill $pid + sleep 2 + else + echo "Emby not running" + fi ;; status) - status_of_proc -p $PIDFILE "$JELLYFINSERVER" "$NAME" - exit $? # notreached due to set -e - ;; - restart|force-reload) - $0 stop || exit $? - $0 start || exit $? - ;; + if [ "$pid" != "" ]; then + echo "Emby running as $pid" + ps -f $pid + else + echo "Emby is not running" + fi + ;; *) - echo "Usage: /etc/init.d/jellyfin {start|stop|status|restart|force-reload}" >&2 - exit 3 + echo "Usage: $0 {start|stop}" + exit 1 ;; esac diff --git a/debian/jellyfin.service b/debian/jellyfin.service index 58d77b0051..751d19f895 100644 --- a/debian/jellyfin.service +++ b/debian/jellyfin.service @@ -3,10 +3,10 @@ Description=Jellyfin Media Server After=network.target [Service] -ExecStart=/usr/bin/jellyfin start +User=jellyfin +ExecStart=/usr/bin/dotnet /usr/lib/jellyfin/bin/EmbyServer.dll Restart=on-abort TimeoutSec=20 -ExecStopPost=/usr/bin/jellyfin clear [Install] WantedBy=multi-user.target diff --git a/debian/jellyfin.upstart b/debian/jellyfin.upstart index a192f61291..ea7831ac00 100644 --- a/debian/jellyfin.upstart +++ b/debian/jellyfin.upstart @@ -16,8 +16,5 @@ script # Log file logger -t "$0" "DEBUG: `set`" exec /usr/bin/jellyfin start -end script - -post-stop script - exec /usr/bin/jellyfin clear + exec /usr/bin/dotnet /usr/lib/jellyfin/bin/EmbyServer.dll end script From e9122b76ffd87dbcbe76d1e9149c48bb592de352 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Sun, 9 Dec 2018 19:09:43 -0500 Subject: [PATCH 3/7] A few more missing replacements of Emby --- debian/bin/jellyfin | 8 ++++---- debian/control | 2 +- debian/jellyfin.conf | 8 ++++---- debian/jellyfin.default | 8 ++++---- debian/jellyfin.init | 20 ++++++++++---------- debian/po/templates.pot | 20 ++++++++++---------- debian/postinst | 2 +- debian/postrm | 2 +- debian/preinst | 4 ++-- debian/prerm | 4 ++-- 10 files changed, 39 insertions(+), 39 deletions(-) diff --git a/debian/bin/jellyfin b/debian/bin/jellyfin index b9e23d05f4..7083e017a0 100644 --- a/debian/bin/jellyfin +++ b/debian/bin/jellyfin @@ -29,19 +29,19 @@ if [[ "$JELLYFIN_USER" != "jellyfin" ]]; then else echo "WARNING: The runas user is not part of jellyfin group and you don't have enough privileges to add it. The restart button in the GUI will probably fail." echo "To solve this start the jellyfin service using the startup scripts (systemd/sysv) or" - echo "add the runas user ($JELLYFIN_USER) to the jellyfin group manually and restart Emby." + echo "add the runas user ($JELLYFIN_USER) to the jellyfin group manually and restart Jellyfin." fi fi fi -# Data directory where Emby database, cache and logs are stored +# Data directory where Jellyfin database, cache and logs are stored PROGRAMDATA=$JELLYFIN_DATA PROGRAMDATA_OPT="-programdata $PROGRAMDATA" # Path to store PID file PIDFILE=$JELLYFIN_PIDFILE -# Full path of Emby binary +# Full path of Jellyfin binary JELLYFIN_EXEC=$JELLYFIN_BIN # Path of jellyfin program files @@ -66,7 +66,7 @@ MONO_EXEC_OPTS=$MONO_OPTS # restart function RESTART_OPTS="-restartpath ${JELLYFIN_PATH}/restart.sh" -# Emby options +# Jellyfin options JELLYFIN_OPTS="$PROGRAMDATA_OPT $RESTART_OPTS $JELLYFIN_ADD_OPTS" PID_PATH=$(dirname $PIDFILE) diff --git a/debian/control b/debian/control index f2a0969759..7d1e5de38d 100644 --- a/debian/control +++ b/debian/control @@ -13,5 +13,5 @@ Breaks: mediabrowser, emby, emby-server-beta, jellyfin-dev, emby-server Conflicts: mediabrowser, emby, emby-server-beta, jellyfin-dev, emby-server Architecture: all Depends: ${shlibs:Depends}, ${misc:Depends}, at, libsqlite3-0, dotnet-runtime-2.1 -Description: Emby Server is a home media server. +Description: Jellyfin is a home media server. It is built on top of other popular open source technologies such as Service Stack, jQuery, jQuery mobile, and Mono. It features a REST-based api with built-in documentation to facilitate client development. We also have client libraries for our api to enable rapid development. diff --git a/debian/jellyfin.conf b/debian/jellyfin.conf index 9772469e16..ef5c424e87 100644 --- a/debian/jellyfin.conf +++ b/debian/jellyfin.conf @@ -8,11 +8,11 @@ ## To change the defaults add any of the following settings below the comments ## -## JELLYFIN_USER= #$JELLYFIN_USER, username to run Emby under, the default is jellyfin -## JELLYFIN_GROUP= #$JELLYFIN_GROUP, Jellyfin group where Emby user belongs -## JELLYFIN_DIR= #$JELLYFIN_DIR, the location of Emby program files the default is /usr/lib/jellyfin +## JELLYFIN_USER= #$JELLYFIN_USER, username to run Jellyfin under, the default is jellyfin +## JELLYFIN_GROUP= #$JELLYFIN_GROUP, Jellyfin group where Jellyfin user belongs +## JELLYFIN_DIR= #$JELLYFIN_DIR, the location of Jellyfin program files the default is /usr/lib/jellyfin ## JELLYFIN_BIN= #$JELLYFIN_BIN, full path of MediaBrowser.Server.Mono.exe the default is /usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe -## JELLYFIN_DATA= #$JELLYFIN_DATA, the location of Emby data, cache, logs, the default is /var/lib/jellyfin +## JELLYFIN_DATA= #$JELLYFIN_DATA, the location of Jellyfin data, cache, logs, the default is /var/lib/jellyfin ## JELLYFIN_PIDFILE= #$JELLYFIN_PIDFILE, the location of jellyfin.pid, the default is /var/run/jellyfin/jellyfin.pid ## JELLYFIN_ADD_OPTS= #$JELLYFIN_ADD_OPTS, additional options to pass to the Jellyfin executable, beyond ffmpeg, ffprobe and restart ## MONO_BIN= #$MONO_BIN, full path of mono binary, the default is /usr/bin/mono-sgen diff --git a/debian/jellyfin.default b/debian/jellyfin.default index 4fa0d67245..57f424c060 100644 --- a/debian/jellyfin.default +++ b/debian/jellyfin.default @@ -9,11 +9,11 @@ ## Don't edit this file ## Edit user configuration in /etc/jellyfin.conf to change ## -## JELLYFIN_USER= #$JELLYFIN_USER, username to run Emby under, the default is jellyfin -## JELLYFIN_GROUP= #$JELLYFIN_GROUP, Jellyfin group where Emby user belongs -## JELLYFIN_DIR= #$JELLYFIN_DIR, the location of Emby program files the default is /usr/lib/jellyfin +## JELLYFIN_USER= #$JELLYFIN_USER, username to run Jellyfin under, the default is jellyfin +## JELLYFIN_GROUP= #$JELLYFIN_GROUP, Jellyfin group where Jellyfin user belongs +## JELLYFIN_DIR= #$JELLYFIN_DIR, the location of Jellyfin program files the default is /usr/lib/jellyfin ## JELLYFIN_BIN= #$JELLYFIN_BIN, full path of MediaBrowser.Server.Mono.exe the default is /usr/lib/jellyfin/bin/MediaBrowser.Server.Mono.exe -## JELLYFIN_DATA= #$JELLYFIN_DATA, the location of Emby data, cache, logs, the default is /var/lib/jellyfin +## JELLYFIN_DATA= #$JELLYFIN_DATA, the location of Jellyfin data, cache, logs, the default is /var/lib/jellyfin ## JELLYFIN_PIDFILE= #$JELLYFIN_PIDFILE, the location of jellyfin.pid, the default is /var/run/jellyfin/jellyfin.pid ## JELLYFIN_ADD_OPTS= #$JELLYFIN_ADD_OPTS, additional options to pass to the Jellyfin executable, beyond ffmpeg, ffprobe and restart ## MONO_BIN= #$MONO_BIN, full path of mono binary, the default is /usr/bin/mono-sgen diff --git a/debian/jellyfin.init b/debian/jellyfin.init index da5cc4d6ad..4f23e13f07 100644 --- a/debian/jellyfin.init +++ b/debian/jellyfin.init @@ -1,40 +1,40 @@ ### BEGIN INIT INFO -# Provides: Emby Server +# Provides: Jellyfin Media Server # Required-Start: $local_fs $network # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 -# Short-Description: Emby Server -# Description: Runs Emby Server +# Short-Description: Jellyfin Media Server +# Description: Runs Jellyfin Server ### END INIT INFO # Carry out specific functions when asked to by the system -pid=`ps -fA|grep dotnet|grep EmbyServer|awk '{print $2}'| tr -d '\n'` +pid=`ps -fA|grep dotnet|grep JellyfinServer|awk '{print $2}'| tr -d '\n'` case "$1" in start) if [ "$pid" == "" ]; then - echo "Starting Emby..." + echo "Starting Jellyfin..." nohup dotnet /usr/lib/jellyfin/bin/EmbyServer.dll >/dev/null 2>&1 & else - echo "Emby already running" + echo "Jellyfin already running" fi ;; stop) if [ "$pid" != "" ]; then - echo "Stopping Emby..." + echo "Stopping Jellyfin..." kill $pid sleep 2 else - echo "Emby not running" + echo "Jellyfin not running" fi ;; status) if [ "$pid" != "" ]; then - echo "Emby running as $pid" + echo "Jellyfin running as $pid" ps -f $pid else - echo "Emby is not running" + echo "Jellyfin is not running" fi ;; *) diff --git a/debian/po/templates.pot b/debian/po/templates.pot index 03a98d3764..2cdcae4173 100644 --- a/debian/po/templates.pot +++ b/debian/po/templates.pot @@ -6,8 +6,8 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: emby-server\n" -"Report-Msgid-Bugs-To: emby-server@packages.debian.org\n" +"Project-Id-Version: jellyfin-server\n" +"Report-Msgid-Bugs-To: jellyfin-server@packages.debian.org\n" "POT-Creation-Date: 2015-06-12 20:51-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" @@ -20,38 +20,38 @@ msgstr "" #. Type: note #. Description #: ../templates:1001 -msgid "Emby permission info:" +msgid "Jellyfin permission info:" msgstr "" #. Type: note #. Description #: ../templates:1001 msgid "" -"Emby by default runs under a user named \"emby\". Please ensure that the " -"user emby has read and write access to any folders you wish to add to your " -"library. Otherwise please run emby under a different user." +"Jellyfin by default runs under a user named \"jellyfin\". Please ensure that the " +"user jellyfin has read and write access to any folders you wish to add to your " +"library. Otherwise please run jellyfin under a different user." msgstr "" #. Type: string #. Description #: ../templates:2001 -msgid "Username to run Emby as:" +msgid "Username to run Jellyfin as:" msgstr "" #. Type: string #. Description #: ../templates:2001 -msgid "The user that emby will run as." +msgid "The user that jellyfin will run as." msgstr "" #. Type: note #. Description #: ../templates:3001 -msgid "Emby still running" +msgid "Jellyfin still running" msgstr "" #. Type: note #. Description #: ../templates:3001 -msgid "Emby is currently running. Please close it and try again." +msgid "Jellyfin is currently running. Please close it and try again." msgstr "" diff --git a/debian/postinst b/debian/postinst index c2e46d4547..a32331da71 100644 --- a/debian/postinst +++ b/debian/postinst @@ -15,7 +15,7 @@ if [[ -f $CONF_FILE ]]; then . $CONF_FILE fi -# Data directory where Emby database, cache and logs are stored +# Data directory where Jellyfin database, cache and logs are stored PROGRAMDATA=${JELLYFIN_DATA-/var/lib/$NAME} case "$1" in diff --git a/debian/postrm b/debian/postrm index 69f527b1f8..852841b163 100644 --- a/debian/postrm +++ b/debian/postrm @@ -15,7 +15,7 @@ if [[ -f $CONF_FILE ]]; then . $CONF_FILE fi -# Data directory where Emby database, cache and logs are stored +# Data directory where Jellyfin database, cache and logs are stored PROGRAMDATA=${JELLYFIN_DATA-/var/lib/$NAME} # In case this system is running systemd, we make systemd reload the unit files diff --git a/debian/preinst b/debian/preinst index 7e168877e5..c53260bb06 100644 --- a/debian/preinst +++ b/debian/preinst @@ -15,7 +15,7 @@ if [[ -f $CONF_FILE ]]; then . $CONF_FILE fi -# Data directory where Emby database, cache and logs are stored +# Data directory where Jellyfin database, cache and logs are stored PROGRAMDATA=${JELLYFIN_DATA-/var/lib/$NAME} # In case this system is running systemd, we make systemd reload the unit files @@ -47,7 +47,7 @@ case "$1" in sleep 1 # if it's still running, show error if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then - echo "Could not successfully stop EmbyServer, please do so before uninstalling." + echo "Could not successfully stop JellyfinServer, please do so before uninstalling." exit 1 else [[ -f $PIDFILE ]] && rm $PIDFILE diff --git a/debian/prerm b/debian/prerm index af8fa1aa2e..3cdffed79d 100644 --- a/debian/prerm +++ b/debian/prerm @@ -15,7 +15,7 @@ if [[ -f $CONF_FILE ]]; then . $CONF_FILE fi -# Data directory where Emby database, cache and logs are stored +# Data directory where Jellyfin database, cache and logs are stored PROGRAMDATA=${JELLYFIN_DATA-/var/lib/$NAME} case "$1" in @@ -41,7 +41,7 @@ case "$1" in sleep 1 # if it's still running, show error if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then - echo "Could not successfully stop EmbyServer, please do so before uninstalling." + echo "Could not successfully stop Jellyfin, please do so before uninstalling." exit 1 else [[ -f $PIDFILE ]] && rm $PIDFILE From 22fdf4afeb5d114a678fc57d2a9eeba370424894 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Sun, 9 Dec 2018 20:10:05 -0500 Subject: [PATCH 4/7] Add post-install configuration of symlink --- debian/postinst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/debian/postinst b/debian/postinst index a32331da71..122de087d3 100644 --- a/debian/postinst +++ b/debian/postinst @@ -37,10 +37,11 @@ case "$1" in # ensure jellyfin binary has appropriate permissions chmod 755 /usr/bin/jellyfin - /usr/bin/mono --aot=full -O=all $JELLYFIN_BIN > /dev/null 2>&1 || true - chmod +x ${JELLYFIN_DIR}/restart.sh > /dev/null 2>&1 || true + # Link hardcoded /var/lib/emby to /var/lib/jellyfin (TEMPORARY) + ln -sf /var/lib/jellyfin /var/lib/emby + ;; abort-upgrade|abort-remove|abort-deconfigure) ;; From 972008d1dc023d5f4bd3a5261504609ee607ab56 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Sun, 9 Dec 2018 21:54:45 -0500 Subject: [PATCH 5/7] Remove obsolete binary --- debian/bin/jellyfin | 121 -------------------------------------------- debian/install | 1 - 2 files changed, 122 deletions(-) delete mode 100644 debian/bin/jellyfin diff --git a/debian/bin/jellyfin b/debian/bin/jellyfin deleted file mode 100644 index 7083e017a0..0000000000 --- a/debian/bin/jellyfin +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/bash -# vim:set ft=sh sw=2 sts=2 st=2 et: -# Author: HurricaneHernandez -# Modified for CentOS/Fedora by: FC7 - -DESC=Jellyfin -PATH=/sbin:/usr/sbin:/bin:/usr/bin -NAME=jellyfin -CONF_FILE=/etc/${NAME}.conf -DEFAULT_FILE=/etc/default/${NAME} -SCRIPTNAME=/usr/bin/jellyfin - -# Source Jellyfin default configuration -. $DEFAULT_FILE - -# Source Jellyfin user configuration overrides -if [[ -f $CONF_FILE ]]; then - . $CONF_FILE -else - echo "${CONF_FILE} not found using default settings."; -fi - -# Ensure the runas user has restart privilege to restart the service if not try to add the user to jellyfin group. WARN on failure -if [[ "$JELLYFIN_USER" != "jellyfin" ]]; then - groups $JELLYFIN_USER | grep -q jellyfin - if [[ $? -ne 0 ]]; then - if [[ $EUID -eq 0 ]]; then - usermod -a -G jellyfin $JELLYFIN_USER - else - echo "WARNING: The runas user is not part of jellyfin group and you don't have enough privileges to add it. The restart button in the GUI will probably fail." - echo "To solve this start the jellyfin service using the startup scripts (systemd/sysv) or" - echo "add the runas user ($JELLYFIN_USER) to the jellyfin group manually and restart Jellyfin." - fi - fi -fi - -# Data directory where Jellyfin database, cache and logs are stored -PROGRAMDATA=$JELLYFIN_DATA -PROGRAMDATA_OPT="-programdata $PROGRAMDATA" - -# Path to store PID file -PIDFILE=$JELLYFIN_PIDFILE - -# Full path of Jellyfin binary -JELLYFIN_EXEC=$JELLYFIN_BIN - -# Path of jellyfin program files -JELLYFIN_PATH=$JELLYFIN_DIR - -# path to mono bin -MONO_EXEC=$MONO_BIN - -# umask -UMASK=${UMASK:-002} - -# Mono environment variables -MAGICK_HOME_ENV="MAGICK_HOME=${JELLYFIN_PATH}" -JELLYFIN_LIBRARY_PATH=$(find /usr/lib/jellyfin/ -maxdepth 1 -mindepth 1 -type d| grep -v bin | grep -v etc | grep -v -e "/\.") -MAGICK_CODER_FILTER_PATH_ENV="MAGICK_CODER_FILTER_PATH=$(find ${JELLYFIN_LIBRARY_PATH} -type d -name "filters" | grep EmbyMagick)" -MAGICK_CODER_MODULE_PATH_ENV="MAGICK_CODER_MODULE_PATH=$(find ${JELLYFIN_LIBRARY_PATH} -type d -name "coders" | grep EmbyMagick)" -MONO_EXEC_ENV="$MONO_ENV ${JELLYFIN_LIBRARY_PATH:+"LD_LIBRARY_PATH=${JELLYFIN_LIBRARY_PATH}${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"}" - -# Mono options -MONO_EXEC_OPTS=$MONO_OPTS - -# restart function -RESTART_OPTS="-restartpath ${JELLYFIN_PATH}/restart.sh" - -# Jellyfin options -JELLYFIN_OPTS="$PROGRAMDATA_OPT $RESTART_OPTS $JELLYFIN_ADD_OPTS" - -PID_PATH=$(dirname $PIDFILE) - -# Exit if the mono-sgen not installed -if [[ ! -x $MONO_EXEC ]]; then - if [[ -n "$(command -v mono-sgen)" ]]; then - MONO_EXEC=$(command -v mono-sgen) - else - MONO_EXEC=$(command -v mono) - fi -fi - -# Create programdata directory if not exist and ensure the jellyfin user can write to it -if [[ ! -d $PROGRAMDATA ]]; then - if [[ $EUID -eq 0 ]]; then - mkdir -p $PROGRAMDATA - else - echo "WARNING: $JELLYFIN_DATA directory does not exist." - echo "To solve this, if it is an upgrade verify that \"JELLYFIN_DATA\" is set to the correct path in /etc/jellyfin.conf." - echo "You may need to locate the path of your library files and set JELLYFIN_DATA to that path." - echo "If this is an new installation please rerun last command with elevated permissions." - fi -fi - -# Set right permission for directories -DATA_CURRENT_USER=$(ls -lad $PROGRAMDATA | awk '{print $3}') - -if [[ "$DATA_CURRENT_USER" != "$JELLYFIN_USER" ]]; then - if [[ $EUID -eq 0 ]]; then - chown -R $JELLYFIN_USER.$JELLYFIN_GROUP $PROGRAMDATA - else - echo "WARNING: $JELLYFIN_DATA directory does not have the correct permissions." - echo "Please rerun this script with elevated permissions." - fi -fi - -case "$1" in - start) - echo $$ > $PIDFILE - exec su -s /bin/sh -c 'umask $0; exec "$1" "$@"' $JELLYFIN_USER -- \ - $UMASK env $MAGICK_HOME_ENV $MAGICK_CODER_FILTER_PATH_ENV $MAGICK_CODER_MODULE_PATH_ENV \ - $MONO_EXEC_ENV $MONO_EXEC $MONO_EXEC_OPTS $JELLYFIN_EXEC $JELLYFIN_OPTS - ;; - clear) - [[ -e $PIDFILE ]] && rm -rf $PIDFILE - ;; - *) - echo "Usage: $SCRIPTNAME {start|clear}" >&2 - exit 3 - ;; -esac diff --git a/debian/install b/debian/install index c7f77b79c4..ad5c511552 100644 --- a/debian/install +++ b/debian/install @@ -1,5 +1,4 @@ usr/lib/jellyfin usr/lib/ debian/jellyfin.conf etc/ debian/jellyfin-sudoers etc/sudoers.d/ -debian/bin/jellyfin usr/bin/ debian/restart.sh usr/lib/jellyfin From 7d0f5b625998aba0888bf6dd81d9eb83f5ca2134 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Sun, 9 Dec 2018 21:58:01 -0500 Subject: [PATCH 6/7] Organize supplementary files better --- debian/{ => bin}/jellyfin-sudoers | 0 debian/{ => bin}/restart.sh | 0 debian/{jellyfin.default => conf/jellyfin} | 0 debian/{ => conf}/jellyfin.conf | 0 debian/install | 7 ++++--- 5 files changed, 4 insertions(+), 3 deletions(-) rename debian/{ => bin}/jellyfin-sudoers (100%) rename debian/{ => bin}/restart.sh (100%) rename debian/{jellyfin.default => conf/jellyfin} (100%) rename debian/{ => conf}/jellyfin.conf (100%) diff --git a/debian/jellyfin-sudoers b/debian/bin/jellyfin-sudoers similarity index 100% rename from debian/jellyfin-sudoers rename to debian/bin/jellyfin-sudoers diff --git a/debian/restart.sh b/debian/bin/restart.sh similarity index 100% rename from debian/restart.sh rename to debian/bin/restart.sh diff --git a/debian/jellyfin.default b/debian/conf/jellyfin similarity index 100% rename from debian/jellyfin.default rename to debian/conf/jellyfin diff --git a/debian/jellyfin.conf b/debian/conf/jellyfin.conf similarity index 100% rename from debian/jellyfin.conf rename to debian/conf/jellyfin.conf diff --git a/debian/install b/debian/install index ad5c511552..a45091a3cf 100644 --- a/debian/install +++ b/debian/install @@ -1,4 +1,5 @@ usr/lib/jellyfin usr/lib/ -debian/jellyfin.conf etc/ -debian/jellyfin-sudoers etc/sudoers.d/ -debian/restart.sh usr/lib/jellyfin +debian/conf/jellyfin.conf etc/ +debian/conf/jellyfin etc/default/ +debian/bin/jellyfin-sudoers etc/sudoers.d/ +debian/bin/restart.sh usr/lib/jellyfin/ From 0671bb5f44e9da594e1f5689a7ebdf425b19f5e5 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Sun, 9 Dec 2018 22:26:20 -0500 Subject: [PATCH 7/7] Consistent capitalization --- debian/copyright | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/copyright b/debian/copyright index 5ded90f2ce..0d7a2a6007 100644 --- a/debian/copyright +++ b/debian/copyright @@ -3,7 +3,7 @@ Upstream-Name: jellyfin Source: https://github.com/jellyfin/jellyfin Files: * -Copyright: 2018 JellyFin Team +Copyright: 2018 Jellyfin Team License: GPL-2.0+ Files: debian/*