浏览代码

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
Joshua Boniface 6 年之前
父节点
当前提交
177c4835a5
共有 9 个文件被更改,包括 77 次插入49 次删除
  1. 0 13
      debian/changelog
  2. 6 2
      debian/conf/jellyfin
  3. 21 0
      debian/conf/logging.json
  4. 1 0
      debian/install
  5. 1 1
      debian/jellyfin.service
  6. 15 9
      debian/postinst
  7. 17 8
      debian/postrm
  8. 12 8
      debian/preinst
  9. 4 8
      debian/prerm

+ 0 - 13
debian/changelog

@@ -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
-

+ 6 - 2
debian/conf/jellyfin

@@ -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 - 0
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}"
+                }
+            }
+        ]
+    }
+}

+ 1 - 0
debian/install

@@ -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/

+ 1 - 1
debian/jellyfin.service

@@ -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
 
 

+ 15 - 9
debian/postinst

@@ -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
-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
 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

+ 17 - 8
debian/postrm

@@ -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
-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
 # 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)

+ 12 - 8
debian/preinst

@@ -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
-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
 # 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)
     ;;
     ;;

+ 4 - 8
debian/prerm

@@ -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
-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
 case "$1" in
   remove|upgrade|deconfigure)
   remove|upgrade|deconfigure)