diff options
| author | Joshua Boniface <joshua@boniface.me> | 2019-01-05 19:55:55 -0500 |
|---|---|---|
| committer | Joshua Boniface <joshua@boniface.me> | 2019-01-05 22:31:22 -0500 |
| commit | 177c4835a5403d47eab10cf597694d8f2567f25f (patch) | |
| tree | 8d0155923a8ed002002b79e12e9b9e05cc510d19 | |
| parent | 3f65cb4f4882d63457192f1bc2f22eaeb9b035c9 (diff) | |
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
| -rw-r--r-- | debian/changelog | 13 | ||||
| -rw-r--r-- | debian/conf/jellyfin | 8 | ||||
| -rw-r--r-- | debian/conf/logging.json | 21 | ||||
| -rw-r--r-- | debian/install | 1 | ||||
| -rw-r--r-- | debian/jellyfin.service | 2 | ||||
| -rw-r--r-- | debian/postinst | 24 | ||||
| -rw-r--r-- | debian/postrm | 25 | ||||
| -rw-r--r-- | debian/preinst | 20 | ||||
| -rw-r--r-- | debian/prerm | 12 |
9 files changed, 77 insertions, 49 deletions
diff --git a/debian/changelog b/debian/changelog index f536f4f15..ad82a7fa4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -44,16 +44,3 @@ jellyfin (3.5.2) unstable; urgency=medium * Rename from emby-server on version 3.5.2 -- 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 - diff --git a/debian/conf/jellyfin b/debian/conf/jellyfin index fb00e7f65..2735fe8e7 100644 --- a/debian/conf/jellyfin +++ b/debian/conf/jellyfin @@ -16,7 +16,11 @@ # # 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 JELLYFIN_RESTART_SCRIPT="/usr/lib/jellyfin/restart.sh" # Additional options for the binary @@ -29,4 +33,4 @@ JELLYFIN_ADD_OPTS="" # Application username JELLYFIN_USER="jellyfin" # 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" diff --git a/debian/conf/logging.json b/debian/conf/logging.json new file mode 100644 index 000000000..2ebe5655f --- /dev/null +++ b/debian/conf/logging.json @@ -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}" + } + } + ] + } +} diff --git a/debian/install b/debian/install index bc26f9f09..adaff7b26 100644 --- a/debian/install +++ b/debian/install @@ -1,5 +1,6 @@ usr/lib/jellyfin usr/lib/ debian/conf/jellyfin etc/default/ +debian/conf/logging.json etc/jellyfin/ debian/conf/jellyfin.service.conf etc/systemd/system/jellyfin.service.d/ debian/bin/jellyfin-sudoers etc/sudoers.d/ debian/bin/restart.sh usr/lib/jellyfin/ diff --git a/debian/jellyfin.service b/debian/jellyfin.service index 4c3739909..c17422029 100644 --- a/debian/jellyfin.service +++ b/debian/jellyfin.service @@ -6,7 +6,7 @@ After = network.target Type = simple EnvironmentFile = /etc/default/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 TimeoutSec = 15 diff --git a/debian/postinst b/debian/postinst index 502bba342..7bf2e32de 100644 --- a/debian/postinst +++ b/debian/postinst @@ -2,7 +2,6 @@ set -e NAME=jellyfin -CONF_FILE=/etc/${NAME}.conf DEFAULT_FILE=/etc/default/${NAME} # Source Jellyfin default configuration @@ -10,13 +9,10 @@ if [[ -f $DEFAULT_FILE ]]; then . $DEFAULT_FILE fi -# Source Jellyfin user configuration overrides -if [[ -f $CONF_FILE ]]; then - . $CONF_FILE -fi - -# Data directory where Jellyfin database, cache and logs are stored -PROGRAMDATA=${JELLYFIN_DATA-/var/lib/$NAME} +# Data directories for program data (cache, db), configs, and logs +PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME} +CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME} +LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME} case "$1" in configure) @@ -34,8 +30,18 @@ case "$1" in mkdir $PROGRAMDATA chown -R jellyfin:jellyfin $PROGRAMDATA 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 ln -sf /usr/lib/jellyfin/bin/jellyfin /usr/bin/jellyfin diff --git a/debian/postrm b/debian/postrm index 852841b16..cbf77325e 100644 --- a/debian/postrm +++ b/debian/postrm @@ -2,7 +2,6 @@ set -e NAME=jellyfin -CONF_FILE=/etc/${NAME}.conf DEFAULT_FILE=/etc/default/${NAME} # Source Jellyfin default configuration @@ -10,13 +9,10 @@ if [[ -f $DEFAULT_FILE ]]; then . $DEFAULT_FILE fi -# Source Jellyfin user configuration overrides -if [[ -f $CONF_FILE ]]; then - . $CONF_FILE -fi - -# Data directory where Jellyfin database, cache and logs are stored -PROGRAMDATA=${JELLYFIN_DATA-/var/lib/$NAME} +# Data directories for program data (cache, db), configs, and logs +PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME} +CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME} +LOGDATA=${JELLYFIN_DATA_DIRECTORY-/var/log/$NAME} # In case this system is running systemd, we make systemd reload the unit files # to pick up changes. @@ -37,13 +33,26 @@ case "$1" in deb-systemd-helper unmask jellyfin.service >/dev/null fi + # Remove user and group userdel 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 rm -rf $PROGRAMDATA fi + # Remove binary symlink [[ -f /usr/bin/jellyfin ]] && rm /usr/bin/jellyfin + # Remove sudoers config [[ -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 ;; remove) diff --git a/debian/preinst b/debian/preinst index 2ce29a0cf..0063e0e63 100644 --- a/debian/preinst +++ b/debian/preinst @@ -2,7 +2,6 @@ set -e NAME=jellyfin -CONF_FILE=/etc/${NAME}.conf DEFAULT_FILE=/etc/default/${NAME} # Source Jellyfin default configuration @@ -10,13 +9,10 @@ if [[ -f $DEFAULT_FILE ]]; then . $DEFAULT_FILE fi -# Source Jellyfin user configuration overrides -if [[ -f $CONF_FILE ]]; then - . $CONF_FILE -fi - -# Data directory where Jellyfin database, cache and logs are stored -PROGRAMDATA=${JELLYFIN_DATA-/var/lib/$NAME} +# Data directories for program data (cache, db), configs, and logs +PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME} +CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME} +LOGDATA=${JELLYFIN_DATA_DIRECTORY-/var/log/$NAME} # In case this system is running systemd, we make systemd reload the unit files # to pick up changes. @@ -57,6 +53,14 @@ case "$1" in # Clean up old Emby cruft that can break the user's system [[ -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) ;; diff --git a/debian/prerm b/debian/prerm index 3cdffed79..4770c03c4 100644 --- a/debian/prerm +++ b/debian/prerm @@ -2,7 +2,6 @@ set -e NAME=jellyfin -CONF_FILE=/etc/${NAME}.conf DEFAULT_FILE=/etc/default/${NAME} # Source Jellyfin default configuration @@ -10,13 +9,10 @@ if [[ -f $DEFAULT_FILE ]]; then . $DEFAULT_FILE fi -# Source Jellyfin user configuration overrides -if [[ -f $CONF_FILE ]]; then - . $CONF_FILE -fi - -# Data directory where Jellyfin database, cache and logs are stored -PROGRAMDATA=${JELLYFIN_DATA-/var/lib/$NAME} +# Data directories for program data (cache, db), configs, and logs +PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME} +CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME} +LOGDATA=${JELLYFIN_DATA_DIRECTORY-/var/log/$NAME} case "$1" in remove|upgrade|deconfigure) |
