Add updated configurations for log and config dir

1. Add log and config flags to init and config
2. Move the existing logs and config dirs to the right places
3. Some cleanups in the control scripts
4. Prune the changelog of pre-Jellyfin entries
This commit is contained in:
Joshua Boniface 2019-01-05 19:55:55 -05:00
parent 3f65cb4f48
commit 177c4835a5
9 changed files with 77 additions and 49 deletions

13
debian/changelog vendored
View File

@ -44,16 +44,3 @@ jellyfin (3.5.2) unstable; urgency=medium
* Rename from emby-server on version 3.5.2 * Rename from emby-server on version 3.5.2
-- Joshua Boniface <joshua@boniface.me> Sun, 9 Dec 2018 15:20:58 -0400 -- Joshua Boniface <joshua@boniface.me> 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
-- Vasily <just.one.man@yandex.ru> Mon, 22 Oct 2018 03:45:13 +0400
emby-server (3.4.1.18-unlocked) unstable; urgency=medium
* Hard fork of Emby 3.4.1.18 including premium unlock
-- Joshua Boniface <joshua@boniface.me> Thu, 9 Aug 2018 00:33:19 -0400

View File

@ -16,7 +16,11 @@
# #
# Data directory # Data directory
JELLYFIN_DATA="/var/lib/jellyfin" JELLYFIN_DATA_DIRECTORY="/var/lib/jellyfin"
# Config directory
JELLYFIN_CONFIG_DIRECTORY="/etc/jellyfin"
# Logging directory
JELLYFIN_LOG_DIRECTORY="/var/log/jellyfin"
# Restart script for in-app server control # Restart script for in-app server control
JELLYFIN_RESTART_SCRIPT="/usr/lib/jellyfin/restart.sh" JELLYFIN_RESTART_SCRIPT="/usr/lib/jellyfin/restart.sh"
# Additional options for the binary # Additional options for the binary
@ -29,4 +33,4 @@ JELLYFIN_ADD_OPTS=""
# Application username # Application username
JELLYFIN_USER="jellyfin" JELLYFIN_USER="jellyfin"
# Full application command # Full application command
JELLYFIN_ARGS="-programdata $JELLYFIN_DATA -restartpath $JELLYFIN_RESTART_SCRIPT $JELLYFIN_ADD_OPTS" JELLYFIN_ARGS="-programdata $JELLYFIN_DATA_DIRECTORY -configdir $JELLYFIN_CONFIG_DIRECTORY -logdir $JELLYFIN_LOG_DIRECTORY -restartpath $JELLYFIN_RESTART_SCRIPT $JELLYFIN_ADD_OPTS"

21
debian/conf/logging.json vendored Normal file
View File

@ -0,0 +1,21 @@
{
"Serilog": {
"MinimumLevel": "Information",
"WriteTo": [
{ "Name": "Console",
"Args": {
"outputTemplate": "[{Timestamp:HH:mm:ss}] [{Level:u3}] {Message:lj}{NewLine}{Exception}"
}
},
{ "Name": "File",
"Args": {
"path": "%JELLYFIN_LOG_DIR%//jellyfin.log",
"fileSizeLimitBytes": 10485700,
"rollOnFileSizeLimit": true,
"retainedFileCountLimit": 10,
"outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}] [{Level:u3}] {Message}{NewLine}{Exception}"
}
}
]
}
}

1
debian/install vendored
View File

@ -1,5 +1,6 @@
usr/lib/jellyfin usr/lib/ usr/lib/jellyfin usr/lib/
debian/conf/jellyfin etc/default/ debian/conf/jellyfin etc/default/
debian/conf/logging.json etc/jellyfin/
debian/conf/jellyfin.service.conf etc/systemd/system/jellyfin.service.d/ debian/conf/jellyfin.service.conf etc/systemd/system/jellyfin.service.d/
debian/bin/jellyfin-sudoers etc/sudoers.d/ debian/bin/jellyfin-sudoers etc/sudoers.d/
debian/bin/restart.sh usr/lib/jellyfin/ debian/bin/restart.sh usr/lib/jellyfin/

View File

@ -6,7 +6,7 @@ After = network.target
Type = simple Type = simple
EnvironmentFile = /etc/default/jellyfin EnvironmentFile = /etc/default/jellyfin
User = jellyfin User = jellyfin
ExecStart = /usr/bin/jellyfin -programdata ${JELLYFIN_DATA} -restartpath ${JELLYFIN_RESTART_SCRIPT} ${JELLYFIN_ADD_OPTS} ExecStart = /usr/bin/jellyfin -programdata ${JELLYFIN_DATA_DIRECTORY} -configdir ${JELLYFIN_CONFIG_DIRECTORY} -logdir ${JELLYFIN_LOG_DIRECTORY} -restartpath ${JELLYFIN_RESTART_SCRIPT} ${JELLYFIN_ADD_OPTS}
Restart = on-failure Restart = on-failure
TimeoutSec = 15 TimeoutSec = 15

24
debian/postinst vendored
View File

@ -2,7 +2,6 @@
set -e set -e
NAME=jellyfin NAME=jellyfin
CONF_FILE=/etc/${NAME}.conf
DEFAULT_FILE=/etc/default/${NAME} DEFAULT_FILE=/etc/default/${NAME}
# Source Jellyfin default configuration # Source Jellyfin default configuration
@ -10,13 +9,10 @@ if [[ -f $DEFAULT_FILE ]]; then
. $DEFAULT_FILE . $DEFAULT_FILE
fi fi
# Source Jellyfin user configuration overrides # Data directories for program data (cache, db), configs, and logs
if [[ -f $CONF_FILE ]]; then PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME}
. $CONF_FILE CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME}
fi LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME}
# Data directory where Jellyfin database, cache and logs are stored
PROGRAMDATA=${JELLYFIN_DATA-/var/lib/$NAME}
case "$1" in case "$1" in
configure) configure)
@ -34,8 +30,18 @@ case "$1" in
mkdir $PROGRAMDATA mkdir $PROGRAMDATA
chown -R jellyfin:jellyfin $PROGRAMDATA chown -R jellyfin:jellyfin $PROGRAMDATA
fi fi
# ensure $JELLYFIN_CONFIG_DIRECTORY has appropriate permissions
if [[ -n $JELLYFIN_CONFIG_DIRECTORY && ! -d $JELLYFIN_CONFIG_DIRECTORY ]]; then
mkdir $JELLYFIN_CONFIG_DIRECTORY
chown -R jellyfin:jellyfin $JELLYFIN_CONFIG_DIRECTORY
fi
# ensure $JELLYFIN_LOG_DIRECTORY has appropriate permissions
if [[ -n $JELLYFIN_LOG_DIRECTORY && ! -d $JELLYFIN_LOG_DIRECTORY ]]; then
mkdir $JELLYFIN_LOG_DIRECTORY
chown -R jellyfin:jellyfin $JELLYFIN_LOG_DIRECTORY
fi
chmod +x ${JELLYFIN_DIR}/restart.sh > /dev/null 2>&1 || true chmod +x /usr/lib/jellyfin/restart.sh > /dev/null 2>&1 || true
# Install jellyfin symlink into /usr/bin # Install jellyfin symlink into /usr/bin
ln -sf /usr/lib/jellyfin/bin/jellyfin /usr/bin/jellyfin ln -sf /usr/lib/jellyfin/bin/jellyfin /usr/bin/jellyfin

25
debian/postrm vendored
View File

@ -2,7 +2,6 @@
set -e set -e
NAME=jellyfin NAME=jellyfin
CONF_FILE=/etc/${NAME}.conf
DEFAULT_FILE=/etc/default/${NAME} DEFAULT_FILE=/etc/default/${NAME}
# Source Jellyfin default configuration # Source Jellyfin default configuration
@ -10,13 +9,10 @@ if [[ -f $DEFAULT_FILE ]]; then
. $DEFAULT_FILE . $DEFAULT_FILE
fi fi
# Source Jellyfin user configuration overrides # Data directories for program data (cache, db), configs, and logs
if [[ -f $CONF_FILE ]]; then PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME}
. $CONF_FILE CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME}
fi LOGDATA=${JELLYFIN_DATA_DIRECTORY-/var/log/$NAME}
# 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 # In case this system is running systemd, we make systemd reload the unit files
# to pick up changes. # to pick up changes.
@ -37,13 +33,26 @@ case "$1" in
deb-systemd-helper unmask jellyfin.service >/dev/null deb-systemd-helper unmask jellyfin.service >/dev/null
fi fi
# Remove user and group
userdel jellyfin > /dev/null 2>&1 || true userdel jellyfin > /dev/null 2>&1 || true
delgroup --quiet jellyfin > /dev/null 2>&1 || true delgroup --quiet jellyfin > /dev/null 2>&1 || true
# Remove config dir
if [[ -d $CONFIGDATA ]]; then
rm -rf $CONFIGDATA
fi
# Remove log dir
if [[ -d $LOGDATA ]]; then
rm -rf $LOGDATA
fi
# Remove program data dir
if [[ -d $PROGRAMDATA ]]; then if [[ -d $PROGRAMDATA ]]; then
rm -rf $PROGRAMDATA rm -rf $PROGRAMDATA
fi fi
# Remove binary symlink
[[ -f /usr/bin/jellyfin ]] && rm /usr/bin/jellyfin [[ -f /usr/bin/jellyfin ]] && rm /usr/bin/jellyfin
# Remove sudoers config
[[ -f /etc/sudoers.d/jellyfin-sudoers ]] && rm /etc/sudoers.d/jellyfin-sudoers [[ -f /etc/sudoers.d/jellyfin-sudoers ]] && rm /etc/sudoers.d/jellyfin-sudoers
# Remove /var/lib/jellyfin, just in case
[[ -d /var/lib/jellyfin ]] && rm -rf /var/lib/jellyfin [[ -d /var/lib/jellyfin ]] && rm -rf /var/lib/jellyfin
;; ;;
remove) remove)

20
debian/preinst vendored
View File

@ -2,7 +2,6 @@
set -e set -e
NAME=jellyfin NAME=jellyfin
CONF_FILE=/etc/${NAME}.conf
DEFAULT_FILE=/etc/default/${NAME} DEFAULT_FILE=/etc/default/${NAME}
# Source Jellyfin default configuration # Source Jellyfin default configuration
@ -10,13 +9,10 @@ if [[ -f $DEFAULT_FILE ]]; then
. $DEFAULT_FILE . $DEFAULT_FILE
fi fi
# Source Jellyfin user configuration overrides # Data directories for program data (cache, db), configs, and logs
if [[ -f $CONF_FILE ]]; then PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME}
. $CONF_FILE CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME}
fi LOGDATA=${JELLYFIN_DATA_DIRECTORY-/var/log/$NAME}
# 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 # In case this system is running systemd, we make systemd reload the unit files
# to pick up changes. # to pick up changes.
@ -57,6 +53,14 @@ case "$1" in
# Clean up old Emby cruft that can break the user's system # Clean up old Emby cruft that can break the user's system
[[ -f /etc/sudoers.d/emby ]] && rm -f /etc/sudoers.d/emby [[ -f /etc/sudoers.d/emby ]] && rm -f /etc/sudoers.d/emby
# If we have existing config or log dirs in /var/lib/jellyfin, move them into the right place
if [[ -d $PROGRAMDATA/config ]]; then
mv $PROGRAMDATA/config $CONFIGDATA
fi
if [[ -d $PROGRAMDATA/logs ]]; then
mv $PROGRAMDATA/logs $LOGDATA
fi
;; ;;
abort-upgrade) abort-upgrade)
;; ;;

12
debian/prerm vendored
View File

@ -2,7 +2,6 @@
set -e set -e
NAME=jellyfin NAME=jellyfin
CONF_FILE=/etc/${NAME}.conf
DEFAULT_FILE=/etc/default/${NAME} DEFAULT_FILE=/etc/default/${NAME}
# Source Jellyfin default configuration # Source Jellyfin default configuration
@ -10,13 +9,10 @@ if [[ -f $DEFAULT_FILE ]]; then
. $DEFAULT_FILE . $DEFAULT_FILE
fi fi
# Source Jellyfin user configuration overrides # Data directories for program data (cache, db), configs, and logs
if [[ -f $CONF_FILE ]]; then PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME}
. $CONF_FILE CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME}
fi LOGDATA=${JELLYFIN_DATA_DIRECTORY-/var/log/$NAME}
# Data directory where Jellyfin database, cache and logs are stored
PROGRAMDATA=${JELLYFIN_DATA-/var/lib/$NAME}
case "$1" in case "$1" in
remove|upgrade|deconfigure) remove|upgrade|deconfigure)